From owner-freebsd-current@FreeBSD.ORG Wed Sep 8 23:23:41 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 83DF116A4CE for ; Wed, 8 Sep 2004 23:23:41 +0000 (GMT) Received: from avscan2.sentex.ca (avscan2.sentex.ca [199.212.134.19]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7DB7E43D2F for ; Wed, 8 Sep 2004 23:23:38 +0000 (GMT) (envelope-from mike@sentex.net) Received: from localhost (localhost.sentex.ca [127.0.0.1]) by avscan2.sentex.ca (8.12.11/8.12.11) with ESMTP id i88NNdVe062160 for ; Wed, 8 Sep 2004 19:23:39 -0400 (EDT) (envelope-from mike@sentex.net) Received: from avscan2.sentex.ca ([127.0.0.1]) by localhost (avscan2.sentex.ca [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 61925-01 for ; Wed, 8 Sep 2004 19:23:38 -0400 (EDT) Received: from lava.sentex.ca (pyroxene.sentex.ca [199.212.134.18]) by avscan2.sentex.ca (8.12.11/8.12.11) with ESMTP id i88NNcJ4062152 for ; Wed, 8 Sep 2004 19:23:38 -0400 (EDT) (envelope-from mike@sentex.net) Received: from simian.sentex.net (simeon.sentex.ca [192.168.43.27]) by lava.sentex.ca (8.12.11/8.12.11) with ESMTP id i88NNR8b098297 for ; Wed, 8 Sep 2004 19:23:27 -0400 (EDT) (envelope-from mike@sentex.net) Message-Id: <6.1.2.0.0.20040908152736.07440148@64.7.153.2> X-Sender: mdtpop@64.7.153.2 (Unverified) X-Mailer: QUALCOMM Windows Eudora Version 6.1.2.0 Date: Wed, 08 Sep 2004 19:25:48 -0400 To: freebsd-current@freebsd.org From: Mike Tancsa Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=====================_-836725448==_" X-Virus-Scanned: by amavisd-new X-Virus-Scanned: by amavisd-new at avscan2b Subject: SIO Interrupt storms and unhanded interrupts X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Sep 2004 23:23:41 -0000 --=====================_-836725448==_ Content-Type: text/plain; charset="us-ascii"; format=flowed I think we have been bouncing around this issue for the past few months both on RELENG_4 and now RELENG_5. In the past it has been somewhat difficult to reproduce, but now we can do it reliably. I dont think its a hardware issue as I can take the exact same 2 boxes with the exact same IRQ assignments and boot with OpenBSD and not run into an interrupt storm or freeze up the box. Swap back the RELENG_4 or RELENG_5 HD and again, I can produce an interrupt storm at will. I can also reproduce it on 2 different chipsets as well (VIA and Intel). The problem seems to be around how a PUC device (either a PCI modem or a PCI serial card) and the sharing of an interrupt (usually an USB controller, but not always). On RELENG_4, the box just locks up in a race trying to service an interrupt on IRQ 12 but remains unhandled. On RELENG_5, I actually catch an interrupt storm. e.g. I attach to sio4 (PUC modem) and Interrupt storm detected on "irq12: uhci1"; throttling interrupt source Looking at vmstat -i does indeed show a the rate getting throttled releng-5-pioneer# vmstat -i interrupt total rate irq0: clk 596719 99 irq1: atkbd0 2 0 irq4: sio0 1079 0 irq6: fdc0 1 0 irq8: rtc 763812 127 irq12: uhci1 5825 0 irq13: npx0 1 0 irq14: ata0 38727 6 irq15: vr0 ata1 1984 0 Total 1408150 235 releng-5-pioneer# where irq12 is the IRQ shared by the modem and the USB port. However, because all IRQ 12s get throttled, the modem is unusable. e.g. trying to cu -l /dev/cuaa4 and typing atz takes about 5 seconds. Is there some way to safely tell the kernel that the PUC device that its shareable ? We did this perhaps very ugly hack on RELENG_4 @@ -1431,15 +1431,19 @@ rid = 0; com->irqres = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, 0ul, ~0ul, 1, - RF_ACTIVE); +/* RF_ACTIVE); */ + RF_SHAREABLE); to /usr/src/sys/isa/sio.c and at least we can talk to the sio device. However, on RELENG_5 there does not seem to be the same fix. My question is this-- Is the root cause the same issue on RELENG_4 and RELENG_5 ? Are we going about it the best way to fix the problem ? Or is the underlying problem something else ? Attached is a dmesg and acpidump ---Mike -------------------------------------------------------------------- Mike Tancsa, tel +1 519 651 3400 Sentex Communications, mike@sentex.net Providing Internet since 1994 www.sentex.net Cambridge, Ontario Canada www.sentex.net/mike --=====================_-836725448==_ Content-Type: text/plain; name="boot-v.txt"; x-mac-type="42494E41"; x-mac-creator="74747874" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="boot-v.txt" Q29weXJpZ2h0IChjKSAxOTkyLTIwMDQgVGhlIEZyZWVCU0QgUHJvamVjdC4KQ29weXJpZ2h0IChj KSAxOTc5LCAxOTgwLCAxOTgzLCAxOTg2LCAxOTg4LCAxOTg5LCAxOTkxLCAxOTkyLCAxOTkzLCAx OTk0CglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiBBbGwgcmln aHRzIHJlc2VydmVkLgpGcmVlQlNEIDUuMy1CRVRBMyAjMTogV2VkIFNlcCAgOCAxODo1NDowMSBF RFQgMjAwNAogICAgbWR0YW5jc2FAcmVsZW5nLTUtcGlvbmVlci5zZW50ZXguY2E6L3Vzci9vYmov dXNyL3NyYy9zeXMvcGlvbmVlcgpQcmVsb2FkZWQgZWxmIGtlcm5lbCAiL2Jvb3Qva2VybmVsL2tl cm5lbCIgYXQgMHhjMDgyYzAwMC4KUHJlbG9hZGVkIGVsZiBtb2R1bGUgIi9ib290L21vZHVsZXMv YWNwaS5rbyIgYXQgMHhjMDgyYzFkOC4KQ2FsaWJyYXRpbmcgY2xvY2socykgLi4uIGk4MjU0IGNs b2NrOiAxMTkzMTc5IEh6CkNMS19VU0VfSTgyNTRfQ0FMSUJSQVRJT04gbm90IHNwZWNpZmllZCAt IHVzaW5nIGRlZmF1bHQgZnJlcXVlbmN5ClRpbWVjb3VudGVyICJpODI1NCIgZnJlcXVlbmN5IDEx OTMxODIgSHogcXVhbGl0eSAwCkNhbGlicmF0aW5nIFRTQyBjbG9jayAuLi4gVFNDIGNsb2NrOiAx MDAyMjgwMTE0IEh6CkNQVTogVklBIEMzIE5laGVtaWFoICgxMDAyLjI4LU1IeiA2ODYtY2xhc3Mg Q1BVKQogIE9yaWdpbiA9ICJDZW50YXVySGF1bHMiICBJZCA9IDB4NjkxICBTdGVwcGluZyA9IDEK ICBGZWF0dXJlcz0weDM4MGIwMzU8RlBVLERFLFRTQyxNU1IsTVRSUixQR0UsQ01PVixNTVgsRlhT UixTU0U+CnJlYWwgbWVtb3J5ICA9IDI1MTU5MjcwNCAoMjM5IE1CKQpQaHlzaWNhbCBtZW1vcnkg Y2h1bmsocyk6CjB4MDAwMDAwMDAwMDAwMTAwMCAtIDB4MDAwMDAwMDAwMDA5ZmZmZiwgNjUxMjY0 IGJ5dGVzICgxNTkgcGFnZXMpCjB4MDAwMDAwMDAwMDEwMDAwMCAtIDB4MDAwMDAwMDAwMDNmZmZm ZiwgMzE0NTcyOCBieXRlcyAoNzY4IHBhZ2VzKQoweDAwMDAwMDAwMDBjMjYwMDAgLSAweDAwMDAw MDAwMGViODdmZmYsIDIzNDIzMzg1NiBieXRlcyAoNTcxODYgcGFnZXMpCmF2YWlsIG1lbW9yeSA9 IDIzNjY1NDU5MiAoMjI1IE1CKQpiaW9zMzI6IEZvdW5kIEJJT1MzMiBTZXJ2aWNlIERpcmVjdG9y eSBoZWFkZXIgYXQgMHhjMDBmYWI5MApiaW9zMzI6IEVudHJ5ID0gMHhmYjAwMCAoYzAwZmIwMDAp ICBSZXYgPSAwICBMZW4gPSAxCnBjaWJpb3M6IFBDSSBCSU9TIGVudHJ5IGF0IDB4ZjAwMDArMHhi MDUwCnBucGJpb3M6IEZvdW5kIFBuUCBCSU9TIGRhdGEgYXQgMHhjMDBmYmE1MApwbnBiaW9zOiBF bnRyeSA9IGYwMDAwOmJhODAgIFJldiA9IDEuMApPdGhlciBCSU9TIHNpZ25hdHVyZXMgZm91bmQ6 Cm51bGw6IDxudWxsIGRldmljZSwgemVybyBkZXZpY2U+CnJhbmRvbTogPGVudHJvcHkgc291cmNl LCBTb2Z0d2FyZSwgWWFycm93PgppY2h3ZCBtb2R1bGUgbG9hZGVkCmlvOiA8SS9PPgptZW06IDxt ZW1vcnk+Cm5weDA6IFtGQVNUXQpucHgwOiA8bWF0aCBwcm9jZXNzb3I+IG9uIG1vdGhlcmJvYXJk Cm5weDA6IElOVCAxNiBpbnRlcmZhY2UKYWNwaTA6IDxWVDkxNzQgQVdSREFDUEk+IG9uIG1vdGhl cmJvYXJkCmFjcGkwOiBbTVBTQUZFXQpwY2lfb3BlbigxKToJbW9kZSAxIGFkZHIgcG9ydCAoMHgw Y2Y4KSBpcyAweDgwMDAwMDYwCnBjaV9vcGVuKDFhKToJbW9kZTFyZXM9MHg4MDAwMDAwMCAoMHg4 MDAwMDAwMCkKcGNpX2NmZ2NoZWNrOglkZXZpY2UgMCBbY2xhc3M9MDYwMDAwXSBbaGRyPTAwXSBp cyB0aGVyZSAoaWQ9MzEyMzExMDYpCnBjaWJpb3M6IEJJT1MgdmVyc2lvbiAyLjEwCkZvdW5kICRQ SVIgdGFibGUsIDcgZW50cmllcyBhdCAweGMwMGZkZWIwClBDSS1Pbmx5IEludGVycnVwdHM6IDcg MTEgMTIgMTUKTG9jYXRpb24gIEJ1cyBEZXZpY2UgUGluICBMaW5rICBJUlFzCnNsb3QgMSAgICAg IDAgICAyMCAgICBBICAgMHgwMiAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CnNsb3QgMSAgICAg IDAgICAyMCAgICBCICAgMHgwMyAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CnNsb3QgMSAgICAg IDAgICAyMCAgICBDICAgMHgwNSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CnNsb3QgMSAgICAg IDAgICAyMCAgICBEICAgMHgwMSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CnNsb3QgMiAgICAg IDAgICAxOSAgICBBICAgMHgwNSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CnNsb3QgMiAgICAg IDAgICAxOSAgICBCICAgMHgwMSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CnNsb3QgMiAgICAg IDAgICAxOSAgICBDICAgMHgwMiAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CnNsb3QgMiAgICAg IDAgICAxOSAgICBEICAgMHgwMyAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAgMSAgICBBICAgMHgwMSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAgMSAgICBCICAgMHgwMiAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAgMSAgICBDICAgMHgwMyAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAgMSAgICBEICAgMHgwNSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxNiAgICBBICAgMHgwMSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxNiAgICBCICAgMHgwMiAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxNiAgICBDICAgMHgwMyAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxNiAgICBEICAgMHgwNSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxNyAgICBBICAgMHgwMSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxNyAgICBDICAgMHgwMyAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxOCAgICBBICAgMHgwMSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxNSAgICBBICAgMHgwNSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxNSAgICBCICAgMHgwMSAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxNSAgICBDICAgMHgwMiAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CmVtYmVkZGVkICAg IDAgICAxNSAgICBEICAgMHgwMyAgMyA0IDUgNyA5IDEwIDExIDEyIDE0IDE1CkFjcGlPc0Rlcml2 ZVBjaUlkOiBidXMgMCBkZXYgMTAgZnVuYyAwCkFjcGlPc0Rlcml2ZVBjaUlkOiBidXMgMCBkZXYg MTAgZnVuYyAxCkFjcGlPc0Rlcml2ZVBjaUlkOiBidXMgMCBkZXYgMTcgZnVuYyAwCmFjcGkwOiBQ b3dlciBCdXR0b24gKGZpeGVkKQpBQ1BJIHRpbWVyIGxvb2tzIEJBRCAgbWluID0gMiwgbWF4ID0g NSwgd2lkdGggPSAzCkFDUEkgdGltZXIgbG9va3MgR09PRCBtaW4gPSAyLCBtYXggPSAzLCB3aWR0 aCA9IDEKQUNQSSB0aW1lciBsb29rcyBHT09EIG1pbiA9IDIsIG1heCA9IDMsIHdpZHRoID0gMQpB Q1BJIHRpbWVyIGxvb2tzIEdPT0QgbWluID0gMiwgbWF4ID0gMywgd2lkdGggPSAxCkFDUEkgdGlt ZXIgbG9va3MgR09PRCBtaW4gPSAyLCBtYXggPSAzLCB3aWR0aCA9IDEKQUNQSSB0aW1lciBsb29r cyBHT09EIG1pbiA9IDIsIG1heCA9IDMsIHdpZHRoID0gMQpBQ1BJIHRpbWVyIGxvb2tzIEdPT0Qg bWluID0gMiwgbWF4ID0gMywgd2lkdGggPSAxCkFDUEkgdGltZXIgbG9va3MgR09PRCBtaW4gPSAy LCBtYXggPSAzLCB3aWR0aCA9IDEKQUNQSSB0aW1lciBsb29rcyBHT09EIG1pbiA9IDIsIG1heCA9 IDMsIHdpZHRoID0gMQpBQ1BJIHRpbWVyIGxvb2tzIEdPT0QgbWluID0gMiwgbWF4ID0gMywgd2lk dGggPSAxClRpbWVjb3VudGVyICJBQ1BJLXNhZmUiIGZyZXF1ZW5jeSAzNTc5NTQ1IEh6IHF1YWxp dHkgMTAwMAphY3BpX3RpbWVyMDogPDI0LWJpdCB0aW1lciBhdCAzLjU3OTU0NU1Iej4gcG9ydCAw eDQwOC0weDQwYiBvbiBhY3BpMAp1bmtub3duOiBub3QgcHJvYmVkIChkaXNhYmxlZCkKY3B1MDog PEFDUEkgQ1BVICgzIEN4IHN0YXRlcyk+IG9uIGFjcGkwCmFjcGlfYnV0dG9uMDogPFBvd2VyIEJ1 dHRvbj4gb24gYWNwaTAKcGNpYjA6IDxBQ1BJIEhvc3QtUENJIGJyaWRnZT4gcG9ydCAweGNmOC0w eGNmZiBvbiBhY3BpMApBQ1BJIFBDSSBsaW5rIGluaXRpYWwgY29uZmlndXJhdGlvbjoKXFxfU0Jf LlBDSTAuTE5LQiBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gMTIr IGxvdyxsZXZlbCxzaGFyYWJsZSAwLjIwLjAKXFxfU0JfLlBDSTAuTE5LQyBpcnEgIDA6IFsgMSAg MyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gIDcrIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjIw LjEKXFxfU0JfLlBDSTAuTE5LRCBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAx NCAxNV0gMTUrIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjIwLjIKXFxfU0JfLlBDSTAuTE5LQSBpcnEg IDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gMTErIGxvdyxsZXZlbCxzaGFy YWJsZSAwLjIwLjMKXFxfU0JfLlBDSTAuTE5LRCBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAx MCAxMSAxMiAxNCAxNV0gMTUrIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjE5LjAKXFxfU0JfLlBDSTAu TE5LQSBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gMTErIGxvdyxs ZXZlbCxzaGFyYWJsZSAwLjE5LjEKXFxfU0JfLlBDSTAuTE5LQiBpcnEgIDA6IFsgMSAgMyAgNCAg NSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gMTIrIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjE5LjIKXFxf U0JfLlBDSTAuTE5LQyBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0g IDcrIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjE5LjMKXFxfU0JfLlBDSTAuTE5LQSBpcnEgIDA6IFsg MSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gMTErIGxvdyxsZXZlbCxzaGFyYWJsZSAw LjE2LjAKXFxfU0JfLlBDSTAuTE5LQiBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAx MiAxNCAxNV0gMTIrIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjE2LjEKXFxfU0JfLlBDSTAuTE5LQyBp cnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gIDcrIGxvdyxsZXZlbCxz aGFyYWJsZSAwLjE2LjIKXFxfU0JfLlBDSTAuTE5LRCBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAg NyAxMCAxMSAxMiAxNCAxNV0gMTUrIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjE2LjMKXFxfU0JfLlBD STAuTE5LQSBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gMTErIGxv dyxsZXZlbCxzaGFyYWJsZSAwLjE3LjAKXFxfU0JfLlBDSTAuTE5LQyBpcnEgIDA6IFsgMSAgMyAg NCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gIDcrIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjE3LjIK XFxfU0JfLlBDSTAuTE5LQSBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAx NV0gMTErIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjE4LjAKXFxfU0JfLlBDSTAuTE5LRCBpcnEgIDA6 IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gMTUrIGxvdyxsZXZlbCxzaGFyYWJs ZSAwLjE1LjAKXFxfU0JfLlBDSTAuTE5LQSBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAx MSAxMiAxNCAxNV0gMTErIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjE1LjEKXFxfU0JfLlBDSTAuTE5L QiBpcnEgIDA6IFsgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gMTIrIGxvdyxsZXZl bCxzaGFyYWJsZSAwLjE1LjIKXFxfU0JfLlBDSTAuTE5LQyBpcnEgIDA6IFsgMSAgMyAgNCAgNSAg NiAgNyAxMCAxMSAxMiAxNCAxNV0gIDcrIGxvdyxsZXZlbCxzaGFyYWJsZSAwLjE1LjMKcGNpMDog PEFDUEkgUENJIGJ1cz4gb24gcGNpYjAKcGNpMDogcGh5c2ljYWwgYnVzPTAKCW1hcFsxMF06IHR5 cGUgMywgcmFuZ2UgMzIsIGJhc2UgZTYwMDAwMDAsIHNpemUgMjIsIGVuYWJsZWQKZm91bmQtPgl2 ZW5kb3I9MHgxMTA2LCBkZXY9MHgzMTIzLCByZXZpZD0weDAwCglidXM9MCwgc2xvdD0wLCBmdW5j PTAKCWNsYXNzPTA2LTAwLTAwLCBoZHJ0eXBlPTB4MDAsIG1mZGV2PTAKCWNtZHJlZz0weDAwMDYs IHN0YXRyZWc9MHgyMjMwLCBjYWNoZWxuc3o9MCAoZHdvcmRzKQoJbGF0dGltZXI9MHgwOCAoMjQw IG5zKSwgbWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCXBvd2Vyc3BlYyAy ICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBEMApmb3VuZC0+CXZlbmRvcj0weDExMDYsIGRldj0w eGIwOTEsIHJldmlkPTB4MDAKCWJ1cz0wLCBzbG90PTEsIGZ1bmM9MAoJY2xhc3M9MDYtMDQtMDAs IGhkcnR5cGU9MHgwMSwgbWZkZXY9MAoJY21kcmVnPTB4MDEwNywgc3RhdHJlZz0weGEyMzAsIGNh Y2hlbG5zej0wIChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5zKSwgbWluZ250PTB4MGMgKDMw MDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCW1hcFsxMF06IHR5cGUgNCwgcmFuZ2UgMzIsIGJh c2UgMDAwMGQwMDAsIHNpemUgIDgsIGVuYWJsZWQKCW1hcFsxNF06IHR5cGUgMSwgcmFuZ2UgMzIs IGJhc2UgZTY0MDAwMDAsIHNpemUgIDgsIGVuYWJsZWQKcGNpYjA6IG1hdGNoZWQgZW50cnkgZm9y IDAuMTUuSU5UQSAoc3JjIFxcX1NCXy5QQ0kwLkxOS0QpCnBjaWIwOiBwb3NzaWJsZSBpbnRlcnJ1 cHRzOiAgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNQpBQ1BJIFBDSSBsaW5rIGFyYml0 cmF0ZWQgc2V0dGluZ3M6ClxcX1NCXy5QQ0kwLkxOS0EgKHJlZmVyZW5jZXMgNiwgcHJpb3JpdHkg MTIzODk0KToKCWludGVycnVwdHM6CSAgICAxMSAgICAxMCAgICAgNSAgICAxMiAgICAgNyAgICAg NiAgICAgNCAgICAgMyAgICAxNSAgICAxNCAgICAgMQoJcGVuYWx0eToJICAgMTkwICAgMTkwICAg MjQwICA1MTkwICA1MTkwICA1MTkwICA1MTkwICA1MTkwIDUwMTkwIDUwMTkwMTAwMTkwClxcX1NC Xy5QQ0kwLkxOS0MgKHJlZmVyZW5jZXMgNSwgcHJpb3JpdHkgMTAzMjQ1KToKCWludGVycnVwdHM6 CSAgICAxMSAgICAxMCAgICAgNSAgICAxMiAgICAgNyAgICAgNiAgICAgNCAgICAgMyAgICAxNSAg ICAxNCAgICAgMQoJcGVuYWx0eToJICAgMTkwICAgMTkwICAgMjQwICA1MTkwICA1MTkwICA1MTkw ICA1MTkwICA1MTkwIDUwMTkwIDUwMTkwMTAwMTkwClxcX1NCXy5QQ0kwLkxOS0IgKHJlZmVyZW5j ZXMgNCwgcHJpb3JpdHkgODI1OTYpOgoJaW50ZXJydXB0czoJICAgIDExICAgIDEwICAgICA1ICAg IDEyICAgICA3ICAgICA2ICAgICA0ICAgICAzICAgIDE1ICAgIDE0ICAgICAxCglwZW5hbHR5Ogkg ICAxOTAgICAxOTAgICAyNDAgIDUxOTAgIDUxOTAgIDUxOTAgIDUxOTAgIDUxOTAgNTAxOTAgNTAx OTAxMDAxOTAKXFxfU0JfLlBDSTAuTE5LRCAocmVmZXJlbmNlcyA0LCBwcmlvcml0eSA4MjU5Nik6 CglpbnRlcnJ1cHRzOgkgICAgMTEgICAgMTAgICAgIDUgICAgMTIgICAgIDcgICAgIDYgICAgIDQg ICAgIDMgICAgMTUgICAgMTQgICAgIDEKCXBlbmFsdHk6CSAgIDE5MCAgIDE5MCAgIDI0MCAgNTE5 MCAgNTE5MCAgNTE5MCAgNTE5MCAgNTE5MCA1MDE5MCA1MDE5MDEwMDE5MApwY2liMDogc2xvdCAx NSBJTlRBIHJvdXRlZCB0byBpcnEgMTUgdmlhIFxcX1NCXy5QQ0kwLkxOS0QKZm91bmQtPgl2ZW5k b3I9MHgxMTA2LCBkZXY9MHgzMTA2LCByZXZpZD0weDhiCglidXM9MCwgc2xvdD0xNSwgZnVuYz0w CgljbGFzcz0wMi0wMC0wMCwgaGRydHlwZT0weDAwLCBtZmRldj0wCgljbWRyZWc9MHgwMDA3LCBz dGF0cmVnPTB4MDIxMCwgY2FjaGVsbnN6PTggKGR3b3JkcykKCWxhdHRpbWVyPTB4MjAgKDk2MCBu cyksIG1pbmdudD0weDAzICg3NTAgbnMpLCBtYXhsYXQ9MHgwOCAoMjAwMCBucykKCWludHBpbj1h LCBpcnE9MTUKCXBvd2Vyc3BlYyAyICBzdXBwb3J0cyBEMCBEMSBEMiBEMyAgY3VycmVudCBEMAoJ bWFwWzIwXTogdHlwZSA0LCByYW5nZSAzMiwgYmFzZSAwMDAwZDQwMCwgc2l6ZSAgNSwgZW5hYmxl ZApwY2liMDogbWF0Y2hlZCBlbnRyeSBmb3IgMC4xNi5JTlRBIChzcmMgXFxfU0JfLlBDSTAuTE5L QSkKcGNpYjA6IHBvc3NpYmxlIGludGVycnVwdHM6ICAxICAzICA0ICA1ICA2ICA3IDEwIDExIDEy IDE0IDE1CkFDUEkgUENJIGxpbmsgYXJiaXRyYXRlZCBzZXR0aW5nczoKXFxfU0JfLlBDSTAuTE5L QSAocmVmZXJlbmNlcyA2LCBwcmlvcml0eSAxMjUwNTYpOgoJaW50ZXJydXB0czoJICAgIDExICAg IDEwICAgICA1ICAgIDEyICAgICA3ICAgICA2ICAgICA0ICAgICAzICAgIDE0ICAgIDE1ICAgICAx CglwZW5hbHR5OgkgICAzODAgICAzODAgICA0MzAgIDUzODAgIDUzODAgIDUzODAgIDUzODAgIDUz ODAgNTAzODAgNTA0MjAxMDAzODAKXFxfU0JfLlBDSTAuTE5LQyAocmVmZXJlbmNlcyA1LCBwcmlv cml0eSAxMDQyMTMpOgoJaW50ZXJydXB0czoJICAgIDExICAgIDEwICAgICA1ICAgIDEyICAgICA3 ICAgICA2ICAgICA0ICAgICAzICAgIDE0ICAgIDE1ICAgICAxCglwZW5hbHR5OgkgICAzODAgICAz ODAgICA0MzAgIDUzODAgIDUzODAgIDUzODAgIDUzODAgIDUzODAgNTAzODAgNTA0MjAxMDAzODAK XFxfU0JfLlBDSTAuTE5LQiAocmVmZXJlbmNlcyA0LCBwcmlvcml0eSA4MzM3MCk6CglpbnRlcnJ1 cHRzOgkgICAgMTEgICAgMTAgICAgIDUgICAgMTIgICAgIDcgICAgIDYgICAgIDQgICAgIDMgICAg MTQgICAgMTUgICAgIDEKCXBlbmFsdHk6CSAgIDM4MCAgIDM4MCAgIDQzMCAgNTM4MCAgNTM4MCAg NTM4MCAgNTM4MCAgNTM4MCA1MDM4MCA1MDQyMDEwMDM4MApwY2liMDogc2xvdCAxNiBJTlRBIHJv dXRlZCB0byBpcnEgMTEgdmlhIFxcX1NCXy5QQ0kwLkxOS0EKZm91bmQtPgl2ZW5kb3I9MHgxMTA2 LCBkZXY9MHgzMDM4LCByZXZpZD0weDgwCglidXM9MCwgc2xvdD0xNiwgZnVuYz0wCgljbGFzcz0w Yy0wMy0wMCwgaGRydHlwZT0weDAwLCBtZmRldj0xCgljbWRyZWc9MHgwMDA3LCBzdGF0cmVnPTB4 MDIxMCwgY2FjaGVsbnN6PTggKGR3b3JkcykKCWxhdHRpbWVyPTB4MjAgKDk2MCBucyksIG1pbmdu dD0weDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49YSwgaXJxPTExCglwb3dl cnNwZWMgMiAgc3VwcG9ydHMgRDAgRDEgRDIgRDMgIGN1cnJlbnQgRDAKCW1hcFsyMF06IHR5cGUg NCwgcmFuZ2UgMzIsIGJhc2UgMDAwMGQ4MDAsIHNpemUgIDUsIGVuYWJsZWQKcGNpYjA6IG1hdGNo ZWQgZW50cnkgZm9yIDAuMTYuSU5UQiAoc3JjIFxcX1NCXy5QQ0kwLkxOS0IpCnBjaWIwOiBwb3Nz aWJsZSBpbnRlcnJ1cHRzOiAgMSAgMyAgNCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNQpBQ1BJIFBD SSBsaW5rIGFyYml0cmF0ZWQgc2V0dGluZ3M6ClxcX1NCXy5QQ0kwLkxOS0MgKHJlZmVyZW5jZXMg NSwgcHJpb3JpdHkgMTA1MTkwKToKCWludGVycnVwdHM6CSAgICAxMCAgICAgNSAgICAxMSAgICAx MiAgICAgNyAgICAgNiAgICAgNCAgICAgMyAgICAxNCAgICAxNSAgICAgMQoJcGVuYWx0eToJICAg NTcwICAgNjIwICAgNjMwICA1NTcwICA1NTcwICA1NTcwICA1NTcwICA1NTcwIDUwNTcwIDUwNjEw MTAwNTcwClxcX1NCXy5QQ0kwLkxOS0IgKHJlZmVyZW5jZXMgNCwgcHJpb3JpdHkgODQxNTIpOgoJ aW50ZXJydXB0czoJICAgIDEwICAgICA1ICAgIDExICAgIDEyICAgICA3ICAgICA2ICAgICA0ICAg ICAzICAgIDE0ICAgIDE1ICAgICAxCglwZW5hbHR5OgkgICA1NzAgICA2MjAgICA2MzAgIDU1NzAg IDU1NzAgIDU1NzAgIDU1NzAgIDU1NzAgNTA1NzAgNTA2MTAxMDA1NzAKcGNpYjA6IHNsb3QgMTYg SU5UQiByb3V0ZWQgdG8gaXJxIDEyIHZpYSBcXF9TQl8uUENJMC5MTktCCmZvdW5kLT4JdmVuZG9y PTB4MTEwNiwgZGV2PTB4MzAzOCwgcmV2aWQ9MHg4MAoJYnVzPTAsIHNsb3Q9MTYsIGZ1bmM9MQoJ Y2xhc3M9MGMtMDMtMDAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MQoJY21kcmVnPTB4MDAwNywgc3Rh dHJlZz0weDAyMTAsIGNhY2hlbG5zej04IChkd29yZHMpCglsYXR0aW1lcj0weDIwICg5NjAgbnMp LCBtaW5nbnQ9MHgwMCAoMCBucyksIG1heGxhdD0weDAwICgwIG5zKQoJaW50cGluPWIsIGlycT0x MgoJcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQxIEQyIEQzICBjdXJyZW50IEQwCgltYXBbMjBd OiB0eXBlIDQsIHJhbmdlIDMyLCBiYXNlIDAwMDBkYzAwLCBzaXplICA1LCBlbmFibGVkCnBjaWIw OiBtYXRjaGVkIGVudHJ5IGZvciAwLjE2LklOVEMgKHNyYyBcXF9TQl8uUENJMC5MTktDKQpwY2li MDogcG9zc2libGUgaW50ZXJydXB0czogIDEgIDMgIDQgIDUgIDYgIDcgMTAgMTEgMTIgMTQgMTUK QUNQSSBQQ0kgbGluayBhcmJpdHJhdGVkIHNldHRpbmdzOgpcXF9TQl8uUENJMC5MTktDIChyZWZl cmVuY2VzIDUsIHByaW9yaXR5IDEwNjE1OSk6CglpbnRlcnJ1cHRzOgkgICAgMTAgICAgIDUgICAg MTEgICAgIDcgICAgIDYgICAgIDQgICAgIDMgICAgMTIgICAgMTQgICAgMTUgICAgIDEKCXBlbmFs dHk6CSAgIDc2MCAgIDgxMCAgIDgyMCAgNTc2MCAgNTc2MCAgNTc2MCAgNTc2MCAgNTgwMCA1MDc2 MCA1MDgwMDEwMDc2MApwY2liMDogc2xvdCAxNiBJTlRDIHJvdXRlZCB0byBpcnEgNyB2aWEgXFxf U0JfLlBDSTAuTE5LQwpmb3VuZC0+CXZlbmRvcj0weDExMDYsIGRldj0weDMwMzgsIHJldmlkPTB4 ODAKCWJ1cz0wLCBzbG90PTE2LCBmdW5jPTIKCWNsYXNzPTBjLTAzLTAwLCBoZHJ0eXBlPTB4MDAs IG1mZGV2PTEKCWNtZHJlZz0weDAwMDcsIHN0YXRyZWc9MHgwMjEwLCBjYWNoZWxuc3o9OCAoZHdv cmRzKQoJbGF0dGltZXI9MHgyMCAoOTYwIG5zKSwgbWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9 MHgwMCAoMCBucykKCWludHBpbj1jLCBpcnE9NwoJcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQx IEQyIEQzICBjdXJyZW50IEQwCgltYXBbMTBdOiB0eXBlIDEsIHJhbmdlIDMyLCBiYXNlIGU2NDAx MDAwLCBzaXplICA4LCBlbmFibGVkCnBjaWIwOiBtYXRjaGVkIGVudHJ5IGZvciAwLjE2LklOVEQg KHNyYyBcXF9TQl8uUENJMC5MTktEKQpwY2liMDogc2xvdCAxNiBJTlREIGlzIGFscmVhZHkgcm91 dGVkIHRvIGlycSAxNQpmb3VuZC0+CXZlbmRvcj0weDExMDYsIGRldj0weDMxMDQsIHJldmlkPTB4 ODIKCWJ1cz0wLCBzbG90PTE2LCBmdW5jPTMKCWNsYXNzPTBjLTAzLTIwLCBoZHJ0eXBlPTB4MDAs IG1mZGV2PTAKCWNtZHJlZz0weDAwMDcsIHN0YXRyZWc9MHgwMjEwLCBjYWNoZWxuc3o9OCAoZHdv cmRzKQoJbGF0dGltZXI9MHgyMCAoOTYwIG5zKSwgbWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9 MHgwMCAoMCBucykKCWludHBpbj1kLCBpcnE9MTUKCXBvd2Vyc3BlYyAyICBzdXBwb3J0cyBEMCBE MSBEMiBEMyAgY3VycmVudCBEMApmb3VuZC0+CXZlbmRvcj0weDExMDYsIGRldj0weDMxNzcsIHJl dmlkPTB4MDAKCWJ1cz0wLCBzbG90PTE3LCBmdW5jPTAKCWNsYXNzPTA2LTAxLTAwLCBoZHJ0eXBl PTB4MDAsIG1mZGV2PTEKCWNtZHJlZz0weDAwODcsIHN0YXRyZWc9MHgwMjEwLCBjYWNoZWxuc3o9 MCAoZHdvcmRzKQoJbGF0dGltZXI9MHgwMCAoMCBucyksIG1pbmdudD0weDAwICgwIG5zKSwgbWF4 bGF0PTB4MDAgKDAgbnMpCglwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAK CW1hcFsyMF06IHR5cGUgNCwgcmFuZ2UgMzIsIGJhc2UgMDAwMGUwMDAsIHNpemUgIDQsIGVuYWJs ZWQKZm91bmQtPgl2ZW5kb3I9MHgxMTA2LCBkZXY9MHgwNTcxLCByZXZpZD0weDA2CglidXM9MCwg c2xvdD0xNywgZnVuYz0xCgljbGFzcz0wMS0wMS04YSwgaGRydHlwZT0weDAwLCBtZmRldj0wCglj bWRyZWc9MHgwMDA3LCBzdGF0cmVnPTB4MDI5MCwgY2FjaGVsbnN6PTAgKGR3b3JkcykKCWxhdHRp bWVyPTB4MjAgKDk2MCBucyksIG1pbmdudD0weDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMp CglpbnRwaW49YSwgaXJxPTI1NQoJcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50 IEQwCgltYXBbMTBdOiB0eXBlIDQsIHJhbmdlIDMyLCBiYXNlIDAwMDBlNDAwLCBzaXplICA4LCBl bmFibGVkCgltYXBbMTRdOiB0eXBlIDEsIHJhbmdlIDMyLCBiYXNlIGU2NDAyMDAwLCBzaXplICA4 LCBlbmFibGVkCnBjaWIwOiBtYXRjaGVkIGVudHJ5IGZvciAwLjE4LklOVEEgKHNyYyBcXF9TQl8u UENJMC5MTktBKQpwY2liMDogc2xvdCAxOCBJTlRBIGlzIGFscmVhZHkgcm91dGVkIHRvIGlycSAx MQpmb3VuZC0+CXZlbmRvcj0weDExMDYsIGRldj0weDMwNjUsIHJldmlkPTB4NzQKCWJ1cz0wLCBz bG90PTE4LCBmdW5jPTAKCWNsYXNzPTAyLTAwLTAwLCBoZHJ0eXBlPTB4MDAsIG1mZGV2PTAKCWNt ZHJlZz0weDAwMDcsIHN0YXRyZWc9MHgwMjEwLCBjYWNoZWxuc3o9OCAoZHdvcmRzKQoJbGF0dGlt ZXI9MHgyMCAoOTYwIG5zKSwgbWluZ250PTB4MDMgKDc1MCBucyksIG1heGxhdD0weDA4ICgyMDAw IG5zKQoJaW50cGluPWEsIGlycT0xMQoJcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQxIEQyIEQz ICBjdXJyZW50IEQwCgltYXBbMTBdOiB0eXBlIDQsIHJhbmdlIDMyLCBiYXNlIDAwMDBlODAwLCBz aXplICAzLCBlbmFibGVkCnBjaWIwOiBtYXRjaGVkIGVudHJ5IGZvciAwLjIwLklOVEEgKHNyYyBc XF9TQl8uUENJMC5MTktCKQpwY2liMDogc2xvdCAyMCBJTlRBIGlzIGFscmVhZHkgcm91dGVkIHRv IGlycSAxMgpmb3VuZC0+CXZlbmRvcj0weDE1MWYsIGRldj0weDAwMDAsIHJldmlkPTB4MDAKCWJ1 cz0wLCBzbG90PTIwLCBmdW5jPTAKCWNsYXNzPTA3LTgwLTAwLCBoZHJ0eXBlPTB4MDAsIG1mZGV2 PTAKCWNtZHJlZz0weDAwMDEsIHN0YXRyZWc9MHgwMjAwLCBjYWNoZWxuc3o9MCAoZHdvcmRzKQoJ bGF0dGltZXI9MHgwMCAoMCBucyksIG1pbmdudD0weDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAg bnMpCglpbnRwaW49YSwgaXJxPTEyCmFncDA6IDxWSUEgR2VuZXJpYyBob3N0IHRvIFBDSSBicmlk Z2U+IG1lbSAweGU2MDAwMDAwLTB4ZTYzZmZmZmYgYXQgZGV2aWNlIDAuMCBvbiBwY2kwCmFncDA6 IFJlc2VydmVkIDB4NDAwMDAwIGJ5dGVzIGZvciByaWQgMHgxMCB0eXBlIDMgYXQgMHhlNjAwMDAw MAphZ3AwOiBhbGxvY2F0aW5nIEdBVFQgZm9yIGFwZXJ0dXJlIG9mIHNpemUgMjI4TQpwY2liMTog PEFDUEkgUENJLVBDSSBicmlkZ2U+IGF0IGRldmljZSAxLjAgb24gcGNpMApwY2liMTogICBzZWNv bmRhcnkgYnVzICAgICAxCnBjaWIxOiAgIHN1Ym9yZGluYXRlIGJ1cyAgIDEKcGNpYjE6ICAgSS9P IGRlY29kZSAgICAgICAgMHhmMDAwLTB4ZmZmCnBjaWIxOiAgIG1lbW9yeSBkZWNvZGUgICAgIDB4 ZTQwMDAwMDAtMHhlNWZmZmZmZgpwY2liMTogICBwcmVmZXRjaGVkIGRlY29kZSAweGUwMDAwMDAw LTB4ZTNmZmZmZmYKQUNQSSBQQ0kgbGluayBpbml0aWFsIGNvbmZpZ3VyYXRpb246ClxcX1NCXy5Q Q0kwLkxOS0EgaXJxKjExOiBbIDEgIDMgIDQgIDUgIDYgIDcgMTAgMTEgMTIgMTQgMTVdIDExKyBs b3csbGV2ZWwsc2hhcmFibGUgMS4wLjAKXFxfU0JfLlBDSTAuTE5LQiBpcnEqMTI6IFsgMSAgMyAg NCAgNSAgNiAgNyAxMCAxMSAxMiAxNCAxNV0gMTIrIGxvdyxsZXZlbCxzaGFyYWJsZSAxLjAuMQpc XF9TQl8uUENJMC5MTktDIGlycSogNzogWyAxICAzICA0ICA1ICA2ICA3IDEwIDExIDEyIDE0IDE1 XSAgNysgbG93LGxldmVsLHNoYXJhYmxlIDEuMC4yClxcX1NCXy5QQ0kwLkxOS0QgaXJxKjE1OiBb IDEgIDMgIDQgIDUgIDYgIDcgMTAgMTEgMTIgMTQgMTVdIDE1KyBsb3csbGV2ZWwsc2hhcmFibGUg MS4wLjMKcGNpMTogPEFDUEkgUENJIGJ1cz4gb24gcGNpYjEKcGNpMTogcGh5c2ljYWwgYnVzPTEK CW1hcFsxMF06IHR5cGUgMywgcmFuZ2UgMzIsIGJhc2UgZTAwMDAwMDAsIHNpemUgMjYsIGVuYWJs ZWQKcGNpYjE6IGRldmljZSAobnVsbCkgcmVxdWVzdGVkIGRlY29kZWQgbWVtb3J5IHJhbmdlIDB4 ZTAwMDAwMDAtMHhlM2ZmZmZmZgoJbWFwWzE0XTogdHlwZSAxLCByYW5nZSAzMiwgYmFzZSBlNDAw MDAwMCwgc2l6ZSAyNCwgZW5hYmxlZApwY2liMTogZGV2aWNlIChudWxsKSByZXF1ZXN0ZWQgZGVj b2RlZCBtZW1vcnkgcmFuZ2UgMHhlNDAwMDAwMC0weGU0ZmZmZmZmCnBjaWIxOiBtYXRjaGVkIGVu dHJ5IGZvciAxLjAuSU5UQSAoc3JjIFxcX1NCXy5QQ0kwLkxOS0EpCnBjaWIxOiBzbG90IDAgSU5U QSBpcyBhbHJlYWR5IHJvdXRlZCB0byBpcnEgMTEKZm91bmQtPgl2ZW5kb3I9MHgxMTA2LCBkZXY9 MHgzMTIyLCByZXZpZD0weDAzCglidXM9MSwgc2xvdD0wLCBmdW5jPTAKCWNsYXNzPTAzLTAwLTAw LCBoZHJ0eXBlPTB4MDAsIG1mZGV2PTAKCWNtZHJlZz0weDAwMDcsIHN0YXRyZWc9MHgwMjMwLCBj YWNoZWxuc3o9MCAoZHdvcmRzKQoJbGF0dGltZXI9MHgyMCAoOTYwIG5zKSwgbWluZ250PTB4MDIg KDUwMCBucyksIG1heGxhdD0weDAwICgwIG5zKQoJaW50cGluPWEsIGlycT0xMQoJcG93ZXJzcGVj IDIgIHN1cHBvcnRzIEQwIEQxIEQyIEQzICBjdXJyZW50IEQwCnBjaTE6IDxkaXNwbGF5LCBWR0E+ IGF0IGRldmljZSAwLjAgKG5vIGRyaXZlciBhdHRhY2hlZCkKdnIwOiA8VklBIFZUNjEwNSBSaGlu ZSBJSUkgMTAvMTAwQmFzZVRYPiBwb3J0IDB4ZDAwMC0weGQwZmYgbWVtIDB4ZTY0MDAwMDAtMHhl NjQwMDBmZiBpcnEgMTUgYXQgZGV2aWNlIDE1LjAgb24gcGNpMAp2cjA6IFJlc2VydmVkIDB4MTAw IGJ5dGVzIGZvciByaWQgMHgxMCB0eXBlIDQgYXQgMHhkMDAwCm1paWJ1czA6IDxNSUkgYnVzPiBv biB2cjAKdWtwaHkwOiA8R2VuZXJpYyBJRUVFIDgwMi4zdSBtZWRpYSBpbnRlcmZhY2U+IG9uIG1p aWJ1czAKdWtwaHkwOiBPVUkgMHgwMDQwNjMsIG1vZGVsIDB4MDAzNCwgcmV2LiA5CnVrcGh5MDog IDEwYmFzZVQsIDEwYmFzZVQtRkRYLCAxMDBiYXNlVFgsIDEwMGJhc2VUWC1GRFgsIGF1dG8KdnIw OiBicGYgYXR0YWNoZWQKdnIwOiBFdGhlcm5ldCBhZGRyZXNzOiAwMDo0MDo2MzpjOTpmYTo5OQp2 cjA6IFtNUFNBRkVdCnVoY2kwOiA8VklBIDgzQzU3MiBVU0IgY29udHJvbGxlcj4gcG9ydCAweGQ0 MDAtMHhkNDFmIGlycSAxMSBhdCBkZXZpY2UgMTYuMCBvbiBwY2kwCnVoY2kwOiBSZXNlcnZlZCAw eDIwIGJ5dGVzIGZvciByaWQgMHgyMCB0eXBlIDQgYXQgMHhkNDAwCnVoY2kwOiBbR0lBTlQtTE9D S0VEXQp1c2IwOiA8VklBIDgzQzU3MiBVU0IgY29udHJvbGxlcj4gb24gdWhjaTAKdXNiMDogVVNC IHJldmlzaW9uIDEuMAp1aHViMDogVklBIFVIQ0kgcm9vdCBodWIsIGNsYXNzIDkvMCwgcmV2IDEu MDAvMS4wMCwgYWRkciAxCnVodWIwOiAyIHBvcnRzIHdpdGggMiByZW1vdmFibGUsIHNlbGYgcG93 ZXJlZAp1aGNpMTogPFZJQSA4M0M1NzIgVVNCIGNvbnRyb2xsZXI+IHBvcnQgMHhkODAwLTB4ZDgx ZiBpcnEgMTIgYXQgZGV2aWNlIDE2LjEgb24gcGNpMAp1aGNpMTogUmVzZXJ2ZWQgMHgyMCBieXRl cyBmb3IgcmlkIDB4MjAgdHlwZSA0IGF0IDB4ZDgwMAp1aGNpMTogW0dJQU5ULUxPQ0tFRF0KdXNi MTogPFZJQSA4M0M1NzIgVVNCIGNvbnRyb2xsZXI+IG9uIHVoY2kxCnVzYjE6IFVTQiByZXZpc2lv biAxLjAKdWh1YjE6IFZJQSBVSENJIHJvb3QgaHViLCBjbGFzcyA5LzAsIHJldiAxLjAwLzEuMDAs IGFkZHIgMQp1aHViMTogMiBwb3J0cyB3aXRoIDIgcmVtb3ZhYmxlLCBzZWxmIHBvd2VyZWQKdWhp ZDA6IEFQQyBCYWNrLVVQUyBFUyA1MDAgRlc6ODAxLmU1LkQgVVNCIEZXOmU1LCByZXYgMS4xMC8x LjA2LCBhZGRyIDIsIGljbGFzcyAzLzAKdWhjaTI6IDxWSUEgODNDNTcyIFVTQiBjb250cm9sbGVy PiBwb3J0IDB4ZGMwMC0weGRjMWYgaXJxIDcgYXQgZGV2aWNlIDE2LjIgb24gcGNpMAp1aGNpMjog UmVzZXJ2ZWQgMHgyMCBieXRlcyBmb3IgcmlkIDB4MjAgdHlwZSA0IGF0IDB4ZGMwMAp1aGNpMjog W0dJQU5ULUxPQ0tFRF0KdXNiMjogPFZJQSA4M0M1NzIgVVNCIGNvbnRyb2xsZXI+IG9uIHVoY2ky CnVzYjI6IFVTQiByZXZpc2lvbiAxLjAKdWh1YjI6IFZJQSBVSENJIHJvb3QgaHViLCBjbGFzcyA5 LzAsIHJldiAxLjAwLzEuMDAsIGFkZHIgMQp1aHViMjogMiBwb3J0cyB3aXRoIDIgcmVtb3ZhYmxl LCBzZWxmIHBvd2VyZWQKcGNpMDogPHNlcmlhbCBidXMsIFVTQj4gYXQgZGV2aWNlIDE2LjMgKG5v IGRyaXZlciBhdHRhY2hlZCkKaXNhYjA6IDxQQ0ktSVNBIGJyaWRnZT4gYXQgZGV2aWNlIDE3LjAg b24gcGNpMAppc2EwOiA8SVNBIGJ1cz4gb24gaXNhYjAKYXRhcGNpMDogPFZJQSA4MjM1IFVETUEx MzMgY29udHJvbGxlcj4gcG9ydCAweGUwMDAtMHhlMDBmLDB4Mzc2LDB4MTcwLTB4MTc3LDB4M2Y2 LDB4MWYwLTB4MWY3IGF0IGRldmljZSAxNy4xIG9uIHBjaTAKYXRhcGNpMDogUmVzZXJ2ZWQgMHgx MCBieXRlcyBmb3IgcmlkIDB4MjAgdHlwZSA0IGF0IDB4ZTAwMAphdGEwOiBjaGFubmVsICMwIG9u IGF0YXBjaTAKYXRhcGNpMDogUmVzZXJ2ZWQgMHg4IGJ5dGVzIGZvciByaWQgMHgxMCB0eXBlIDQg YXQgMHgxZjAKYXRhcGNpMDogUmVzZXJ2ZWQgMHgxIGJ5dGVzIGZvciByaWQgMHgxNCB0eXBlIDQg YXQgMHgzZjYKYXRhMDogcmVzZXQgdHAxIG1hc2s9MDMgb3N0YXQwPTUwIG9zdGF0MT0wMAphdGEw LW1hc3Rlcjogc3RhdD0weDkwIGVycj0weDkwIGxzYj0weDkwIG1zYj0weDkwCmF0YTAtbWFzdGVy OiBzdGF0PTB4NTAgZXJyPTB4MDEgbHNiPTB4MDAgbXNiPTB4MDAKYXRhMC1zbGF2ZTogIHN0YXQ9 MHgwMCBlcnI9MHgwMSBsc2I9MHgwMCBtc2I9MHgwMAphdGEwOiByZXNldCB0cDIgc3RhdDA9NTAg c3RhdDE9MDAgZGV2aWNlcz0weDE8QVRBX01BU1RFUj4KYXRhMDogW01QU0FGRV0KYXRhMTogY2hh bm5lbCAjMSBvbiBhdGFwY2kwCmF0YXBjaTA6IFJlc2VydmVkIDB4OCBieXRlcyBmb3IgcmlkIDB4 MTggdHlwZSA0IGF0IDB4MTcwCmF0YXBjaTA6IFJlc2VydmVkIDB4MSBieXRlcyBmb3IgcmlkIDB4 MWMgdHlwZSA0IGF0IDB4Mzc2CmF0YTE6IHJlc2V0IHRwMSBtYXNrPTAwIG9zdGF0MD1mZiBvc3Rh dDE9ZmYKYXRhMTogW01QU0FGRV0KdnIxOiA8VklBIFZUNjEwMiBSaGluZSBJSSAxMC8xMDBCYXNl VFg+IHBvcnQgMHhlNDAwLTB4ZTRmZiBtZW0gMHhlNjQwMjAwMC0weGU2NDAyMGZmIGlycSAxMSBh dCBkZXZpY2UgMTguMCBvbiBwY2kwCnZyMTogUmVzZXJ2ZWQgMHgxMDAgYnl0ZXMgZm9yIHJpZCAw eDEwIHR5cGUgNCBhdCAweGU0MDAKbWlpYnVzMTogPE1JSSBidXM+IG9uIHZyMQp1a3BoeTE6IDxH ZW5lcmljIElFRUUgODAyLjN1IG1lZGlhIGludGVyZmFjZT4gb24gbWlpYnVzMQp1a3BoeTE6IE9V SSAweDAwNDA2MywgbW9kZWwgMHgwMDMyLCByZXYuIDUKdWtwaHkxOiAgMTBiYXNlVCwgMTBiYXNl VC1GRFgsIDEwMGJhc2VUWCwgMTAwYmFzZVRYLUZEWCwgYXV0bwp2cjE6IGJwZiBhdHRhY2hlZAp2 cjE6IEV0aGVybmV0IGFkZHJlc3M6IDAwOjQwOjYzOmM5OmZhOjk4CnZyMTogW01QU0FGRV0Kc2lv MDogUmVzZXJ2ZWQgMHg4IGJ5dGVzIGZvciByaWQgMHgxMCB0eXBlIDQgYXQgMHhlODAwCnNpbzA6 IGlycSBtYXBzOiAweDEgMHgxMDAxIDB4MSAweDEKc2lvMDogPFNtYXJ0TGluayA1NjM0UENWIFN1 cmZSaWRlcj4gcG9ydCAweGU4MDAtMHhlODA3IGlycSAxMiBhdCBkZXZpY2UgMjAuMCBvbiBwY2kw CnNpbzA6IG1vdmluZyB0byBzaW80CnNpbzQ6IHR5cGUgMTY1NTBBCmZkYzA6IDxmbG9wcHkgZHJp dmUgY29udHJvbGxlcj4gcG9ydCAweDNmNywweDNmMC0weDNmNSBpcnEgNiBkcnEgMiBvbiBhY3Bp MApzaW8wOiBpcnEgbWFwczogMHgxIDB4MTEgMHgxIDB4MQpjYW4ndCByZS11c2UgYSBsZWFmICgl ZGVzYykhCmNhbid0IHJlLXVzZSBhIGxlYWYgKCVkcml2ZXIpIQpjYW4ndCByZS11c2UgYSBsZWFm ICglbG9jYXRpb24pIQpjYW4ndCByZS11c2UgYSBsZWFmICglcG5waW5mbykhCmNhbid0IHJlLXVz ZSBhIGxlYWYgKCVwYXJlbnQpIQpzaW8wIHBvcnQgMHgzZjgtMHgzZmYgaXJxIDQgb24gYWNwaTAK c2lvMDogdHlwZSAxNjU1MEEsIGNvbnNvbGUKc2lvMTogaXJxIG1hcHM6IDB4MSAweDkgMHgxIDB4 MQpzaW8xIHBvcnQgMHgyZjgtMHgyZmYgaXJxIDMgb24gYWNwaTAKc2lvMTogdHlwZSAxNjU1MEEK dW5rbm93bjogbm90IHByb2JlZCAoZGlzYWJsZWQpCnVua25vd246IG5vdCBwcm9iZWQgKGRpc2Fi bGVkKQp1bmtub3duOiBub3QgcHJvYmVkIChkaXNhYmxlZCkKYXRrYmRjMDogPEtleWJvYXJkIGNv bnRyb2xsZXIgKGk4MDQyKT4gcG9ydCAweDY0LDB4NjAgaXJxIDEgb24gYWNwaTAKYXRrYmQwOiA8 QVQgS2V5Ym9hcmQ+IGlycSAxIG9uIGF0a2JkYzAKYXRrYmQ6IHRoZSBjdXJyZW50IGtiZCBjb250 cm9sbGVyIGNvbW1hbmQgYnl0ZSAwMDY3CmF0a2JkOiBrZXlib2FyZCBJRCAweDQxYWIgKDIpCmti ZDAgYXQgYXRrYmQwCmtiZDA6IGF0a2JkMCwgQVQgMTAxLzEwMiAoMiksIGNvbmZpZzoweDAsIGZs YWdzOjB4MWQwMDAwCmF0a2JkMDogW0dJQU5ULUxPQ0tFRF0KcHNtMDogdW5hYmxlIHRvIGFsbG9j YXRlIElSUQp1bmtub3duOiBub3QgcHJvYmVkIChkaXNhYmxlZCkKc2lvMjogaXJxIG1hcHM6IDB4 MSAweDIxIDB4MSAweDEKc2lvMiBwb3J0IDB4M2U4LTB4M2VmIGlycSA1IG9uIGFjcGkwCnNpbzI6 IHR5cGUgMTY1NTBBCnNpbzM6IGlycSBtYXBzOiAweDEgMHg0MDEgMHgxIDB4MQpzaW8zIHBvcnQg MHgyZTgtMHgyZWYgaXJxIDEwIG9uIGFjcGkwCnNpbzM6IHR5cGUgMTY1NTBBCnVua25vd246IG5v dCBwcm9iZWQgKGRpc2FibGVkKQp1bmtub3duOiBub3QgcHJvYmVkIChkaXNhYmxlZCkKdW5rbm93 bjogbm90IHByb2JlZCAoZGlzYWJsZWQpCnVua25vd246IG5vdCBwcm9iZWQgKGRpc2FibGVkKQp1 bmtub3duOiBub3QgcHJvYmVkIChkaXNhYmxlZCkKYXRhOiBhdGEwIGFscmVhZHkgZXhpc3RzOyBz a2lwcGluZyBpdAphdGE6IGF0YTEgYWxyZWFkeSBleGlzdHM7IHNraXBwaW5nIGl0CmF0a2JkYzog YXRrYmRjMCBhbHJlYWR5IGV4aXN0czsgc2tpcHBpbmcgaXQKZmRjOiBmZGMwIGFscmVhZHkgZXhp c3RzOyBza2lwcGluZyBpdApzYzogc2MwIGFscmVhZHkgZXhpc3RzOyBza2lwcGluZyBpdApzaW86 IHNpbzAgYWxyZWFkeSBleGlzdHM7IHNraXBwaW5nIGl0CnNpbzogc2lvMSBhbHJlYWR5IGV4aXN0 czsgc2tpcHBpbmcgaXQKc2lvOiBzaW8yIGFscmVhZHkgZXhpc3RzOyBza2lwcGluZyBpdApzaW86 IHNpbzMgYWxyZWFkeSBleGlzdHM7IHNraXBwaW5nIGl0CnZnYTogdmdhMCBhbHJlYWR5IGV4aXN0 czsgc2tpcHBpbmcgaXQKVHJ5aW5nIFJlYWRfUG9ydCBhdCAyMDMKVHJ5aW5nIFJlYWRfUG9ydCBh dCAyNDMKVHJ5aW5nIFJlYWRfUG9ydCBhdCAyODMKVHJ5aW5nIFJlYWRfUG9ydCBhdCAyYzMKVHJ5 aW5nIFJlYWRfUG9ydCBhdCAzMDMKVHJ5aW5nIFJlYWRfUG9ydCBhdCAzNDMKVHJ5aW5nIFJlYWRf UG9ydCBhdCAzODMKVHJ5aW5nIFJlYWRfUG9ydCBhdCAzYzMKaXNhX3Byb2JlX2NoaWxkcmVuOiBk aXNhYmxpbmcgUG5QIGRldmljZXMKaXNhX3Byb2JlX2NoaWxkcmVuOiBwcm9iaW5nIG5vbi1QblAg ZGV2aWNlcwpvcm0wOiA8SVNBIE9wdGlvbiBST00+IGF0IGlvbWVtIDB4YzAwMDAtMHhjZGZmZiBv biBpc2EwCnNjMDogPFN5c3RlbSBjb25zb2xlPiBvbiBpc2EwCnNjMDogVkdBIDwxNiB2aXJ0dWFs IGNvbnNvbGVzLCBmbGFncz0weDA+CnNjMDogZmIwLCBrYmQwLCB0ZXJtaW5hbCBlbXVsYXRvcjog c2MgKHN5c2NvbnMgdGVybWluYWwpCnZnYTA6IDxHZW5lcmljIElTQSBWR0E+IGF0IHBvcnQgMHgz YzAtMHgzZGYgaW9tZW0gMHhhMDAwMC0weGJmZmZmIG9uIGlzYTAKZmIwOiB2Z2EwLCB2Z2EsIHR5 cGU6VkdBICg1KSwgZmxhZ3M6MHg3MDA3ZgpmYjA6IHBvcnQ6MHgzYzAtMHgzZGYsIGNydGM6MHgz ZDQsIG1lbToweGEwMDAwIDB4MjAwMDAKZmIwOiBpbml0IG1vZGU6MjQsIGJpb3MgbW9kZTozLCBj dXJyZW50IG1vZGU6MjQKZmIwOiB3aW5kb3c6MHhjMDBiODAwMCBzaXplOjMyayBncmFuOjMyaywg YnVmOjAgc2l6ZTozMmsKVkdBIHBhcmFtZXRlcnMgdXBvbiBwb3dlci11cAo1MCAxOCAxMCAwMCAw MCAwMCAwMyAwMCAwMiA2NyA1ZiA0ZiA1MCA4MiA1NSA4MSAKYmYgMWYgMDAgNGYgMGUgMGYgMDAg MDAgMDcgODAgOWMgZWUgOGYgMjggMWYgOTYgCmI5IGEzIGZmIDAwIDAxIDAyIDAzIDA0IDA1IDE0 IDA3IDM4IDM5IDNhIDNiIDNjIAozZCAzZSAzZiAwYyAwMCAwZiAwOCAwMCAwMCAwMCAwMCAwMCAx MCAwZSAwMCBmZiAKVkdBIHBhcmFtZXRlcnMgaW4gQklPUyBmb3IgbW9kZSAyNAo1MCAxOCAxMCAw MCAxMCAwMCAwMyAwMCAwMiA2NyA1ZiA0ZiA1MCA4MiA1NSA4MSAKYmYgMWYgMDAgNGYgMGQgMGUg MDAgMDAgMDAgMDAgOWMgNmUgOGYgMjggMWYgOTYgCmI5IGEzIGZmIDAwIDAxIDAyIDAzIDA0IDA1 IDE0IDA3IDM4IDM5IDNhIDNiIDNjIAozZCAzZSAzZiAwYyAwMCAwZiAwOCAwMCAwMCAwMCAwMCAw MCAxMCAwZSAwMCBmZiAKRUdBL1ZHQSBwYXJhbWV0ZXJzIHRvIGJlIHVzZWQgZm9yIG1vZGUgMjQK NTAgMTggMTAgMDAgMDAgMDAgMDMgMDAgMDIgNjcgNWYgNGYgNTAgODIgNTUgODEgCmJmIDFmIDAw IDRmIDBlIDBmIDAwIDAwIDA3IDgwIDljIGVlIDhmIDI4IDFmIDk2IApiOSBhMyBmZiAwMCAwMSAw MiAwMyAwNCAwNSAxNCAwNyAzOCAzOSAzYSAzYiAzYyAKM2QgM2UgM2YgMGMgMDAgMGYgMDggMDAg MDAgMDAgMDAgMDAgMTAgMGUgMDAgZmYgCmFkdjA6IG5vdCBwcm9iZWQgKGRpc2FibGVkKQphaGEw OiBub3QgcHJvYmVkIChkaXNhYmxlZCkKYWljMDogbm90IHByb2JlZCAoZGlzYWJsZWQpCmJ0MDog bm90IHByb2JlZCAoZGlzYWJsZWQpCmNzMDogbm90IHByb2JlZCAoZGlzYWJsZWQpCmVkMDogbm90 IHByb2JlZCAoZGlzYWJsZWQpCmZlMDogbm90IHByb2JlZCAoZGlzYWJsZWQpCmllMDogbm90IHBy b2JlZCAoZGlzYWJsZWQpCmxuYzA6IG5vdCBwcm9iZWQgKGRpc2FibGVkKQpwY2ljMCBmYWlsZWQg dG8gcHJvYmUgYXQgcG9ydCAweDNlMCBpb21lbSAweGQwMDAwIG9uIGlzYTAKcGNpYzE6IG5vdCBw cm9iZWQgKGRpc2FibGVkKQpwcGMwIGZhaWxlZCB0byBwcm9iZSBhdCBpcnEgNyBvbiBpc2EwCnNu MDogbm90IHByb2JlZCAoZGlzYWJsZWQpCnZ0MDogbm90IHByb2JlZCAoZGlzYWJsZWQpCmlzYV9w cm9iZV9jaGlsZHJlbjogcHJvYmluZyBQblAgZGV2aWNlcwpEZXZpY2UgY29uZmlndXJhdGlvbiBm aW5pc2hlZC4KcHJvY2ZzIHJlZ2lzdGVyZWQKVGltZWNvdW50ZXIgIlRTQyIgZnJlcXVlbmN5IDEw MDIyODAxMTQgSHogcXVhbGl0eSA4MDAKVGltZWNvdW50ZXJzIHRpY2sgZXZlcnkgMTAuMDAwIG1z ZWMKaXBmdzIgaW5pdGlhbGl6ZWQsIGRpdmVydCBkaXNhYmxlZCwgcnVsZS1iYXNlZCBmb3J3YXJk aW5nIGRpc2FibGVkLCBkZWZhdWx0IHRvIGFjY2VwdCwgbG9nZ2luZyBsaW1pdGVkIHRvIDIxMDAg cGFja2V0cy9lbnRyeSBieSBkZWZhdWx0CmxvMDogYnBmIGF0dGFjaGVkCmNwdTA6IHNldCBzcGVl ZCB0byAxMDAuMCUKYWNwaV9jcHU6IHRocm90dGxpbmcgZW5hYmxlZCwgMiBzdGVwcyAoMTAwJSB0 byA1MC4wJSksIGN1cnJlbnRseSAxMDAuMCUKYXRhMC1tYXN0ZXI6IHBpbz0weDBjIHdkbWE9MHgy MiB1ZG1hPTB4NDUgY2FibGU9ODBwaW4KYXRhMC1tYXN0ZXI6IHNldHRpbmcgUElPNCBvbiBWSUEg ODIzNSBjaGlwCmF0YTAtbWFzdGVyOiBzZXR0aW5nIFVETUExMDAgb24gVklBIDgyMzUgY2hpcAph ZDA6IDxTVDM0MDAxNEEvMy4wNj4gQVRBLTYgZGlzayBhdCBhdGEwLW1hc3RlcgphZDA6IDM4MTY2 TUIgKDc4MTY1MzYwIHNlY3RvcnMpLCA3NzU0NSBDLCAxNiBILCA2MyBTLCA1MTIgQgphZDA6IDE2 IHNlY3MvaW50LCAxIGRlcHRoIHF1ZXVlLCBVRE1BMTAwCkdFT006IG5ldyBkaXNrIGFkMAphcjog RnJlZUJTRCBjaGVjazEgZmFpbGVkClswXSBmOjgwIHR5cDoxNjUgcyhDSFMpOjAvMS8xIGUoQ0hT KToxMDIzLzI1NC82MyBzOjYzIGw6NzgxNTYxNjIKWzFdIGY6MDAgdHlwOjAgcyhDSFMpOjAvMC8w IGUoQ0hTKTowLzAvMCBzOjAgbDowClsyXSBmOjAwIHR5cDowIHMoQ0hTKTowLzAvMCBlKENIUyk6 MC8wLzAgczowIGw6MApbM10gZjowMCB0eXA6MCBzKENIUyk6MC8wLzAgZShDSFMpOjAvMC8wIHM6 MCBsOjAKR0VPTTogQ29uZmlndXJlIGFkMHMxLCBzdGFydCAzMjI1NiBsZW5ndGggNDAwMTU5NTQ5 NDQgZW5kIDQwMDE1OTg3MTk5CkdFT006IENvbmZpZ3VyZSBhZDBzMWEsIHN0YXJ0IDAgbGVuZ3Ro IDUyNDI4ODAwMCBlbmQgNTI0Mjg3OTk5CkdFT006IENvbmZpZ3VyZSBhZDBzMWIsIHN0YXJ0IDUy NDI4ODAwMCBsZW5ndGggMTA3Mzc0MTgyNCBlbmQgMTU5ODAyOTgyMwpHRU9NOiBDb25maWd1cmUg YWQwczFjLCBzdGFydCAwIGxlbmd0aCA0MDAxNTk1NDk0NCBlbmQgNDAwMTU5NTQ5NDMKR0VPTTog Q29uZmlndXJlIGFkMHMxZCwgc3RhcnQgMTU5ODAyOTgyNCBsZW5ndGggMjE0NzQ4MzY0OCBlbmQg Mzc0NTUxMzQ3MQpHRU9NOiBDb25maWd1cmUgYWQwczFlLCBzdGFydCAzNzQ1NTEzNDcyIGxlbmd0 aCAyMTQ3NDgzNjQ4MCBlbmQgMjUyMjAzNDk5NTEKR0VPTTogQ29uZmlndXJlIGFkMHMxZiwgc3Rh cnQgMjUyMjAzNDk5NTIgbGVuZ3RoIDE0Nzk1NjA0OTkyIGVuZCA0MDAxNTk1NDk0MwpNb3VudGlu ZyByb290IGZyb20gdWZzOi9kZXYvYWQwczFhCnN0YXJ0X2luaXQ6IHRyeWluZyAvc2Jpbi9pbml0 Cg== --=====================_-836725448==_ Content-Type: text/plain; name="acpi.txt"; x-mac-type="42494E41"; x-mac-creator="74747874" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="acpi.txt" LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTCBEaXNhc3NlbWJs ZXIgdmVyc2lvbiAyMDA0MDUyNwogKgogKiBEaXNhc3NlbWJseSBvZiAvdG1wL2FjcGlkdW1wLjVi aDBaRiwgV2VkIFNlcCAgOCAxOToxNjozNSAyMDA0CiAqLwpEZWZpbml0aW9uQmxvY2sgKCJEU0RU LmFtbCIsICJEU0RUIiwgMSwgIlZUOTE3NCIsICJBV1JEQUNQSSIsIDQwOTYpCnsKICAgIFNjb3Bl IChcX1BSKQogICAgewogICAgICAgIFByb2Nlc3NvciAoXF9QUi5DUFUwLCAweDAwLCAweDAwMDAw NDEwLCAweDA2KSB7fQogICAgfQoKICAgIE5hbWUgKFUzRFgsIDB4MDApCiAgICBOYW1lIChVNERY LCAweDAwKQogICAgTmFtZSAoVTVEWCwgMHgwMCkKICAgIE5hbWUgKFU2RFgsIDB4MDApCiAgICBO YW1lIChcX1MwLCBQYWNrYWdlICgweDA0KQogICAgewogICAgICAgIDB4MDAsIAogICAgICAgIDB4 MDAsIAogICAgICAgIDB4MDAsIAogICAgICAgIDB4MDAKICAgIH0pCiAgICBOYW1lIChcX1MxLCBQ YWNrYWdlICgweDA0KQogICAgewogICAgICAgIDB4MDQsIAogICAgICAgIDB4MDQsIAogICAgICAg IDB4MDQsIAogICAgICAgIDB4MDQKICAgIH0pCiAgICBOYW1lIChcU1MzLCBQYWNrYWdlICgweDA0 KQogICAgewogICAgICAgIDB4MDEsIAogICAgICAgIDB4MDEsIAogICAgICAgIDB4MDEsIAogICAg ICAgIDB4MDEKICAgIH0pCiAgICBOYW1lIChcX1M0LCBQYWNrYWdlICgweDA0KQogICAgewogICAg ICAgIDB4MDIsIAogICAgICAgIDB4MDIsIAogICAgICAgIDB4MDIsIAogICAgICAgIDB4MDIKICAg IH0pCiAgICBOYW1lIChcX1M1LCBQYWNrYWdlICgweDA0KQogICAgewogICAgICAgIDB4MDIsIAog ICAgICAgIDB4MDIsIAogICAgICAgIDB4MDIsIAogICAgICAgIDB4MDIKICAgIH0pCiAgICBPcGVy YXRpb25SZWdpb24gKFxERUJHLCBTeXN0ZW1JTywgMHg4MCwgMHgwMSkKICAgIEZpZWxkIChcREVC RywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBEQkcxLCAgIDgKICAg IH0KCiAgICBPcGVyYXRpb25SZWdpb24gKEVYVE0sIFN5c3RlbU1lbW9yeSwgMHgwMDBGRjgzMCwg MHgxMCkKICAgIEZpZWxkIChFWFRNLCBXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewog ICAgICAgIFJPTTEsICAgMTYsIAogICAgICAgIFJNUzEsICAgMTYsIAogICAgICAgIFJPTTIsICAg MTYsIAogICAgICAgIFJNUzIsICAgMTYsIAogICAgICAgIFJPTTMsICAgMTYsIAogICAgICAgIFJN UzMsICAgMTYsIAogICAgICAgIEFNRU0sICAgMzIKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24g KFxHUFNULCBTeXN0ZW1JTywgMHgwNDIwLCAweDAyKQogICAgRmllbGQgKFxHUFNULCBCeXRlQWNj LCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIEdTMDAsICAgMSwgCiAgICAgICAgR1Mw MSwgICAxLCAKICAgICAgICBHUzAyLCAgIDEsIAogICAgICAgIEdTMDMsICAgMSwgCiAgICAgICAg R1MwNCwgICAxLCAKICAgICAgICBHUzA1LCAgIDEsIAogICAgICAgIEdTMDYsICAgMSwgCiAgICAg ICAgR1MwNywgICAxLCAKICAgICAgICBHUzA4LCAgIDEsIAogICAgICAgIEdTMDksICAgMSwgCiAg ICAgICAgR1MxMCwgICAxLCAKICAgICAgICBHUzExLCAgIDEsIAogICAgICAgIEdTMTIsICAgMSwg CiAgICAgICAgR1MxMywgICAxLCAKICAgICAgICBHUzE0LCAgIDEsIAogICAgICAgIEdTMTUsICAg MQogICAgfQoKICAgIE9wZXJhdGlvblJlZ2lvbiAoRUxDUiwgU3lzdGVtSU8sIDB4MDREMCwgMHgw MikKICAgIEZpZWxkIChFTENSLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAg ICAgIEVMQzEsICAgOCwgCiAgICAgICAgRUxDMiwgICA4CiAgICB9CgogICAgT3BlcmF0aW9uUmVn aW9uIChcUE1TLCBTeXN0ZW1JTywgMHgwNDAwLCAweDAyKQogICAgRmllbGQgKFxQTVMsIEJ5dGVB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgQUlUUywgICAxLCAKICAgICAgICBP ZmZzZXQgKDB4MDEpLCAKICAgICAgICBQQlRTLCAgIDEsIAogICAgICAgICAgICAsICAgNiwgCiAg ICAgICAgV0FLRSwgICAxCiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChcR1BTRSwgU3lzdGVt SU8sIDB4MDQyNCwgMHgwMikKICAgIEZpZWxkIChcR1BTRSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgIHsKICAgICAgICBHUFMwLCAgIDEsIAogICAgICAgIEdQUzEsICAgMSwgCiAgICAg ICAgS0JDRSwgICAxLCAKICAgICAgICBMQU5FLCAgIDEsIAogICAgICAgIEVYVEUsICAgMSwgCiAg ICAgICAgUE1FLCAgICAxLCAKICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICBSSU5HLCAg IDEsIAogICAgICAgICAgICAsICAgNSwgCiAgICAgICAgVVNCRSwgICAxLCAKICAgICAgICBPZmZz ZXQgKDB4MDIpCiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChcR0xPUywgU3lzdGVtSU8sIDB4 MDQyOCwgMHgwMikKICAgIEZpZWxkIChcR0xPUywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgIHsKICAgICAgICAgICAgLCAgIDYsIAogICAgICAgIFNTTUksICAgMSwgCiAgICAgICAgUFJJ SSwgICAxLCAKICAgICAgICAgICAgLCAgIDIsIAogICAgICAgIFNMUEUsICAgMSwgCiAgICAgICAg U0lSUywgICAxLCAKICAgICAgICBPZmZzZXQgKDB4MDIpCiAgICB9CgogICAgT3BlcmF0aW9uUmVn aW9uIChcV0lSUSwgU3lzdGVtSU8sIDB4MDQyQSwgMHgwMSkKICAgIEZpZWxkIChcV0lSUSwgQnl0 ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBJUlFSLCAgIDgKICAgIH0KCiAg ICBPcGVyYXRpb25SZWdpb24gKFxTTUlDLCBTeXN0ZW1JTywgMHgwNDJGLCAweDAxKQogICAgRmll bGQgKFxTTUlDLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIFNDUCwg ICAgOAogICAgfQoKICAgIE9wZXJhdGlvblJlZ2lvbiAoXFNUVVMsIFN5c3RlbUlPLCAweDA0MzAs IDB4MDEpCiAgICBGaWVsZCAoXFNUVVMsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7 CiAgICAgICAgUEFEUywgICA4CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChHUE9CLCBTeXN0 ZW1JTywgMHgwNDRDLCAweDA0KQogICAgRmllbGQgKEdQT0IsIEJ5dGVBY2MsIE5vTG9jaywgUHJl c2VydmUpCiAgICB7CiAgICAgICAgR1AwMCwgICAxLCAKICAgICAgICBHUDAxLCAgIDEsIAogICAg ICAgIEdQMDIsICAgMSwgCiAgICAgICAgR1AwMywgICAxLCAKICAgICAgICBHUDA0LCAgIDEsIAog ICAgICAgIEdQMDUsICAgMSwgCiAgICAgICAgR1AwNiwgICAxLCAKICAgICAgICBHUDA3LCAgIDEs IAogICAgICAgIEdQMDgsICAgMSwgCiAgICAgICAgR1AwOSwgICAxLCAKICAgICAgICBHUDEwLCAg IDEsIAogICAgICAgIEdQMTEsICAgMSwgCiAgICAgICAgR1AxMiwgICAxLCAKICAgICAgICBHUDEz LCAgIDEsIAogICAgICAgIEdQMTQsICAgMSwgCiAgICAgICAgR1AxNSwgICAxLCAKICAgICAgICBH UDE2LCAgIDEsIAogICAgICAgIEdQMTcsICAgMSwgCiAgICAgICAgR1AxOCwgICAxLCAKICAgICAg ICBHUDE5LCAgIDEsIAogICAgICAgIEdQMjAsICAgMSwgCiAgICAgICAgR1AyMSwgICAxLCAKICAg ICAgICBHUDIyLCAgIDEsIAogICAgICAgIEdQMjMsICAgMSwgCiAgICAgICAgR1AyNCwgICAxLCAK ICAgICAgICBHUDI1LCAgIDEsIAogICAgICAgIEdQMjYsICAgMSwgCiAgICAgICAgR1AyNywgICAx LCAKICAgICAgICBHUDI4LCAgIDEsIAogICAgICAgIEdQMjksICAgMSwgCiAgICAgICAgR1AzMCwg ICAxLCAKICAgICAgICBHUFhYLCAgIDEKICAgIH0KCiAgICBOYW1lIChPU0ZYLCAweDAxKQogICAg TmFtZSAoT1NGTCwgMHgwMSkKICAgIE1ldGhvZCAoU1RSQywgMiwgTm90U2VyaWFsaXplZCkKICAg IHsKICAgICAgICBJZiAoTE5vdCAoTEVxdWFsIChTaXplT2YgKEFyZzApLCBTaXplT2YgKEFyZzEp KSkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgfQoKICAgICAg ICBBZGQgKFNpemVPZiAoQXJnMCksIDB4MDEsIExvY2FsMCkKICAgICAgICBOYW1lIChCVUYwLCBC dWZmZXIgKExvY2FsMCkge30pCiAgICAgICAgTmFtZSAoQlVGMSwgQnVmZmVyIChMb2NhbDApIHt9 KQogICAgICAgIFN0b3JlIChBcmcwLCBCVUYwKQogICAgICAgIFN0b3JlIChBcmcxLCBCVUYxKQog ICAgICAgIFdoaWxlIChMb2NhbDApCiAgICAgICAgewogICAgICAgICAgICBEZWNyZW1lbnQgKExv Y2FsMCkKICAgICAgICAgICAgSWYgKExOb3QgKExFcXVhbCAoRGVyZWZPZiAoSW5kZXggKEJVRjAs IExvY2FsMCkpLCBEZXJlZk9mIChJbmRleCAoQlVGMSwgTG9jYWwwKSkpKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CiAgICAgICAgfQoK ICAgICAgICBSZXR1cm4gKE9uZSkKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFJUQ00sIFN5 c3RlbUlPLCAweDcwLCAweDAyKQogICAgRmllbGQgKFJUQ00sIEJ5dGVBY2MsIE5vTG9jaywgUHJl c2VydmUpCiAgICB7CiAgICAgICAgQ01JTiwgICA4LCAKICAgICAgICBDTURBLCAgIDgKICAgIH0K CiAgICBJbmRleEZpZWxkIChDTUlOLCBDTURBLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgewogICAgICAgIE9mZnNldCAoMHgwRiksIAogICAgICAgIFNIVVQsICAgOAogICAgfQoKICAg IE9wZXJhdGlvblJlZ2lvbiAoSU5GTywgU3lzdGVtTWVtb3J5LCAweDAwMEZGODQwLCAweDAxKQog ICAgRmllbGQgKElORk8sIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAg S0JESSwgICAxLCAKICAgICAgICBSVENXLCAgIDEsIAogICAgICAgIFBTMkYsICAgMSwgCiAgICAg ICAgSVJGTCwgICAyLCAKICAgICAgICBESVNFLCAgIDEsIAogICAgICAgIFNTSFUsICAgMQogICAg fQoKICAgIE9wZXJhdGlvblJlZ2lvbiAoQkVFUCwgU3lzdGVtSU8sIDB4NjEsIDB4MDEpCiAgICBG aWVsZCAoQkVFUCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBTMUIs ICAgIDgKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKENPTlQsIFN5c3RlbUlPLCAweDQwLCAw eDA0KQogICAgRmllbGQgKENPTlQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAg ICAgICAgQ05UMCwgICA4LCAKICAgICAgICBDTlQxLCAgIDgsIAogICAgICAgIENOVDIsICAgOCwg CiAgICAgICAgQ1RSTCwgICA4CiAgICB9CgogICAgTWV0aG9kIChTUEtSLCAxLCBOb3RTZXJpYWxp emVkKQogICAgewogICAgICAgIFN0b3JlIChTMUIsIExvY2FsMCkKICAgICAgICBTdG9yZSAoMHhC NiwgQ1RSTCkKICAgICAgICBTdG9yZSAoMHg1NSwgQ05UMikKICAgICAgICBTdG9yZSAoMHgwMywg Q05UMikKICAgICAgICBTdG9yZSAoQXJnMCwgTG9jYWwyKQogICAgICAgIFdoaWxlIChMR3JlYXRl ciAoTG9jYWwyLCAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIE9yIChTMUIsIDB4MDMsIFMx QikKICAgICAgICAgICAgU3RvcmUgKDB4NUZGRiwgTG9jYWwzKQogICAgICAgICAgICBXaGlsZSAo TEdyZWF0ZXIgKExvY2FsMywgMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERl Y3JlbWVudCAoTG9jYWwzKQogICAgICAgICAgICB9CgogICAgICAgICAgICBBbmQgKFMxQiwgMHhG QywgUzFCKQogICAgICAgICAgICBTdG9yZSAoMHgwRUZGLCBMb2NhbDMpCiAgICAgICAgICAgIFdo aWxlIChMR3JlYXRlciAoTG9jYWwzLCAweDAwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgRGVjcmVtZW50IChMb2NhbDMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERlY3JlbWVu dCAoTG9jYWwyKQogICAgICAgIH0KCiAgICAgICAgU3RvcmUgKExvY2FsMCwgUzFCKQogICAgfQoK ICAgIE1ldGhvZCAoXF9QVFMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgT3IgKEFy ZzAsIDB4RjAsIExvY2FsMCkKICAgICAgICBTdG9yZSAoTG9jYWwwLCBEQkcxKQogICAgICAgIFxf U0IuUENJMC5PU1RQICgpCiAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMSkpCiAgICAgICAg ewogICAgICAgICAgICBJZiAoTE5vdCAoTEVxdWFsIChPU0ZMLCAweDAwKSkpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuVVNCMy5FQ0RYLCBVM0RYKQogICAg ICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5VU0I0LkVDRFgsIFU0RFgpCiAgICAgICAgICAg ICAgICBTdG9yZSAoXF9TQi5QQ0kwLlVTQjUuRUNEWCwgVTVEWCkKICAgICAgICAgICAgICAgIFN0 b3JlICgweDAyLCBcX1NCLlBDSTAuVVNCMy5FQ0RYKQogICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDIsIFxfU0IuUENJMC5VU0I0LkVDRFgpCiAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMiwgXF9T Qi5QQ0kwLlVTQjUuRUNEWCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU3RvcmUgKDB4MDMs IFxfU0IuUENJMC5VU0I2LkVDRFgpCiAgICAgICAgICAgIFdoaWxlIChQUklJKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBQUklJKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBXaGlsZSAoTE5vdCAoTEVxdWFsIChQQURTLCAweDAwKSkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFN0b3JlIChQQURTLCBQQURTKQogICAgICAgICAgICB9CgogICAgICAg ICAgICBPciAoSVJRUiwgMHg4MCwgSVJRUikKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwg KEFyZzAsIDB4MDMpKQogICAgICAgIHsKICAgICAgICAgICAgT3IgKEFyZzAsIDB4NTAsIExvY2Fs MSkKICAgICAgICAgICAgU3RvcmUgKExvY2FsMSwgU0NQKQogICAgICAgIH0KCiAgICAgICAgSWYg KExFcXVhbCAoQXJnMCwgMHgwNCkpCiAgICAgICAgewogICAgICAgICAgICBTbGVlcCAoMHg2NCkK ICAgICAgICAgICAgU3RvcmUgKE9uZSwgTEFORSkKICAgICAgICAgICAgT3IgKEFyZzAsIDB4NTAs IExvY2FsMikKICAgICAgICAgICAgU3RvcmUgKExvY2FsMiwgU0NQKQogICAgICAgIH0KCiAgICAg ICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwNSkpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAo T25lLCBMQU5FKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMSkpIHt9 CiAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMykpIHt9CiAgICAgICAgSWYgKExFcXVhbCAo QXJnMCwgMHgwNCkpIHt9CiAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwNSkpIHt9CiAgICB9 CgogICAgTWV0aG9kIChcX1dBSywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTdG9y ZSAoMHhGRiwgREJHMSkKICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDAxKSkge30KICAgICAg ICBJZiAoTEVxdWFsIChBcmcwLCAweDAzKSkge30KICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAw eDAxKSkKICAgICAgICB7CiAgICAgICAgICAgIElmIChMTm90IChMRXF1YWwgKE9TRkwsIDB4MDAp KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKFUzRFgsIFxfU0IuUENJMC5V U0IzLkVDRFgpCiAgICAgICAgICAgICAgICBTdG9yZSAoVTREWCwgXF9TQi5QQ0kwLlVTQjQuRUNE WCkKICAgICAgICAgICAgICAgIFN0b3JlIChVNURYLCBcX1NCLlBDSTAuVVNCNS5FQ0RYKQogICAg ICAgICAgICB9CgogICAgICAgICAgICBTdG9yZSAoVTZEWCwgXF9TQi5QQ0kwLlVTQjYuRUNEWCkK ICAgICAgICAgICAgQW5kIChJUlFSLCAweDdGLCBJUlFSKQogICAgICAgICAgICBXaGlsZSAoUFJJ SSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgUFJJSSkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgV2hpbGUgKExOb3QgKExFcXVhbCAoUEFEUywgMHgwMCkpKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoUEFEUywgUEFEUykKICAgICAgICAg ICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKE9TRkwpCiAgICAgICAgewogICAgICAgICAgICBO b3RpZnkgKFxfU0IuUFdSQiwgMHgwMikKICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAgIHsK ICAgICAgICAgICAgSWYgKExFcXVhbCAoUlRDVywgMHgwMCkpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5vdGlmeSAoXF9TQi5QV1JCLCAweDAyKQogICAgICAgICAgICB9CiAgICAgICAg fQogICAgfQoKICAgIFNjb3BlIChcX1NJKQogICAgewogICAgICAgIE1ldGhvZCAoX01TRywgMSwg Tm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIExvY2Fs MCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1NTVCwgMSwgTm90U2VyaWFsaXplZCkKICAg ICAgICB7CiAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDMpKSB7fQogICAgICAgICAg ICBJZiAoTEVxdWFsIChBcmcwLCAweDAxKSkge30KICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJn MCwgWmVybykpIHt9CiAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIExvY2FsMCkKICAgICAgICB9 CiAgICB9CgogICAgU2NvcGUgKFxfR1BFKQogICAgewogICAgICAgIE1ldGhvZCAoX0wwMywgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkxB TjAsIDB4MDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9MMEUsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5VU0IwLCAweDAyKQog ICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5VU0IzLCAweDAyKQogICAgICAgICAgICBOb3Rp ZnkgKFxfU0IuUENJMC5VU0I0LCAweDAyKQogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5V U0I1LCAweDAyKQogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5VU0I2LCAweDAyKQogICAg ICAgIH0KCiAgICAgICAgTWV0aG9kIChfTDA1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsK ICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFxfU0IuUENJMC5DUkQwLlBNU1QpCiAgICAgICAgICAg IFN0b3JlICgweDAxLCBcX1NCLlBDSTAuQ1JEMS5QTVNUKQogICAgICAgICAgICBOb3RpZnkgKFxf U0IuUENJMCwgMHgwMikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0wwOCwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVBUjEsIDB4 MDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9MMEQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5BQzk3LCAweDAyKQogICAgICAg IH0KICAgIH0KCiAgICBTY29wZSAoXF9TQikKICAgIHsKICAgICAgICBEZXZpY2UgKFBXUkIpCiAg ICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBDIikpCiAgICAg ICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAg ICBEZXZpY2UgKE1FTSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAo IlBOUDBDMDEiKSkKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBsYXRl ICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAo UmVhZFdyaXRlLCAweDAwMEYwMDAwLCAweDAwMDA0MDAwKQogICAgICAgICAgICAgICAgICAgIE1l bW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwgMHgwMDBGNDAwMCwgMHgwMDAwNDAwMCkKICAgICAgICAg ICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsIDB4MDAwRjgwMDAsIDB4MDAwMDQw MDApCiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLCAweDAwMEZD MDAwLCAweDAwMDA0MDAwKQogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRX cml0ZSwgMHgwMDAwMDAwMCwgMHgwMDAxMDAwMCkKICAgICAgICAgICAgICAgICAgICBNZW1vcnkz MkZpeGVkIChSZWFkV3JpdGUsIDB4RkZGRjAwMDAsIDB4MDAwMTAwMDApCiAgICAgICAgICAgICAg ICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLCAweDAwMDAwMDAwLCAweDAwMEEwMDAwKQog ICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwgMHgwMDEwMDAwMCwg MHgwMDAwMDAwMCkKICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUs IDB4RkVFMDAwMDAsIDB4MDAwMDEwMDApCiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhl ZCAoUmVhZFdyaXRlLCAweEZGRjgwMDAwLCAweDAwMDcwMDAwKQogICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIDB4MzQsIEFDTU0pCiAgICAg ICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCAweDA0LCBSTUExKQogICAgICAgICAg ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgMHgwOCwgUlNTMSkKICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIDB4MTAsIFJNQTIpCiAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChCVUYwLCAweDE0LCBSU1MyKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoQlVGMCwgMHgxQywgUk1BMykKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKEJVRjAsIDB4MjAsIFJTUzMpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChC VUYwLCAweDI4LCBSTUE0KQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwg MHgyQywgUlNTNCkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIDB4NUMs IEVYVE0pCiAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoQU1FTSwgMHgwMDEwMDAwMCwgRVhUTSkK ICAgICAgICAgICAgICAgIElmIChMTm90IChMRXF1YWwgKFJPTTEsIFplcm8pKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUk1BMSwgUk1BMikKICAgICAgICAg ICAgICAgICAgICBTaGlmdExlZnQgKFJPTTEsIDB4MDgsIExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoTG9jYWwwLCBSTUExKQogICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAo Uk1TMSwgMHgwOCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIFJT UzEpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODAwMCwgUlNTMikKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoTE5vdCAoTEVxdWFsIChST00yLCBaZXJvKSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFJNQTIsIFJNQTMpCiAg ICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChST00yLCAweDA4LCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgUk1BMikKICAgICAgICAgICAgICAgICAgICBTaGlm dExlZnQgKFJNUzIsIDB4MDgsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9j YWwwLCBSU1MyKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEMwMDAsIFJTUzMpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExOb3QgKExFcXVhbCAoUk9NMywgWmVy bykpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChSTUEzLCBS TUE0KQogICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoUk9NMywgMHgwOCwgTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIFJNQTMpCiAgICAgICAgICAgICAgICAg ICAgU2hpZnRMZWZ0IChSTVMzLCAweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKExvY2FsMCwgUlNTMykKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMDAxMDAwMCwg UlNTNCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTdG9yZSAoQU1FTSwgQUNN TSkKICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMCkKICAgICAgICAgICAgfQogICAgICAgIH0K CiAgICAgICAgRGV2aWNlIChQQ0kwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwg RWlzYUlkICgiUE5QMEEwMyIpKQogICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKQogICAgICAg ICAgICBOYW1lIChfVUlELCAweDAwKQogICAgICAgICAgICBOYW1lIChfQkJOLCAweDAwKQogICAg ICAgICAgICBNZXRob2QgKFNTM0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIElmIChMRXF1YWwgKE9TRkwsIDB4MDIpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoR0FSVCwgUENJX0NvbmZpZywgMHg4MCwgMHgwMSkKICAgICAgICAgICAg U2NvcGUgKFwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEZpZWxkIChcX1NCLlBDSTAu R0FSVCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBHQVIxLCAgIDgKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChHQVJBLCBQQ0lfQ29uZmlnLCAweDg4LCAweDAx KQogICAgICAgICAgICBTY29wZSAoXCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRmll bGQgKFxfU0IuUENJMC5HQVJBLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEdBUjIsICAgOAogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHgwNSwgCiAgICAgICAgICAgICAgICAweDA1CiAgICAgICAgICAgIH0p CiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFdvcmRCdXNOdW1iZXIgKFJlc291cmNlQ29u c3VtZXIsIE1pbk5vdEZpeGVkLCBNYXhOb3RGaXhlZCwgUG9zRGVjb2RlLAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMEZGLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAs CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCkKICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsIDB4MENGOCwgMHgwQ0Y4LCAweDAxLCAweDA4KQogICAgICAgICAgICAgICAgICAg IFdvcmRJTyAoUmVzb3VyY2VQcm9kdWNlciwgTWluRml4ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUs IEVudGlyZVJhbmdlLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAsCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgMHgwQ0Y3LAogICAg ICAgICAgICAgICAgICAgICAgICAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MENG OCkKICAgICAgICAgICAgICAgICAgICBXb3JkSU8gKFJlc291cmNlUHJvZHVjZXIsIE1pbkZpeGVk LCBNYXhGaXhlZCwgUG9zRGVjb2RlLCBFbnRpcmVSYW5nZSwKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAweDBEMDAsCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRiwKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwLAogICAgICAg ICAgICAgICAgICAgICAgICAweEYzMDApCiAgICAgICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkg KFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFi bGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDBBMDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDBCRkZGRiwKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDAyMDAwMCkKICAgICAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAo UmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJs ZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAg ICAgICAgICAgICAgICAgICAweDAwMEMwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAweDAw MERGRkZGLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwMDIwMDAwKQogICAgICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChS ZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxl LCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAxMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZF RkZGRkYsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGMDAwMDApCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgMHg3NiwgVENNTSkKICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKEJVRjAsIDB4ODIsIFRPTU0pCiAgICAgICAgICAgICAgICBBZGQgKEFNRU0s IDB4MDAwMTAwMDAsIFRDTU0pCiAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoMHhGRkYwMDAwMCwg VENNTSwgVE9NTSkKICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMCkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTmFtZSAoUElDTSwgUGFja2FnZSAoMHgxMykKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAweDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg ICAgICAgICAgICBcX1NCLlBDSTAuTE5LQiwgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMTRGRkZGLCAKICAgICAgICAgICAgICAg ICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5LQywgCiAgICAgICAg ICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMTRG RkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICBcX1NC LlBDSTAuTE5LRCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAweDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAg ICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgMHgw MAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMTNGRkZGLCAKICAgICAgICAg ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5LRCwgCiAg ICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw eDAwMTNGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAg ICBcX1NCLlBDSTAuTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAweDAwMTNGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5LQiwgCiAgICAgICAgICAgICAgICAg ICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMTNGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5L QywgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAweDAwMTBGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg ICAgICAgICBcX1NCLlBDSTAuTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMTBGRkZGLCAKICAgICAgICAgICAgICAgICAg ICAweDAxLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5LQiwgCiAgICAgICAgICAg ICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMTBGRkZG LCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBD STAuTE5LQywgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAweDAwMTBGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAg ICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5LRCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMAog ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMTFGRkZGLCAKICAgICAgICAgICAg ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5LQSwgCiAgICAg ICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAw MTFGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICBc X1NCLlBDSTAuTE5LQywgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAK ICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5LQSwgCiAgICAgICAgICAgICAgICAgICAg MHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGLCAKICAgICAg ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5LRCwg CiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAweDAwMEZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAg ICAgICBcX1NCLlBDSTAuTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAw eDAyLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTE5LQiwgCiAgICAgICAgICAgICAg ICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMEZGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAu TE5LQywgCiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUElDTSkKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgRGV2aWNlIChBR1BCKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1l IChfQURSLCAweDAwMDEwMDAwKQogICAgICAgICAgICAgICAgTmFtZSAoUElDTSwgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFxf U0IuUENJMC5MTktBLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MTktC LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MTktDLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAg ICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MTktELCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQSUNNKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBNSU8pCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSkKICAgICAgICAgICAgICAg IE5hbWUgKF9VSUQsIDB4MDIpCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVG MCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDA0MDAsIDB4MDQwMCwgMHgwMSwgMHg4MCkKICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDA1MDAsIDB4MDUwMCwgMHgwMSwg MHgxMCkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAo QlVGMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNl IChWVDg2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTEw MDAwKQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWVFNCLCBQQ0lfQ29uZmlnLCAw eDAwLCAweEU4KQogICAgICAgICAgICAgICAgU2NvcGUgKFwpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgRmllbGQgKFxfU0IuUENJMC5WVDg2LlZUU0IsIEJ5dGVBY2MsIE5v TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MDIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgREVJRCwgICAxNiwg CiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MiksIAogICAgICAgICAgICAgICAg ICAgICAgICBTSVJRLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTUp LCAKICAgICAgICAgICAgICAgICAgICAgICAgUElSQSwgICA4LCAKICAgICAgICAgICAgICAgICAg ICAgICAgUElCQywgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgUElSRCwgICA4LCAKICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDk0KSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFBXQzEsICAgOAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChJREUwKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTEwMDAxKQogICAgICAgICAgICAgICAgTmFtZSAo UkVHRiwgMHgwMSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JFRywgMiwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcw LCAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChBcmcxLCBSRUdGKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZJREUsIFBDSV9Db25maWcsIDB4MDAs IDB4QzIpCiAgICAgICAgICAgICAgICBTY29wZSAoXCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBGaWVsZCAoXF9TQi5QQ0kwLklERTAuVklERSwgQnl0ZUFjYywgTm9Mb2Nr LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHgwOSksIAogICAgICAgICAgICAgICAgICAgICAgICBFTkFULCAgIDQsIAogICAg ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4M0MpLCAKICAgICAgICAgICAgICAgICAgICAg ICAgSURFSSwgICA0CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoQTEzMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTE5vdCAoTEVxdWFsIChERUlELCAweDMxNzcp KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1 YWwgKERFSUQsIDB4MzE0NykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBO YW1lIChUSU0wLCBQYWNrYWdlICgweDBGKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAweDc4LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhCNCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4RjAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyNTgKICAg ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDMxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg2NSwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4QTgKICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAweDA0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgw MAogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDA2KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHg3OCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4NTAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDNDLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyRCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MUUsIAogICAgICAgICAgICAgICAgICAgICAgICAweDE0CiAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDQsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAg ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDAxCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDA0 LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAweDA1LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA0LCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDcpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAweDc4LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg1MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4M0MsIAogICAgICAgICAgICAgICAgICAgICAgICAweDJELCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgxRSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDBGCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAweDA2LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNSwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDA0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwNykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUs IAogICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAKICAgICAgICAgICAgICAgICAgICAgICAg MHgwNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgTmFtZSAoVE1EMCwgQnVmZmVyICgweDE0KSB7fSkKICAgICAgICAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKFRNRDAsIDB4MDAsIFBJTzApCiAgICAgICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChUTUQwLCAweDA0LCBETUEwKQogICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoVE1EMCwgMHgwOCwgUElPMSkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKFRNRDAsIDB4MEMsIERNQTEpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChUTUQwLCAweDEwLCBDSE5GKQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChDRkcy LCBQQ0lfQ29uZmlnLCAweDQwLCAweDIwKQogICAgICAgICAgICAgICAgRmllbGQgKENGRzIsIERX b3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHgwOCksIAogICAgICAgICAgICAgICAgICAgIFNTUFQsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgU01QVCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBQU1BULCAg IDgsIAogICAgICAgICAgICAgICAgICAgIFBNUFQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDEwKSwgCiAgICAgICAgICAgICAgICAgICAgU1NVVCwgICA0LCAKICAgICAgICAg ICAgICAgICAgICBTU0NULCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFNTVUUsICAgMywgCiAg ICAgICAgICAgICAgICAgICAgU01VVCwgICA0LCAKICAgICAgICAgICAgICAgICAgICBTTUNULCAg IDEsIAogICAgICAgICAgICAgICAgICAgIFNNVUUsICAgMywgCiAgICAgICAgICAgICAgICAgICAg UFNVVCwgICA0LCAKICAgICAgICAgICAgICAgICAgICBQU0NULCAgIDEsIAogICAgICAgICAgICAg ICAgICAgIFBTVUUsICAgMywgCiAgICAgICAgICAgICAgICAgICAgUE1VVCwgICA0LCAKICAgICAg ICAgICAgICAgICAgICBQTUNULCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFBNVUUsICAgMwog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKEdNUFQsIDB4MDApCiAgICAg ICAgICAgICAgICBOYW1lIChHTVVFLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoR01VVCwg MHgwMCkKICAgICAgICAgICAgICAgIE5hbWUgKEdTUFQsIDB4MDApCiAgICAgICAgICAgICAgICBO YW1lIChHU1VFLCAweDAwKQogICAgICAgICAgICAgICAgTmFtZSAoR1NVVCwgMHgwMCkKICAgICAg ICAgICAgICAgIE5hbWUgKEdCQ1MsIDB4MDApCiAgICAgICAgICAgICAgICBEZXZpY2UgKENITjAp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9HVE0sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdUTSAoUE1Q VCwgUE1VRSwgUE1VVCwgUFNQVCwgUFNVRSwgUFNVVCkpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVE0sIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMCwgVE1E MCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFBNUFQsIEdNUFQpCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChQTVVFLCBHTVVFKQogICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoUE1VVCwgR01VVCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFBTUFQsIEdT UFQpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQU1VFLCBHU1VFKQogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoUFNVVCwgR1NVVCkKICAgICAgICAgICAgICAgICAgICAgICAg U1RNICgpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChHTVBULCBQTVBUKQogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoR01VRSwgUE1VRSkKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKEdNVVQsIFBNVVQpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChHU1BU LCBQU1BUKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR1NVRSwgUFNVRSkKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKEdTVVQsIFBTVVQpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKERSVjApCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKQogICAgICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9HVEYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1RGICgweDAw LCBQTVVFLCBQTVVULCBQTVBUKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChEUlYxKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMSkKICAg ICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEdURiAoMHgwMSwgUFNVRSwgUFNVVCwgUFNQVCkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg RGV2aWNlIChDSE4xKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RNLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChHVE0gKFNNUFQsIFNNVUUsIFNNVVQsIFNTUFQsIFNTVUUsIFNTVVQpKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RNLCAzLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKEFyZzAsIFRNRDApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChTTVBULCBHTVBU KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU01VRSwgR01VRSkKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFNNVVQsIEdNVVQpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChTU1BULCBHU1BUKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU1NVRSwgR1NV RSkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFNTVVQsIEdTVVQpCiAgICAgICAgICAg ICAgICAgICAgICAgIFNUTSAoKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR01QVCwg U01QVCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEdNVUUsIFNNVUUpCiAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChHTVVULCBTTVVUKQogICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoR1NQVCwgU1NQVCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEdTVUUs IFNTVUUpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChHU1VULCBTU1VUKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChEUlYwKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkK ICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEdURiAoMHgwMiwgU01VRSwgU01VVCwgU01QVCkpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERldmljZSAoRFJW MSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9B RFIsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dURiwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChHVEYgKDB4MDMsIFNTVUUsIFNTVVQsIFNTUFQpKQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoR1RGLCA0LCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChCdWZmZXIgKDB4MDcpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4QTAsIDB4RUYKICAgICAgICAgICAgICAgICAgICAgICAgfSwgTG9jYWwx KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChCdWZmZXIgKDB4MDcpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4QTAsIDB4RUYKICAgICAgICAgICAgICAgICAgICAgICAgfSwgTG9jYWwy KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWwxLCAweDAxLCBNT0RF KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWwyLCAweDAxLCBVTU9E KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWwxLCAweDA1LCBQQ0hB KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoTG9jYWwyLCAweDA1LCBVQ0hB KQogICAgICAgICAgICAgICAgICAgIEFuZCAoQXJnMCwgMHgwMywgTG9jYWwzKQogICAgICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoTG9jYWwzLCAweDAxKSwgMHgwMSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhCMCwgUENIQSkK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4QjAsIFVDSEEpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQXJnMSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBMTMzICgpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5k ZXggKERlcmVmT2YgKEluZGV4IChUSU0wLCAweDBEKSksIEFyZzIpKSwgVU1PRCkKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9m IChJbmRleCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MEEpKSwgQXJnMikpLCBVTU9EKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBPciAoVU1PRCwg MHg0MCwgVU1PRCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1h dGNoIChEZXJlZk9mIChJbmRleCAoVElNMCwgMHgwMSkpLCBNRVEsIEFyZzMsIE1UUiwgMHgwMCwg MHgwMCksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgT3IgKDB4MjAsIERlcmVmT2Yg KEluZGV4IChEZXJlZk9mIChJbmRleCAoVElNMCwgMHgwOSkpLCBMb2NhbDApKSwgVU1PRCkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFN0b3JlIChNYXRjaCAoRGVy ZWZPZiAoSW5kZXggKFRJTTAsIDB4MDEpKSwgTUVRLCBBcmczLCBNVFIsIDB4MDAsIDB4MDApLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgT3IgKDB4MDgsIERlcmVmT2YgKEluZGV4IChEZXJl Zk9mIChJbmRleCAoVElNMCwgMHgwOCkpLCBMb2NhbDApKSwgTU9ERSkKICAgICAgICAgICAgICAg ICAgICBDb25jYXRlbmF0ZSAoTG9jYWwxLCBMb2NhbDIsIExvY2FsNikKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKExvY2FsNikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKEdUTSwgNiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoT25lcywgUElPMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25l cywgUElPMSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lcywgRE1BMCkKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoT25lcywgRE1BMSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgxMCwgQ0hORikKICAgICAgICAgICAgICAgICAgICBJZiAoUkVHRikge30KICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFRNRDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoTWF0Y2ggKERlcmVmT2YgKEluZGV4IChUSU0wLCAweDAxKSksIE1FUSwgQXJnMCwg TVRSLCAweDAwLCAweDAwKSwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJl Zk9mIChJbmRleCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MDApKSwgTG9jYWw2KSksIExvY2Fs NykKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWw3LCBETUEwKQogICAgICAgICAgICAg ICAgICAgIFN0b3JlIChMb2NhbDcsIFBJTzApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1h dGNoIChEZXJlZk9mIChJbmRleCAoVElNMCwgMHgwMSkpLCBNRVEsIEFyZzMsIE1UUiwgMHgwMCwg MHgwMCksIExvY2FsNikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXgg KERlcmVmT2YgKEluZGV4IChUSU0wLCAweDAwKSksIExvY2FsNikpLCBMb2NhbDcpCiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKExvY2FsNywgRE1BMSkKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTG9jYWw3LCBQSU8xKQogICAgICAgICAgICAgICAgICAgIElmIChBcmcxKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEExMzMgKCkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJl Zk9mIChJbmRleCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MEQpKSwgQXJnMikpLCBMb2NhbDUp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoRGVyZWZPZiAoSW5kZXggKERlcmVmT2YgKEluZGV4IChUSU0wLCAweDBBKSksIEFyZzIpKSwg TG9jYWw1KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQTEzMyAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChEZXJlZk9mIChJbmRleCAoVElNMCwg MHgwQykpLCBMb2NhbDUpKSwgRE1BMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoRGVyZWZPZiAoSW5kZXgg KFRJTTAsIDB4MDQpKSwgTG9jYWw1KSksIERNQTApCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChDSE5GLCAweDAxLCBDSE5GKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKEFyZzQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQTEzMyAoKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2Yg KEluZGV4IChEZXJlZk9mIChJbmRleCAoVElNMCwgMHgwRCkpLCBBcmc1KSksIExvY2FsNSkKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChE ZXJlZk9mIChJbmRleCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MEEpKSwgQXJnNSkpLCBMb2Nh bDUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm IChBMTMzICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKERlcmVmT2YgKEluZGV4IChUSU0wLCAweDBD KSksIExvY2FsNSkpLCBETUExKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChEZXJlZk9mIChJbmRleCAoVElN MCwgMHgwNCkpLCBMb2NhbDUpKSwgRE1BMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgT3IgKENITkYsIDB4MDQsIENITkYpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRNRDApCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChTVE0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFJFR0YpIHt9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChUTUQwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDAsIEdNVUUpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIEdTVUUp CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDcsIEdNVVQpCiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4MDcsIEdTVVQpCiAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoQ0hORiwg MHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo QTEzMyAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKE1hdGNoIChEZXJlZk9mIChJbmRleCAoVElNMCwgMHgwQykpLCBNTEUsIERN QTAsIE1UUiwgMHgwMCwgMHgwMCksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNYXRjaCAoRGVyZWZPZiAoSW5kZXggKFRJ TTAsIDB4MDQpKSwgTUxFLCBETUEwLCBNVFIsIDB4MDAsIDB4MDApLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBMTMzICgpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoRGVyZWZPZiAoSW5kZXggKERlcmVmT2YgKEluZGV4IChUSU0wLCAweDBFKSksIExvY2FsMCkp LCBHTVVUKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChEZXJlZk9mIChJbmRleCAoVElNMCwgMHgwQikpLCBM b2NhbDApKSwgR01VVCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgT3IgKEdNVUUsIDB4MDcsIEdNVUUpCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChPciAoTEVxdWFsIChQSU8wLCBPbmVzKSwgTEVxdWFsIChQSU8wLCAweDAw KSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChBbmQgKExMZXNzIChETUEwLCBPbmVzKSwgTEdyZWF0ZXIgKERNQTAsIDB4MDApKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoRE1BMCwgUElPMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKEFuZCAoQ0hORiwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoQTEzMyAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoIChEZXJlZk9mIChJbmRleCAo VElNMCwgMHgwQykpLCBNTEUsIERNQTEsIE1UUiwgMHgwMCwgMHgwMCksIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNYXRj aCAoRGVyZWZPZiAoSW5kZXggKFRJTTAsIDB4MDQpKSwgTUxFLCBETUExLCBNVFIsIDB4MDAsIDB4 MDApLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmIChBMTMzICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKERlcmVmT2YgKEluZGV4IChU SU0wLCAweDBFKSksIExvY2FsMCkpLCBHU1VUKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChEZXJlZk9mIChJ bmRleCAoVElNMCwgMHgwQikpLCBMb2NhbDApKSwgR1NVVCkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgT3IgKEdTVUUsIDB4MDcsIEdTVUUpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChPciAoTEVxdWFsIChQSU8xLCBPbmVz KSwgTEVxdWFsIChQSU8xLCAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKExMZXNzIChETUExLCBPbmVzKSwgTEdyZWF0 ZXIgKERNQTEsIDB4MDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRE1BMSwgUElPMSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQW5kIChNYXRjaCAoRGVyZWZPZiAoSW5kZXggKFRJ TTAsIDB4MDApKSwgTUdFLCBQSU8wLCBNVFIsIDB4MDAsIDB4MDApLCAweDAzLCBMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChEZXJlZk9mIChJbmRleCAo VElNMCwgMHgwMSkpLCBMb2NhbDApKSwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIFN0b3Jl IChMb2NhbDEsIEdNUFQpCiAgICAgICAgICAgICAgICAgICAgQW5kIChNYXRjaCAoRGVyZWZPZiAo SW5kZXggKFRJTTAsIDB4MDApKSwgTUdFLCBQSU8xLCBNVFIsIDB4MDAsIDB4MDApLCAweDAzLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChEZXJlZk9m IChJbmRleCAoVElNMCwgMHgwMSkpLCBMb2NhbDApKSwgTG9jYWwxKQogICAgICAgICAgICAgICAg ICAgIFN0b3JlIChMb2NhbDEsIEdTUFQpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIERldmljZSAoVVNCMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoX0FEUiwgMHgwMDExMDAwMikKICAgICAgICAgICAgICAgIE5hbWUgKF9QUlcsIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwRSwgCiAg ICAgICAgICAgICAgICAgICAgMHgwNQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IE1ldGhvZCAoU1MzRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHg1NSwgREJHMSkKICAgICAgICAgICAgICAgICAgICBJZiAo TEVxdWFsIChPU0ZMLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0IxKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTEwMDAzKQogICAgICAgICAgICAgICAgTmFt ZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAweDBFLCAKICAgICAgICAgICAgICAgICAgICAweDA1CiAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgTWV0aG9kIChTUzNELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKE9TRkwsIDB4MDIpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBEZXZpY2UgKFVTQjIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDAxMTAwMDQpCiAgICAgICAgICAgICAgICBOYW1lIChfUFJXLCBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MEUsIAogICAgICAgICAgICAg ICAgICAgIDB4MDUKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKFNT M0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKExFcXVhbCAoT1NGTCwgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoVVNCMykKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDEwMDAwMCkKICAgICAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoVTJGMCwgUENJX0NvbmZpZywgMHgwMCwgMHhDMikKICAgICAg ICAgICAgICAgIEZpZWxkIChVMkYwLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NCksIAogICAgICAgICAg ICAgICAgICAgIEVDRFgsICAgMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5h bWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgMHgwRSwgCiAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgIE1ldGhvZCAoU1MzRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChPU0ZMLCAweDAyKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRGV2aWNlIChVU0I0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURS LCAweDAwMTAwMDAxKQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChVMkYxLCBQQ0lf Q29uZmlnLCAweDAwLCAweEMyKQogICAgICAgICAgICAgICAgRmllbGQgKFUyRjEsIEJ5dGVBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAgICAgICAgRUNEWCwgICAyCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDBFLCAKICAgICAgICAgICAgICAgICAg ICAweDAzCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChTUzNELCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChMRXF1YWwgKE9TRkwsIDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFVTQjUpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxMDAwMDIpCiAgICAgICAgICAgICAgICBP cGVyYXRpb25SZWdpb24gKFUyRjIsIFBDSV9Db25maWcsIDB4MDAsIDB4QzIpCiAgICAgICAgICAg ICAgICBGaWVsZCAoVTJGMiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODQpLCAKICAgICAgICAgICAgICAg ICAgICBFQ0RYLCAgIDIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChf UFJXLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IDB4MEUsIAogICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICBNZXRob2QgKFNTM0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoT1NGTCwgMHgwMikpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERl dmljZSAoVVNCNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgw MDEwMDAwMykKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVTJGMywgUENJX0NvbmZp ZywgMHgwMCwgMHhDMikKICAgICAgICAgICAgICAgIEZpZWxkIChVMkYzLCBCeXRlQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg4NCksIAogICAgICAgICAgICAgICAgICAgIEVDRFgsICAgMgogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE5hbWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwRSwgCiAgICAgICAgICAgICAgICAgICAgMHgw MwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoU1MzRCwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChPU0ZMLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChMQU4wKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTIwMDAwKQogICAgICAgICAgICAgICAgTmFtZSAo X1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAweDA1CiAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEFDOTcpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxMTAwMDUpCiAgICAgICAgICAgICAgICBOYW1lIChf UFJXLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IDB4MEQsIAogICAgICAgICAgICAgICAgICAgIDB4MDUKICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQ1JEMCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDBBMDAwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAo X0lOSSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwMSwgUE1TVCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9QU0MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQV1NUKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMSwgUE1TVCkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFBNU1QpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBQTVNU KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQ0NS QSwgUENJX0NvbmZpZywgMHhFMCwgMHgwNCkKICAgICAgICAgICAgICAgIEZpZWxkIChDQ1JBLCBE V29yZEFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUFdTVCwgICAyLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAg ICAgICAgICAgICAgICAgICAgICAgLCAgIDcsIAogICAgICAgICAgICAgICAgICAgIFBNU1QsICAg MQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKENS RDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwQTAwMDEp CiAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFBNU1QpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFNDLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFdTVCkKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEs IFBNU1QpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMyLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDAxLCBQTVNUKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHgwMSwgUE1TVCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKENDUkIsIFBDSV9Db25maWcsIDB4RTAsIDB4MDQpCiAgICAg ICAgICAgICAgICBGaWVsZCAoQ0NSQiwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBXU1QsICAgMiwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDAxKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA3LCAKICAg ICAgICAgICAgICAgICAgICBQTVNULCAgIDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgU2NvcGUgKFwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1l dGhvZCAoRElTRCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKENLSU8sIDIsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChTTERNLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKExOS0EpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSkKICAg ICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDEpCiAgICAgICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgQW5kIChQSVJBLCAweEYwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoTG9jYWwwLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGQiwgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZl bCwgQWN0aXZlTG93LCBTaGFyZWQpIHsxLDMsNCw1LDYsNywxMCwxMSwxMiwxNCwxNX0KICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQlVGQikKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQW5kIChQSVJBLCAweDBG LCBQSVJBKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChCVUZCLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCkge30KICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAo QlVGQiwgMHgwMSwgSVJCMSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJV RkIsIDB4MDIsIElSQjIpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIExvY2FsMykK ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgTG9jYWw0KQogICAgICAgICAgICAgICAg ICAgIEFuZCAoUElSQSwgMHhGMCwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIFNoaWZ0Umln aHQgKExvY2FsMSwgMHgwNCwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIElmIChMTm90IChM RXF1YWwgKExvY2FsMSwgMHgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExHcmVhdGVyIChMb2NhbDEsIDB4MDcpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoTG9jYWwxLCAw eDA4LCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKE9uZSwg TG9jYWwyLCBMb2NhbDQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoTEdyZWF0ZXIgKExvY2FsMSwgMHgwMCkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChP bmUsIExvY2FsMSwgTG9jYWwzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwz LCBJUkIxKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWw0LCBJUkIyKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCVUZCKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmll bGQgKEFyZzAsIDB4MDEsIElSQjEpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxk IChBcmcwLCAweDAyLCBJUkIyKQogICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoSVJCMiwg MHgwOCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAsIElSQjEsIExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgTG9jYWwxKQogICAgICAgICAgICAg ICAgICAgIFNoaWZ0UmlnaHQgKExvY2FsMCwgMHgwMSwgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgIFdoaWxlIChMR3JlYXRlciAoTG9jYWwwLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIEluY3JlbWVudCAoTG9jYWwxKQogICAgICAgICAgICAg ICAgICAgICAgICBTaGlmdFJpZ2h0IChMb2NhbDAsIDB4MDEsIExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFuZCAoUElSQSwgMHgwRiwgUElSQSkKICAg ICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMSwgMHgwNCwgTG9jYWwxKQogICAgICAg ICAgICAgICAgICAgIE9yIChQSVJBLCBMb2NhbDEsIFBJUkEpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoTE5LQikKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpKQogICAgICAgICAgICAg ICAgTmFtZSAoX1VJRCwgMHgwMikKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBbmQgKFBJ QkMsIDB4MEYsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAs IDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDA5KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOYW1lIChCVUZBLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVM b3csIFNoYXJlZCkgezEsMyw0LDUsNiw3LDEwLDExLDEyLDE0LDE1fQogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCVUZBKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBbmQgKFBJQkMsIDB4RjAsIFBJQkMpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRkEs IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkKSB7fQogICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZBLCAweDAx LCBJUkExKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGQSwgMHgwMiwg SVJBMikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgTG9jYWwzKQogICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDQpCiAgICAgICAgICAgICAgICAgICAgQW5kIChQ SUJDLCAweDBGLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgSWYgKExOb3QgKExFcXVhbCAo TG9jYWwxLCAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoTEdyZWF0ZXIgKExvY2FsMSwgMHgwNykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnRyYWN0IChMb2NhbDEsIDB4MDgsIExv Y2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCBMb2NhbDIs IExvY2FsNCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChMR3JlYXRlciAoTG9jYWwxLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKE9uZSwgTG9j YWwxLCBMb2NhbDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDMsIElSQTEp CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDQsIElSQTIpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRkEpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJn MCwgMHgwMSwgSVJBMSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAs IDB4MDIsIElSQTIpCiAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChJUkEyLCAweDA4LCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgT3IgKExvY2FsMCwgSVJBMSwgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg U2hpZnRSaWdodCAoTG9jYWwwLCAweDAxLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgV2hp bGUgKExHcmVhdGVyIChMb2NhbDAsIDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSW5jcmVtZW50IChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg ICAgIFNoaWZ0UmlnaHQgKExvY2FsMCwgMHgwMSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgQW5kIChQSUJDLCAweEYwLCBQSUJDKQogICAgICAgICAg ICAgICAgICAgIE9yIChQSUJDLCBMb2NhbDEsIFBJQkMpCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoTE5LQykKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpKQogICAgICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgwMykKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBbmQgKFBJQkMs IDB4RjAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4 MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDA5KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBOYW1lIChCVUZDLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3cs IFNoYXJlZCkgezEsMyw0LDUsNiw3LDEwLDExLDEyLDE0LDE1fQogICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCVUZDKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBbmQgKFBJQkMsIDB4MEYsIFBJQkMpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRkMsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkKSB7fQogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZDLCAweDAxLCBJ UkMxKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGQywgMHgwMiwgSVJD MikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgTG9jYWwzKQogICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDQpCiAgICAgICAgICAgICAgICAgICAgQW5kIChQSUJD LCAweEYwLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgU2hpZnRSaWdodCAoTG9jYWwxLCAw eDA0LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgSWYgKExOb3QgKExFcXVhbCAoTG9jYWwx LCAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoTEdyZWF0ZXIgKExvY2FsMSwgMHgwNykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnRyYWN0IChMb2NhbDEsIDB4MDgsIExvY2FsMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCBMb2NhbDIsIExvY2Fs NCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChMR3JlYXRlciAoTG9jYWwxLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKE9uZSwgTG9jYWwxLCBM b2NhbDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDMsIElSQzEpCiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDQsIElSQzIpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRkMpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHgw MSwgSVJDMSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAsIDB4MDIs IElSQzIpCiAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChJUkMyLCAweDA4LCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgT3IgKExvY2FsMCwgSVJDMSwgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgU2hpZnRS aWdodCAoTG9jYWwwLCAweDAxLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKExH cmVhdGVyIChMb2NhbDAsIDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSW5jcmVtZW50IChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFNo aWZ0UmlnaHQgKExvY2FsMCwgMHgwMSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgQW5kIChQSUJDLCAweDBGLCBQSUJDKQogICAgICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoTG9jYWwxLCAweDA0LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg T3IgKFBJQkMsIExvY2FsMSwgUElCQykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChMTktEKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBO YW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAgICAgICAgICBOYW1lIChfVUlE LCAweDA0KQogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFuZCAoUElSRCwgMHhGMCwgTG9j YWwwKQogICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHgwMCkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQikKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChf UFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKEJVRkQsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkKSB7 MSwzLDQsNSw2LDcsMTAsMTEsMTIsMTQsMTV9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJVRkQpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIEFuZCAoUElSRCwgMHgwRiwgUElSRCkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGRCwgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSVJR IChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQpIHt9CiAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkQsIDB4MDEsIElSRDEpCiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZELCAweDAyLCBJUkQyKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDMpCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MDAsIExvY2FsNCkKICAgICAgICAgICAgICAgICAgICBBbmQgKFBJUkQsIDB4RjAsIExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICBTaGlmdFJpZ2h0IChMb2NhbDEsIDB4MDQsIExvY2Fs MSkKICAgICAgICAgICAgICAgICAgICBJZiAoTE5vdCAoTEVxdWFsIChMb2NhbDEsIDB4MDApKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMR3JlYXRl ciAoTG9jYWwxLCAweDA3KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3VidHJhY3QgKExvY2FsMSwgMHgwOCwgTG9jYWwyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChPbmUsIExvY2FsMiwgTG9jYWw0KQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExHcmVhdGVy IChMb2NhbDEsIDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCBMb2NhbDEsIExvY2FsMykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMywgSVJEMSkKICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKExvY2FsNCwgSVJEMikKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQlVGRCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDAxLCBJUkQxKQog ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHgwMiwgSVJEMikKICAg ICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKElSRDIsIDB4MDgsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICBPciAoTG9jYWwwLCBJUkQxLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDAsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBTaGlmdFJpZ2h0IChMb2Nh bDAsIDB4MDEsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTEdyZWF0ZXIgKExv Y2FsMCwgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJbmNyZW1lbnQgKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgU2hpZnRSaWdodCAo TG9jYWwwLCAweDAxLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBBbmQgKFBJUkQsIDB4MEYsIFBJUkQpCiAgICAgICAgICAgICAgICAgICAgU2hpZnRM ZWZ0IChMb2NhbDEsIDB4MDQsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBPciAoUElSRCwg TG9jYWwxLCBQSVJEKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBPcGVyYXRpb25SZWdpb24gKFxTQ1BQLCBTeXN0ZW1JTywgMHgwNDJGLCAweDAxKQogICAgICAg ICAgICBGaWVsZCAoXFNDUFAsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFNNSVAsICAgOAogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKFxfU0IuUENJMC5fSU5JLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBJZiAoU1RSQyAoXF9PUywgIk1pY3Jvc29mdCBXaW5kb3dzIikpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NTYsIFNNSVApCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKFNUUkMgKFxfT1MsICJNaWNyb3NvZnQgV2luZG93cyBOVCIpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NTgs IFNNSVApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBPU0ZMKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg1NywgU01JUCkKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIE9TRkwpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKE9TVFAs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChMRXF1 YWwgKE9TRkwsIDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDU2LCBTTUlQKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKE9TRkwsIDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDU3LCBTTUlQKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm IChMRXF1YWwgKE9TRkwsIDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDU4LCBTTUlQKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBEZXZpY2UgKFNZU1IpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5h bWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSkKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQs IDB4MDEpCiAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwMTAs IDB4MDAxMCwgMHgwMSwgMHgxMCkKICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4 MDAyMiwgMHgwMDIyLCAweDAxLCAweDFFKQogICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUx NiwgMHgwMDQ0LCAweDAwNDQsIDB4MDEsIDB4MUMpCiAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LCAweDAwNjIsIDB4MDA2MiwgMHgwMSwgMHgwMikKICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsIDB4MDA2NSwgMHgwMDY1LCAweDAxLCAweDBCKQogICAgICAgICAgICAgICAg ICAgIElPIChEZWNvZGUxNiwgMHgwMDc0LCAweDAwNzQsIDB4MDEsIDB4MEMpCiAgICAgICAgICAg ICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwOTEsIDB4MDA5MSwgMHgwMSwgMHgwMykKICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDBBMiwgMHgwMEEyLCAweDAxLCAweDFFKQog ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMEUwLCAweDAwRTAsIDB4MDEsIDB4 MTApCiAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDA0RDAsIDB4MDREMCwgMHgw MSwgMHgwMikKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERl dmljZSAoUElDKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNh SWQgKCJQTlAwMDAwIikpCiAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2 LCAweDAwMjAsIDB4MDAyMCwgMHgwMSwgMHgwMikKICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsIDB4MDBBMCwgMHgwMEEwLCAweDAxLCAweDAyKQogICAgICAgICAgICAgICAgICAgIElS UU5vRmxhZ3MgKCkgezJ9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAg ICAgICBEZXZpY2UgKERNQTEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9I SUQsIEVpc2FJZCAoIlBOUDAyMDAiKSkKICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBETUEg KENvbXBhdGliaWxpdHksIEJ1c01hc3RlciwgVHJhbnNmZXI4KSB7NH0KICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsIDB4MDAwMCwgMHgwMDAwLCAweDAxLCAweDEwKQogICAgICAgICAg ICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMDgwLCAweDAwODAsIDB4MDEsIDB4MTEpCiAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwOTQsIDB4MDA5NCwgMHgwMSwgMHgwQykK ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDBDMCwgMHgwMEMwLCAweDAxLCAw eDIwKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNl IChUTVIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAo IlBOUDAxMDAiKSkKICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4 MDA0MCwgMHgwMDQwLCAweDAxLCAweDA0KQogICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3Mg KCkgezB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZp Y2UgKFJUQykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMEIwMCIpKQogICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwg MHgwMDcwLCAweDAwNzAsIDB4MDQsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFn cyAoKSB7OH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERl dmljZSAoU1BLUikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlz YUlkICgiUE5QMDgwMCIpKQogICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUx NiwgMHgwMDYxLCAweDAwNjEsIDB4MDEsIDB4MDEpCiAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKENPUFIpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDQiKSkKICAgICAgICAgICAgICAgIE5h bWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDBGMCwgMHgwMEYwLCAweDAxLCAweDEwKQogICAg ICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkgezEzfQogICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgU2NvcGUgKFwpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoV0lOMSwgU3lzdGVtSU8sIDB4MkUsIDB4MDIpCiAgICAg ICAgICAgICAgICBGaWVsZCAoV0lOMSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJTkRQLCAgIDgsIAogICAgICAgICAgICAg ICAgICAgIERBVEEsICAgOAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEluZGV4 RmllbGQgKElORFAsIERBVEEsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgCiAgICAgICAgICAgICAg ICAgICAgQ0ZHLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDcpLCAKICAg ICAgICAgICAgICAgICAgICBMRE4sICAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgyMCksIAogICAgICAgICAgICAgICAgICAgIElESEksICAgOCwgCiAgICAgICAgICAgICAgICAg ICAgSURMTywgICA4LCAKICAgICAgICAgICAgICAgICAgICBQT1dDLCAgIDgsIAogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHgzMCksIAogICAgICAgICAgICAgICAgICAgIEFDVFIsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAgICAgICAgICAgICAg SU9BSCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBJT0FMLCAgIDgsIAogICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHg3MCksIAogICAgICAgICAgICAgICAgICAgIElOVFIsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDcyKSwgCiAgICAgICAgICAgICAgICAgICAgSU5U MSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NzQpLCAKICAgICAgICAgICAg ICAgICAgICBETUNILCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhDMCksIAog ICAgICAgICAgICAgICAgICAgIEdQNDAsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweEYwKSwgCiAgICAgICAgICAgICAgICAgICAgT1BUMSwgICA4LCAKICAgICAgICAgICAgICAg ICAgICBPUFQyLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9QVDMsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgT1BUNCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPUFQ1LCAgIDgsIAog ICAgICAgICAgICAgICAgICAgIE9QVDYsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT1BUNywg ICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChFTkZHLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDg3LCBJTkRQKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDg3LCBJTkRQKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoRVhGRywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhBQSwg SU5EUCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChDT00xLCBTeXN0ZW1JTywgMHgwM0Y4LCAweDA4KQogICAgICAgICAgICBGaWVs ZCAoQ09NMSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgUDNGOCwgICA4LCAKICAgICAgICAgICAgICAgIFAzRjksICAgOCwgCiAgICAgICAg ICAgICAgICBQM0ZBLCAgIDgsIAogICAgICAgICAgICAgICAgUDNGQiwgICA4LCAKICAgICAgICAg ICAgICAgIFAzRkMsICAgOCwgCiAgICAgICAgICAgICAgICBQM0ZELCAgIDgsIAogICAgICAgICAg ICAgICAgUDNGRSwgICA4LCAKICAgICAgICAgICAgICAgIFAzRkYsICAgOAogICAgICAgICAgICB9 CgogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKENPTTIsIFN5c3RlbUlPLCAweDAyRjgsIDB4 MDgpCiAgICAgICAgICAgIEZpZWxkIChDT00yLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQMkY4LCAgIDgsIAogICAgICAgICAgICAgICAg UDJGOSwgICA4LCAKICAgICAgICAgICAgICAgIFAyRkEsICAgOCwgCiAgICAgICAgICAgICAgICBQ MkZCLCAgIDgsIAogICAgICAgICAgICAgICAgUDJGQywgICA4LCAKICAgICAgICAgICAgICAgIFAy RkQsICAgOCwgCiAgICAgICAgICAgICAgICBQMkZFLCAgIDgsIAogICAgICAgICAgICAgICAgUDJG RiwgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQ09NMywg U3lzdGVtSU8sIDB4MDNFOCwgMHgwOCkKICAgICAgICAgICAgRmllbGQgKENPTTMsIEJ5dGVBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFAzRTgsICAg OCwgCiAgICAgICAgICAgICAgICBQM0U5LCAgIDgsIAogICAgICAgICAgICAgICAgUDNFQSwgICA4 LCAKICAgICAgICAgICAgICAgIFAzRUIsICAgOCwgCiAgICAgICAgICAgICAgICBQM0VDLCAgIDgs IAogICAgICAgICAgICAgICAgUDNFRCwgICA4LCAKICAgICAgICAgICAgICAgIFAzRUUsICAgOCwg CiAgICAgICAgICAgICAgICBQM0VGLCAgIDgKICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3Bl cmF0aW9uUmVnaW9uIChDT000LCBTeXN0ZW1JTywgMHgwMkU4LCAweDA4KQogICAgICAgICAgICBG aWVsZCAoQ09NNCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgUDJFOCwgICA4LCAKICAgICAgICAgICAgICAgIFAyRTksICAgOCwgCiAgICAg ICAgICAgICAgICBQMkVBLCAgIDgsIAogICAgICAgICAgICAgICAgUDJFQiwgICA4LCAKICAgICAg ICAgICAgICAgIFAyRUMsICAgOCwgCiAgICAgICAgICAgICAgICBQMkVELCAgIDgsIAogICAgICAg ICAgICAgICAgUDJFRSwgICA4LCAKICAgICAgICAgICAgICAgIFAyRUYsICAgOAogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKElDT00sIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBMb2NhbDApCiAgICAgICAgICAgICAg ICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4MDNGOCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFAzRkQsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoUDNGRCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEMzLCBQM0ZBKQog ICAgICAgICAgICAgICAgICAgIFdoaWxlIChMTm90IChMRXF1YWwgKFAzRkEsIDB4QzEpKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQM0ZFLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChMRXF1 YWwgKExvY2FsMCwgMHgwMkY4KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChQMkZELCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChQMkZELCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEMzLCBQ MkZBKQogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTE5vdCAoTEVxdWFsIChQMkZBLCAw eEMxKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChQMkZFLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCAweDAzRTgp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoUDNFRCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFAz RUQsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEMzLCBQM0VB KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKExOb3QgKExFcXVhbCAoUDNFQSwg MHhDMSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChQM0VFLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4MDJFOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFAyRUQsIExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUDJFRCwgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEMzLCBQMkVBKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChMTm90IChMRXF1YWwgKFAyRUEsIDB4QzEpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChQMkVFLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEZEQzApCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDA3MDAiKSkKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBFTkZHICgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExETikK ICAgICAgICAgICAgICAgICAgICBJZiAoQUNUUikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBGKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTE9yIChJT0FI LCBJT0FMKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRVhGRyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBEKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhGRyAo KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBFTkZHICgpCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MDAsIExETikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgQUNUUikKICAg ICAgICAgICAgICAgICAgICBTTERNIChETUNILCAweDA0KQogICAgICAgICAgICAgICAgICAgIEVY RkcgKCkKICAgICAgICAgICAgICAgICAgICBESVNEICgweDAzKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBsYXRl ICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsIDB4MDNGMCwgMHgwM0YwLCAweDAwLCAweDA2KQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsIDB4MDNGNywgMHgwM0Y3LCAweDAwLCAweDAxKQogICAgICAgICAgICAg ICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHs2fQogICAgICAgICAgICAgICAgICAgICAgICBETUEg KENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJhbnNmZXI4KSB7Mn0KICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGMCwgMHgw MiwgSU9MTykKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRjAsIDB4MDMs IElPSEkpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUYwLCAweDA0LCBJ T1JMKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGMCwgMHgwNSwgSU9S SCkKICAgICAgICAgICAgICAgICAgICBFTkZHICgpCiAgICAgICAgICAgICAgICAgICAgRVhGRyAo KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMCkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBOYW1lIChfUFJTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRlbnRGbk5vUHJpICgpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4 MDNGMCwgMHgwM0YwLCAweDAwLCAweDA2KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsIDB4MDNGNywgMHgwM0Y3LCAweDAwLCAweDAxKQogICAgICAgICAgICAgICAgICAgICAg ICBJUlFOb0ZsYWdzICgpIHs2fQogICAgICAgICAgICAgICAgICAgICAgICBETUEgKENvbXBhdGli aWxpdHksIE5vdEJ1c01hc3RlciwgVHJhbnNmZXI4KSB7Mn0KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgRW5kRGVwZW5kZW50Rm4gKCkKICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDAy LCBJT0xPKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHgwMywg SU9ISSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4MDIsIElP QUQpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDE5LCBJUlFM KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHgxQywgRE1BVikK ICAgICAgICAgICAgICAgICAgICBFTkZHICgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFpl cm8sIExETikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBBQ1RSKQogICAgICAgICAg ICAgICAgICAgIFNMRE0gKERNQ0gsIERNQ0gpCiAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQog ICAgICAgICAgICAgICAgICAgIENLSU8gKElPQUQsIDB4MDMpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoVUFSMSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDUwMSIpKQogICAgICAgICAgICAg ICAgTmFtZSAoX1VJRCwgMHgwMSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFTkZHICgp CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIExETikKICAgICAgICAgICAgICAgICAg ICBJZiAoQUNUUikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IEVYRkcgKCkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTE5vdCAoTEVxdWFsIChJT0FILCAweDAwKSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVY RkcgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRCkKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgRU5GRyAoKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAy LCBMRE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEFDVFIpCiAgICAgICAgICAg ICAgICAgICAgRVhGRyAoKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBOYW1lIChCVUYxLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDNGOCwgMHgwM0Y4 LCAweDA4LCAweDA4KQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHs0fQog ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChCVUYxLCAweDAyLCBJTUlOKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo QlVGMSwgMHgwNCwgSU1BWCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJV RjEsIDB4MDksIElSUVcpCiAgICAgICAgICAgICAgICAgICAgRU5GRyAoKQogICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweDAyLCBMRE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElPQUgs IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMCwgMHgwMiwgTG9j YWwwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIElNSU4pCiAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKExvY2FsMCwgSU1BWCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAo SU5UUiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIEFuZCAoTG9jYWwwLCAweDBGLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgTG9jYWwxKQogICAgICAgICAgICAg ICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwxLCBMb2NhbDAsIElSUVcpCiAgICAgICAgICAgICAgICAg ICAgRVhGRyAoKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfUFJTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRlbnRGbk5vUHJp ICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsIDB4MDNGOCwgMHgwM0Y4LCAweDA4LCAweDA4KQogICAgICAgICAgICAgICAgICAgICAg ICBJUlFOb0ZsYWdzICgpIHs0fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBTdGFydERlcGVuZGVudEZuTm9QcmkgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMkY4LCAweDAyRjgsIDB4MDgsIDB4 MDgpCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkgezN9CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIFN0YXJ0RGVwZW5kZW50Rm5Ob1ByaSAoKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2 LCAweDAzRTgsIDB4MDNFOCwgMHgwOCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgSVJR Tm9GbGFncyAoKSB7NH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg U3RhcnREZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDJFOCwgMHgwMkU4LCAweDA4LCAweDA4KQog ICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHszfQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbmREZXBlbmRlbnRGbiAoKQogICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAs IDB4MDIsIElPTE8pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAw eDAzLCBJT0hJKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgMHgw OSwgSVJRVykKICAgICAgICAgICAgICAgICAgICBFTkZHICgpCiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDIsIExETikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoSU9MTywgTG9jYWww KQogICAgICAgICAgICAgICAgICAgIFNoaWZ0UmlnaHQgKExvY2FsMCwgMHgwMiwgTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgIEFuZCAoTG9jYWwwLCAweEZFLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKElPSEksIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBTaGlmdExl ZnQgKExvY2FsMSwgMHgwNiwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAs IExvY2FsMSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIElPQUgp CiAgICAgICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUlFXLCBMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgSWYgKExHcmVhdGVyIChMb2NhbDAsIDB4MDApKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBJTlRS KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIEFDVFIpCiAgICAgICAgICAgICAgICAg ICAgRVhGRyAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKFVBUjIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDA1MDEiKSkKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDIpCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgRU5GRyAoKQogICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDAzLCBMRE4pCiAgICAgICAgICAgICAgICAgICAgSWYgKEFDVFIpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKExOb3QgKExFcXVhbCAoSU9BSCwgMHgwMCkpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEVORkcgKCkK ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgTEROKQogICAgICAgICAgICAgICAgICAg IFN0b3JlIChaZXJvLCBBQ1RSKQogICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGMiwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSU8gKERlY29kZTE2LCAweDAyRjgsIDB4MDJGOCwgMHgwOCwgMHgwOCkKICAgICAgICAgICAg ICAgICAgICAgICAgSVJRTm9GbGFncyAoKSB7M30KICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGMiwgMHgwMiwgSU1JTikKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRjIsIDB4MDQsIElNQVgpCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYyLCAweDA5LCBJUlEwKQogICAgICAgICAg ICAgICAgICAgIEVORkcgKCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgTEROKQog ICAgICAgICAgICAgICAgICAgIFN0b3JlIChJT0FILCBMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgU2hpZnRMZWZ0IChMb2NhbDAsIDB4MDIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBT dG9yZSAoTG9jYWwwLCBJTUlOKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIElN QVgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElOVFIsIExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICBBbmQgKExvY2FsMCwgMHgwRiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChPbmUsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMSwg TG9jYWwwLCBJUlEwKQogICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJVRjIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFt ZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN0YXJ0RGVwZW5kZW50Rm5Ob1ByaSAoKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAzRjgsIDB4MDNGOCwgMHgw OCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKSB7NH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRlbnRGbk5vUHJp ICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsIDB4MDJGOCwgMHgwMkY4LCAweDA4LCAweDA4KQogICAgICAgICAgICAgICAgICAgICAg ICBJUlFOb0ZsYWdzICgpIHszfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBTdGFydERlcGVuZGVudEZuTm9QcmkgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwM0U4LCAweDAzRTgsIDB4MDgsIDB4 MDgpCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkgezR9CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIFN0YXJ0RGVwZW5kZW50Rm5Ob1ByaSAoKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2 LCAweDAyRTgsIDB4MDJFOCwgMHgwOCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgSVJR Tm9GbGFncyAoKSB7M30KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg RW5kRGVwZW5kZW50Rm4gKCkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDAyLCBJT0xPKQogICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHgwMywgSU9ISSkKICAgICAgICAgICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4MDksIElSUVcpCiAgICAgICAgICAgICAgICAg ICAgRU5GRyAoKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBMRE4pCiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKElPTE8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTaGlm dFJpZ2h0IChMb2NhbDAsIDB4MDIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBBbmQgKExv Y2FsMCwgMHhGRSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChJT0hJLCBMb2Nh bDEpCiAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChMb2NhbDEsIDB4MDYsIExvY2FsMSkK ICAgICAgICAgICAgICAgICAgICBPciAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBJT0FIKQogICAgICAgICAgICAgICAgICAgIEZpbmRT ZXRSaWdodEJpdCAoSVJRVywgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIElmIChMR3JlYXRl ciAoTG9jYWwwLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgSU5UUikKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoT25lLCBBQ1RSKQogICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChMUFQxKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBOYW1lIChQSU9NLCBCdWZmZXIgKDB4MDEpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoUElPTSwgMHgwMCwgTFBUTSkKICAgICAgICAgICAgICAg IE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDA0MDAiKSkKICAgICAgICAgICAgICAgIE1ldGhvZCAo X1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBFTkZHICgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgTEROKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlIChBQ1RSLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgQW5k IChMb2NhbDAsIDB4MDMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChM b2NhbDAsIDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgRVhGRyAoKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4 MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KElPQUgsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExOb3QgKExFcXVhbCAo TG9jYWwxLCAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwRCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVYRkcgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoTG9jYWwwLCBMUFRNKQogICAgICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEVORkcgKCkKICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMRE4pCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MDMsIEFDVFIpCiAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUY1LCBSZXNvdXJjZVRl bXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsIDB4MDM3OCwgMHgwMzc4LCAweDA4LCAweDA4KQogICAgICAgICAgICAgICAg ICAgICAgICBJUlFOb0ZsYWdzICgpIHs3fQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUY1LCAweDAyLCBJTUlOKQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGNSwgMHgwNCwgSU1BWCkKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRjUsIDB4MDYsIExBTE4pCiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUY1LCAweDA3LCBMTEVOKQogICAgICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGNSwgMHgwOSwgSVJRMCkKICAgICAgICAgICAgICAgICAg ICBFTkZHICgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgTEROKQogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChJT0FILCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgU2hpZnRM ZWZ0IChMb2NhbDAsIDB4MDIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9j YWwwLCBJTUlOKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIElNQVgpCiAgICAg ICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoSU1JTiwgMHgwM0JDKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA0LCBMQUxOKQogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwNCwgTExFTikKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MDgsIExBTE4pCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDA4LCBMTEVOKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKElOVFIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgw MSwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwxLCBMb2NhbDAs IElSUTApCiAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQlVGNSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfUFJT LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU3RhcnREZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDM3OCwgMHgwMzc4LCAweDA4LCAweDA4 KQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHs3fQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBTdGFydERlcGVuZGVudEZuTm9QcmkgKCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwg MHgwMjc4LCAweDAyNzgsIDB4MDgsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5v RmxhZ3MgKCkgezV9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIFN0 YXJ0RGVwZW5kZW50Rm5Ob1ByaSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAzQkMsIDB4MDNCQywgMHgwNCwgMHgwNCkKICAg ICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKSB7N30KICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgRW5kRGVwZW5kZW50Rm4gKCkKICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAw eDAyLCBJT0xPKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHgw MywgSU9ISSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4MDks IElSUTApCiAgICAgICAgICAgICAgICAgICAgRU5GRyAoKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChPbmUsIExETikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoSU9MTywgTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgIFNoaWZ0UmlnaHQgKExvY2FsMCwgMHgwMiwgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChJT0hJLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg U2hpZnRMZWZ0IChMb2NhbDEsIDB4MDYsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBPciAo TG9jYWwwLCBMb2NhbDEsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWww LCBJT0FIKQogICAgICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJRMCwgTG9jYWww KQogICAgICAgICAgICAgICAgICAgIElmIChMR3JlYXRlciAoTG9jYWwwLCAweDAwKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWww KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2Fs MCwgSU5UUikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQUNUUiwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgIEFuZCAoTG9jYWwwLCAweEZDLCBMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKExQVE0sIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBPciAoTG9jYWwwLCBM b2NhbDEsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwxLCBBQ1RSKQog ICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgRGV2aWNlIChFQ1AxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwNDAxIikpCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgRU5GRyAoKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIExETikKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoQUNUUiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIEFu ZCAoTG9jYWwwLCAweDAzLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgSWYgKExPciAoTEVx dWFsIChMb2NhbDAsIDB4MDApLCBMRXF1YWwgKExvY2FsMCwgMHgwMikpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJ ZiAoTEVxdWFsIChMb2NhbDAsIDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKExOb3QgKExFcXVhbCAoRE1DSCwgMHgwMCkpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEQpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIEVORkcgKCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMRE4pCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIEFDVFIpCiAgICAgICAgICAgICAgICAgICAgRVhG RyAoKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChCVUY2LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDM3OCwgMHgwMzc4LCAweDA4LCAweDA4 KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDc3OCwgMHgwNzc4LCAw eDA0LCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHs3fQogICAg ICAgICAgICAgICAgICAgICAgICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJh bnNmZXI4KSB7M30KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIENy ZWF0ZVdvcmRGaWVsZCAoQlVGNiwgMHgwMiwgSU1JMSkKICAgICAgICAgICAgICAgICAgICBDcmVh dGVXb3JkRmllbGQgKEJVRjYsIDB4MDQsIElNQTEpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qnl0ZUZpZWxkIChCVUY2LCAweDA2LCBBTE4xKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5 dGVGaWVsZCAoQlVGNiwgMHgwNywgTEVOMSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEJVRjYsIDB4MEEsIElNSTIpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChCVUY2LCAweDBDLCBJTUEyKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQlVGNiwgMHgxMSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQg KEJVRjYsIDB4MTQsIERNQTApCiAgICAgICAgICAgICAgICAgICAgRU5GRyAoKQogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChPbmUsIExETikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoSU9B SCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCAweDAyLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgSU1JMSkKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBJTUExKQogICAgICAgICAgICAgICAgICAgIEFkZCAo TG9jYWwwLCAweDA0MDAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWww LCBJTUkyKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIElNQTIpCiAgICAgICAg ICAgICAgICAgICAgSWYgKExFcXVhbCAoSU1JMSwgMHgwM0JDKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA0LCBBTE4xKQogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgwNCwgTEVOMSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKDB4MDgsIEFMTjEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDA4LCBMRU4xKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKElOVFIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMSwg TG9jYWwxKQogICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwxLCBMb2NhbDAsIElS UTApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERNQ0gsIExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICBBbmQgKExvY2FsMCwgMHgwMywgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDAxLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChMb2NhbDEs IExvY2FsMCwgRE1BMCkKICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCVUY2KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5h bWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBTdGFydERlcGVuZGVudEZuTm9QcmkgKCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwMzc4LCAweDAzNzgsIDB4 MDgsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwNzc4LCAw eDA3NzgsIDB4MDQsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkg ezd9CiAgICAgICAgICAgICAgICAgICAgICAgIERNQSAoQ29tcGF0aWJpbGl0eSwgTm90QnVzTWFz dGVyLCBUcmFuc2ZlcjgpIHsxLDN9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIFN0YXJ0RGVwZW5kZW50Rm5Ob1ByaSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAyNzgsIDB4MDI3OCwgMHgwOCwg MHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDA2NzgsIDB4MDY3 OCwgMHgwNCwgMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKSB7NX0K ICAgICAgICAgICAgICAgICAgICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBOb3RCdXNNYXN0ZXIs IFRyYW5zZmVyOCkgezEsM30KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgU3RhcnREZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDNCQywgMHgwM0JDLCAweDA0LCAweDA0 KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDdCQywgMHgwN0JDLCAw eDA0LCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHs3fQogICAg ICAgICAgICAgICAgICAgICAgICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJh bnNmZXI4KSB7MSwzfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF bmREZXBlbmRlbnRGbiAoKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAsIDB4MDIsIElPTE8pCiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDAzLCBJT0hJKQogICAgICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgMHgxMSwgSVJRMCkKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVCeXRlRmllbGQgKEFyZzAsIDB4MTQsIERNQTApCiAgICAgICAgICAgICAgICAgICAg RU5GRyAoKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIExETikKICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoSU9MTywgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFNoaWZ0Umln aHQgKExvY2FsMCwgMHgwMiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChJT0hJ LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChMb2NhbDEsIDB4MDYsIExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICBPciAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMCkKICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBJT0FIKQogICAgICAgICAgICAgICAgICAg IEZpbmRTZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIElmIChM R3JlYXRlciAoTG9jYWwwLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgSU5UUikKICAgICAgICAgICAgICAgICAg ICBGaW5kU2V0UmlnaHRCaXQgKERNQTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBJZiAo TEdyZWF0ZXIgKExvY2FsMCwgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIERNQ0gpCiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKEFDVFIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBBbmQgKExvY2FsMCwg MHhGQywgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAsIDB4MDEsIExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBBQ1RSKQogICAgICAgICAgICAg ICAgICAgIEVYRkcgKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChLQkNULCBTeXN0ZW1JTywgMHg2MCwgMHgwNSkKICAgICAgICAg ICAgRmllbGQgKEtCQ1QsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFAwNjAsICAgOCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQp LCAKICAgICAgICAgICAgICAgIFAwNjQsICAgOAogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKFBTMk0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBGMTMiKSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFs IChQUzJGLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAo KSB7MTJ9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChC VUYyLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA2MCwgMHgwMDYwLCAweDAxLCAweDAxKQog ICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA2NCwgMHgwMDY0LCAweDAx LCAweDAxKQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHsxMn0KICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEtCREksIDB4 MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExF cXVhbCAoT1NGTCwgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoT1NGTCwgMHgwMSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQlVG MSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQlVGMikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjEpCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBTMkspCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAzMDMi KSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChLQkRJLCAweDAxKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw MCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1l IChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwNjAsIDB4MDA2MCwgMHgwMSwgMHgwMSkKICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA2NCwgMHgwMDY0LCAweDAxLCAweDAxKQog ICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkgezF9CiAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBTTVIpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSkKICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIDB4MDQpCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKExF cXVhbCAoS0JESSwgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoTEVxdWFsIChQUzJGLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKE9TRkwsIDB4MDIpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKE9TRkwsIDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwNjAsIDB4MDA2 MCwgMHgwMSwgMHgwMSkKICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDA2NCwg MHgwMDY0LCAweDAxLCAweDAxKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgRGV2aWNlIChGSVIxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1l IChfSElELCBFaXNhSWQgKCJWSUEzMDc2IikpCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg RU5GRyAoKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDBDLCBMRE4pCiAgICAgICAgICAg ICAgICAgICAgSWYgKEFDVFIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExPciAoSU9BSCwgSU9BTCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYRkcg KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYRkcgKCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRVhGRyAoKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFTkZHICgpCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MEMsIExETikKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoWmVybywgQUNUUikKICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAgICAg ICAgICAgRElTRCAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoQlVGMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAwMDAsIDB4MDAw MCwgMHgwMSwgMHg4MCkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKSB7fQog ICAgICAgICAgICAgICAgICAgICAgICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3Rlciwg VHJhbnNmZXI4KSB7fQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlQnl0ZUZpZWxkIChCVUYxLCAweDAyLCBJT0xPKQogICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJ5dGVGaWVsZCAoQlVGMSwgMHgwMywgSU9ISSkKICAgICAgICAgICAgICAgICAgICBDcmVh dGVCeXRlRmllbGQgKEJVRjEsIDB4MDQsIElPUkwpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qnl0ZUZpZWxkIChCVUYxLCAweDA1LCBJT1JIKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdv cmRGaWVsZCAoQlVGMSwgMHgwOSwgSVJRVykKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRl RmllbGQgKEJVRjEsIDB4MEMsIERNQTApCiAgICAgICAgICAgICAgICAgICAgRU5GRyAoKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDBDLCBMRE4pCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKElPQUwsIElPTE8pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElPQUwsIElPUkwpCiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKElPQUgsIElPSEkpCiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKElPQUgsIElPUkgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgTG9jYWww KQogICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCBJTlRSLCBJUlFXKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChETUNILCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg QW5kIChMb2NhbDAsIDB4MEYsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFs IChMb2NhbDEsIDB4MEEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDYsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFN0b3JlIChPbmUsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBTaGlm dExlZnQgKExvY2FsMSwgTG9jYWwwLCBETUEwKQogICAgICAgICAgICAgICAgICAgIEVYRkcgKCkK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjEpCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTmFtZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFN0YXJ0RGVwZW5kZW50Rm5Ob1ByaSAoKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweEU2 MDAsIDB4RTYwMCwgMHgwMSwgMHg4MCkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFn cyAoKSB7Myw0LDUsNyw5LDEwLDExLDEyfQogICAgICAgICAgICAgICAgICAgICAgICBETUEgKENv bXBhdGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJhbnNmZXI4KSB7NSw2fQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbmREZXBlbmRlbnRGbiAoKQogICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFy ZzAsIDB4MDIsIElPTE8pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcw LCAweDAzLCBJT0hJKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwg MHgwMiwgSU9BRCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4 MDksIElSUVcpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDBD LCBETUEwKQogICAgICAgICAgICAgICAgICAgIEVORkcgKCkKICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHgwQywgTEROKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIEFDVFIpCiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKElPTE8sIElPQUwpCiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKElPSEksIElPQUgpCiAgICAgICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJ UlFXLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgU3VidHJhY3QgKExvY2FsMCwgMHgwMSwg SU5UUikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRE1BMCwgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHg0MCkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwQSwgRE1DSCkKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChETUEwLCBMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgICAgIFN1YnRyYWN0IChMb2NhbDAsIDB4MDEsIERNQ0gpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBFWEZHICgpCiAgICAgICAgICAg ICAgICAgICAgQ0tJTyAoSU9BRCwgMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgU2NvcGUgKFwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoV0lOMiwgU3lzdGVtSU8sIDB4NEUsIDB4MDIpCiAgICAgICAgICAgICAg ICBGaWVsZCAoV0lOMiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBTSU5QLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFNE QVQsICAgOAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEluZGV4RmllbGQgKFNJ TlAsIFNEQVQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgCiAgICAgICAgICAgICAgICAgICAgU0NG RywgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDcpLCAKICAgICAgICAgICAg ICAgICAgICBTTEROLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMCksIAog ICAgICAgICAgICAgICAgICAgIFNESEksICAgOCwgCiAgICAgICAgICAgICAgICAgICAgU0RMTywg ICA4LCAKICAgICAgICAgICAgICAgICAgICBTT1dDLCAgIDgsIAogICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHgzMCksIAogICAgICAgICAgICAgICAgICAgIFNDVFIsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAgICAgICAgICAgICAgU09BSCwgICA4 LCAKICAgICAgICAgICAgICAgICAgICBTT0FMLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHg3MCksIAogICAgICAgICAgICAgICAgICAgIFNOVFIsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDcyKSwgCiAgICAgICAgICAgICAgICAgICAgU05UMSwgICA4LCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NzQpLCAKICAgICAgICAgICAgICAgICAgICBT TUNILCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhDMCksIAogICAgICAgICAg ICAgICAgICAgIFNQNDAsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEYwKSwg CiAgICAgICAgICAgICAgICAgICAgU1BUMSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBTUFQy LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFNQVDMsICAgOCwgCiAgICAgICAgICAgICAgICAg ICAgU1BUNCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBTUFQ1LCAgIDgsIAogICAgICAgICAg ICAgICAgICAgIFNQVDYsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgU1BUNywgICA4CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChTRU5GLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDg3LCBT SU5QKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDg3LCBTSU5QKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoU0VYRiwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhBQSwgU0lOUCkKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChDT001LCBTeXN0ZW1JTywgMHgwM0Y4LCAweDA4KQogICAgICAgICAgICBGaWVsZCAoQ09NNSwg Qnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg UzNGOCwgICA4LCAKICAgICAgICAgICAgICAgIFMzRjksICAgOCwgCiAgICAgICAgICAgICAgICBT M0ZBLCAgIDgsIAogICAgICAgICAgICAgICAgUzNGQiwgICA4LCAKICAgICAgICAgICAgICAgIFMz RkMsICAgOCwgCiAgICAgICAgICAgICAgICBTM0ZELCAgIDgsIAogICAgICAgICAgICAgICAgUzNG RSwgICA4LCAKICAgICAgICAgICAgICAgIFMzRkYsICAgOAogICAgICAgICAgICB9CgogICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKENPTTYsIFN5c3RlbUlPLCAweDAyRjgsIDB4MDgpCiAgICAg ICAgICAgIEZpZWxkIChDT002LCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBTMkY4LCAgIDgsIAogICAgICAgICAgICAgICAgUzJGOSwgICA4 LCAKICAgICAgICAgICAgICAgIFMyRkEsICAgOCwgCiAgICAgICAgICAgICAgICBTMkZCLCAgIDgs IAogICAgICAgICAgICAgICAgUzJGQywgICA4LCAKICAgICAgICAgICAgICAgIFMyRkQsICAgOCwg CiAgICAgICAgICAgICAgICBTMkZFLCAgIDgsIAogICAgICAgICAgICAgICAgUzJGRiwgICA4CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQ09NNywgU3lzdGVtSU8s IDB4MDNFOCwgMHgwOCkKICAgICAgICAgICAgRmllbGQgKENPTTcsIEJ5dGVBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFMzRTgsICAgOCwgCiAgICAg ICAgICAgICAgICBTM0U5LCAgIDgsIAogICAgICAgICAgICAgICAgUzNFQSwgICA4LCAKICAgICAg ICAgICAgICAgIFMzRUIsICAgOCwgCiAgICAgICAgICAgICAgICBTM0VDLCAgIDgsIAogICAgICAg ICAgICAgICAgUzNFRCwgICA4LCAKICAgICAgICAgICAgICAgIFMzRUUsICAgOCwgCiAgICAgICAg ICAgICAgICBTM0VGLCAgIDgKICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChDT004LCBTeXN0ZW1JTywgMHgwMkU4LCAweDA4KQogICAgICAgICAgICBGaWVsZCAoQ09N OCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgUzJFOCwgICA4LCAKICAgICAgICAgICAgICAgIFMyRTksICAgOCwgCiAgICAgICAgICAgICAg ICBTMkVBLCAgIDgsIAogICAgICAgICAgICAgICAgUzJFQiwgICA4LCAKICAgICAgICAgICAgICAg IFMyRUMsICAgOCwgCiAgICAgICAgICAgICAgICBTMkVELCAgIDgsIAogICAgICAgICAgICAgICAg UzJFRSwgICA4LCAKICAgICAgICAgICAgICAgIFMyRUYsICAgOAogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKFNJQ08sIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBMb2NhbDApCiAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChMb2NhbDAsIDB4MDNGOCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKFMzRkQsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUzNGRCwg TG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEMzLCBTM0ZBKQogICAgICAgICAg ICAgICAgICAgIFdoaWxlIChMTm90IChMRXF1YWwgKFMzRkEsIDB4QzEpKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChTM0ZFLCBMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2Fs MCwgMHgwMkY4KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChTMkZELCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChTMkZE LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEMzLCBTMkZBKQogICAg ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTE5vdCAoTEVxdWFsIChTMkZBLCAweEMxKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChTMkZFLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCAweDAzRTgpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUzNF RCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFMzRUQsIExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEMzLCBTM0VBKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKExOb3QgKExFcXVhbCAoUzNFQSwgMHhDMSkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChTM0VFLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChMb2NhbDAsIDB4MDJFOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFMyRUQsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUzJFRCwgTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEMzLCBTMkVBKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFdoaWxlIChMTm90IChMRXF1YWwgKFMyRUEsIDB4QzEpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChTMkVFLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBEZXZpY2UgKFVBUjMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5h bWUgKF9ISUQsIEVpc2FJZCAoIlBOUDA1MDEiKSkKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQs IDB4MDMpCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU0VORiAoKQogICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweDAyLCBTTEROKQogICAgICAgICAgICAgICAgICAgIElmIChTQ1RSKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU0VYRiAoKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChMTm90IChMRXF1YWwgKFNPQUgsIDB4MDApKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VYRiAoKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBEKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VYRiAoKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo X0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBTRU5GICgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIFNMRE4pCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNDVFIpCiAgICAgICAgICAgICAgICAgICAgU0VY RiAoKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChCVUYxLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDNGOCwgMHgwM0Y4LCAweDA4LCAweDA4 KQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHs1fQogICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYxLCAweDAy LCBJTUlOKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGMSwgMHgwNCwg SU1BWCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRjEsIDB4MDksIElS UVcpCiAgICAgICAgICAgICAgICAgICAgU0VORiAoKQogICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDAyLCBTTEROKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChTT0FILCBMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChMb2NhbDAsIDB4MDIsIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBJTUlOKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDAsIElNQVgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFNOVFIsIExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICBBbmQgKExvY2FsMCwgMHgwRiwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlIChPbmUsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBTaGlm dExlZnQgKExvY2FsMSwgTG9jYWwwLCBJUlFXKQogICAgICAgICAgICAgICAgICAgIFNFWEYgKCkK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjEpCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTmFtZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFN0YXJ0RGVwZW5kZW50Rm5Ob1ByaSAoKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAweDAz RjgsIDB4MDNGOCwgMHgwOCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFn cyAoKSB7NX0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgU3RhcnRE ZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDJGOCwgMHgwMkY4LCAweDA4LCAweDA4KQogICAgICAg ICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHsxMH0KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDNFOCwg MHgwM0U4LCAweDA4LCAweDA4KQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgp IHs1fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBTdGFydERlcGVu ZGVudEZuTm9QcmkgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElPIChEZWNvZGUxNiwgMHgwMkU4LCAweDAyRTgsIDB4MDgsIDB4MDgpCiAgICAgICAgICAg ICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkgezEwfQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICBFbmREZXBlbmRlbnRGbiAoKQogICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAsIDB4MDIsIElP TE8pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDAzLCBJT0hJ KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgMHgwOSwgSVJRVykK ICAgICAgICAgICAgICAgICAgICBTRU5GICgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDIsIFNMRE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElPTE8sIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICBTaGlmdFJpZ2h0IChMb2NhbDAsIDB4MDIsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICBBbmQgKExvY2FsMCwgMHhGRSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAg IFN0b3JlIChJT0hJLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChMb2Nh bDEsIDB4MDYsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICBPciAoTG9jYWwwLCBMb2NhbDEs IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBTT0FIKQogICAgICAg ICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJRVywgTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgIElmIChMR3JlYXRlciAoTG9jYWwwLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgU05UUikKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoT25lLCBTQ1RSKQogICAgICAgICAgICAgICAgICAgIFNFWEYg KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChV QVI0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwNTAxIikpCiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA0KQogICAgICAgICAgICAg ICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFNFTkYgKCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywg U0xETikKICAgICAgICAgICAgICAgICAgICBJZiAoU0NUUikKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFNFWEYgKCkKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTE5v dCAoTEVxdWFsIChTT0FILCAweDAwKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNFWEYgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwRCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNFWEYgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw MCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU0VORiAoKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAzLCBTTEROKQogICAgICAgICAgICAgICAgICAgIFN0b3Jl IChaZXJvLCBTQ1RSKQogICAgICAgICAgICAgICAgICAgIFNFWEYgKCkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGMiwgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8g KERlY29kZTE2LCAweDAyRjgsIDB4MDJGOCwgMHgwOCwgMHgwOCkKICAgICAgICAgICAgICAgICAg ICAgICAgSVJRTm9GbGFncyAoKSB7MTB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRjIsIDB4MDIsIElNSU4pCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYyLCAweDA0LCBJTUFYKQogICAgICAgICAgICAg ICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGMiwgMHgwOSwgSVJRMCkKICAgICAgICAgICAgICAg ICAgICBTRU5GICgpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIFNMRE4pCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFNPQUgsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBT aGlmdExlZnQgKExvY2FsMCwgMHgwMiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0b3Jl IChMb2NhbDAsIElNSU4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgSU1BWCkK ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU05UUiwgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgIEFuZCAoTG9jYWwwLCAweDBGLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUg KE9uZSwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwxLCBMb2Nh bDAsIElSUTApCiAgICAgICAgICAgICAgICAgICAgU0VYRiAoKQogICAgICAgICAgICAgICAgICAg IFJldHVybiAoQlVGMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChf UFJTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgU3RhcnREZXBlbmRlbnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsIDB4MDNGOCwgMHgwM0Y4LCAweDA4LCAw eDA4KQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpIHs1fQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBTdGFydERlcGVuZGVudEZuTm9QcmkgKCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUx NiwgMHgwMkY4LCAweDAyRjgsIDB4MDgsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgIElS UU5vRmxhZ3MgKCkgezEwfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBTdGFydERlcGVuZGVudEZuTm9QcmkgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwgMHgwM0U4LCAweDAzRTgsIDB4MDgsIDB4MDgp CiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkgezV9CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIFN0YXJ0RGVwZW5kZW50Rm5Ob1ByaSAoKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LCAw eDAyRTgsIDB4MDJFOCwgMHgwOCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9G bGFncyAoKSB7MTB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVu ZERlcGVuZGVudEZuICgpCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9k IChfU1JTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHgwMiwgSU9MTykKICAgICAgICAgICAgICAg ICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAsIDB4MDMsIElPSEkpCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDA5LCBJUlFXKQogICAgICAgICAgICAgICAgICAg IFNFTkYgKCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgU0xETikKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoSU9MTywgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFNoaWZ0 UmlnaHQgKExvY2FsMCwgMHgwMiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIEFuZCAoTG9j YWwwLCAweEZFLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElPSEksIExvY2Fs MSkKICAgICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMSwgMHgwNiwgTG9jYWwxKQog ICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAsIExvY2FsMSwgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChMb2NhbDAsIFNPQUgpCiAgICAgICAgICAgICAgICAgICAgRmluZFNl dFJpZ2h0Qml0IChJUlFXLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgSWYgKExHcmVhdGVy IChMb2NhbDAsIDB4MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBTTlRSKQogICAgICAgICAgICAgICAgICAgIFN0b3Jl IChPbmUsIFNDVFIpCiAgICAgICAgICAgICAgICAgICAgU0VYRiAoKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFxfU0IuUENJMC5VQVIxLl9QUlcs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA4 LCAKICAgICAgICAgICAgICAgICAgICAweDA1CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICB9CiAgICAgICAgfQogICAgfQp9Cgo= --=====================_-836725448==_--