From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f67.google.com (mail-lf1-f67.google.com [209.85.167.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF9D7145B16; Sat, 19 Jul 2025 23:47:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.67 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752968865; cv=none; b=BHOoU3l+IqMFgYg6BTEprQTxpC9bXrMpfZlWVd6xw/j60cA+5PYXcH+MuMGgHxBIZzXRtr6KBtrW984G/qfcdSJ0d9Vh07XijsE+GVy2dmfwHUo7XTUPiVktLEUSGIUitJMFJNLR1x1DfAOdWEAQSXbnC0UuqvPd2GAxUCRHH6c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752968865; c=relaxed/simple; bh=j/XTjtVDRWaZ7yDfcOi325qO/aee8ddJXFOIup19vNI=; h=Message-ID:Date:MIME-Version:From:Subject:To:Content-Type; b=quDtyfwZ7lkKPwH/+HUxdAyEBcuFasVj7jy/GWs7ORSIGhE/AYlIs/b8lWQOJapP/zmmKlmB6BGRGySP3Ci4NeGrw6UvVHuR8q+Unlbvtzv4t/8yPYFwVxsC01H5AmvsXt4bmtuBU24HNsFqnjbr9CVFaa2/dgG0zkj8d0Z1ucI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=RxPcKcQH; arc=none smtp.client-ip=209.85.167.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RxPcKcQH" Received: by mail-lf1-f67.google.com with SMTP id 2adb3069b0e04-55a27e6da1cso2871693e87.3; Sat, 19 Jul 2025 16:47:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752968820; x=1753573620; darn=vger.kernel.org; h=autocrypt:content-language:to:subject:from:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to; bh=U8/nlV6y6e2gmEWg5i/G1fKL9y9cbbHt3keHcluu/x0=; b=RxPcKcQHxXji79D40O2R6m5d7kmeIJx+4hggLbyY5cTMH96JB6tFdprjmTMbnv9JgD P16PLg+/DyENk/Qf4SQDGosP6X9mB/snazwTFvEZ7Xdw/bMP2t81fc97MaW7AVJub75i iM6PJJbxP6F/SbLd+ev7B95nvKsayWan083qb78j7TCTyKni00IQZd3TdFI2wxAT+gQY 9FKLh6ZY/yF6aWvMtaLoiIiea1/oHddrSr9JzX8/qJAIBNGTVqTIyg0HiCeMLmp/whmy jRX1B6FS90qnpxTQkDDdqufYISz77iz92RzzW6gwsFqUbL/zFXnVvSQ6B2y1okY/r4ep 6iRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752968820; x=1753573620; h=autocrypt:content-language:to:subject:from:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=U8/nlV6y6e2gmEWg5i/G1fKL9y9cbbHt3keHcluu/x0=; b=asHXQoyGa7Ay3OhTKfDqMYNqk+0dGUXSwukL7MkLvrkBdXT45j78/ump4KQzZ19yEI zC9Ql6zOPWGL6kLIXkOU2Ws2qbHlHGiA6mGdayxIwGz1p1Rs1KQLsqduwwZ3uzrmPzY3 u1KcKaV76JsMv0HJXlAAReP/SFJyMgVjQkrOgX/qZijP3i+wQ1NON7GXHqiwmboiRKFI lT2tNpUVmIHVRTR+tUbTRvJH5r8XwHl8sHagySm95pNhSZyVRdO9ntGNnOCuvuSi+QSq gukimO14RsdWC+tusyeOSo0cgKmmir5kzAsqy46oo0YbB9sni3PS3Td7D7Zx15oqWjg3 8luA== X-Forwarded-Encrypted: i=1; AJvYcCX1aSGhkt1fspw6mHGEKlnUy+fbAuMuGBtCDRX8Q4dMDxI7vptOrrD9tWzm8+Wh0QPK2CZLRrL41rGBqQ==@vger.kernel.org, AJvYcCXKdKbplR/F5ZxgimurHAQKEk5FZ9a3aGsOhIdNByOUEGkk6NqZkpibNwMQwlDdxEXvCcS7L8QF2qvOmZ00kgWtjEX8cA==@vger.kernel.org X-Gm-Message-State: AOJu0YxnShw1i91XelYsYM/gJQC4ZXSRIYdmNcXKNm6YycLvV+Kn94h1 WovpFE4YdU1XJIoAtzpCleXNo2y9iwDrCMRt32HG/yKzBMqKGQfSST8Md3lfS/OwdxM4OIyF X-Gm-Gg: ASbGncs7YFy7Ga4/H/w+EDFsICji+iMhs+nUUxOWQ4sgcUy+z58QKs2UCSFC3aBJT0e R/6CHHmHQG1G2xFcJeOfOTJ0Gq+MysiIysd3cEU7wOiV1h3uNQvbg3d446TRRS8dhV5uHY8Z1HV FXJ34Y/Xy0TgFpavh1ahI2G29pNJ990tZk/FiTyW67v9Zf1w+g9BksxtVQK/Z6qk61MovX5m2nS yOYvGN5qMKTvFn9q8VWCZXE34MKd9Amc3cuNRNCqnahLHY1aabXD9hJYbeDcPTTa9Q0C3ScVFQk fLjU9hbHzbe/hiuuirqMeta6J8h8Z0SYausLwNsKjEsD1M9u+sBG6JqvtVj3tKRc5OtbwYuEAU7 QXZeFaC4/pkbcFH8YF5XSc0uRwTHZclOsR7ya1r/x7YqMi9wlSxCGQvypSkoXEPIEsUssHTeaxO FIXTM= X-Google-Smtp-Source: AGHT+IHsWbl8b7ZbO87HEj8ab2BovytH59aj1GrP2XlF4EiIafYkMx04V42QFrRYpalp4oR6HcuPwA== X-Received: by 2002:a05:6512:6ce:b0:553:202e:a41c with SMTP id 2adb3069b0e04-55a23f38862mr4797154e87.28.1752968392207; Sat, 19 Jul 2025 16:39:52 -0700 (PDT) Received: from [192.168.0.122] (broadband-5-228-80-49.ip.moscow.rt.ru. [5.228.80.49]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55a31aac8b3sm888171e87.55.2025.07.19.16.39.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 19 Jul 2025 16:39:50 -0700 (PDT) Message-ID: <6c7e2d8a-8c79-4311-8126-c888a6519c71@gmail.com> Date: Sun, 20 Jul 2025 02:39:47 +0300 Precedence: bulk X-Mailing-List: linux-acpi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Nikita Krasnov Subject: Missing ACPI driver for a keyboard button in Xiaomi RedmiBook Pro 16 To: linux-acpi@vger.kernel.org, linux-input@vger.kernel.org, platform-driver-x86@vger.kernel.org, W_Armin@gmx.de, linux@weissschuh.net, fengwk94@gmail.com Content-Language: en-US, ru Autocrypt: addr=nikita.nikita.krasnov@gmail.com; keydata= xsDNBGf4964BDADGr5n+p1Sr7slmHHMPvp2/dLz0H0qkw1EcdWyX0EP3wlmBcWL5LVYjxO6O m/32hF2WeIYHYU9KZYfhraKCNicilz6HZQV31/ALNahNA5XuZYW9TXvdBpMfqYP8SpHOJZ3B oAMBCt1wi9gv+zVDgOPBkPeY5SbwhnvbAiXjI/gQ5XsTH8Pp9PCQxXz9DZclCr/i7lzSUIBX bdISZXXZPeS1E6qp/cM8Wanv+gE3fS5t5gq0EgNS4pUDaw0VOdl9YsqL4KLD1ItMZh9v58bk 9sfUNEB9Brbxp4NuL2FVKabqVgdmuNnivaU3FrQ2GFQ4gVNJuaBu6G+2wKUwSI8MVK5pl4Py XPFXFhluQnsS2NsjFV4kAIhwpcYzBugBsslL7ivQd873pjmBmGlp73NT8zGpMd8NjmFghC9y UXlZn9veJBGnSBp/3J0bOWREB7uPSebO0cMVxFUBN+V48XL9LwSOG1yl4DNPWlA6KLuS9naE +9AIo8nO0FnzF9wClWJY2fUAEQEAAc0wTmlraXRhIEtyYXNub3YgPG5pa2l0YS5uaWtpdGEu a3Jhc25vdkBnbWFpbC5jb20+wsEOBBMBCgA4FiEEBJPdYgH3VqDBfY4FlxlNs6THfzEFAmf4 964CGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQlxlNs6THfzFkswv/SoHGPp8hEKTa OnBMQb7UVHMSpuZShOo8axS2b80R0ZbVq7YDB3kSXTVc1IQQAstTrIN6/Bx4yubFrtXl1rvl 9pEg7BkiABkc0zY1OWN+K8qDkBBMSAx1ICmXkFvfSEYbH3kJqwyhQxJE8fvUL6V/0adU4cDB EL1BB9FQ4yA8JCekepRA9TNbeCpyRikOF9AtaiiH452WNHmumJQNsHOerDEhxMrQ4wovClDv ae+s5tjsBv91r6fB3x2Fg0Q3iLpWMO4trexaK1eqj9Q3JonDcRPxM55Fpi9VmnA6yI3FOSkG v3FxKMfakz3VBK4sO+YvqJ8abacGnDqjeQAwfOp6XF52o4CkOaiNhfiPf180xza2D/fx3tEX q9E7cvmycfpNyD+yxTSovsRr0LP8J1lpH5EY3ItYTvJpxo5CWN5pJ3RT1gf2gt8IHRIeLmDb uJ3hP3XavkATqCvm9HY2yTVpDNWE52EikI/eRPFounq0uBr2Sr9jgRQAdUHS4pFO61FGzsDN BGf4964BDADNEi4JnZfOWq6egCtMDIuUUXbCxo2Yk1myK/RSr88yAlKO+g9abvt1rp3iR/mK fTtfnBcqoN7S/WVSZqJQhdlg9JzH++xFx3RVHawe/tLZRYvdFgQXUbO+cfBzBcI4CB2UTNpA YVtQDDFZN9G83+G0ANYjBdVHIgGflJfSofc39pvtwNtEmjXcpOjbwCQiWNKsB9etlz0zVMaD ZhxTXOctUu6QBlQO2tuhlGKm9Czb3nxSh5tJmc4+pmv4EKRqJPVETcvEtbTTdr+xWBJss9Fo z2nc/+a+muLoBFA07RtfWnvRpP9jy5JrruZ6qsuZw2+nFigbB+1q2Fv/lFEWYVd8lJAGGvUx aqB5AKyQb8aokQZtnlgvSUtV7c54nlPvUpekPXTH7joUAsYgtH0ypc3G+bCOiF66zzlwzeyF BG1H634mKewODmgchl2nO+M4nza0WWdpHFN23mqcOz0baOsuUu5/bBXwhiZgopRKf8GPKeBq iy6qCualwWVnVDN6B3sAEQEAAcLA9gQYAQoAIBYhBAST3WIB91agwX2OBZcZTbOkx38xBQJn +PeuAhsMAAoJEJcZTbOkx38x+jwMALZM+6Mt9k+6Zz17moqJFy2X7lYFN65DJ4K2Bax6l+CQ hc1ZyJyuBDqZZumfY3uiIrwUBhYVUQzSGHjBKs/IqOkad7fqq+76YE8bI/KNkEJOtsy77G+J LempwVk7vOw1U2p6Eh6j/5AzyMsPsiT0XEHtfO0Vvivc1jSODtkU+ZqoNEMddAUhDUcACsA5 iDsJ8WjCbY/Qy+5BFu+JAdIutf17CKQiUAcAABYqbuIuYg1QkCJYAv3kQV90qx+h+9o64ULl TtuWnCp43ub6V583oFhL9MrmOkixJNpTU50QjabvhT3663DSYTlcWJKFt/Yd4eScqdvQXE/B lrxXFC/a8iQWvTxGBEPBzaSxx8+sybTS5uzrafFidLI0J1WwraAuhxi3BDIdqFBn0T+GtWNw 4i4kR6ebfAnsAucg3zT3mGc8d3bDrqEFDQHnzQE14t44tLim6PjGq7S0B0lwT3JaF4sT1k1d sXwISql2dLWvF4EeopUcuqEmcKFKXR+Ifbxj7A== Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------f1vqfhpUgEIpoDBxJEUvqYGl" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------f1vqfhpUgEIpoDBxJEUvqYGl Content-Type: multipart/mixed; boundary="------------0GDM4uFhZE7JIkntsCoomCVB"; protected-headers="v1" From: Nikita Krasnov To: linux-acpi@vger.kernel.org, linux-input@vger.kernel.org, platform-driver-x86@vger.kernel.org, W_Armin@gmx.de, linux@weissschuh.net, fengwk94@gmail.com Message-ID: <6c7e2d8a-8c79-4311-8126-c888a6519c71@gmail.com> Subject: Missing ACPI driver for a keyboard button in Xiaomi RedmiBook Pro 16 --------------0GDM4uFhZE7JIkntsCoomCVB Content-Type: multipart/mixed; boundary="------------0VdOF4cBu5hIveWjJwb5DsPJ" --------------0VdOF4cBu5hIveWjJwb5DsPJ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello! I have a Xiaomi RedmiBook Pro 16 laptop and I suspect it is missing a driver. The laptop has a top row of F1-F12 buttons that can also control volume, brightness and many other things. Most of them work fine and produce a completely valid output (shown via `acpi_listen` from the `acpid` package): button/mute MUTE 00000080 00000000 button/volumedown VOLDN 00000080 00000000 button/volumeup VOLUP 00000080 00000000 video/brightnessdown BRTDN 00000087 00000000 video/brightnessup BRTUP 00000086 00000000 But then there is a "Mute mic" key (F4 button with an image of a crossed-out microphone). It has an LED that lights up and down when the button is being pressed, but there is no keycode, no dmesg message and no _valid_ ACPI event =E2=80=94 the message in `acpi_listen` is always th= e same, no matter the state of the button. Pressing the button multiple times produces the same output: wmi PNP0C14:00 00000020 00000000 Might be a good time to mention that I nave 0 experience with ACPI, WMI and drivers in general... I tried debugging the issue further and got some data, but I lack the proper knowledge to interpret it. Running `acpidump -b` (from `acpica-tools` package) generated some .dat files which I then decompiled with `iasl -d` (from the same `acpica-tools` package). # acpidump -b # iasl -d dsdt.dat The resulting `dsdt.dsl` file has some code that mentions "PNP0C14". I've attached this file with this email. I also tried restarting the kernel with this configuration (NixOS shenanigans; not sure what exactly it does there), but that didn't seem to produce any extra files or directories on the system (in /sys and /dev). boot.initrd.availableKernelModules =3D [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules =3D [ ]; boot.kernelModules =3D [ "kvm-intel" "wmi-sysfs" "wmi" "acpi_call" ]; boot.extraModulePackages =3D [ ]; Here is some extra info that might be relevant: $ ls /dev/wmi ls: cannot access '/dev/wmi': No such file or directory $ ls -1 /sys/bus/wmi/devices 05901221-D566-11D1-B2F0-00A0C9062910 05901221-D566-11D1-B2F0-00A0C9062910-1 05901221-D566-11D1-B2F0-00A0C9062910-2 05901221-D566-11D1-B2F0-00A0C9062910-3 1DCEAF0A-4D63-44BB-BD0C-0D6281BFDDC5 1F13AB7F-6220-4210-8F8E-8BB5E71EE969 2BC49DEF-7B15-4F05-8BB7-EE37B9547C0B 3F9E3C26-B077-4F86-91F5-37FF64D8C7ED 46C93E13-EE9B-4262-8488-563BCA757FEF 657B6048-310C-4A90-A211-10A17922A0AF A6FEA33E-DABF-46F5-BFC8-460D961BEC9F B60BFB48-3E5B-49E4-A0E9-8CFFE1B3434B F80A5498-23F3-4053-A244-B39067EC476F FA78E245-2C0F-4CA1-91CF-15F34E474850 $ ls /sys/bus/wmi/devices/2BC49DEF-7B15-4F05-8BB7-EE37B9547C0B/ driver_override expensive guid instance_count modalias object_id power subsystem uevent $ uname -a Linux 6.15.5 #1-NixOS SMP PREEMPT_DYNAMIC x86_64 GNU/Linux =20 $ ls /proc/acpi button wakeup $ sudo cat /proc/acpi/button/lid/LID0/state=20 state: open $ sudo cat /proc/acpi/wakeup=20 Device S-state Status Sysfs node AWAC S4 *enabled platform:ACPI000E:00 XDCI S4 *disabled XHCI S4 *enabled pci:0000:00:14.0 HDAS S4 *disabled pci:0000:00:1f.3 I3C0 S4 *disabled CNVW S4 *disabled pci:0000:00:14.3 RP01 S4 *disabled PXSX S4 *disabled RP02 S4 *disabled PXSX S4 *disabled RP03 S4 *disabled PXSX S4 *disabled RP04 S4 *disabled PXSX S4 *disabled RP05 S4 *disabled PXSX S4 *disabled RP06 S4 *disabled PXSX S4 *disabled RP07 S4 *disabled PXSX S4 *disabled RP08 S4 *disabled PXSX S4 *disabled RP09 S4 *enabled pci:0000:00:06.0 PXSX S4 *disabled pci:0000:01:00.0 RP10 S4 *disabled PXSX S4 *disabled RP11 S4 *disabled PXSX S4 *disabled RP12 S4 *disabled PXSX S4 *disabled TXHC S4 *enabled pci:0000:00:0d.0 TDM0 S4 *enabled pci:0000:00:0d.2 TDM1 S4 *disabled TRP0 S4 *disabled PXSX S4 *disabled TRP1 S4 *enabled pci:0000:00:07.0 PXSX S4 *disabled TRP2 S4 *disabled PXSX S4 *disabled TRP3 S4 *disabled PXSX S4 *disabled As I said, I don't actually understand what I'm doing here, but I'd really like to learn! It would be really cool if I ended up having to write and contribute my first driver! Sorry if I am somehow posting this incorrectly. This is my first time communicating here, just trying my best. P.S. CC'ing W_Armin@gmx.de, linux@weissschuh.net and fengwk94@gmail.com since I've got the impression you have some experience with this. --=20 Nikita Krasnov --------------0VdOF4cBu5hIveWjJwb5DsPJ Content-Type: text/x-dsl; charset=UTF-8; name="dsdt.dsl" Content-Disposition: attachment; filename="dsdt.dsl" Content-Transfer-Encoding: base64 LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERp c2Fzc2VtYmxlciB2ZXJzaW9uIDIwMjUwNDA0ICg2NC1iaXQgdmVyc2lvbikKICogQ29weXJp Z2h0IChjKSAyMDAwIC0gMjAyNSBJbnRlbCBDb3Jwb3JhdGlvbgogKiAKICogRGlzYXNzZW1i bGluZyB0byBzeW1ib2xpYyBBU0wrIG9wZXJhdG9ycwogKgogKiBEaXNhc3NlbWJseSBvZiAu Li9kc2R0LmRhdAogKgogKiBPcmlnaW5hbCBUYWJsZSBIZWFkZXI6CiAqICAgICBTaWduYXR1 cmUgICAgICAgICJEU0RUIgogKiAgICAgTGVuZ3RoICAgICAgICAgICAweDAwMDcyRUM4ICg0 NzA3MjgpCiAqICAgICBSZXZpc2lvbiAgICAgICAgIDB4MDIKICogICAgIENoZWNrc3VtICAg ICAgICAgMHg5MwogKiAgICAgT0VNIElEICAgICAgICAgICAiWE1DQyAgIgogKiAgICAgT0VN IFRhYmxlIElEICAgICAiWE1DQzIzMDkiCiAqICAgICBPRU0gUmV2aXNpb24gICAgIDB4MDAw MDAwMDIgKDIpCiAqICAgICBDb21waWxlciBJRCAgICAgICJBQ1BJIgogKiAgICAgQ29tcGls ZXIgVmVyc2lvbiAweDAwMDQwMDAwICgyNjIxNDQpCiAqLwpEZWZpbml0aW9uQmxvY2sgKCIi LCAiRFNEVCIsIDIsICJYTUNDICAiLCAiWE1DQzIzMDkiLCAweDAwMDAwMDAyKQp7CiAgICAv KgogICAgICogaUFTTCBXYXJuaW5nOiBUaGVyZSB3ZXJlIDIwNyBleHRlcm5hbCBjb250cm9s IG1ldGhvZHMgZm91bmQgZHVyaW5nCiAgICAgKiBkaXNhc3NlbWJseSwgYnV0IG9ubHkgNDYz IHdlcmUgcmVzb2x2ZWQgKDQyOTQ5NjcwNDAgdW5yZXNvbHZlZCkuIEFkZGl0aW9uYWwKICAg ICAqIEFDUEkgdGFibGVzIG1heSBiZSByZXF1aXJlZCB0byBwcm9wZXJseSBkaXNhc3NlbWJs ZSB0aGUgY29kZS4gVGhpcwogICAgICogcmVzdWx0aW5nIGRpc2Fzc2VtYmxlciBvdXRwdXQg ZmlsZSBtYXkgbm90IGNvbXBpbGUgYmVjYXVzZSB0aGUKICAgICAqIGRpc2Fzc2VtYmxlciBk aWQgbm90IGtub3cgaG93IG1hbnkgYXJndW1lbnRzIHRvIGFzc2lnbiB0byB0aGUKICAgICAq IHVucmVzb2x2ZWQgbWV0aG9kcy4gTm90ZTogU1NEVHMgY2FuIGJlIGR5bmFtaWNhbGx5IGxv YWRlZCBhdAogICAgICogcnVudGltZSBhbmQgbWF5IG9yIG1heSBub3QgYmUgYXZhaWxhYmxl IHZpYSB0aGUgaG9zdCBPUy4KICAgICAqCiAgICAgKiBUbyBzcGVjaWZ5IHRoZSB0YWJsZXMg bmVlZGVkIHRvIHJlc29sdmUgZXh0ZXJuYWwgY29udHJvbCBtZXRob2QKICAgICAqIHJlZmVy ZW5jZXMsIHRoZSAtZSBvcHRpb24gY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgZmlsZW5h bWVzLgogICAgICogRXhhbXBsZSBpQVNMIGludm9jYXRpb25zOgogICAgICogICAgIGlhc2wg LWUgc3NkdDEuYW1sIHNzZHQyLmFtbCBzc2R0My5hbWwgLWQgZHNkdC5hbWwKICAgICAqICAg ICBpYXNsIC1lIGRzZHQuYW1sIHNzZHQyLmFtbCAtZCBzc2R0MS5hbWwKICAgICAqICAgICBp YXNsIC1lIHNzZHQqLmFtbCAtZCBkc2R0LmFtbAogICAgICoKICAgICAqIEluIGFkZGl0aW9u LCB0aGUgLWZlIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgZmlsZSBjb250YWlu aW5nCiAgICAgKiBjb250cm9sIG1ldGhvZCBleHRlcm5hbCBkZWNsYXJhdGlvbnMgd2l0aCB0 aGUgYXNzb2NpYXRlZCBtZXRob2QKICAgICAqIGFyZ3VtZW50IGNvdW50cy4gRWFjaCBsaW5l IG9mIHRoZSBmaWxlIG11c3QgYmUgb2YgdGhlIGZvcm06CiAgICAgKiAgICAgRXh0ZXJuYWwg KDxtZXRob2QgcGF0aG5hbWU+LCBNZXRob2RPYmosIDxhcmd1bWVudCBjb3VudD4pCiAgICAg KiBJbnZvY2F0aW9uOgogICAgICogICAgIGlhc2wgLWZlIHJlZnMudHh0IC1kIGRzZHQuYW1s CiAgICAgKgogICAgICogVGhlIGZvbGxvd2luZyBtZXRob2RzIHdlcmUgdW5yZXNvbHZlZCBh bmQgbWFueSBub3QgY29tcGlsZSBwcm9wZXJseQogICAgICogYmVjYXVzZSB0aGUgZGlzYXNz ZW1ibGVyIGhhZCB0byBndWVzcyBhdCB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cwogICAgICog cmVxdWlyZWQgZm9yIGVhY2g6CiAgICAgKi8KICAgIEV4dGVybmFsIChfR1BFLkFMNkIsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLkFMNkYsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLkRUSU4sIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlBMNkIsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMNjEsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMNjksIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMNkYsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMNzEsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMQTAsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMQTEsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMQTIsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMQTcsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMQzAsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMQzEsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMQzIsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfR1BFLlNMQzcsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLkJHSUEsIFVu a25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5CR01BLCBVbmtub3duT2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uQkdNUywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLkJUUkss IE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLkNIR0Us IEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLkNQSUQsIFVua25vd25PYmopCiAgICBFeHRl cm5hbCAoX1NCXy5DUFBDLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5EUFRGLCBJbnRP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5EVFNFLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwg KF9TQl8uRFRTRiwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLkdCVFIsIE1ldGhv ZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLkdHT1YsIE1ldGhv ZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLklFVE0sIERldmlj ZU9iaikKICAgIEV4dGVybmFsIChfU0JfLklFVE0uQ0hSRywgRGV2aWNlT2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uTlBDRiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uTlBDRi5B Q0JULCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5OUENGLkRCQUMsIEludE9iaikKICAg IEV4dGVybmFsIChfU0JfLk5QQ0YuREJEQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u T0RWMCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uT0RWMSwgSW50T2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uT0RWMiwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uT0RWMywgSW50 T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uT0RWNCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uT0RWNSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMCwgRGV2aWNlT2JqKQog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5BQ0VULCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5BQ1dBLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5B V0FDLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkFXQUMuV0FTVCwgSW50 T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5DTlZXLkJPRkMsIFVua25vd25PYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLkNOVlcuQ0lSTSwgVW5rbm93bk9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuQ05WVy5DUkZJLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5DTlZXLkRQUlMsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LkNOVlcuRkxSQywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuQ05WVy5Q UlJTLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5DTlZXLlJTVFQsIFVu a25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkNOVlcuUlNUWSwgVW5rbm93bk9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuRENFVCwgVW5rbm93bk9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuRENXQSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuRFBPRiwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuR0JFUywgVW5r bm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuR0ZYMC5DRENLLCBVbmtub3duT2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5HRlgwLkNMSUQsIFVua25vd25PYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLkdGWDAuREQxRiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5HRlgwLkREMkYsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuR0ZYMC5HTElELCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLkdGWDAuSVVFSCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5HRlgwLklVRVIsIEludE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuSENJRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5IREFTLkhJRFcsIE1ldGhvZE9iaikgICAgLy8gNCBBcmd1bWVu dHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuSERBUy5ISVdDLCBNZXRob2RPYmopICAgIC8v IDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkhEQVMuUFBNUywgTWV0aG9k T2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5IREFTLlBT MFgsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuSERBUy5QUzNYLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLkhJRFcsIE1ldGhvZE9iaikgICAgLy8gNCBBcmd1bWVudHMKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuSElXQywgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5JMkMwLlBQREksIFVua25vd25PYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLkkyQzEuUFBESSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChf U0JfLlBDMDAuSTJDMi5QUERJLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5JMkMzLlBQREksIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkkyQzQu UFBESSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuSTJDNS5QUERJLCBV bmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5JTU5HLCBNZXRob2RPYmopICAg IC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLklUU1AsIFVua25vd25P YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuQUNDRiwgTWV0aG9kT2JqKSAgICAv LyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5MUENCLkJQTlQsIE1ldGhv ZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuTFBDQi5E OFhILCBNZXRob2RPYmopICAgIC8vIDIgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLkxQQ0IuREdCQSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuTFBD Qi5IX0VDLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5C QVQwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5CQVQx LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5CTlVNLCBJ bnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FQ05ULCBNZXRob2RP YmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9F Qy5FQ1dULCBNZXRob2RPYmopICAgIC8vIDIgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLkxQQ0IuSF9FQy5FUEVULCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FUkFQLCBNZXRob2RPYmopICAgIC8v IDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FUkIxLCBN ZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQ Q0IuSF9FQy5FUkJBLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FUkJQLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1l bnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FUkNGLCBNZXRob2RPYmop ICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5F UkxELCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLkxQQ0IuSF9FQy5FUk1ULCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FUlBDLCBNZXRob2RPYmopICAgIC8vIDAg QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FUlBELCBNZXRo b2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0Iu SF9FQy5FUlBFLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAwLkxQQ0IuSF9FQy5FUlBILCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRz CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FUlBNLCBNZXRob2RPYmopICAg IC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FUlBO LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LkxQQ0IuSF9FQy5FUlBTLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FUlNQLCBNZXRob2RPYmopICAgIC8vIDAgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5FUlZQLCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9F Qy5MSUQwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLkxQQ0IuSF9FQy5M U1RFLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5MUENCLkhfRUMuT05U TSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5MUENCLkhfRUMuUEdFUiwgTWV0 aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5MUENC LkhfRUMuU1BFVCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5MUENCLkhfRUMuVVBCVCwgTWV0aG9kT2JqKSAgICAvLyAyIEFyZ3VtZW50 cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5MUENCLkhfRUMuVVBDRiwgTWV0aG9kT2JqKSAg ICAvLyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5MUENCLkhfRUMuVVBG UywgTWV0aG9kT2JqKSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5MUENCLkhfRUMuVVRFQywgTWV0aG9kT2JqKSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5MUENCLkhfRUMuV1BFRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFy Z3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5MUENCLkhfRUMuWERBVCwgTWV0aG9k T2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5MUENCLk5S VFMsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuTFBDQi5QREZHLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5MUENC LlBHQ0wsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuTFBDQi5QR1dELCBNZXRob2RPYmopICAgIC8vIDQgQXJndW1lbnRzCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLkxQQ0IuUV9FQy5XT1VCLCBJbnRPYmopCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAwLkxQQ0IuU1BOVCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5MUENCLlNXVUIsIE1ldGhvZE9iaikgICAgLy8gNCBBcmd1 bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuTFBDQi5XS0VDLCBNZXRob2RPYmopICAg IC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLk0zMkIsIFVua25vd25P YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLk0zMkwsIFVua25vd25PYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLk02NEIsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLk02NEwsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlBBVUQuUFVB TSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5QQzJNLCBNZXRob2RPYmopICAgIC8vIDIgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlBEUkMuRFBUUiwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAu UERSQy5FUFRSLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAxLCBE ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEuQURTRCwgTWV0aG9kT2Jq KSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAxLk5GUlAs IE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAu UlAwMS5QQk5VLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEuUElOSSwg TWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDAxLlBQQkEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChf U0JfLlBDMDAuUlAwMS5QUFMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEuUFBTMywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAxLlBSTVYsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuUlAwMS5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDEuUFhTWC5CQ0NYLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDAxLlBYU1guQk9GQywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuUlAwMS5QWFNYLkJSTVQsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAw MS5QWFNYLkNJUk0sIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEu UFhTWC5DUkZJLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAxLlBY U1guRFBSUywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMS5QWFNY LkZERUwsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMS5QWFNYLkZMUkMs IFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEuUFhTWC5JU0dYLCBN ZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDEuUFhTWC5MMUMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDEuUFhTWC5MMUMyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDEuUFhTWC5NU05MLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDEuUFhTWC5QQUhDLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDEuUFhTWC5QREVMLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDEuUFhTWC5QSVhYLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDAxLlBYU1guUE5WTSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAxLlBYU1guUFJFUywgTWV0aG9kT2JqKSAgICAvLyAw IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAxLlBYU1guUFRNUiwgRmll bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAxLlBYU1guUkRMWSwgSW50 T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAxLlBYU1guUlNUWSwgVW5rbm93bk9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMS5QWFNYLlNDQ1gsIFVua25vd25PYmop CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEuUFhTWC5WREVMLCBJbnRPYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEuUFhTWC5XSVNULCBNZXRob2RPYmopICAgIC8vIDAg QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEuUFhTWC5XVkhPLCBJbnRP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEuUFhTWC5XV1NULCBNZXRob2RPYmop ICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEuUkQzQywg SW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAxLlNMT1QsIEludE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMS5VUFJELCBNZXRob2RPYmopICAgIC8vIDEgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDEuVkRJRCwgRmllbGRVbml0T2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDIuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAyLlBCTlUsIEludE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAwMi5QSU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDIuUFBCQSwgTWV0aG9kT2JqKSAgICAvLyAxIEFy Z3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAyLlBQUzAsIE1ldGhvZE9iaikg ICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMi5QUFMzLCBN ZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDIuUFJNViwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAyLlBSVFAsIElu dE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMi5QWFNYLkJDQ1gsIFVua25vd25P YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDIuUFhTWC5CT0ZDLCBVbmtub3duT2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAyLlBYU1guQlJNVCwgSW50T2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAyLlBYU1guQ0lSTSwgVW5rbm93bk9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuUlAwMi5QWFNYLkNSRkksIFVua25vd25PYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlJQMDIuUFhTWC5EUFJTLCBVbmtub3duT2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDAyLlBYU1guRkRFTCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5SUDAyLlBYU1guRkxSQywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuUlAwMi5QWFNYLklTR1gsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMi5QWFNYLkwxQzEsIEZpZWxkVW5pdE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMi5QWFNYLkwxQzIsIEZpZWxkVW5pdE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMi5QWFNYLk1TTkwsIEZpZWxkVW5pdE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMi5QWFNYLlBBSEMsIE1ldGhvZE9iaikgICAgLy8g MCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMi5QWFNYLlBERUwsIElu dE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMi5QWFNYLlBJWFgsIFVua25vd25P YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDIuUFhTWC5QTlZNLCBNZXRob2RPYmop ICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDIuUFhTWC5Q UkVTLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLlJQMDIuUFhTWC5QVE1SLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLlJQMDIuUFhTWC5SRExZLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDIuUFhTWC5SU1RZLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAy LlBYU1guU0NDWCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMi5Q WFNYLlZERUwsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMi5QWFNYLldJ U1QsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuUlAwMi5QWFNYLldWSE8sIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAw Mi5QWFNYLldXU1QsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAwMi5SRDNDLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlJQMDIuU0xPVCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAyLlVQUkQs IE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAu UlAwMi5WRElELCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDMs IERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMy5BRFNELCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDMuUEJO VSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlBJTkksIE1ldGhvZE9i aikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMy5QUEJB LCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlJQMDMuUFBTMCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5SUDAzLlBQUzMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMy5QUk1WLCBJbnRPYmopCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAwLlJQMDMuUFJUUCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDAzLlBYU1guQkNDWCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAw My5QWFNYLkJPRkMsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDMu UFhTWC5CUk1ULCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDMuUFhTWC5D SVJNLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlBYU1guQ1JG SSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMy5QWFNYLkRQUlMs IFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDMuUFhTWC5GREVMLCBJ bnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDMuUFhTWC5GTFJDLCBVbmtub3du T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlBYU1guSVNHWCwgTWV0aG9kT2Jq KSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlBYU1gu TDFDMSwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlBYU1gu TDFDMiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlBYU1gu TVNOTCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlBYU1gu UEFIQywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDAzLlBYU1guUERFTCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDAzLlBYU1guUElYWCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAw My5QWFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAwMy5QWFNYLlBSRVMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVu dHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMy5QWFNYLlBUTVIsIEZpZWxkVW5pdE9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMy5QWFNYLlJETFksIEludE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMy5QWFNYLlJTVFksIFVua25vd25PYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMDMuUFhTWC5TQ0NYLCBVbmtub3duT2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlBYU1guVkRFTCwgSW50T2JqKQogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5SUDAzLlBYU1guV0lTVCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50 cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlBYU1guV1ZITywgSW50T2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlBYU1guV1dTVCwgTWV0aG9kT2JqKSAgICAvLyAw IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlJEM0MsIEludE9iaikK ICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwMy5TTE9ULCBJbnRPYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDMuVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDAzLlZESUQsIEZpZWxkVW5pdE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuUlAwNCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDA0LkFEU0QsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAwNC5QQk5VLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLlJQMDQuUElOSSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDA0LlBQQkEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMK ICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNC5QUFMwLCBNZXRob2RPYmopICAgIC8vIDAg QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDQuUFBTMywgTWV0aG9kT2Jq KSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA0LlBSTVYs IEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNC5QUlRQLCBJbnRPYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDQuUFhTWC5CQ0NYLCBVbmtub3duT2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA0LlBYU1guQk9GQywgVW5rbm93bk9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuUlAwNC5QWFNYLkJSTVQsIEludE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAwNC5QWFNYLkNJUk0sIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAwLlJQMDQuUFhTWC5DUkZJLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5SUDA0LlBYU1guRFBSUywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuUlAwNC5QWFNYLkZERUwsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAu UlAwNC5QWFNYLkZMUkMsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDQuUFhTWC5JU0dYLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDQuUFhTWC5MMUMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDQuUFhTWC5MMUMyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDQuUFhTWC5NU05MLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDQuUFhTWC5QQUhDLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1l bnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDQuUFhTWC5QREVMLCBJbnRPYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDQuUFhTWC5QSVhYLCBVbmtub3duT2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA0LlBYU1guUE5WTSwgTWV0aG9kT2JqKSAgICAvLyAw IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA0LlBYU1guUFJFUywgTWV0 aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA0 LlBYU1guUFRNUiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA0 LlBYU1guUkRMWSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA0LlBYU1gu UlNUWSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNC5QWFNYLlND Q1gsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDQuUFhTWC5WREVM LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDQuUFhTWC5XSVNULCBNZXRo b2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDQu UFhTWC5XVkhPLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDQuUFhTWC5X V1NULCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLlJQMDQuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA0LlNM T1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNC5VUFJELCBNZXRob2RP YmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDQuVkRJ RCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA1LCBEZXZpY2VP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuQURTRCwgTWV0aG9kT2JqKSAgICAv LyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA1Lk5GUlAsIE1ldGhv ZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNS5Q Qk5VLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUElOSSwgTWV0aG9k T2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA1LlBQ QkEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuUlAwNS5QUFMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDUuUFBTMywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA1LlBSTVYsIEludE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAwNS5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlJQMDUuUFhTWC5CQ0NYLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDA1LlBYU1guQk9GQywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAw NS5QWFNYLkJSTVQsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNS5QWFNY LkNJUk0sIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUFhTWC5D UkZJLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA1LlBYU1guRFBS UywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNS5QWFNYLkZERUws IEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNS5QWFNYLkZMUkMsIFVua25v d25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUFhTWC5JU0dYLCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUFhT WC5MMUMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUFhT WC5MMUMyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUFhT WC5NU05MLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUFhT WC5QQUhDLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDUuUFhTWC5QREVMLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlJQMDUuUFhTWC5QSVhYLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDA1LlBYU1guUE5WTSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDA1LlBYU1guUFJFUywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA1LlBYU1guUFRNUiwgRmllbGRVbml0 T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA1LlBYU1guUkRMWSwgSW50T2JqKQog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA1LlBYU1guUlNUWSwgVW5rbm93bk9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNS5QWFNYLlNDQ1gsIFVua25vd25PYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUFhTWC5WREVMLCBJbnRPYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDUuUFhTWC5XSVNULCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1l bnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUFhTWC5XVkhPLCBJbnRPYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUFhTWC5XV1NULCBNZXRob2RPYmopICAgIC8v IDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuUkQzQywgSW50T2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA1LlNMT1QsIEludE9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAwNS5VUFJELCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRz CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDUuVkRJRCwgRmllbGRVbml0T2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDYuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5SUDA2LlBCTlUsIEludE9iaikKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuUlAwNi5QSU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlJQMDYuUFBCQSwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50 cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA2LlBQUzAsIE1ldGhvZE9iaikgICAgLy8g MCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNi5QUFMzLCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDYuUFJN ViwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA2LlBSVFAsIEludE9iaikK ICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNi5QWFNYLkJDQ1gsIFVua25vd25PYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDYuUFhTWC5CT0ZDLCBVbmtub3duT2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA2LlBYU1guQlJNVCwgSW50T2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDA2LlBYU1guQ0lSTSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAwNi5QWFNYLkNSRkksIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAwLlJQMDYuUFhTWC5EUFJTLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5SUDA2LlBYU1guRkRFTCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5SUDA2LlBYU1guRkxSQywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAu UlAwNi5QWFNYLklTR1gsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAwNi5QWFNYLkwxQzEsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAwNi5QWFNYLkwxQzIsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAwNi5QWFNYLk1TTkwsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAwNi5QWFNYLlBBSEMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1 bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNi5QWFNYLlBERUwsIEludE9iaikK ICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNi5QWFNYLlBJWFgsIFVua25vd25PYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDYuUFhTWC5QTlZNLCBNZXRob2RPYmopICAgIC8v IDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDYuUFhTWC5QUkVTLCBN ZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDYuUFhTWC5QVE1SLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDYuUFhTWC5SRExZLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDYuUFhT WC5SU1RZLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA2LlBYU1gu U0NDWCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNi5QWFNYLlZE RUwsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNi5QWFNYLldJU1QsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAw Ni5QWFNYLldWSE8sIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNi5QWFNY LldXU1QsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuUlAwNi5SRDNDLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDYu U0xPVCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA2LlVQUkQsIE1ldGhv ZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNi5W RElELCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDcsIERldmlj ZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNy5BRFNELCBNZXRob2RPYmopICAg IC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDcuUEJOVSwgSW50 T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlBJTkksIE1ldGhvZE9iaikgICAg Ly8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNy5QUEJBLCBNZXRo b2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDcu UFBTMCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDA3LlBQUzMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAwNy5QUk1WLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLlJQMDcuUFJUUCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlBY U1guQkNDWCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNy5QWFNY LkJPRkMsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDcuUFhTWC5C Uk1ULCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDcuUFhTWC5DSVJNLCBV bmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlBYU1guQ1JGSSwgVW5r bm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNy5QWFNYLkRQUlMsIFVua25v d25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDcuUFhTWC5GREVMLCBJbnRPYmop CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDcuUFhTWC5GTFJDLCBVbmtub3duT2JqKQog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlBYU1guSVNHWCwgTWV0aG9kT2JqKSAgICAv LyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlBYU1guTDFDMSwg RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlBYU1guTDFDMiwg RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlBYU1guTVNOTCwg RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlBYU1guUEFIQywg TWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDA3LlBYU1guUERFTCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlBY U1guUElYWCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNy5QWFNY LlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuUlAwNy5QWFNYLlBSRVMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNy5QWFNYLlBUTVIsIEZpZWxkVW5pdE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAwNy5QWFNYLlJETFksIEludE9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAwNy5QWFNYLlJTVFksIFVua25vd25PYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDcuUFhTWC5TQ0NYLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5SUDA3LlBYU1guVkRFTCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDA3LlBYU1guV0lTVCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlBYU1guV1ZITywgSW50T2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDA3LlBYU1guV1dTVCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlJEM0MsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuUlAwNy5TTE9ULCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDcuVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5SUDA3LlZESUQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAwOCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDA4LkFEU0QsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChf U0JfLlBDMDAuUlAwOC5QQk5VLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDguUElOSSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5SUDA4LlBQQkEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuUlAwOC5QUFMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1l bnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDguUFBTMywgTWV0aG9kT2JqKSAgICAv LyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA4LlBSTVYsIEludE9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwOC5QUlRQLCBJbnRPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlJQMDguUFhTWC5CQ0NYLCBVbmtub3duT2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDA4LlBYU1guQk9GQywgVW5rbm93bk9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAwOC5QWFNYLkJSTVQsIEludE9iaikKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuUlAwOC5QWFNYLkNJUk0sIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLlJQMDguUFhTWC5DUkZJLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5SUDA4LlBYU1guRFBSUywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAu UlAwOC5QWFNYLkZERUwsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwOC5Q WFNYLkZMUkMsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDguUFhT WC5JU0dYLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDguUFhTWC5MMUMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDguUFhTWC5MMUMyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDguUFhTWC5NU05MLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDguUFhTWC5QQUhDLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDguUFhTWC5QREVMLCBJbnRPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlJQMDguUFhTWC5QSVhYLCBVbmtub3duT2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDA4LlBYU1guUE5WTSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA4LlBYU1guUFJFUywgTWV0aG9kT2Jq KSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA4LlBYU1gu UFRNUiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA4LlBYU1gu UkRMWSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA4LlBYU1guUlNUWSwg VW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwOC5QWFNYLlNDQ1gsIFVu a25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDguUFhTWC5WREVMLCBJbnRP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDguUFhTWC5XSVNULCBNZXRob2RPYmop ICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDguUFhTWC5X VkhPLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDguUFhTWC5XV1NULCBN ZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MDguUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA4LlNMT1QsIElu dE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwOC5VUFJELCBNZXRob2RPYmopICAg IC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDguVkRJRCwgRmll bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA5LCBEZXZpY2VPYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFy Z3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA5Lk5GUlAsIE1ldGhvZE9iaikg ICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwOS5QQk5VLCBJ bnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuUElOSSwgTWV0aG9kT2JqKSAg ICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA5LlBQQkEsIE1l dGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAw OS5QUFMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDkuUFBTMywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5SUDA5LlBSTVYsIEludE9iaikKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuUlAwOS5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDku UFhTWC5CQ0NYLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA5LlBY U1guQk9GQywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwOS5QWFNY LkJSTVQsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwOS5QWFNYLkNJUk0s IFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuUFhTWC5DUkZJLCBV bmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA5LlBYU1guRFBSUywgVW5r bm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwOS5QWFNYLkZERUwsIEludE9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAwOS5QWFNYLkZMUkMsIFVua25vd25PYmop CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuUFhTWC5JU0dYLCBNZXRob2RPYmopICAg IC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuUFhTWC5MMUMx LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuUFhTWC5MMUMy LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuUFhTWC5NU05M LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuUFhTWC5QQUhD LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlJQMDkuUFhTWC5QREVMLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDku UFhTWC5QSVhYLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA5LlBY U1guUE5WTSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5SUDA5LlBYU1guUFJFUywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA5LlBYU1guUFRNUiwgRmllbGRVbml0T2JqKQog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA5LlBYU1guUkRMWSwgSW50T2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5SUDA5LlBYU1guUlNUWSwgVW5rbm93bk9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAwOS5QWFNYLlNDQ1gsIFVua25vd25PYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMDkuUFhTWC5WREVMLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMDkuUFhTWC5XSVNULCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuUFhTWC5XVkhPLCBJbnRPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlJQMDkuUFhTWC5XV1NULCBNZXRob2RPYmopICAgIC8vIDAgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuUkQzQywgSW50T2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDA5LlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChf U0JfLlBDMDAuUlAwOS5VUFJELCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMDkuVkRJRCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDEwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlJQMTAuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5SUDEwLk5GUlAsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMC5QQk5VLCBJbnRPYmopCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAwLlJQMTAuUElOSSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEwLlBQQkEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1 bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMC5QUFMwLCBNZXRob2RPYmopICAg IC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAuUFBTMywgTWV0 aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEw LlBSTVYsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMC5QUlRQLCBJbnRP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAuUFhTWC5CQ0NYLCBVbmtub3duT2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEwLlBYU1guQk9GQywgVW5rbm93bk9iaikK ICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMC5QWFNYLkJSTVQsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuUlAxMC5QWFNYLkNJUk0sIFVua25vd25PYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlJQMTAuUFhTWC5DUkZJLCBVbmtub3duT2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDEwLlBYU1guRFBSUywgVW5rbm93bk9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAxMC5QWFNYLkZERUwsIEludE9iaikKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuUlAxMC5QWFNYLkZMUkMsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLlJQMTAuUFhTWC5JU0dYLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAuUFhTWC5MMUMxLCBGaWVsZFVuaXRPYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAuUFhTWC5MMUMyLCBGaWVsZFVuaXRPYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAuUFhTWC5NU05MLCBGaWVsZFVuaXRPYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAuUFhTWC5QQUhDLCBNZXRob2RPYmopICAgIC8vIDAg QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAuUFhTWC5QREVMLCBJbnRP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAuUFhTWC5QSVhYLCBVbmtub3duT2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEwLlBYU1guUE5WTSwgTWV0aG9kT2JqKSAg ICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEwLlBYU1guUFJF UywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5SUDEwLlBYU1guUFRNUiwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5SUDEwLlBYU1guUkRMWSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEw LlBYU1guUlNUWSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMC5Q WFNYLlNDQ1gsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAuUFhT WC5WREVMLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAuUFhTWC5XSVNU LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlJQMTAuUFhTWC5XVkhPLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTAu UFhTWC5XV1NULCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAwLlJQMTAuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDEwLlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMC5VUFJELCBN ZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MTAuVkRJRCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDExLCBE ZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEuQURTRCwgTWV0aG9kT2Jq KSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDExLk5GUlAs IE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAu UlAxMS5QQk5VLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEuUElOSSwg TWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDExLlBQQkEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChf U0JfLlBDMDAuUlAxMS5QUFMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEuUFBTMywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDExLlBSTVYsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuUlAxMS5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMTEuUFhTWC5CQ0NYLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDExLlBYU1guQk9GQywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuUlAxMS5QWFNYLkJSTVQsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAx MS5QWFNYLkNJUk0sIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEu UFhTWC5DUkZJLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDExLlBY U1guRFBSUywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMS5QWFNY LkZERUwsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMS5QWFNYLkZMUkMs IFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEuUFhTWC5JU0dYLCBN ZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MTEuUFhTWC5MMUMxLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MTEuUFhTWC5MMUMyLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MTEuUFhTWC5NU05MLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MTEuUFhTWC5QQUhDLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMTEuUFhTWC5QREVMLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMTEuUFhTWC5QSVhYLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDExLlBYU1guUE5WTSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDExLlBYU1guUFJFUywgTWV0aG9kT2JqKSAgICAvLyAw IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDExLlBYU1guUFRNUiwgRmll bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDExLlBYU1guUkRMWSwgSW50 T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDExLlBYU1guUlNUWSwgVW5rbm93bk9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMS5QWFNYLlNDQ1gsIFVua25vd25PYmop CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEuUFhTWC5WREVMLCBJbnRPYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEuUFhTWC5XSVNULCBNZXRob2RPYmopICAgIC8vIDAg QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEuUFhTWC5XVkhPLCBJbnRP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEuUFhTWC5XV1NULCBNZXRob2RPYmop ICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEuUkQzQywg SW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDExLlNMT1QsIEludE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMS5VUFJELCBNZXRob2RPYmopICAgIC8vIDEgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTEuVkRJRCwgRmllbGRVbml0T2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLCBEZXZpY2VPYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMTIuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLkNCTFYsIFVua25vd25PYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlJQMTIuQ0xJRCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChf U0JfLlBDMDAuUlAxMi5ERDEwLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5SUDEyLkREMTEsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIu REQxMiwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5ERDEzLCBV bmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLkREMTQsIFVua25vd25P YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuREQxNSwgVW5rbm93bk9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5EREwyLCBVbmtub3duT2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDEyLkRETDMsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMTIuRERMNCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAu UlAxMi5EREw1LCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLkRE TDYsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuRERMNywgVW5r bm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5EREw4LCBVbmtub3duT2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLkRETDksIFVua25vd25PYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuRElETCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAxMi5ETElELCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuTkZSUCwgTWV0aG9kT2JqKSAgICAvLyAwIEFy Z3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBCTlUsIEludE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QSU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFBCQSwgTWV0aG9kT2JqKSAg ICAvLyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBQUzAsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAx Mi5QUFMzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMTIuUFJNViwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEy LlBSVFAsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLkFTTEMs IFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5CQ0NYLCBV bmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBYU1guQkNMUCwgVW5r bm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLkJPRkMsIFVua25v d25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5CUk1ULCBJbnRPYmop CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5CVElFLCBGaWVsZFVuaXRPYmop CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5DSVJNLCBVbmtub3duT2JqKQog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBYU1guQ1JGSSwgVW5rbm93bk9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLkRCUkwsIFVua25vd25PYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5ER0QxLCBVbmtub3duT2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBYU1guREdEMiwgVW5rbm93bk9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLkRHRDMsIFVua25vd25PYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5ER0Q0LCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5SUDEyLlBYU1guREdENSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChf U0JfLlBDMDAuUlAxMi5QWFNYLkRHRDYsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMTIuUFhTWC5ER0Q3LCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDEyLlBYU1guREdEOCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuUlAxMi5QWFNYLkRHRDksIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlJQMTIuUFhTWC5ER0RBLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDEyLlBYU1guREdEQiwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAx Mi5QWFNYLkRHREMsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIu UFhTWC5ER0RELCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBY U1guREdERSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QWFNY LkRHREYsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5E R0RTLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBYU1guREdE WCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLkROSUQs IFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5EUFJTLCBV bmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBYU1guRURNWCwgVW5r bm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLkZERUwsIEludE9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLkZMUkMsIFVua25vd25PYmop CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5JU0dYLCBNZXRob2RPYmopICAg IC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5MMUMx LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5MMUMy LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5NU05M LCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5QQUhD LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlJQMTIuUFhTWC5QREVMLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIu UFhTWC5QRUdCLlBFR0UuREVEUCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5SUDEyLlBYU1guUElYWCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAu UlAxMi5QWFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLlBSRVMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1 bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLlBUTVIsIEZpZWxkVW5p dE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLlJETFksIEludE9iaikK ICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5QWFNYLlJTVFksIFVua25vd25PYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTIuUFhTWC5TQ0NYLCBVbmtub3duT2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBYU1guVkRFTCwgSW50T2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDEyLlBYU1guV0lTVCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBYU1guV1ZITywgSW50T2JqKQog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlBYU1guV1dTVCwgTWV0aG9kT2JqKSAgICAv LyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlJEM0MsIEludE9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMi5TTE9ULCBJbnRPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlJQMTIuVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50 cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEyLlZESUQsIEZpZWxkVW5pdE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAxMywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5SUDEzLlBSTVYsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAx My5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTMuUkQzQywgSW50 T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDEzLlNMT1QsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuUlAxNCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDE0LlBSTVYsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxNC5Q UlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTQuUkQzQywgSW50T2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDE0LlNMT1QsIEludE9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAxNSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5SUDE1LlBSTVYsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxNS5QUlRQ LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTUuUkQzQywgSW50T2JqKQog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDE1LlNMT1QsIEludE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAxNiwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDE2LlBSTVYsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxNi5QUlRQLCBJ bnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTYuUkQzQywgSW50T2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDE2LlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChf U0JfLlBDMDAuUlAxNywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDE3 LlBSTVYsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxNy5QUlRQLCBJbnRP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTcuUkQzQywgSW50T2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5SUDE3LlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuUlAxOCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDE4LlBS TVYsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxOC5QUlRQLCBJbnRPYmop CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTguUkQzQywgSW50T2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5SUDE4LlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuUlAxOSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDE5LlBSTVYs IEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAxOS5QUlRQLCBJbnRPYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMTkuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5SUDE5LlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAu UlAyMCwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDIwLlBSTVYsIElu dE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAyMC5QUlRQLCBJbnRPYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlJQMjAuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5SUDIwLlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAy MSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDIxLlBSTVYsIEludE9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAyMS5QUlRQLCBJbnRPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlJQMjEuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMC5SUDIxLlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAyMiwg RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDIyLlBSTVYsIEludE9iaikK ICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAyMi5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAwLlJQMjIuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMw MC5SUDIyLlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAyMywgRGV2 aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDIzLlBSTVYsIEludE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuUlAyMy5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAwLlJQMjMuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5S UDIzLlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAyNCwgRGV2aWNl T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDI0LlBSTVYsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuUlAyNC5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAwLlJQMjQuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDI0 LlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAyNSwgRGV2aWNlT2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDI1LlBSTVYsIEludE9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDAuUlAyNS5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLlJQMjUuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDI1LlNM T1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAyNiwgRGV2aWNlT2JqKQog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDI2LlBSTVYsIEludE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuUlAyNi5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlJQMjYuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDI2LlNMT1Qs IEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAyNywgRGV2aWNlT2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDI3LlBSTVYsIEludE9iaikKICAgIEV4dGVybmFsIChf U0JfLlBDMDAuUlAyNy5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQ MjcuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDI3LlNMT1QsIElu dE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuUlAyOCwgRGV2aWNlT2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5SUDI4LlBSTVYsIEludE9iaikKICAgIEV4dGVybmFsIChfU0Jf LlBDMDAuUlAyOC5QUlRQLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlJQMjgu UkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5SUDI4LlNMT1QsIEludE9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuU0FUMC5QUlQwLlBSRVMsIE1ldGhvZE9iaikg ICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuU0FUMC5QUlQxLlBS RVMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD MDAuU0FUMC5QUlQyLlBSRVMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuU0FUMC5QUlQzLlBSRVMsIE1ldGhvZE9iaikgICAgLy8gMCBB cmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuU0FUMC5QUlQ0LlBSRVMsIE1ldGhv ZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuU0FUMC5Q UlQ1LlBSRVMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChf U0JfLlBDMDAuU0FUMC5QUlQ2LCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlNBVDAuUFJUNi5QUkVTLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlNBVDAuUFJUNywgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5TQVQwLlBSVDcuUFJFUywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5TQVQwLlNBVEMsIE1ldGhvZE9iaikgICAgLy8gMSBB cmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuU0FUMC5TQVRELCBNZXRob2RPYmop ICAgIC8vIDQgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlNXQUssIE1ldGhv ZE9iaikgICAgLy8gMiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuVERNMCwg RGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5URE0wLl9TVEEsIFVua25vd25P YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlRETTAuU0NNRSwgVW5rbm93bk9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuVERNMC5TVENNLCBNZXRob2RPYmopICAgIC8vIDIgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlRETTEsIERldmljZU9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuVERNMS5fU1RBLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5URE0xLlNDTUUsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAwLlRETTEuU1RDTSwgTWV0aG9kT2JqKSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMC5USEMwLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAw LlRIQzAuQ0lOSSwgTWV0aG9kT2JqKSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMC5USEMxLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlRI QzEuQ0lOSSwgTWV0aG9kT2JqKSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5UWEhDLCBEZXZpY2VPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLlVGMEUs IFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAwLldNSUQuUVYyMCwgTWV0aG9k T2JqKSAgICAvLyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5YSENJLl9Q UzAuUFMwWCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMC5YSENJLl9QUzMuUFMzWCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMC5YSENJLkRVQU0sIE1ldGhvZE9iaikgICAgLy8gMCBB cmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuWEhDSS5QTUVFLCBJbnRPYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlhIQ0kuUkhVQi5IUzAzLlZUQ00sIEludE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuWEhDSS5SSFVCLkhTMDUuVlRDTSwgSW50T2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMC5YSENJLlJIVUIuSFMxMC5CUk1ULCBJbnRPYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlhIQ0kuUkhVQi5IUzEwLkNCVEEsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDAuWEhDSS5SSFVCLkhTMTAuQ0JUQywgSW50T2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMC5YSENJLlJIVUIuSFMxMC5DQlRJLCBJbnRPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAwLlhIQ0kuUkhVQi5IUzEwLkNSRlAsIFVua25vd25PYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAwLlhIQ0kuUkhVQi5IUzEwLlJETFksIFVua25vd25PYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAwLlhIQ0kuUkhVQi5IUzEwLldWSE8sIEludE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDAuWEhDSS5SSFVCLklOSVIsIE1ldGhvZE9iaikgICAgLy8g MCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuWEhDSS5SSFVCLlBTMFgsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDAuWEhD SS5SSFVCLlBTMlgsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFs IChfU0JfLlBDMDAuWEhDSS5SSFVCLlBTM1gsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVu dHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChf U0JfLlBDMDIuSERBUy5ISURXLCBNZXRob2RPYmopICAgIC8vIDQgQXJndW1lbnRzCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAyLkhEQVMuSElXQywgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5IREFTLlBQTVMsIE1ldGhvZE9iaikgICAg Ly8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuSERBUy5QUzBYLCBNZXRo b2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLkhEQVMu UFMzWCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMi5IREJPLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5ISURXLCBN ZXRob2RPYmopICAgIC8vIDQgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLkhJ V0MsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD MDIuSTJDMC5QUERJLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5JMkMx LlBQREksIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLkkyQzIuUFBESSwg VW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuSTJDMy5QUERJLCBVbmtub3du T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5JMkM0LlBQREksIFVua25vd25PYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAyLkkyQzUuUFBESSwgVW5rbm93bk9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDIuUEJTQiwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBD MDIuUFBNQy5BQ0VULCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5QUE1D LkFDV0EsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlBQTUMuRENFVCwg VW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUFBNQy5EQ1dBLCBVbmtub3du T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDAxLCBEZXZpY2VPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAyLlJQMDEuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50 cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDAxLlBCTlUsIEludE9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDIuUlAwMS5QSU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRz CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDEuUFBCQSwgTWV0aG9kT2JqKSAgICAvLyAx IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDAxLlBQUzAsIE1ldGhvZE9i aikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwMS5QUFMz LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAy LlJQMDEuUFJNViwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDAxLlBSVFAs IEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwMS5QWFNYLlBBSEMsIE1ldGhv ZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwMS5Q WFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChf U0JfLlBDMDIuUlAwMS5SRDNDLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQ MDEuU0xPVCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDAxLlVQUkQsIE1l dGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAw MS5WRElELCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDIuQURT RCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMw Mi5SUDAyLlBCTlUsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwMi5QSU5J LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAy LlJQMDIuUFBCQSwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMi5SUDAyLlBQUzAsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDMDIuUlAwMi5QUFMzLCBNZXRob2RPYmopICAgIC8vIDAgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDIuUFhTWC5QQUhDLCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDIuUFhT WC5QTlZNLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAyLlJQMDIuVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMi5SUDAyLlZESUQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDIuUlAwMy5BRFNELCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDMuUEJOVSwgSW50T2JqKQogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMi5SUDAzLlBJTkksIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDMDIuUlAwMy5QUEJBLCBNZXRob2RPYmopICAgIC8vIDEgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDMuUFBTMCwgTWV0aG9kT2JqKSAg ICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDAzLlBQUzMsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAw My5QWFNYLlBBSEMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFs IChfU0JfLlBDMDIuUlAwMy5QWFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVu dHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwMy5VUFJELCBNZXRob2RPYmopICAgIC8v IDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDMuVkRJRCwgRmllbGRV bml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA0LCBEZXZpY2VPYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAyLlJQMDQuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA0LlBCTlUsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDIuUlAwNC5QSU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1l bnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDQuUFBCQSwgTWV0aG9kT2JqKSAgICAv LyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA0LlBQUzAsIE1ldGhv ZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwNC5Q UFMzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAyLlJQMDQuUFJNViwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA0LlBS VFAsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwNC5QWFNYLlBBSEMsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAw NC5QWFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFs IChfU0JfLlBDMDIuUlAwNC5SRDNDLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAy LlJQMDQuU0xPVCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA0LlVQUkQs IE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIu UlAwNC5WRElELCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDUs IERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwNS5BRFNELCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDUuUEJO VSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA1LlBJTkksIE1ldGhvZE9i aikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwNS5QUEJB LCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAy LlJQMDUuUFBTMCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMi5SUDA1LlBQUzMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDMDIuUlAwNS5QUk1WLCBJbnRPYmopCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAyLlJQMDUuUFJUUCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5S UDA1LlBYU1guUEFIQywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMi5SUDA1LlBYU1guUE5WTSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA1LlJEM0MsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDIuUlAwNS5TTE9ULCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAyLlJQMDUuVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMi5SUDA1LlZESUQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDIuUlAwNi5BRFNELCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDYuUEJOVSwgSW50T2JqKQogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMi5SUDA2LlBJTkksIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDMDIuUlAwNi5QUEJBLCBNZXRob2RPYmopICAgIC8vIDEgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDYuUFBTMCwgTWV0aG9kT2JqKSAg ICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA2LlBQUzMsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAw Ni5QWFNYLlBBSEMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFs IChfU0JfLlBDMDIuUlAwNi5QWFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVu dHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwNi5VUFJELCBNZXRob2RPYmopICAgIC8v IDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDYuVkRJRCwgRmllbGRV bml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA3LCBEZXZpY2VPYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAyLlJQMDcuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA3LlBCTlUsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDIuUlAwNy5QSU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1l bnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDcuUFBCQSwgTWV0aG9kT2JqKSAgICAv LyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA3LlBQUzAsIE1ldGhv ZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwNy5Q UFMzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAyLlJQMDcuUFJNViwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA3LlBS VFAsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwNy5QWFNYLlBBSEMsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAw Ny5QWFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFs IChfU0JfLlBDMDIuUlAwNy5SRDNDLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAy LlJQMDcuU0xPVCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA3LlVQUkQs IE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIu UlAwNy5WRElELCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDgs IERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwOC5BRFNELCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDguUEJO VSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA4LlBJTkksIE1ldGhvZE9i aikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwOC5QUEJB LCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAy LlJQMDguUFBTMCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwg KF9TQl8uUEMwMi5SUDA4LlBQUzMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDMDIuUlAwOC5QUk1WLCBJbnRPYmopCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAyLlJQMDguUFJUUCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5S UDA4LlBYU1guUEFIQywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMi5SUDA4LlBYU1guUE5WTSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA4LlJEM0MsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDIuUlAwOC5TTE9ULCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAyLlJQMDguVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMi5SUDA4LlZESUQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDIuUlAwOSwgRGV2aWNlT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5S UDA5LkFEU0QsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChf U0JfLlBDMDIuUlAwOS5QQk5VLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQ MDkuUElOSSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMi5SUDA5LlBQQkEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4 dGVybmFsIChfU0JfLlBDMDIuUlAwOS5QUFMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1l bnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDkuUFBTMywgTWV0aG9kT2JqKSAgICAv LyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA5LlBSTVYsIEludE9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwOS5QUlRQLCBJbnRPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAyLlJQMDkuUFhTWC5QQUhDLCBNZXRob2RPYmopICAgIC8vIDAgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDkuUFhTWC5QTlZNLCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDkuUkQz QywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDA5LlNMT1QsIEludE9iaikK ICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAwOS5VUFJELCBNZXRob2RPYmopICAgIC8vIDEg QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMDkuVkRJRCwgRmllbGRVbml0 T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDEwLkFEU0QsIE1ldGhvZE9iaikgICAg Ly8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxMC5QQk5VLCBJbnRP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTAuUElOSSwgTWV0aG9kT2JqKSAgICAv LyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDEwLlBQQkEsIE1ldGhv ZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxMC5Q UFMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAyLlJQMTAuUFBTMywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMi5SUDEwLlBYU1guUEFIQywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDEwLlBYU1guUE5WTSwgTWV0aG9kT2Jq KSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDEwLlVQUkQs IE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIu UlAxMC5WRElELCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTEu QURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMi5SUDExLlBCTlUsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxMS5Q SU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAyLlJQMTEuUFBCQSwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMi5SUDExLlBQUzAsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMK ICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxMS5QUFMzLCBNZXRob2RPYmopICAgIC8vIDAg QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTEuUFhTWC5QQUhDLCBNZXRo b2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTEu UFhTWC5QTlZNLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAyLlJQMTEuVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDExLlZESUQsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVy bmFsIChfU0JfLlBDMDIuUlAxMi5BRFNELCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRz CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTIuUEJOVSwgSW50T2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMi5SUDEyLlBJTkksIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMK ICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxMi5QUEJBLCBNZXRob2RPYmopICAgIC8vIDEg QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTIuUFBTMCwgTWV0aG9kT2Jq KSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDEyLlBQUzMs IE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIu UlAxMi5QWFNYLlBBSEMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVy bmFsIChfU0JfLlBDMDIuUlAxMi5QWFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1 bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxMi5VUFJELCBNZXRob2RPYmopICAg IC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTIuVkRJRCwgRmll bGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDEzLCBEZXZpY2VPYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTMuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFy Z3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDEzLlBCTlUsIEludE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDIuUlAxMy5QSU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTMuUFBCQSwgTWV0aG9kT2JqKSAg ICAvLyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDEzLlBQUzAsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAx My5QUFMzLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAyLlJQMTMuUFJNViwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDEz LlBSVFAsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxMy5QWFNYLlBBSEMs IE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIu UlAxMy5QWFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVy bmFsIChfU0JfLlBDMDIuUlAxMy5SRDNDLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAyLlJQMTMuU0xPVCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDEzLlVQ UkQsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD MDIuUlAxMy5WRElELCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQ MTQuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMi5SUDE0LlBCTlUsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAx NC5QSU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAyLlJQMTQuUFBCQSwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMi5SUDE0LlBQUzAsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVu dHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxNC5QUFMzLCBNZXRob2RPYmopICAgIC8v IDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTQuUFhTWC5QQUhDLCBN ZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQ MTQuUFhTWC5QTlZNLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAyLlJQMTQuVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE0LlZESUQsIEZpZWxkVW5pdE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlBDMDIuUlAxNS5BRFNELCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1l bnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTUuUEJOVSwgSW50T2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMi5SUDE1LlBJTkksIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVu dHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxNS5QUEJBLCBNZXRob2RPYmopICAgIC8v IDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTUuUFBTMCwgTWV0aG9k T2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE1LlBQ UzMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD MDIuUlAxNS5QWFNYLlBBSEMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4 dGVybmFsIChfU0JfLlBDMDIuUlAxNS5QWFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8gMCBB cmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxNS5VUFJELCBNZXRob2RPYmop ICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTUuVkRJRCwg RmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE2LkFEU0QsIE1ldGhv ZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxNi5Q Qk5VLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTYuUElOSSwgTWV0aG9k T2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE2LlBQ QkEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBD MDIuUlAxNi5QUFMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAyLlJQMTYuUFBTMywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE2LlBYU1guUEFIQywgTWV0aG9kT2JqKSAgICAv LyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE2LlBYU1guUE5WTSwg TWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5S UDE2LlVQUkQsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChf U0JfLlBDMDIuUlAxNi5WRElELCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5Q QzAyLlJQMTcsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxNy5BRFNE LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAy LlJQMTcuUEJOVSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE3LlBJTkks IE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIu UlAxNy5QUEJBLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAyLlJQMTcuUFBTMCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE3LlBQUzMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1 bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxNy5QUk1WLCBJbnRPYmopCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAyLlJQMTcuUFJUUCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uUEMwMi5SUDE3LlBYU1guUEFIQywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE3LlBYU1guUE5WTSwgTWV0aG9kT2JqKSAgICAv LyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE3LlJEM0MsIEludE9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxNy5TTE9ULCBJbnRPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAyLlJQMTcuVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50 cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE3LlZESUQsIEZpZWxkVW5pdE9iaikKICAg IEV4dGVybmFsIChfU0JfLlBDMDIuUlAxOC5BRFNELCBNZXRob2RPYmopICAgIC8vIDAgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTguUEJOVSwgSW50T2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE4LlBJTkksIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1 bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxOC5QUEJBLCBNZXRob2RPYmopICAg IC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTguUFBTMCwgTWV0 aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE4 LlBQUzMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0Jf LlBDMDIuUlAxOC5QWFNYLlBBSEMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAg IEV4dGVybmFsIChfU0JfLlBDMDIuUlAxOC5QWFNYLlBOVk0sIE1ldGhvZE9iaikgICAgLy8g MCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAxOC5VUFJELCBNZXRob2RP YmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTguVkRJ RCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE5LkFEU0QsIE1l dGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAx OS5QQk5VLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMTkuUElOSSwgTWV0 aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE5 LlBQQkEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0Jf LlBDMDIuUlAxOS5QUFMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAyLlJQMTkuUFBTMywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50 cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE5LlBYU1guUEFIQywgTWV0aG9kT2JqKSAg ICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDE5LlBYU1guUE5W TSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMw Mi5SUDE5LlVQUkQsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFs IChfU0JfLlBDMDIuUlAxOS5WRElELCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAyLlJQMjAuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uUEMwMi5SUDIwLlBCTlUsIEludE9iaikKICAgIEV4dGVybmFsIChfU0Jf LlBDMDIuUlAyMC5QSU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAyLlJQMjAuUFBCQSwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50 cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDIwLlBQUzAsIE1ldGhvZE9iaikgICAgLy8g MCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyMC5QUFMzLCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjAuUFhT WC5QQUhDLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAyLlJQMjAuUFhTWC5QTlZNLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAg ICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjAuVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAxIEFy Z3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDIwLlZESUQsIEZpZWxkVW5pdE9i aikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyMSwgRGV2aWNlT2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uUEMwMi5SUDIxLkFEU0QsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMK ICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyMS5QQk5VLCBJbnRPYmopCiAgICBFeHRlcm5h bCAoX1NCXy5QQzAyLlJQMjEuUElOSSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwog ICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDIxLlBQQkEsIE1ldGhvZE9iaikgICAgLy8gMSBB cmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyMS5QUFMwLCBNZXRob2RPYmop ICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjEuUFBTMywg TWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5S UDIxLlBSTVYsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyMS5QUlRQLCBJ bnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjEuUFhTWC5QQUhDLCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjEuUFhT WC5QTlZNLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NC Xy5QQzAyLlJQMjEuUkQzQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDIx LlNMT1QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyMS5VUFJELCBNZXRo b2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjEu VkRJRCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDIyLkFEU0Qs IE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIu UlAyMi5QQk5VLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjIuUElOSSwg TWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5S UDIyLlBQQkEsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChf U0JfLlBDMDIuUlAyMi5QUFMwLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAyLlJQMjIuUFBTMywgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDIyLlBYU1guUEFIQywgTWV0aG9kT2Jq KSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDIyLlBYU1gu UE5WTSwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMi5SUDIyLlVQUkQsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVy bmFsIChfU0JfLlBDMDIuUlAyMi5WRElELCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAyLlJQMjMuQURTRCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAg RXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDIzLlBCTlUsIEludE9iaikKICAgIEV4dGVybmFsIChf U0JfLlBDMDIuUlAyMy5QSU5JLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBF eHRlcm5hbCAoX1NCXy5QQzAyLlJQMjMuUFBCQSwgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3Vt ZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDIzLlBQUzAsIE1ldGhvZE9iaikgICAg Ly8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyMy5QUFMzLCBNZXRo b2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjMu UFhTWC5QQUhDLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAo X1NCXy5QQzAyLlJQMjMuUFhTWC5QTlZNLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRz CiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjMuVVBSRCwgTWV0aG9kT2JqKSAgICAvLyAx IEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDIzLlZESUQsIEZpZWxkVW5p dE9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyNC5BRFNELCBNZXRob2RPYmopICAg IC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjQuUEJOVSwgSW50 T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5SUDI0LlBJTkksIE1ldGhvZE9iaikgICAg Ly8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyNC5QUEJBLCBNZXRo b2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlJQMjQu UFBTMCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8u UEMwMi5SUDI0LlBQUzMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVy bmFsIChfU0JfLlBDMDIuUlAyNC5QWFNYLlBBSEMsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1 bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyNC5QWFNYLlBOVk0sIE1ldGhvZE9i aikgICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuUlAyNC5VUFJE LCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAy LlJQMjQuVkRJRCwgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5TQVQw LlNBVEMsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0Jf LlBDMDIuU0FUMC5TQVRELCBNZXRob2RPYmopICAgIC8vIDQgQXJndW1lbnRzCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAyLlRIQzAuQ0lOSSwgTWV0aG9kT2JqKSAgICAvLyAyIEFyZ3VtZW50 cwogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5USEMxLkNJTkksIE1ldGhvZE9iaikgICAgLy8g MiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuVk1ERSwgVW5rbm93bk9iaikK ICAgIEV4dGVybmFsIChfU0JfLlBDMDIuVk1QUCwgVW5rbm93bk9iaikKICAgIEV4dGVybmFs IChfU0JfLlBDMDIuWEhDSS5fUFMwLlBTMFgsIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVu dHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuWEhDSS5fUFMzLlBTM1gsIE1ldGhvZE9iaikg ICAgLy8gMCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChfU0JfLlBDMDIuWEhDSS5SSFVCLkhT MDMuVlRDTSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEMwMi5YSENJLlJIVUIuSFMw NS5WVENNLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlhIQ0kuUkhVQi5JTklS LCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAy LlhIQ0kuUkhVQi5QUzBYLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRl cm5hbCAoX1NCXy5QQzAyLlhIQ0kuUkhVQi5QUzJYLCBNZXRob2RPYmopICAgIC8vIDAgQXJn dW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QQzAyLlhIQ0kuUkhVQi5QUzNYLCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QRFRTLCBVbmtub3du T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUEdQSS5TR09WLCBNZXRob2RPYmopICAgIC8vIDIg QXJndW1lbnRzCiAgICBFeHRlcm5hbCAoX1NCXy5QS0dBLCBVbmtub3duT2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uUFBCRywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uUFIwMC5MUFNT LCBQa2dPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5QUjAwLlRQU1MsIFBrZ09iaikKICAgIEV4 dGVybmFsIChfU0JfLlBXUkIsIERldmljZU9iaikKICAgIEV4dGVybmFsIChfU0JfLlBXUkIu UEJTVCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uU0dPViwgTWV0aG9kT2JqKSAgICAv LyAyIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKF9TQl8uU1JTUCwgSW50T2JqKQogICAgRXh0 ZXJuYWwgKF9TQl8uVENXSywgTWV0aG9kT2JqKSAgICAvLyAxIEFyZ3VtZW50cwogICAgRXh0 ZXJuYWwgKF9TQl8uVFBNXy5QVFNfLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRzCiAg ICBFeHRlcm5hbCAoX1NCXy5UUlBELCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKF9TQl8u VFJQRiwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMsIERldmljZU9iaikK ICAgIEV4dGVybmFsIChfU0JfLlVCVEMuQ0NJMCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uVUJUQy5DQ0kxLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5VQlRDLkNDSTIsIElu dE9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMuQ0NJMywgSW50T2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uVUJUQy5DVEwwLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5VQlRDLkNU TDEsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMuQ1RMMiwgSW50T2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uVUJUQy5DVEwzLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5V QlRDLkNUTDQsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMuQ1RMNSwgSW50T2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uVUJUQy5DVEw2LCBJbnRPYmopCiAgICBFeHRlcm5hbCAo X1NCXy5VQlRDLkNUTDcsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMuTUdJMCwg SW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uVUJUQy5NR0kxLCBJbnRPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5VQlRDLk1HSTIsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMu TUdJMywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uVUJUQy5NR0k0LCBJbnRPYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5VQlRDLk1HSTUsIEludE9iaikKICAgIEV4dGVybmFsIChfU0Jf LlVCVEMuTUdJNiwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uVUJUQy5NR0k3LCBJbnRP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5VQlRDLk1HSTgsIEludE9iaikKICAgIEV4dGVybmFs IChfU0JfLlVCVEMuTUdJOSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uVUJUQy5NR0lB LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5VQlRDLk1HSUIsIEludE9iaikKICAgIEV4 dGVybmFsIChfU0JfLlVCVEMuTUdJQywgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uVUJU Qy5NR0lELCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5VQlRDLk1HSUUsIEludE9iaikK ICAgIEV4dGVybmFsIChfU0JfLlVCVEMuTUdJRiwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9T Ql8uVUJUQy5NR08wLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5VQlRDLk1HTzEsIElu dE9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMuTUdPMiwgSW50T2JqKQogICAgRXh0ZXJu YWwgKF9TQl8uVUJUQy5NR08zLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5VQlRDLk1H TzQsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMuTUdPNSwgSW50T2JqKQogICAg RXh0ZXJuYWwgKF9TQl8uVUJUQy5NR082LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoX1NCXy5V QlRDLk1HTzcsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMuTUdPOCwgSW50T2Jq KQogICAgRXh0ZXJuYWwgKF9TQl8uVUJUQy5NR085LCBJbnRPYmopCiAgICBFeHRlcm5hbCAo X1NCXy5VQlRDLk1HT0EsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMuTUdPQiwg SW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uVUJUQy5NR09DLCBJbnRPYmopCiAgICBFeHRl cm5hbCAoX1NCXy5VQlRDLk1HT0QsIEludE9iaikKICAgIEV4dGVybmFsIChfU0JfLlVCVEMu TUdPRSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uVUJUQy5NR09GLCBJbnRPYmopCiAg ICBFeHRlcm5hbCAoX1NCXy5VQlRDLlJTVjEsIEludE9iaikKICAgIEV4dGVybmFsIChfU0Jf LlVCVEMuUlNWMiwgSW50T2JqKQogICAgRXh0ZXJuYWwgKF9TQl8uVUJUQy5WRVIxLCBJbnRP YmopCiAgICBFeHRlcm5hbCAoX1NCXy5VQlRDLlZFUjIsIEludE9iaikKICAgIEV4dGVybmFs IChfVFpfLkVUTUQsIEludE9iaikKICAgIEV4dGVybmFsIChfVFpfLlRaMDAsIERldmljZU9i aikKICAgIEV4dGVybmFsIChfVFpfLlRaMDAuX1RNUCwgTWV0aG9kT2JqKSAgICAvLyAwIEFy Z3VtZW50cwogICAgRXh0ZXJuYWwgKEFDMEYsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFs IChBQzFGLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoQUNFVCwgSW50T2JqKQogICAg RXh0ZXJuYWwgKEFDV0EsIEludE9iaikKICAgIEV4dGVybmFsIChBREJHLCBNZXRob2RPYmop ICAgIC8vIDEgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoQVJMUCwgVW5rbm93bk9iaikKICAg IEV4dGVybmFsIChBUkxTLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKEIxRE4sIEludE9i aikKICAgIEV4dGVybmFsIChCMU1OLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoQjFTTiwgSW50 T2JqKQogICAgRXh0ZXJuYWwgKEJHSUEsIEludE9iaikKICAgIEV4dGVybmFsIChCR01BLCBJ bnRPYmopCiAgICBFeHRlcm5hbCAoQkdNUywgSW50T2JqKQogICAgRXh0ZXJuYWwgKEJSTVQs IEludE9iaikKICAgIEV4dGVybmFsIChDR0xTLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwg KENOTVQsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoREJSTCwgSW50T2JqKQogICAgRXh0 ZXJuYWwgKERDRVQsIEludE9iaikKICAgIEV4dGVybmFsIChEQ1dBLCBJbnRPYmopCiAgICBF eHRlcm5hbCAoREdCQSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChER0QxLCBJbnRPYmop CiAgICBFeHRlcm5hbCAoREdEMiwgSW50T2JqKQogICAgRXh0ZXJuYWwgKERHRDMsIEludE9i aikKICAgIEV4dGVybmFsIChER0Q0LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoREdENSwgSW50 T2JqKQogICAgRXh0ZXJuYWwgKERHRDYsIEludE9iaikKICAgIEV4dGVybmFsIChER0Q3LCBJ bnRPYmopCiAgICBFeHRlcm5hbCAoREdEOCwgSW50T2JqKQogICAgRXh0ZXJuYWwgKERHRDks IEludE9iaikKICAgIEV4dGVybmFsIChER0RBLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoREdE QiwgSW50T2JqKQogICAgRXh0ZXJuYWwgKERHREMsIEludE9iaikKICAgIEV4dGVybmFsIChE R0RELCBJbnRPYmopCiAgICBFeHRlcm5hbCAoREdERSwgSW50T2JqKQogICAgRXh0ZXJuYWwg KERHREYsIEludE9iaikKICAgIEV4dGVybmFsIChER0RYLCBVbmtub3duT2JqKQogICAgRXh0 ZXJuYWwgKERJRFgsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoRElEWSwgVW5rbm93bk9i aikKICAgIEV4dGVybmFsIChETUUwLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKERNRTEs IFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoRFBSUywgSW50T2JqKQogICAgRXh0ZXJuYWwg KERQVFIsIEludE9iaikKICAgIEV4dGVybmFsIChEU0NFLCBJbnRPYmopCiAgICBFeHRlcm5h bCAoRFRGUywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChEVFJULCBVbmtub3duT2JqKQog ICAgRXh0ZXJuYWwgKEVQVFUsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChFU1BDLCBV bmtub3duT2JqKQogICAgRXh0ZXJuYWwgKEdCRVMsIFVua25vd25PYmopCiAgICBFeHRlcm5h bCAoR01JTywgTWV0aG9kT2JqKSAgICAvLyAzIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKEdQ UlYsIE1ldGhvZE9iaikgICAgLy8gMiBBcmd1bWVudHMKICAgIEV4dGVybmFsIChIREJPLCBV bmtub3duT2JqKQogICAgRXh0ZXJuYWwgKEhHRFQsIFVua25vd25PYmopCiAgICBFeHRlcm5h bCAoSUdEUywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKElTQVIsIE1ldGhvZE9iaikg ICAgLy8gNCBBcmd1bWVudHMKICAgIEV4dGVybmFsIChJVFNQLCBJbnRPYmopCiAgICBFeHRl cm5hbCAoTElEUywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKE0zMkIsIEludE9iaikK ICAgIEV4dGVybmFsIChNMzJMLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoTTY0QiwgSW50T2Jq KQogICAgRXh0ZXJuYWwgKE02NEwsIEludE9iaikKICAgIEV4dGVybmFsIChQMFdLLCBVbmtu b3duT2JqKQogICAgRXh0ZXJuYWwgKFAxV0ssIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAo UDJXSywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChQM1dLLCBVbmtub3duT2JqKQogICAg RXh0ZXJuYWwgKFBCTlUsIEludE9iaikKICAgIEV4dGVybmFsIChQQlNCLCBJbnRPYmopCiAg ICBFeHRlcm5hbCAoUEJTUywgRmllbGRVbml0T2JqKQogICAgRXh0ZXJuYWwgKFBDSFMsIEZp ZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChQRzNTLCBVbmtub3duT2JqKQogICAgRXh0ZXJu YWwgKFBQT0UsIFVua25vd25PYmopCiAgICBFeHRlcm5hbCAoUFNPTiwgVW5rbm93bk9iaikK ICAgIEV4dGVybmFsIChQV1JTLCBGaWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoUlBOMCwg SW50T2JqKQogICAgRXh0ZXJuYWwgKFJQTjEsIEludE9iaikKICAgIEV4dGVybmFsIChSUFMw LCBJbnRPYmopCiAgICBFeHRlcm5hbCAoUlBTMSwgSW50T2JqKQogICAgRXh0ZXJuYWwgKFJQ U0csIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChSU1RZLCBJbnRPYmopCiAgICBFeHRl cm5hbCAoU0lNRSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChTUE5ULCBNZXRob2RPYmop ICAgIC8vIDAgQXJndW1lbnRzCiAgICBFeHRlcm5hbCAoU1BUUywgTWV0aG9kT2JqKSAgICAv LyAxIEFyZ3VtZW50cwogICAgRXh0ZXJuYWwgKFNURDMsIEZpZWxkVW5pdE9iaikKICAgIEV4 dGVybmFsIChTV0FLLCBNZXRob2RPYmopICAgIC8vIDIgQXJndW1lbnRzCiAgICBFeHRlcm5h bCAoVERDRSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChURldCLCBGaWVsZFVuaXRPYmop CiAgICBFeHRlcm5hbCAoVEhDRSwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChUUkUwLCBV bmtub3duT2JqKQogICAgRXh0ZXJuYWwgKFRSRTEsIFVua25vd25PYmopCiAgICBFeHRlcm5h bCAoVFJFMiwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChUUkUzLCBVbmtub3duT2JqKQog ICAgRXh0ZXJuYWwgKFRWQlMsIEZpZWxkVW5pdE9iaikKICAgIEV4dGVybmFsIChWTURFLCBG aWVsZFVuaXRPYmopCiAgICBFeHRlcm5hbCAoVk1TUCwgVW5rbm93bk9iaikKCiAgICBOYW1l IChTQU5CLCAweDY1REUyRDE4KQogICAgTmFtZSAoU0FOTCwgMHgwMTM4KQogICAgTmFtZSAo Vk1OQiwgMHhGRkZGMDAwMCkKICAgIE5hbWUgKFZNTkwsIDB4QUE1NSkKICAgIE5hbWUgKEJS TVQsIFplcm8pCiAgICBOYW1lIChSRExZLCAweEEwKQogICAgT3BlcmF0aW9uUmVnaW9uIChT QU5WLCBTeXN0ZW1NZW1vcnksIFNBTkIsIFNBTkwpCiAgICBGaWVsZCAoU0FOViwgQW55QWNj LCBMb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBBU0xCLCAgIDMyLCAKICAgICAgICBJ R0RTLCAgIDgsIAogICAgICAgIE5ESUQsICAgOCwgCiAgICAgICAgRElEMSwgICAzMiwgCiAg ICAgICAgRElEMiwgICAzMiwgCiAgICAgICAgRElEMywgICAzMiwgCiAgICAgICAgRElENCwg ICAzMiwgCiAgICAgICAgRElENSwgICAzMiwgCiAgICAgICAgRElENiwgICAzMiwgCiAgICAg ICAgRElENywgICAzMiwgCiAgICAgICAgRElEOCwgICAzMiwgCiAgICAgICAgRElEOSwgICAz MiwgCiAgICAgICAgRElEQSwgICAzMiwgCiAgICAgICAgRElEQiwgICAzMiwgCiAgICAgICAg RElEQywgICAzMiwgCiAgICAgICAgRElERCwgICAzMiwgCiAgICAgICAgRElERSwgICAzMiwg CiAgICAgICAgRElERiwgICAzMiwgCiAgICAgICAgRElEWCwgICAzMiwgCiAgICAgICAgTlhE MSwgICAzMiwgCiAgICAgICAgTlhEMiwgICAzMiwgCiAgICAgICAgTlhEMywgICAzMiwgCiAg ICAgICAgTlhENCwgICAzMiwgCiAgICAgICAgTlhENSwgICAzMiwgCiAgICAgICAgTlhENiwg ICAzMiwgCiAgICAgICAgTlhENywgICAzMiwgCiAgICAgICAgTlhEOCwgICAzMiwgCiAgICAg ICAgTlhEWCwgICAzMiwgCiAgICAgICAgTElEUywgICA4LCAKICAgICAgICBCUlRMLCAgIDgs IAogICAgICAgIEFMU0UsICAgOCwgCiAgICAgICAgTExPVywgICA4LCAKICAgICAgICBMSElI LCAgIDgsIAogICAgICAgIElQVFAsICAgOCwgCiAgICAgICAgRURQViwgICA4LCAKICAgICAg ICBETFBXLCAgIDE2LCAKICAgICAgICBETEhSLCAgIDE2LCAKICAgICAgICBYQkFTLCAgIDMy LCAKICAgICAgICBBTURBLCAgIDMyLCAKICAgICAgICBMVFJaLCAgIDgsIAogICAgICAgIE02 NEIsICAgNjQsIAogICAgICAgIE02NEwsICAgNjQsIAogICAgICAgIENQRVgsICAgMzIsIAog ICAgICAgIE0zMkIsICAgMzIsIAogICAgICAgIE0zMkwsICAgMzIsIAogICAgICAgIFAwV0ss ICAgMzIsIAogICAgICAgIFAxV0ssICAgMzIsIAogICAgICAgIFAyV0ssICAgMzIsIAogICAg ICAgIFZURFMsICAgOCwgCiAgICAgICAgVlRCMSwgICAzMiwgCiAgICAgICAgVlRCMiwgICAz MiwgCiAgICAgICAgVlRCMywgICAzMiwgCiAgICAgICAgVlRCNCwgICAzMiwgCiAgICAgICAg VlRCNSwgICAzMiwgCiAgICAgICAgVlRCNiwgICAzMiwgCiAgICAgICAgVlRCNywgICAzMiwg CiAgICAgICAgVkUxViwgICAxNiwgCiAgICAgICAgVkUyViwgICAxNiwgCiAgICAgICAgUlBJ TiwgICA4LCAKICAgICAgICBSUEJBLCAgIDMyLCAKICAgICAgICBTSU1FLCAgIDgsIAogICAg ICAgIFRIQ0UsICAgOCwgCiAgICAgICAgVERDRSwgICA4LCAKICAgICAgICBETUUwLCAgIDgs IAogICAgICAgIERNRTEsICAgOCwgCiAgICAgICAgVFJFMCwgICA4LCAKICAgICAgICBUUkUx LCAgIDgsIAogICAgICAgIFRSRTIsICAgOCwgCiAgICAgICAgVFJFMywgICA4LCAKICAgICAg ICBUUEEwLCAgIDMyLCAKICAgICAgICBUUEExLCAgIDMyLCAKICAgICAgICBUUEEyLCAgIDMy LCAKICAgICAgICBUUEEzLCAgIDMyLCAKICAgICAgICBUQ0RTLCAgIDMyLCAKICAgICAgICBU Q0lULCAgIDgsIAogICAgICAgIFRDSVIsICAgOCwgCiAgICAgICAgVFJURCwgICA4LCAKICAg ICAgICBJVE0wLCAgIDMyLCAKICAgICAgICBJVE0xLCAgIDMyLCAKICAgICAgICBMVEUwLCAg IDgsIAogICAgICAgIExURTEsICAgOCwgCiAgICAgICAgTFRFMiwgICA4LCAKICAgICAgICBM VEUzLCAgIDgsIAogICAgICAgIFBTTDAsICAgMTYsIAogICAgICAgIFBTTDEsICAgMTYsIAog ICAgICAgIFBTTDIsICAgMTYsIAogICAgICAgIFBTTDMsICAgMTYsIAogICAgICAgIFBOUzAs ICAgMTYsIAogICAgICAgIFBOUzEsICAgMTYsIAogICAgICAgIFBOUzIsICAgMTYsIAogICAg ICAgIFBOUzMsICAgMTYsIAogICAgICAgIElNUlksICAgOCwgCiAgICAgICAgVElWUywgICA4 LCAKICAgICAgICBESURZLCAgIDMyLCAKICAgICAgICBOWERZLCAgIDMyLCAKICAgICAgICBT TFRTLCAgIDgsIAogICAgICAgIE1QR04sICAgOCwgCiAgICAgICAgQ01CTSwgICA4LCAKICAg ICAgICBEUE1TLCAgIDgsIAogICAgICAgIFBNU0EsICAgNjQsIAogICAgICAgIFBNUkwsICAg NjQsIAogICAgICAgIFBCUjEsICAgOCwgCiAgICAgICAgUEJSMiwgICA4LCAKICAgICAgICBQ QlIzLCAgIDgsIAogICAgICAgIFJFR08sICAgMTYsIAogICAgICAgIElPTUIsICAgNjQsIAog ICAgICAgIFJUQk0sICAgOCwgCiAgICAgICAgUlBDQywgICAzMgogICAgfQoKICAgIE5hbWUg KFNTMSwgWmVybykKICAgIE5hbWUgKFNTMiwgWmVybykKICAgIE5hbWUgKFNTMywgWmVybykK ICAgIE5hbWUgKFNTNCwgT25lKQogICAgT3BlcmF0aW9uUmVnaW9uIChHTlZTLCBTeXN0ZW1N ZW1vcnksIDB4NjVERDcwMTgsIDB4MERBNikKICAgIEZpZWxkIChHTlZTLCBBbnlBY2MsIExv Y2ssIFByZXNlcnZlKQogICAgewogICAgICAgIE9TWVMsICAgMTYsIAogICAgICAgIFNNSUYs ICAgOCwgCiAgICAgICAgUFJNMCwgICA4LCAKICAgICAgICBQUk0xLCAgIDgsIAogICAgICAg IFNDSUYsICAgOCwgCiAgICAgICAgUFJNMiwgICA4LCAKICAgICAgICBQUk0zLCAgIDgsIAog ICAgICAgIExDS0YsICAgOCwgCiAgICAgICAgUFJNNCwgICA4LCAKICAgICAgICBQUk01LCAg IDgsIAogICAgICAgIFBXUlMsICAgOCwgCiAgICAgICAgREJHUywgICA4LCAKICAgICAgICBU SE9GLCAgIDgsIAogICAgICAgIEFDVDEsICAgOCwgCiAgICAgICAgQUNUVCwgICA4LCAKICAg ICAgICBQU1ZULCAgIDgsIAogICAgICAgIFRDMVYsICAgOCwgCiAgICAgICAgVEMyViwgICA4 LCAKICAgICAgICBUU1BWLCAgIDgsIAogICAgICAgIENSVFQsICAgOCwgCiAgICAgICAgUkVW TiwgICA4LCAKICAgICAgICBBUElDLCAgIDgsIAogICAgICAgIFRDTlQsICAgOCwgCiAgICAg ICAgUENQMCwgICA4LCAKICAgICAgICBQQ1AxLCAgIDgsIAogICAgICAgIFBQQ00sICAgOCwg CiAgICAgICAgUFBNRiwgICAzMiwgCiAgICAgICAgQzY3TCwgICA4LCAKICAgICAgICBOQVRQ LCAgIDgsIAogICAgICAgIENNQVAsICAgOCwgCiAgICAgICAgQ01CUCwgICA4LCAKICAgICAg ICBMUFRQLCAgIDgsIAogICAgICAgIEZEQ1AsICAgOCwgCiAgICAgICAgQ01DUCwgICA4LCAK ICAgICAgICBDSVJQLCAgIDgsIAogICAgICAgIFNNU0MsICAgOCwgCiAgICAgICAgVzM4MSwg ICA4LCAKICAgICAgICBTTUMxLCAgIDgsIAogICAgICAgIEVNQUUsICAgOCwgCiAgICAgICAg RU1BUCwgICAxNiwgCiAgICAgICAgRU1BTCwgICAxNiwgCiAgICAgICAgTUVGRSwgICA4LCAK ICAgICAgICBEU1RTLCAgIDgsIAogICAgICAgIE1PUkQsICAgOCwgCiAgICAgICAgVENHUCwg ICA4LCAKICAgICAgICBQUFJQLCAgIDMyLCAKICAgICAgICBQUFJRLCAgIDgsIAogICAgICAg IExQUFIsICAgOCwgCiAgICAgICAgSURFTSwgICA4LCAKICAgICAgICBQTElELCAgIDgsIAog ICAgICAgIEJUWVAsICAgOCwgCiAgICAgICAgT1NDQywgICA4LCAKICAgICAgICBORVhQLCAg IDgsIAogICAgICAgIFNCVjEsICAgOCwgCiAgICAgICAgU0JWMiwgICA4LCAKICAgICAgICBF Q09OLCAgIDgsIAogICAgICAgIERTRU4sICAgOCwgCiAgICAgICAgR1BJQywgICA4LCAKICAg ICAgICBDVFlQLCAgIDgsIAogICAgICAgIEwwMUMsICAgOCwgCiAgICAgICAgVkZOMCwgICA4 LCAKICAgICAgICBWRk4xLCAgIDgsIAogICAgICAgIFZGTjIsICAgOCwgCiAgICAgICAgVkZO MywgICA4LCAKICAgICAgICBWRk40LCAgIDgsIAogICAgICAgIFZGTjUsICAgOCwgCiAgICAg ICAgVkZONiwgICA4LCAKICAgICAgICBWRk43LCAgIDgsIAogICAgICAgIFZGTjgsICAgOCwg CiAgICAgICAgVkZOOSwgICA4LCAKICAgICAgICBQTkhNLCAgIDMyLCAKICAgICAgICBUQkFM LCAgIDMyLCAKICAgICAgICBUQkFILCAgIDMyLCAKICAgICAgICBUU09ELCAgIDgsIAogICAg ICAgIFBGTFYsICAgOCwgCiAgICAgICAgQlJFViwgICAxNiwgCiAgICAgICAgUEFNVCwgICA4 LCAKICAgICAgICBBQzBGLCAgIDgsIAogICAgICAgIEFDMUYsICAgOCwgCiAgICAgICAgWFRV QiwgICAzMiwgCiAgICAgICAgWFRVUywgICAzMiwgCiAgICAgICAgWE1QQiwgICAzMiwgCiAg ICAgICAgRERSRiwgICA4LCAKICAgICAgICBSVEQzLCAgIDgsIAogICAgICAgIFBFUDAsICAg OCwgCiAgICAgICAgUEVQMywgICA4LCAKICAgICAgICBQR1JULCAgIDgsIAogICAgICAgIFMw SUQsICAgOCwgCiAgICAgICAgUFVJUywgICA4LCAKICAgICAgICBDVERCLCAgIDgsIAogICAg ICAgIERLU00sICAgOCwgCiAgICAgICAgU0lPMSwgICAxNiwgCiAgICAgICAgU0lPMiwgICAx NiwgCiAgICAgICAgU1BCQSwgICAxNiwgCiAgICAgICAgT2Zmc2V0ICgweDFGMyksIAogICAg ICAgIFBHM1MsICAgOCwgCiAgICAgICAgWEhQUiwgICA4LCAKICAgICAgICBSSUMwLCAgIDgs IAogICAgICAgIEdCU1gsICAgOCwgCiAgICAgICAgQVVERCwgICAxNiwgCiAgICAgICAgSUMw RCwgICAxNiwgCiAgICAgICAgSUMxRCwgICAxNiwgCiAgICAgICAgSUMxUywgICAxNiwgCiAg ICAgICAgVlJSRCwgICAxNiwgCiAgICAgICAgUFNDUCwgICA4LCAKICAgICAgICBJMjBELCAg IDE2LCAKICAgICAgICBJMjFELCAgIDE2LCAKICAgICAgICBSQ0cwLCAgIDE2LCAKICAgICAg ICBSQ0cxLCAgIDE2LCAKICAgICAgICBTVEQzLCAgIDgsIAogICAgICAgIFAyTUUsICAgOCwg CiAgICAgICAgU0NNSywgICA4LCAKICAgICAgICBTU0gwLCAgIDE2LCAKICAgICAgICBTU0ww LCAgIDE2LCAKICAgICAgICBTU0QwLCAgIDE2LCAKICAgICAgICBGTUgwLCAgIDE2LCAKICAg ICAgICBGTUwwLCAgIDE2LCAKICAgICAgICBGTUQwLCAgIDE2LCAKICAgICAgICBGUEgwLCAg IDE2LCAKICAgICAgICBGUEwwLCAgIDE2LCAKICAgICAgICBGUEQwLCAgIDE2LCAKICAgICAg ICBIU0gwLCAgIDE2LCAKICAgICAgICBIU0wwLCAgIDE2LCAKICAgICAgICBIU0QwLCAgIDE2 LCAKICAgICAgICBPZmZzZXQgKDB4MjNEKSwgCiAgICAgICAgU1NIMSwgICAxNiwgCiAgICAg ICAgU1NMMSwgICAxNiwgCiAgICAgICAgU1NEMSwgICAxNiwgCiAgICAgICAgRk1IMSwgICAx NiwgCiAgICAgICAgRk1MMSwgICAxNiwgCiAgICAgICAgRk1EMSwgICAxNiwgCiAgICAgICAg RlBIMSwgICAxNiwgCiAgICAgICAgRlBMMSwgICAxNiwgCiAgICAgICAgRlBEMSwgICAxNiwg CiAgICAgICAgSFNIMSwgICAxNiwgCiAgICAgICAgSFNMMSwgICAxNiwgCiAgICAgICAgSFNE MSwgICAxNiwgCiAgICAgICAgT2Zmc2V0ICgweDI1NiksIAogICAgICAgIFNTSDIsICAgMTYs IAogICAgICAgIFNTTDIsICAgMTYsIAogICAgICAgIFNTRDIsICAgMTYsIAogICAgICAgIEZN SDIsICAgMTYsIAogICAgICAgIEZNTDIsICAgMTYsIAogICAgICAgIEZNRDIsICAgMTYsIAog ICAgICAgIEZQSDIsICAgMTYsIAogICAgICAgIEZQTDIsICAgMTYsIAogICAgICAgIEZQRDIs ICAgMTYsIAogICAgICAgIEhTSDIsICAgMTYsIAogICAgICAgIEhTTDIsICAgMTYsIAogICAg ICAgIEhTRDIsICAgMTYsIAogICAgICAgIE9mZnNldCAoMHgyNkYpLCAKICAgICAgICBTU0gz LCAgIDE2LCAKICAgICAgICBTU0wzLCAgIDE2LCAKICAgICAgICBTU0QzLCAgIDE2LCAKICAg ICAgICBGTUgzLCAgIDE2LCAKICAgICAgICBGTUwzLCAgIDE2LCAKICAgICAgICBGTUQzLCAg IDE2LCAKICAgICAgICBGUEgzLCAgIDE2LCAKICAgICAgICBGUEwzLCAgIDE2LCAKICAgICAg ICBGUEQzLCAgIDE2LCAKICAgICAgICBIU0gzLCAgIDE2LCAKICAgICAgICBIU0wzLCAgIDE2 LCAKICAgICAgICBIU0QzLCAgIDE2LCAKICAgICAgICBPZmZzZXQgKDB4Mjg4KSwgCiAgICAg ICAgU1NINCwgICAxNiwgCiAgICAgICAgU1NMNCwgICAxNiwgCiAgICAgICAgU1NENCwgICAx NiwgCiAgICAgICAgRk1INCwgICAxNiwgCiAgICAgICAgRk1MNCwgICAxNiwgCiAgICAgICAg Rk1ENCwgICAxNiwgCiAgICAgICAgRlBINCwgICAxNiwgCiAgICAgICAgRlBMNCwgICAxNiwg CiAgICAgICAgRlBENCwgICAxNiwgCiAgICAgICAgSFNINCwgICAxNiwgCiAgICAgICAgSFNM NCwgICAxNiwgCiAgICAgICAgSFNENCwgICAxNiwgCiAgICAgICAgT2Zmc2V0ICgweDJBMSks IAogICAgICAgIFNTSDUsICAgMTYsIAogICAgICAgIFNTTDUsICAgMTYsIAogICAgICAgIFNT RDUsICAgMTYsIAogICAgICAgIEZNSDUsICAgMTYsIAogICAgICAgIEZNTDUsICAgMTYsIAog ICAgICAgIEZNRDUsICAgMTYsIAogICAgICAgIEZQSDUsICAgMTYsIAogICAgICAgIEZQTDUs ICAgMTYsIAogICAgICAgIEZQRDUsICAgMTYsIAogICAgICAgIEhTSDUsICAgMTYsIAogICAg ICAgIEhTTDUsICAgMTYsIAogICAgICAgIEhTRDUsICAgMTYsIAogICAgICAgIE9mZnNldCAo MHgyQkEpLCAKICAgICAgICBNMEMwLCAgIDE2LCAKICAgICAgICBNMUMwLCAgIDE2LCAKICAg ICAgICBNMEMxLCAgIDE2LCAKICAgICAgICBNMUMxLCAgIDE2LCAKICAgICAgICBNMEMyLCAg IDE2LCAKICAgICAgICBNMUMyLCAgIDE2LCAKICAgICAgICBNMEMzLCAgIDE2LCAKICAgICAg ICBNMUMzLCAgIDE2LCAKICAgICAgICBNMEM0LCAgIDE2LCAKICAgICAgICBNMUM0LCAgIDE2 LCAKICAgICAgICBNMEM1LCAgIDE2LCAKICAgICAgICBNMUM1LCAgIDE2LCAKICAgICAgICBN MEM2LCAgIDE2LCAKICAgICAgICBNMUM2LCAgIDE2LCAKICAgICAgICBNMEM3LCAgIDE2LCAK ICAgICAgICBNMUM3LCAgIDE2LCAKICAgICAgICBNMEM4LCAgIDE2LCAKICAgICAgICBNMUM4 LCAgIDE2LCAKICAgICAgICBPZmZzZXQgKDB4MkRGKSwgCiAgICAgICAgTTBDOSwgICAxNiwg CiAgICAgICAgTTFDOSwgICAxNiwgCiAgICAgICAgTTBDQSwgICAxNiwgCiAgICAgICAgTTFD QSwgICAxNiwgCiAgICAgICAgTTBDQiwgICAxNiwgCiAgICAgICAgTTFDQiwgICAxNiwgCiAg ICAgICAgT2Zmc2V0ICgweDJFQyksIAogICAgICAgIEdJUlEsICAgMzIsIAogICAgICAgIERN VFAsICAgOCwgCiAgICAgICAgRE1URCwgICA4LCAKICAgICAgICBETVNILCAgIDgsIAogICAg ICAgIFNIU0IsICAgOCwgCiAgICAgICAgUExDUywgICA4LCAKICAgICAgICBQTFZMLCAgIDE2 LCAKICAgICAgICBXV1NELCAgIDgsIAogICAgICAgIENWU0QsICAgOCwgCiAgICAgICAgU1NE RCwgICA4LCAKICAgICAgICBJTkxELCAgIDgsIAogICAgICAgIElGQVQsICAgOCwgCiAgICAg ICAgSUZQVCwgICA4LCAKICAgICAgICBJRkNULCAgIDgsIAogICAgICAgIElGSFQsICAgOCwg CiAgICAgICAgVVNCSCwgICA4LCAKICAgICAgICBCQ1Y0LCAgIDgsIAogICAgICAgIFdUVjAs ICAgOCwgCiAgICAgICAgV1RWMSwgICA4LCAKICAgICAgICBBUEZVLCAgIDgsIAogICAgICAg IE9mZnNldCAoMHgzMEEpLCAKICAgICAgICBQRVBDLCAgIDY0LCAKICAgICAgICBWUlNELCAg IDE2LCAKICAgICAgICBQQjFFLCAgIDgsIAogICAgICAgIEdOSUQsICAgOCwgCiAgICAgICAg T2Zmc2V0ICgweDMyMCksIAogICAgICAgIEFVUEwsICAgMzIsIAogICAgICAgIEVTUEMsICAg OCwgCiAgICAgICAgUFNNRSwgICA4LCAKICAgICAgICBQRFQxLCAgIDgsIAogICAgICAgIFBM TTEsICAgMzIsIAogICAgICAgIFBUVzEsICAgMzIsIAogICAgICAgIEREVDEsICAgOCwgCiAg ICAgICAgRERQMSwgICA4LCAKICAgICAgICBETEkxLCAgIDE2LCAKICAgICAgICBEUEwxLCAg IDE2LCAKICAgICAgICBEVFcxLCAgIDMyLCAKICAgICAgICBETUkxLCAgIDE2LCAKICAgICAg ICBETUExLCAgIDE2LCAKICAgICAgICBETVQxLCAgIDE2LCAKICAgICAgICBXSUZFLCAgIDgs IAogICAgICAgIERPTTEsICAgOCwgCiAgICAgICAgTElNMSwgICAxNiwgCiAgICAgICAgVElN MSwgICAzMiwgCiAgICAgICAgVFJEMCwgICA4LCAKICAgICAgICBUUkwwLCAgIDgsIAogICAg ICAgIFRSRDEsICAgOCwgCiAgICAgICAgVFJMMSwgICA4LCAKICAgICAgICBXRE0xLCAgIDgs IAogICAgICAgIENJRDEsICAgMTYsIAogICAgICAgIE9mZnNldCAoMHgzRkIpLCAKICAgICAg ICBTRFMwLCAgIDgsIAogICAgICAgIFNEUzEsICAgOCwgCiAgICAgICAgU0RTMiwgICA4LCAK ICAgICAgICBTRFMzLCAgIDgsIAogICAgICAgIFNEUzQsICAgOCwgCiAgICAgICAgU0RTNSwg ICA4LCAKICAgICAgICBTRFM2LCAgIDgsIAogICAgICAgIFNEUzcsICAgOCwgCiAgICAgICAg U0RTOCwgICA4LCAKICAgICAgICBTRFM5LCAgIDgsIAogICAgICAgIFNEU0EsICAgOCwgCiAg ICAgICAgVFBMVCwgICA4LCAKICAgICAgICBUUExNLCAgIDgsIAogICAgICAgIFRQTEIsICAg OCwgCiAgICAgICAgVFBMSCwgICAxNiwgCiAgICAgICAgVFBMUywgICA4LCAKICAgICAgICBU UERULCAgIDgsIAogICAgICAgIFRQRE0sICAgOCwgCiAgICAgICAgVFBEQiwgICA4LCAKICAg ICAgICBUUERILCAgIDE2LCAKICAgICAgICBUUERTLCAgIDgsIAogICAgICAgIEZQVFQsICAg OCwgCiAgICAgICAgRlBUTSwgICA4LCAKICAgICAgICBXVFZYLCAgIDgsIAogICAgICAgIFdJ VFgsICAgOCwgCiAgICAgICAgR1BURCwgICA4LCAKICAgICAgICBHREJULCAgIDE2LCAKICAg ICAgICBVVEtYLCAgIDgsIAogICAgICAgIFNQVEQsICAgOCwgCiAgICAgICAgT2Zmc2V0ICgw eDQyQSksIAogICAgICAgIEFUTEIsICAgMzIsIAogICAgICAgIFNETTAsICAgOCwgCiAgICAg ICAgU0RNMSwgICA4LCAKICAgICAgICBTRE0yLCAgIDgsIAogICAgICAgIFNETTMsICAgOCwg CiAgICAgICAgU0RNNCwgICA4LCAKICAgICAgICBTRE01LCAgIDgsIAogICAgICAgIFNETTYs ICAgOCwgCiAgICAgICAgU0RNNywgICA4LCAKICAgICAgICBTRE04LCAgIDgsIAogICAgICAg IFNETTksICAgOCwgCiAgICAgICAgU0RNQSwgICA4LCAKICAgICAgICBTRE1CLCAgIDgsIAog ICAgICAgIE9mZnNldCAoMHg0M0IpLCAKICAgICAgICBVU1RQLCAgIDgsIAogICAgICAgIE9m ZnNldCAoMHg0NjUpLCAKICAgICAgICBHRlBTLCAgIDMyLCAKICAgICAgICBHRlBJLCAgIDMy LCAKICAgICAgICBXQkJSLCAgIDMyLCAKICAgICAgICBHQlRLLCAgIDMyLCAKICAgICAgICBH QlRJLCAgIDMyLCAKICAgICAgICBHUERJLCAgIDMyLCAKICAgICAgICBDTDAwLCAgIDgsIAog ICAgICAgIENMMDEsICAgOCwgCiAgICAgICAgQ0wwMiwgICA4LCAKICAgICAgICBDTDAzLCAg IDgsIAogICAgICAgIENMMDQsICAgOCwgCiAgICAgICAgQ0wwNSwgICA4LCAKICAgICAgICBM MEVOLCAgIDgsIAogICAgICAgIEwxRU4sICAgOCwgCiAgICAgICAgTDJFTiwgICA4LCAKICAg ICAgICBMM0VOLCAgIDgsIAogICAgICAgIEw0RU4sICAgOCwgCiAgICAgICAgTDVFTiwgICA4 LCAKICAgICAgICBMMExDLCAgIDgsIAogICAgICAgIEwxTEMsICAgOCwgCiAgICAgICAgTDJM QywgICA4LCAKICAgICAgICBMM0xDLCAgIDgsIAogICAgICAgIEw0TEMsICAgOCwgCiAgICAg ICAgTDVMQywgICA4LCAKICAgICAgICBDMFZFLCAgIDgsIAogICAgICAgIEMwVFAsICAgOCwg CiAgICAgICAgQzBDViwgICA4LCAKICAgICAgICBDMElDLCAgIDMyLCAKICAgICAgICBDMEdQ LCAgIDgsIAogICAgICAgIEMwSUIsICAgOCwgCiAgICAgICAgQzBJQSwgICAxNiwgCiAgICAg ICAgQzBQMCwgICA4LCAKICAgICAgICBDMFAxLCAgIDgsIAogICAgICAgIEMwUDIsICAgOCwg CiAgICAgICAgQzBQMywgICA4LCAKICAgICAgICBDMFA0LCAgIDgsIAogICAgICAgIEMwUDUs ICAgOCwgCiAgICAgICAgQzBHMCwgICA4LCAKICAgICAgICBDMEcxLCAgIDgsIAogICAgICAg IEMwRzIsICAgOCwgCiAgICAgICAgQzBHMywgICA4LCAKICAgICAgICBDMEc0LCAgIDgsIAog ICAgICAgIEMwRzUsICAgOCwgCiAgICAgICAgQzBGMCwgICA4LCAKICAgICAgICBDMEYxLCAg IDgsIAogICAgICAgIEMwRjIsICAgOCwgCiAgICAgICAgQzBGMywgICA4LCAKICAgICAgICBD MEY0LCAgIDgsIAogICAgICAgIEMwRjUsICAgOCwgCiAgICAgICAgQzBBMCwgICA4LCAKICAg ICAgICBDMEExLCAgIDgsIAogICAgICAgIEMwQTIsICAgOCwgCiAgICAgICAgQzBBMywgICA4 LCAKICAgICAgICBDMEE0LCAgIDgsIAogICAgICAgIEMwQTUsICAgOCwgCiAgICAgICAgQzBJ MCwgICA4LCAKICAgICAgICBDMEkxLCAgIDgsIAogICAgICAgIEMwSTIsICAgOCwgCiAgICAg ICAgQzBJMywgICA4LCAKICAgICAgICBDMEk0LCAgIDgsIAogICAgICAgIEMwSTUsICAgOCwg CiAgICAgICAgQzBQTCwgICA4LCAKICAgICAgICBDMFcwLCAgIDgsIAogICAgICAgIEMwVzEs ICAgOCwgCiAgICAgICAgQzBXMiwgICA4LCAKICAgICAgICBDMFczLCAgIDgsIAogICAgICAg IEMwU1AsICAgOCwgCiAgICAgICAgQzBXNCwgICA4LCAKICAgICAgICBDMFc1LCAgIDgsIAog ICAgICAgIEMwQ1MsICAgOCwgCiAgICAgICAgQzFWRSwgICA4LCAKICAgICAgICBDMVRQLCAg IDgsIAogICAgICAgIEMxQ1YsICAgOCwgCiAgICAgICAgQzFJQywgICAzMiwgCiAgICAgICAg QzFHUCwgICA4LCAKICAgICAgICBDMUlCLCAgIDgsIAogICAgICAgIEMxSUEsICAgMTYsIAog ICAgICAgIEMxUDAsICAgOCwgCiAgICAgICAgQzFQMSwgICA4LCAKICAgICAgICBDMVAyLCAg IDgsIAogICAgICAgIEMxUDMsICAgOCwgCiAgICAgICAgQzFQNCwgICA4LCAKICAgICAgICBD MVA1LCAgIDgsIAogICAgICAgIEMxRzAsICAgOCwgCiAgICAgICAgQzFHMSwgICA4LCAKICAg ICAgICBDMUcyLCAgIDgsIAogICAgICAgIEMxRzMsICAgOCwgCiAgICAgICAgQzFHNCwgICA4 LCAKICAgICAgICBDMUc1LCAgIDgsIAogICAgICAgIEMxRjAsICAgOCwgCiAgICAgICAgQzFG MSwgICA4LCAKICAgICAgICBDMUYyLCAgIDgsIAogICAgICAgIEMxRjMsICAgOCwgCiAgICAg ICAgQzFGNCwgICA4LCAKICAgICAgICBDMUY1LCAgIDgsIAogICAgICAgIEMxQTAsICAgOCwg CiAgICAgICAgQzFBMSwgICA4LCAKICAgICAgICBDMUEyLCAgIDgsIAogICAgICAgIEMxQTMs ICAgOCwgCiAgICAgICAgQzFBNCwgICA4LCAKICAgICAgICBDMUE1LCAgIDgsIAogICAgICAg IEMxSTAsICAgOCwgCiAgICAgICAgQzFJMSwgICA4LCAKICAgICAgICBDMUkyLCAgIDgsIAog ICAgICAgIEMxSTMsICAgOCwgCiAgICAgICAgQzFJNCwgICA4LCAKICAgICAgICBDMUk1LCAg IDgsIAogICAgICAgIEMxUEwsICAgOCwgCiAgICAgICAgQzFXMCwgICA4LCAKICAgICAgICBD MVcxLCAgIDgsIAogICAgICAgIEMxVzIsICAgOCwgCiAgICAgICAgQzFXMywgICA4LCAKICAg ICAgICBDMVNQLCAgIDgsIAogICAgICAgIEMxVzQsICAgOCwgCiAgICAgICAgQzFXNSwgICA4 LCAKICAgICAgICBDMUNTLCAgIDgsIAogICAgICAgIEMyVkUsICAgOCwgCiAgICAgICAgQzJU UCwgICA4LCAKICAgICAgICBDMkNWLCAgIDgsIAogICAgICAgIEMySUMsICAgMzIsIAogICAg ICAgIEMyR1AsICAgOCwgCiAgICAgICAgQzJJQiwgICA4LCAKICAgICAgICBDMklBLCAgIDE2 LCAKICAgICAgICBDMlAwLCAgIDgsIAogICAgICAgIEMyUDEsICAgOCwgCiAgICAgICAgQzJQ MiwgICA4LCAKICAgICAgICBDMlAzLCAgIDgsIAogICAgICAgIEMyUDQsICAgOCwgCiAgICAg ICAgQzJQNSwgICA4LCAKICAgICAgICBDMkcwLCAgIDgsIAogICAgICAgIEMyRzEsICAgOCwg CiAgICAgICAgQzJHMiwgICA4LCAKICAgICAgICBDMkczLCAgIDgsIAogICAgICAgIEMyRzQs ICAgOCwgCiAgICAgICAgQzJHNSwgICA4LCAKICAgICAgICBDMkYwLCAgIDgsIAogICAgICAg IEMyRjEsICAgOCwgCiAgICAgICAgQzJGMiwgICA4LCAKICAgICAgICBDMkYzLCAgIDgsIAog ICAgICAgIEMyRjQsICAgOCwgCiAgICAgICAgQzJGNSwgICA4LCAKICAgICAgICBDMkEwLCAg IDgsIAogICAgICAgIEMyQTEsICAgOCwgCiAgICAgICAgQzJBMiwgICA4LCAKICAgICAgICBD MkEzLCAgIDgsIAogICAgICAgIEMyQTQsICAgOCwgCiAgICAgICAgQzJBNSwgICA4LCAKICAg ICAgICBDMkkwLCAgIDgsIAogICAgICAgIEMySTEsICAgOCwgCiAgICAgICAgQzJJMiwgICA4 LCAKICAgICAgICBDMkkzLCAgIDgsIAogICAgICAgIEMySTQsICAgOCwgCiAgICAgICAgQzJJ NSwgICA4LCAKICAgICAgICBDMlBMLCAgIDgsIAogICAgICAgIEMyVzAsICAgOCwgCiAgICAg ICAgQzJXMSwgICA4LCAKICAgICAgICBDMlcyLCAgIDgsIAogICAgICAgIEMyVzMsICAgOCwg CiAgICAgICAgQzJTUCwgICA4LCAKICAgICAgICBDMlc0LCAgIDgsIAogICAgICAgIEMyVzUs ICAgOCwgCiAgICAgICAgQzJDUywgICA4LCAKICAgICAgICBDM1ZFLCAgIDgsIAogICAgICAg IEMzVFAsICAgOCwgCiAgICAgICAgQzNDViwgICA4LCAKICAgICAgICBDM0lDLCAgIDMyLCAK ICAgICAgICBDM0dQLCAgIDgsIAogICAgICAgIEMzSUIsICAgOCwgCiAgICAgICAgQzNJQSwg ICAxNiwgCiAgICAgICAgQzNQMCwgICA4LCAKICAgICAgICBDM1AxLCAgIDgsIAogICAgICAg IEMzUDIsICAgOCwgCiAgICAgICAgQzNQMywgICA4LCAKICAgICAgICBDM1A0LCAgIDgsIAog ICAgICAgIEMzUDUsICAgOCwgCiAgICAgICAgQzNHMCwgICA4LCAKICAgICAgICBDM0cxLCAg IDgsIAogICAgICAgIEMzRzIsICAgOCwgCiAgICAgICAgQzNHMywgICA4LCAKICAgICAgICBD M0c0LCAgIDgsIAogICAgICAgIEMzRzUsICAgOCwgCiAgICAgICAgQzNGMCwgICA4LCAKICAg ICAgICBDM0YxLCAgIDgsIAogICAgICAgIEMzRjIsICAgOCwgCiAgICAgICAgQzNGMywgICA4 LCAKICAgICAgICBDM0Y0LCAgIDgsIAogICAgICAgIEMzRjUsICAgOCwgCiAgICAgICAgQzNB MCwgICA4LCAKICAgICAgICBDM0ExLCAgIDgsIAogICAgICAgIEMzQTIsICAgOCwgCiAgICAg ICAgQzNBMywgICA4LCAKICAgICAgICBDM0E0LCAgIDgsIAogICAgICAgIEMzQTUsICAgOCwg CiAgICAgICAgQzNJMCwgICA4LCAKICAgICAgICBDM0kxLCAgIDgsIAogICAgICAgIEMzSTIs ICAgOCwgCiAgICAgICAgQzNJMywgICA4LCAKICAgICAgICBDM0k0LCAgIDgsIAogICAgICAg IEMzSTUsICAgOCwgCiAgICAgICAgQzNQTCwgICA4LCAKICAgICAgICBDM1cwLCAgIDgsIAog ICAgICAgIEMzVzEsICAgOCwgCiAgICAgICAgQzNXMiwgICA4LCAKICAgICAgICBDM1czLCAg IDgsIAogICAgICAgIEMzU1AsICAgOCwgCiAgICAgICAgQzNXNCwgICA4LCAKICAgICAgICBD M1c1LCAgIDgsIAogICAgICAgIEMzQ1MsICAgOCwgCiAgICAgICAgQzRWRSwgICA4LCAKICAg ICAgICBDNFRQLCAgIDgsIAogICAgICAgIEM0Q1YsICAgOCwgCiAgICAgICAgQzRJQywgICAz MiwgCiAgICAgICAgQzRHUCwgICA4LCAKICAgICAgICBDNElCLCAgIDgsIAogICAgICAgIEM0 SUEsICAgMTYsIAogICAgICAgIEM0UDAsICAgOCwgCiAgICAgICAgQzRQMSwgICA4LCAKICAg ICAgICBDNFAyLCAgIDgsIAogICAgICAgIEM0UDMsICAgOCwgCiAgICAgICAgQzRQNCwgICA4 LCAKICAgICAgICBDNFA1LCAgIDgsIAogICAgICAgIEM0RzAsICAgOCwgCiAgICAgICAgQzRH MSwgICA4LCAKICAgICAgICBDNEcyLCAgIDgsIAogICAgICAgIEM0RzMsICAgOCwgCiAgICAg ICAgQzRHNCwgICA4LCAKICAgICAgICBDNEc1LCAgIDgsIAogICAgICAgIEM0RjAsICAgOCwg CiAgICAgICAgQzRGMSwgICA4LCAKICAgICAgICBDNEYyLCAgIDgsIAogICAgICAgIEM0RjMs ICAgOCwgCiAgICAgICAgQzRGNCwgICA4LCAKICAgICAgICBDNEY1LCAgIDgsIAogICAgICAg IEM0QTAsICAgOCwgCiAgICAgICAgQzRBMSwgICA4LCAKICAgICAgICBDNEEyLCAgIDgsIAog ICAgICAgIEM0QTMsICAgOCwgCiAgICAgICAgQzRBNCwgICA4LCAKICAgICAgICBDNEE1LCAg IDgsIAogICAgICAgIEM0STAsICAgOCwgCiAgICAgICAgQzRJMSwgICA4LCAKICAgICAgICBD NEkyLCAgIDgsIAogICAgICAgIEM0STMsICAgOCwgCiAgICAgICAgQzRJNCwgICA4LCAKICAg ICAgICBDNEk1LCAgIDgsIAogICAgICAgIEM0UEwsICAgOCwgCiAgICAgICAgQzRXMCwgICA4 LCAKICAgICAgICBDNFcxLCAgIDgsIAogICAgICAgIEM0VzIsICAgOCwgCiAgICAgICAgQzRX MywgICA4LCAKICAgICAgICBDNFNQLCAgIDgsIAogICAgICAgIEM0VzQsICAgOCwgCiAgICAg ICAgQzRXNSwgICA4LCAKICAgICAgICBDNENTLCAgIDgsIAogICAgICAgIEM1VkUsICAgOCwg CiAgICAgICAgQzVUUCwgICA4LCAKICAgICAgICBDNUNWLCAgIDgsIAogICAgICAgIEM1SUMs ICAgMzIsIAogICAgICAgIEM1R1AsICAgOCwgCiAgICAgICAgQzVJQiwgICA4LCAKICAgICAg ICBDNUlBLCAgIDE2LCAKICAgICAgICBDNVAwLCAgIDgsIAogICAgICAgIEM1UDEsICAgOCwg CiAgICAgICAgQzVQMiwgICA4LCAKICAgICAgICBDNVAzLCAgIDgsIAogICAgICAgIEM1UDQs ICAgOCwgCiAgICAgICAgQzVQNSwgICA4LCAKICAgICAgICBDNUcwLCAgIDgsIAogICAgICAg IEM1RzEsICAgOCwgCiAgICAgICAgQzVHMiwgICA4LCAKICAgICAgICBDNUczLCAgIDgsIAog ICAgICAgIEM1RzQsICAgOCwgCiAgICAgICAgQzVHNSwgICA4LCAKICAgICAgICBDNUYwLCAg IDgsIAogICAgICAgIEM1RjEsICAgOCwgCiAgICAgICAgQzVGMiwgICA4LCAKICAgICAgICBD NUYzLCAgIDgsIAogICAgICAgIEM1RjQsICAgOCwgCiAgICAgICAgQzVGNSwgICA4LCAKICAg ICAgICBDNUEwLCAgIDgsIAogICAgICAgIEM1QTEsICAgOCwgCiAgICAgICAgQzVBMiwgICA4 LCAKICAgICAgICBDNUEzLCAgIDgsIAogICAgICAgIEM1QTQsICAgOCwgCiAgICAgICAgQzVB NSwgICA4LCAKICAgICAgICBDNUkwLCAgIDgsIAogICAgICAgIEM1STEsICAgOCwgCiAgICAg ICAgQzVJMiwgICA4LCAKICAgICAgICBDNUkzLCAgIDgsIAogICAgICAgIEM1STQsICAgOCwg CiAgICAgICAgQzVJNSwgICA4LCAKICAgICAgICBDNVBMLCAgIDgsIAogICAgICAgIEM1VzAs ICAgOCwgCiAgICAgICAgQzVXMSwgICA4LCAKICAgICAgICBDNVcyLCAgIDgsIAogICAgICAg IEM1VzMsICAgOCwgCiAgICAgICAgQzVTUCwgICA4LCAKICAgICAgICBDNVc0LCAgIDgsIAog ICAgICAgIEM1VzUsICAgOCwgCiAgICAgICAgQzVDUywgICA4LCAKICAgICAgICBMMFNNLCAg IDgsIAogICAgICAgIEwwSDAsICAgOCwgCiAgICAgICAgTDBIMSwgICA4LCAKICAgICAgICBM MEgyLCAgIDgsIAogICAgICAgIEwwSDMsICAgOCwgCiAgICAgICAgTDBINCwgICA4LCAKICAg ICAgICBMMEg1LCAgIDgsIAogICAgICAgIEwwSDYsICAgOCwgCiAgICAgICAgTDBINywgICA4 LCAKICAgICAgICBMMEg4LCAgIDgsIAogICAgICAgIEwwUEwsICAgOCwgCiAgICAgICAgTDBN MCwgICA4LCAKICAgICAgICBMME0xLCAgIDgsIAogICAgICAgIEwwTTIsICAgOCwgCiAgICAg ICAgTDBNMywgICA4LCAKICAgICAgICBMME00LCAgIDgsIAogICAgICAgIEwwTTUsICAgOCwg CiAgICAgICAgTDBNNiwgICA4LCAKICAgICAgICBMME03LCAgIDgsIAogICAgICAgIEwwTTgs ICAgOCwgCiAgICAgICAgTDBNOSwgICA4LCAKICAgICAgICBMME1BLCAgIDgsIAogICAgICAg IEwwTUIsICAgOCwgCiAgICAgICAgTDBNQywgICA4LCAKICAgICAgICBMME1ELCAgIDgsIAog ICAgICAgIEwwTUUsICAgOCwgCiAgICAgICAgTDBNRiwgICA4LCAKICAgICAgICBMMERJLCAg IDgsIAogICAgICAgIEwwQlMsICAgOCwgCiAgICAgICAgTDBBMCwgICAxNiwgCiAgICAgICAg TDBBMSwgICAxNiwgCiAgICAgICAgTDBBMiwgICAxNiwgCiAgICAgICAgTDBBMywgICAxNiwg CiAgICAgICAgTDBBNCwgICAxNiwgCiAgICAgICAgTDBBNSwgICAxNiwgCiAgICAgICAgTDBB NiwgICAxNiwgCiAgICAgICAgTDBBNywgICAxNiwgCiAgICAgICAgTDBBOCwgICAxNiwgCiAg ICAgICAgTDBBOSwgICAxNiwgCiAgICAgICAgTDBBQSwgICAxNiwgCiAgICAgICAgTDBBQiwg ICAxNiwgCiAgICAgICAgTDBEMCwgICA4LCAKICAgICAgICBMMEQxLCAgIDgsIAogICAgICAg IEwwRDIsICAgOCwgCiAgICAgICAgTDBEMywgICA4LCAKICAgICAgICBMMEQ0LCAgIDgsIAog ICAgICAgIEwwRDUsICAgOCwgCiAgICAgICAgTDBENiwgICA4LCAKICAgICAgICBMMEQ3LCAg IDgsIAogICAgICAgIEwwRDgsICAgOCwgCiAgICAgICAgTDBEOSwgICA4LCAKICAgICAgICBM MERBLCAgIDgsIAogICAgICAgIEwwREIsICAgOCwgCiAgICAgICAgTDBEViwgICA4LCAKICAg ICAgICBMMENWLCAgIDgsIAogICAgICAgIEwwTFUsICAgOCwgCiAgICAgICAgTDBOTCwgICA4 LCAKICAgICAgICBMMEVFLCAgIDgsIAogICAgICAgIEwwVkMsICAgOCwgCiAgICAgICAgTDBG UywgICA4LCAKICAgICAgICBMMExFLCAgIDgsIAogICAgICAgIEwwREcsICAgOCwgCiAgICAg ICAgTDBDSywgICAzMiwgCiAgICAgICAgTDBDTCwgICA4LCAKICAgICAgICBMMFBQLCAgIDgs IAogICAgICAgIEwwVlIsICAgOCwgCiAgICAgICAgTDBGRCwgICA4LCAKICAgICAgICBMMVNN LCAgIDgsIAogICAgICAgIEwxSDAsICAgOCwgCiAgICAgICAgTDFIMSwgICA4LCAKICAgICAg ICBMMUgyLCAgIDgsIAogICAgICAgIEwxSDMsICAgOCwgCiAgICAgICAgTDFINCwgICA4LCAK ICAgICAgICBMMUg1LCAgIDgsIAogICAgICAgIEwxSDYsICAgOCwgCiAgICAgICAgTDFINywg ICA4LCAKICAgICAgICBMMUg4LCAgIDgsIAogICAgICAgIEwxUEwsICAgOCwgCiAgICAgICAg TDFNMCwgICA4LCAKICAgICAgICBMMU0xLCAgIDgsIAogICAgICAgIEwxTTIsICAgOCwgCiAg ICAgICAgTDFNMywgICA4LCAKICAgICAgICBMMU00LCAgIDgsIAogICAgICAgIEwxTTUsICAg OCwgCiAgICAgICAgTDFNNiwgICA4LCAKICAgICAgICBMMU03LCAgIDgsIAogICAgICAgIEwx TTgsICAgOCwgCiAgICAgICAgTDFNOSwgICA4LCAKICAgICAgICBMMU1BLCAgIDgsIAogICAg ICAgIEwxTUIsICAgOCwgCiAgICAgICAgTDFNQywgICA4LCAKICAgICAgICBMMU1ELCAgIDgs IAogICAgICAgIEwxTUUsICAgOCwgCiAgICAgICAgTDFNRiwgICA4LCAKICAgICAgICBMMURJ LCAgIDgsIAogICAgICAgIEwxQlMsICAgOCwgCiAgICAgICAgTDFBMCwgICAxNiwgCiAgICAg ICAgTDFBMSwgICAxNiwgCiAgICAgICAgTDFBMiwgICAxNiwgCiAgICAgICAgTDFBMywgICAx NiwgCiAgICAgICAgTDFBNCwgICAxNiwgCiAgICAgICAgTDFBNSwgICAxNiwgCiAgICAgICAg TDFBNiwgICAxNiwgCiAgICAgICAgTDFBNywgICAxNiwgCiAgICAgICAgTDFBOCwgICAxNiwg CiAgICAgICAgTDFBOSwgICAxNiwgCiAgICAgICAgTDFBQSwgICAxNiwgCiAgICAgICAgTDFB QiwgICAxNiwgCiAgICAgICAgTDFEMCwgICA4LCAKICAgICAgICBMMUQxLCAgIDgsIAogICAg ICAgIEwxRDIsICAgOCwgCiAgICAgICAgTDFEMywgICA4LCAKICAgICAgICBMMUQ0LCAgIDgs IAogICAgICAgIEwxRDUsICAgOCwgCiAgICAgICAgTDFENiwgICA4LCAKICAgICAgICBMMUQ3 LCAgIDgsIAogICAgICAgIEwxRDgsICAgOCwgCiAgICAgICAgTDFEOSwgICA4LCAKICAgICAg ICBMMURBLCAgIDgsIAogICAgICAgIEwxREIsICAgOCwgCiAgICAgICAgTDFEViwgICA4LCAK ICAgICAgICBMMUNWLCAgIDgsIAogICAgICAgIEwxTFUsICAgOCwgCiAgICAgICAgTDFOTCwg ICA4LCAKICAgICAgICBMMUVFLCAgIDgsIAogICAgICAgIEwxVkMsICAgOCwgCiAgICAgICAg TDFGUywgICA4LCAKICAgICAgICBMMUxFLCAgIDgsIAogICAgICAgIEwxREcsICAgOCwgCiAg ICAgICAgTDFDSywgICAzMiwgCiAgICAgICAgTDFDTCwgICA4LCAKICAgICAgICBMMVBQLCAg IDgsIAogICAgICAgIEwxVlIsICAgOCwgCiAgICAgICAgTDFGRCwgICA4LCAKICAgICAgICBM MlNNLCAgIDgsIAogICAgICAgIEwySDAsICAgOCwgCiAgICAgICAgTDJIMSwgICA4LCAKICAg ICAgICBMMkgyLCAgIDgsIAogICAgICAgIEwySDMsICAgOCwgCiAgICAgICAgTDJINCwgICA4 LCAKICAgICAgICBMMkg1LCAgIDgsIAogICAgICAgIEwySDYsICAgOCwgCiAgICAgICAgTDJI NywgICA4LCAKICAgICAgICBMMkg4LCAgIDgsIAogICAgICAgIEwyUEwsICAgOCwgCiAgICAg ICAgTDJNMCwgICA4LCAKICAgICAgICBMMk0xLCAgIDgsIAogICAgICAgIEwyTTIsICAgOCwg CiAgICAgICAgTDJNMywgICA4LCAKICAgICAgICBMMk00LCAgIDgsIAogICAgICAgIEwyTTUs ICAgOCwgCiAgICAgICAgTDJNNiwgICA4LCAKICAgICAgICBMMk03LCAgIDgsIAogICAgICAg IEwyTTgsICAgOCwgCiAgICAgICAgTDJNOSwgICA4LCAKICAgICAgICBMMk1BLCAgIDgsIAog ICAgICAgIEwyTUIsICAgOCwgCiAgICAgICAgTDJNQywgICA4LCAKICAgICAgICBMMk1ELCAg IDgsIAogICAgICAgIEwyTUUsICAgOCwgCiAgICAgICAgTDJNRiwgICA4LCAKICAgICAgICBM MkRJLCAgIDgsIAogICAgICAgIEwyQlMsICAgOCwgCiAgICAgICAgTDJBMCwgICAxNiwgCiAg ICAgICAgTDJBMSwgICAxNiwgCiAgICAgICAgTDJBMiwgICAxNiwgCiAgICAgICAgTDJBMywg ICAxNiwgCiAgICAgICAgTDJBNCwgICAxNiwgCiAgICAgICAgTDJBNSwgICAxNiwgCiAgICAg ICAgTDJBNiwgICAxNiwgCiAgICAgICAgTDJBNywgICAxNiwgCiAgICAgICAgTDJBOCwgICAx NiwgCiAgICAgICAgTDJBOSwgICAxNiwgCiAgICAgICAgTDJBQSwgICAxNiwgCiAgICAgICAg TDJBQiwgICAxNiwgCiAgICAgICAgTDJEMCwgICA4LCAKICAgICAgICBMMkQxLCAgIDgsIAog ICAgICAgIEwyRDIsICAgOCwgCiAgICAgICAgTDJEMywgICA4LCAKICAgICAgICBMMkQ0LCAg IDgsIAogICAgICAgIEwyRDUsICAgOCwgCiAgICAgICAgTDJENiwgICA4LCAKICAgICAgICBM MkQ3LCAgIDgsIAogICAgICAgIEwyRDgsICAgOCwgCiAgICAgICAgTDJEOSwgICA4LCAKICAg ICAgICBMMkRBLCAgIDgsIAogICAgICAgIEwyREIsICAgOCwgCiAgICAgICAgTDJEViwgICA4 LCAKICAgICAgICBMMkNWLCAgIDgsIAogICAgICAgIEwyTFUsICAgOCwgCiAgICAgICAgTDJO TCwgICA4LCAKICAgICAgICBMMkVFLCAgIDgsIAogICAgICAgIEwyVkMsICAgOCwgCiAgICAg ICAgTDJGUywgICA4LCAKICAgICAgICBMMkxFLCAgIDgsIAogICAgICAgIEwyREcsICAgOCwg CiAgICAgICAgTDJDSywgICAzMiwgCiAgICAgICAgTDJDTCwgICA4LCAKICAgICAgICBMMlBQ LCAgIDgsIAogICAgICAgIEwyVlIsICAgOCwgCiAgICAgICAgTDJGRCwgICA4LCAKICAgICAg ICBMM1NNLCAgIDgsIAogICAgICAgIEwzSDAsICAgOCwgCiAgICAgICAgTDNIMSwgICA4LCAK ICAgICAgICBMM0gyLCAgIDgsIAogICAgICAgIEwzSDMsICAgOCwgCiAgICAgICAgTDNINCwg ICA4LCAKICAgICAgICBMM0g1LCAgIDgsIAogICAgICAgIEwzSDYsICAgOCwgCiAgICAgICAg TDNINywgICA4LCAKICAgICAgICBMM0g4LCAgIDgsIAogICAgICAgIEwzUEwsICAgOCwgCiAg ICAgICAgTDNNMCwgICA4LCAKICAgICAgICBMM00xLCAgIDgsIAogICAgICAgIEwzTTIsICAg OCwgCiAgICAgICAgTDNNMywgICA4LCAKICAgICAgICBMM000LCAgIDgsIAogICAgICAgIEwz TTUsICAgOCwgCiAgICAgICAgTDNNNiwgICA4LCAKICAgICAgICBMM003LCAgIDgsIAogICAg ICAgIEwzTTgsICAgOCwgCiAgICAgICAgTDNNOSwgICA4LCAKICAgICAgICBMM01BLCAgIDgs IAogICAgICAgIEwzTUIsICAgOCwgCiAgICAgICAgTDNNQywgICA4LCAKICAgICAgICBMM01E LCAgIDgsIAogICAgICAgIEwzTUUsICAgOCwgCiAgICAgICAgTDNNRiwgICA4LCAKICAgICAg ICBMM0RJLCAgIDgsIAogICAgICAgIEwzQlMsICAgOCwgCiAgICAgICAgTDNBMCwgICAxNiwg CiAgICAgICAgTDNBMSwgICAxNiwgCiAgICAgICAgTDNBMiwgICAxNiwgCiAgICAgICAgTDNB MywgICAxNiwgCiAgICAgICAgTDNBNCwgICAxNiwgCiAgICAgICAgTDNBNSwgICAxNiwgCiAg ICAgICAgTDNBNiwgICAxNiwgCiAgICAgICAgTDNBNywgICAxNiwgCiAgICAgICAgTDNBOCwg ICAxNiwgCiAgICAgICAgTDNBOSwgICAxNiwgCiAgICAgICAgTDNBQSwgICAxNiwgCiAgICAg ICAgTDNBQiwgICAxNiwgCiAgICAgICAgTDNEMCwgICA4LCAKICAgICAgICBMM0QxLCAgIDgs IAogICAgICAgIEwzRDIsICAgOCwgCiAgICAgICAgTDNEMywgICA4LCAKICAgICAgICBMM0Q0 LCAgIDgsIAogICAgICAgIEwzRDUsICAgOCwgCiAgICAgICAgTDNENiwgICA4LCAKICAgICAg ICBMM0Q3LCAgIDgsIAogICAgICAgIEwzRDgsICAgOCwgCiAgICAgICAgTDNEOSwgICA4LCAK ICAgICAgICBMM0RBLCAgIDgsIAogICAgICAgIEwzREIsICAgOCwgCiAgICAgICAgTDNEViwg ICA4LCAKICAgICAgICBMM0NWLCAgIDgsIAogICAgICAgIEwzTFUsICAgOCwgCiAgICAgICAg TDNOTCwgICA4LCAKICAgICAgICBMM0VFLCAgIDgsIAogICAgICAgIEwzVkMsICAgOCwgCiAg ICAgICAgTDNGUywgICA4LCAKICAgICAgICBMM0xFLCAgIDgsIAogICAgICAgIEwzREcsICAg OCwgCiAgICAgICAgTDNDSywgICAzMiwgCiAgICAgICAgTDNDTCwgICA4LCAKICAgICAgICBM M1BQLCAgIDgsIAogICAgICAgIEwzVlIsICAgOCwgCiAgICAgICAgTDNGRCwgICA4LCAKICAg ICAgICBMNFNNLCAgIDgsIAogICAgICAgIEw0SDAsICAgOCwgCiAgICAgICAgTDRIMSwgICA4 LCAKICAgICAgICBMNEgyLCAgIDgsIAogICAgICAgIEw0SDMsICAgOCwgCiAgICAgICAgTDRI NCwgICA4LCAKICAgICAgICBMNEg1LCAgIDgsIAogICAgICAgIEw0SDYsICAgOCwgCiAgICAg ICAgTDRINywgICA4LCAKICAgICAgICBMNEg4LCAgIDgsIAogICAgICAgIEw0UEwsICAgOCwg CiAgICAgICAgTDRNMCwgICA4LCAKICAgICAgICBMNE0xLCAgIDgsIAogICAgICAgIEw0TTIs ICAgOCwgCiAgICAgICAgTDRNMywgICA4LCAKICAgICAgICBMNE00LCAgIDgsIAogICAgICAg IEw0TTUsICAgOCwgCiAgICAgICAgTDRNNiwgICA4LCAKICAgICAgICBMNE03LCAgIDgsIAog ICAgICAgIEw0TTgsICAgOCwgCiAgICAgICAgTDRNOSwgICA4LCAKICAgICAgICBMNE1BLCAg IDgsIAogICAgICAgIEw0TUIsICAgOCwgCiAgICAgICAgTDRNQywgICA4LCAKICAgICAgICBM NE1ELCAgIDgsIAogICAgICAgIEw0TUUsICAgOCwgCiAgICAgICAgTDRNRiwgICA4LCAKICAg ICAgICBMNERJLCAgIDgsIAogICAgICAgIEw0QlMsICAgOCwgCiAgICAgICAgTDRBMCwgICAx NiwgCiAgICAgICAgTDRBMSwgICAxNiwgCiAgICAgICAgTDRBMiwgICAxNiwgCiAgICAgICAg TDRBMywgICAxNiwgCiAgICAgICAgTDRBNCwgICAxNiwgCiAgICAgICAgTDRBNSwgICAxNiwg CiAgICAgICAgTDRBNiwgICAxNiwgCiAgICAgICAgTDRBNywgICAxNiwgCiAgICAgICAgTDRB OCwgICAxNiwgCiAgICAgICAgTDRBOSwgICAxNiwgCiAgICAgICAgTDRBQSwgICAxNiwgCiAg ICAgICAgTDRBQiwgICAxNiwgCiAgICAgICAgTDREMCwgICA4LCAKICAgICAgICBMNEQxLCAg IDgsIAogICAgICAgIEw0RDIsICAgOCwgCiAgICAgICAgTDREMywgICA4LCAKICAgICAgICBM NEQ0LCAgIDgsIAogICAgICAgIEw0RDUsICAgOCwgCiAgICAgICAgTDRENiwgICA4LCAKICAg ICAgICBMNEQ3LCAgIDgsIAogICAgICAgIEw0RDgsICAgOCwgCiAgICAgICAgTDREOSwgICA4 LCAKICAgICAgICBMNERBLCAgIDgsIAogICAgICAgIEw0REIsICAgOCwgCiAgICAgICAgTDRE ViwgICA4LCAKICAgICAgICBMNENWLCAgIDgsIAogICAgICAgIEw0TFUsICAgOCwgCiAgICAg ICAgTDROTCwgICA4LCAKICAgICAgICBMNEVFLCAgIDgsIAogICAgICAgIEw0VkMsICAgOCwg CiAgICAgICAgTDRGUywgICA4LCAKICAgICAgICBMNExFLCAgIDgsIAogICAgICAgIEw0REcs ICAgOCwgCiAgICAgICAgTDRDSywgICAzMiwgCiAgICAgICAgTDRDTCwgICA4LCAKICAgICAg ICBMNFBQLCAgIDgsIAogICAgICAgIEw0VlIsICAgOCwgCiAgICAgICAgTDRGRCwgICA4LCAK ICAgICAgICBMNVNNLCAgIDgsIAogICAgICAgIEw1SDAsICAgOCwgCiAgICAgICAgTDVIMSwg ICA4LCAKICAgICAgICBMNUgyLCAgIDgsIAogICAgICAgIEw1SDMsICAgOCwgCiAgICAgICAg TDVINCwgICA4LCAKICAgICAgICBMNUg1LCAgIDgsIAogICAgICAgIEw1SDYsICAgOCwgCiAg ICAgICAgTDVINywgICA4LCAKICAgICAgICBMNUg4LCAgIDgsIAogICAgICAgIEw1UEwsICAg OCwgCiAgICAgICAgTDVNMCwgICA4LCAKICAgICAgICBMNU0xLCAgIDgsIAogICAgICAgIEw1 TTIsICAgOCwgCiAgICAgICAgTDVNMywgICA4LCAKICAgICAgICBMNU00LCAgIDgsIAogICAg ICAgIEw1TTUsICAgOCwgCiAgICAgICAgTDVNNiwgICA4LCAKICAgICAgICBMNU03LCAgIDgs IAogICAgICAgIEw1TTgsICAgOCwgCiAgICAgICAgTDVNOSwgICA4LCAKICAgICAgICBMNU1B LCAgIDgsIAogICAgICAgIEw1TUIsICAgOCwgCiAgICAgICAgTDVNQywgICA4LCAKICAgICAg ICBMNU1ELCAgIDgsIAogICAgICAgIEw1TUUsICAgOCwgCiAgICAgICAgTDVNRiwgICA4LCAK ICAgICAgICBMNURJLCAgIDgsIAogICAgICAgIEw1QlMsICAgOCwgCiAgICAgICAgTDVBMCwg ICAxNiwgCiAgICAgICAgTDVBMSwgICAxNiwgCiAgICAgICAgTDVBMiwgICAxNiwgCiAgICAg ICAgTDVBMywgICAxNiwgCiAgICAgICAgTDVBNCwgICAxNiwgCiAgICAgICAgTDVBNSwgICAx NiwgCiAgICAgICAgTDVBNiwgICAxNiwgCiAgICAgICAgTDVBNywgICAxNiwgCiAgICAgICAg TDVBOCwgICAxNiwgCiAgICAgICAgTDVBOSwgICAxNiwgCiAgICAgICAgTDVBQSwgICAxNiwg CiAgICAgICAgTDVBQiwgICAxNiwgCiAgICAgICAgTDVEMCwgICA4LCAKICAgICAgICBMNUQx LCAgIDgsIAogICAgICAgIEw1RDIsICAgOCwgCiAgICAgICAgTDVEMywgICA4LCAKICAgICAg ICBMNUQ0LCAgIDgsIAogICAgICAgIEw1RDUsICAgOCwgCiAgICAgICAgTDVENiwgICA4LCAK ICAgICAgICBMNUQ3LCAgIDgsIAogICAgICAgIEw1RDgsICAgOCwgCiAgICAgICAgTDVEOSwg ICA4LCAKICAgICAgICBMNURBLCAgIDgsIAogICAgICAgIEw1REIsICAgOCwgCiAgICAgICAg TDVEViwgICA4LCAKICAgICAgICBMNUNWLCAgIDgsIAogICAgICAgIEw1TFUsICAgOCwgCiAg ICAgICAgTDVOTCwgICA4LCAKICAgICAgICBMNUVFLCAgIDgsIAogICAgICAgIEw1VkMsICAg OCwgCiAgICAgICAgTDVGUywgICA4LCAKICAgICAgICBMNUxFLCAgIDgsIAogICAgICAgIEw1 REcsICAgOCwgCiAgICAgICAgTDVDSywgICAzMiwgCiAgICAgICAgTDVDTCwgICA4LCAKICAg ICAgICBMNVBQLCAgIDgsIAogICAgICAgIEw1VlIsICAgOCwgCiAgICAgICAgTDVGRCwgICA4 LCAKICAgICAgICBGMEZNLCAgIDgsIAogICAgICAgIEYwTVMsICAgOCwgCiAgICAgICAgRjBN MCwgICA4LCAKICAgICAgICBGME0xLCAgIDgsIAogICAgICAgIEYwTTIsICAgOCwgCiAgICAg ICAgRjBNMywgICA4LCAKICAgICAgICBGME00LCAgIDgsIAogICAgICAgIEYwTTUsICAgOCwg CiAgICAgICAgRjBNNiwgICA4LCAKICAgICAgICBGME03LCAgIDgsIAogICAgICAgIEYwTTgs ICAgOCwgCiAgICAgICAgRjBNOSwgICA4LCAKICAgICAgICBGME1BLCAgIDgsIAogICAgICAg IEYwTUIsICAgOCwgCiAgICAgICAgRjBNQywgICA4LCAKICAgICAgICBGME1ELCAgIDgsIAog ICAgICAgIEYwTUUsICAgOCwgCiAgICAgICAgRjBNRiwgICA4LCAKICAgICAgICBGMEJTLCAg IDgsIAogICAgICAgIEYwQUIsICAgMTYsIAogICAgICAgIEYwR1AsICAgOCwgCiAgICAgICAg RjBHRywgICAxNiwgCiAgICAgICAgRjBBViwgICA4LCAKICAgICAgICBGMElWLCAgIDgsIAog ICAgICAgIEYwT00sICAgOCwgCiAgICAgICAgRjFGTSwgICA4LCAKICAgICAgICBGMU1TLCAg IDgsIAogICAgICAgIEYxTTAsICAgOCwgCiAgICAgICAgRjFNMSwgICA4LCAKICAgICAgICBG MU0yLCAgIDgsIAogICAgICAgIEYxTTMsICAgOCwgCiAgICAgICAgRjFNNCwgICA4LCAKICAg ICAgICBGMU01LCAgIDgsIAogICAgICAgIEYxTTYsICAgOCwgCiAgICAgICAgRjFNNywgICA4 LCAKICAgICAgICBGMU04LCAgIDgsIAogICAgICAgIEYxTTksICAgOCwgCiAgICAgICAgRjFN QSwgICA4LCAKICAgICAgICBGMU1CLCAgIDgsIAogICAgICAgIEYxTUMsICAgOCwgCiAgICAg ICAgRjFNRCwgICA4LCAKICAgICAgICBGMU1FLCAgIDgsIAogICAgICAgIEYxTUYsICAgOCwg CiAgICAgICAgRjFCUywgICA4LCAKICAgICAgICBGMUFCLCAgIDE2LCAKICAgICAgICBGMUdQ LCAgIDgsIAogICAgICAgIEYxR0csICAgMTYsIAogICAgICAgIEYxQVYsICAgOCwgCiAgICAg ICAgRjFJViwgICA4LCAKICAgICAgICBGMU9NLCAgIDgsIAogICAgICAgIEYyRk0sICAgOCwg CiAgICAgICAgRjJNUywgICA4LCAKICAgICAgICBGMk0wLCAgIDgsIAogICAgICAgIEYyTTEs ICAgOCwgCiAgICAgICAgRjJNMiwgICA4LCAKICAgICAgICBGMk0zLCAgIDgsIAogICAgICAg IEYyTTQsICAgOCwgCiAgICAgICAgRjJNNSwgICA4LCAKICAgICAgICBGMk02LCAgIDgsIAog ICAgICAgIEYyTTcsICAgOCwgCiAgICAgICAgRjJNOCwgICA4LCAKICAgICAgICBGMk05LCAg IDgsIAogICAgICAgIEYyTUEsICAgOCwgCiAgICAgICAgRjJNQiwgICA4LCAKICAgICAgICBG Mk1DLCAgIDgsIAogICAgICAgIEYyTUQsICAgOCwgCiAgICAgICAgRjJNRSwgICA4LCAKICAg ICAgICBGMk1GLCAgIDgsIAogICAgICAgIEYyQlMsICAgOCwgCiAgICAgICAgRjJBQiwgICAx NiwgCiAgICAgICAgRjJHUCwgICA4LCAKICAgICAgICBGMkdHLCAgIDE2LCAKICAgICAgICBG MkFWLCAgIDgsIAogICAgICAgIEYySVYsICAgOCwgCiAgICAgICAgRjJPTSwgICA4LCAKICAg ICAgICBGM0ZNLCAgIDgsIAogICAgICAgIEYzTVMsICAgOCwgCiAgICAgICAgRjNNMCwgICA4 LCAKICAgICAgICBGM00xLCAgIDgsIAogICAgICAgIEYzTTIsICAgOCwgCiAgICAgICAgRjNN MywgICA4LCAKICAgICAgICBGM000LCAgIDgsIAogICAgICAgIEYzTTUsICAgOCwgCiAgICAg ICAgRjNNNiwgICA4LCAKICAgICAgICBGM003LCAgIDgsIAogICAgICAgIEYzTTgsICAgOCwg CiAgICAgICAgRjNNOSwgICA4LCAKICAgICAgICBGM01BLCAgIDgsIAogICAgICAgIEYzTUIs ICAgOCwgCiAgICAgICAgRjNNQywgICA4LCAKICAgICAgICBGM01ELCAgIDgsIAogICAgICAg IEYzTUUsICAgOCwgCiAgICAgICAgRjNNRiwgICA4LCAKICAgICAgICBGM0JTLCAgIDgsIAog ICAgICAgIEYzQUIsICAgMTYsIAogICAgICAgIEYzR1AsICAgOCwgCiAgICAgICAgRjNHRywg ICAxNiwgCiAgICAgICAgRjNBViwgICA4LCAKICAgICAgICBGM0lWLCAgIDgsIAogICAgICAg IEYzT00sICAgOCwgCiAgICAgICAgRjRGTSwgICA4LCAKICAgICAgICBGNE1TLCAgIDgsIAog ICAgICAgIEY0TTAsICAgOCwgCiAgICAgICAgRjRNMSwgICA4LCAKICAgICAgICBGNE0yLCAg IDgsIAogICAgICAgIEY0TTMsICAgOCwgCiAgICAgICAgRjRNNCwgICA4LCAKICAgICAgICBG NE01LCAgIDgsIAogICAgICAgIEY0TTYsICAgOCwgCiAgICAgICAgRjRNNywgICA4LCAKICAg ICAgICBGNE04LCAgIDgsIAogICAgICAgIEY0TTksICAgOCwgCiAgICAgICAgRjRNQSwgICA4 LCAKICAgICAgICBGNE1CLCAgIDgsIAogICAgICAgIEY0TUMsICAgOCwgCiAgICAgICAgRjRN RCwgICA4LCAKICAgICAgICBGNE1FLCAgIDgsIAogICAgICAgIEY0TUYsICAgOCwgCiAgICAg ICAgRjRCUywgICA4LCAKICAgICAgICBGNEFCLCAgIDE2LCAKICAgICAgICBGNEdQLCAgIDgs IAogICAgICAgIEY0R0csICAgMTYsIAogICAgICAgIEY0QVYsICAgOCwgCiAgICAgICAgRjRJ ViwgICA4LCAKICAgICAgICBGNE9NLCAgIDgsIAogICAgICAgIEY1Rk0sICAgOCwgCiAgICAg ICAgRjVNUywgICA4LCAKICAgICAgICBGNU0wLCAgIDgsIAogICAgICAgIEY1TTEsICAgOCwg CiAgICAgICAgRjVNMiwgICA4LCAKICAgICAgICBGNU0zLCAgIDgsIAogICAgICAgIEY1TTQs ICAgOCwgCiAgICAgICAgRjVNNSwgICA4LCAKICAgICAgICBGNU02LCAgIDgsIAogICAgICAg IEY1TTcsICAgOCwgCiAgICAgICAgRjVNOCwgICA4LCAKICAgICAgICBGNU05LCAgIDgsIAog ICAgICAgIEY1TUEsICAgOCwgCiAgICAgICAgRjVNQiwgICA4LCAKICAgICAgICBGNU1DLCAg IDgsIAogICAgICAgIEY1TUQsICAgOCwgCiAgICAgICAgRjVNRSwgICA4LCAKICAgICAgICBG NU1GLCAgIDgsIAogICAgICAgIEY1QlMsICAgOCwgCiAgICAgICAgRjVBQiwgICAxNiwgCiAg ICAgICAgRjVHUCwgICA4LCAKICAgICAgICBGNUdHLCAgIDE2LCAKICAgICAgICBGNUFWLCAg IDgsIAogICAgICAgIEY1SVYsICAgOCwgCiAgICAgICAgRjVPTSwgICA4LCAKICAgICAgICBP ZmZzZXQgKDB4ODREKSwgCiAgICAgICAgRUNSMSwgICA4LCAKICAgICAgICBJMlNDLCAgIDgs IAogICAgICAgIEkyU0ksICAgMzIsIAogICAgICAgIEkyU0IsICAgOCwgCiAgICAgICAgVUJD QiwgICAzMiwgCiAgICAgICAgUFBPRSwgICA4LCAKICAgICAgICBPZmZzZXQgKDB4ODVFKSwg CiAgICAgICAgV0lGQywgICA4LCAKICAgICAgICBPZmZzZXQgKDB4ODY1KSwgCiAgICAgICAg QURQTSwgICAzMiwgCiAgICAgICAgQUcxTCwgICA2NCwgCiAgICAgICAgQUcxSCwgICA2NCwg CiAgICAgICAgQUcyTCwgICA2NCwgCiAgICAgICAgQUcySCwgICA2NCwgCiAgICAgICAgQUcz TCwgICA2NCwgCiAgICAgICAgQUczSCwgICA2NCwgCiAgICAgICAgSEVGRSwgICA4LCAKICAg ICAgICBYRENFLCAgIDgsIAogICAgICAgIFNUWEUsICAgOCwgCiAgICAgICAgU1QxMCwgICA4 LCAKICAgICAgICBTVDExLCAgIDgsIAogICAgICAgIFNUMTIsICAgOCwgCiAgICAgICAgU1Qx MywgICA4LCAKICAgICAgICBTVDE0LCAgIDgsIAogICAgICAgIFNUMTUsICAgOCwgCiAgICAg ICAgU1QxNiwgICA4LCAKICAgICAgICBTVDE3LCAgIDgsIAogICAgICAgIFNUMTgsICAgOCwg CiAgICAgICAgU1QxOSwgICA4LCAKICAgICAgICBFTlZNLCAgIDgsIAogICAgICAgIERIU1As ICAgMTYsIAogICAgICAgIERTU1AsICAgMTYsIAogICAgICAgIERTVFAsICAgOCwgCiAgICAg ICAgU1RERSwgICA4LCAKICAgICAgICBTVFJTLCAgIDgsIAogICAgICAgIFNUMjAsICAgOCwg CiAgICAgICAgU1QyMSwgICA4LCAKICAgICAgICBTVDIyLCAgIDgsIAogICAgICAgIFNUMjMs ICAgOCwgCiAgICAgICAgU1QyNCwgICA4LCAKICAgICAgICBTVDI1LCAgIDgsIAogICAgICAg IFNUMjYsICAgOCwgCiAgICAgICAgU1QyNywgICA4LCAKICAgICAgICBTVDI4LCAgIDgsIAog ICAgICAgIFNUMjksICAgOCwgCiAgICAgICAgU1QzMCwgICA4LCAKICAgICAgICBTVDMxLCAg IDgsIAogICAgICAgIFNUMzIsICAgOCwgCiAgICAgICAgU1QzMywgICA4LCAKICAgICAgICBT VDM0LCAgIDgsIAogICAgICAgIFNUMzUsICAgOCwgCiAgICAgICAgU1QzNiwgICA4LCAKICAg ICAgICBTVDM3LCAgIDgsIAogICAgICAgIFNUMzgsICAgOCwgCiAgICAgICAgU1QzOSwgICA4 LCAKICAgICAgICBTVDQwLCAgIDgsIAogICAgICAgIFNUNDEsICAgOCwgCiAgICAgICAgU1Q0 MiwgICA4LCAKICAgICAgICBTVDQzLCAgIDgsIAogICAgICAgIFNUNDQsICAgOCwgCiAgICAg ICAgU1Q0NSwgICA4LCAKICAgICAgICBTVDQ2LCAgIDgsIAogICAgICAgIFNUNDcsICAgOCwg CiAgICAgICAgU1Q0OCwgICA4LCAKICAgICAgICBTVDQ5LCAgIDgsIAogICAgICAgIFNEMTEs ICAgOCwgCiAgICAgICAgU0QxMiwgICA4LCAKICAgICAgICBTRDEzLCAgIDgsIAogICAgICAg IFNEMTQsICAgOCwgCiAgICAgICAgU0QxNSwgICA4LCAKICAgICAgICBTRDE2LCAgIDgsIAog ICAgICAgIFNEMjEsICAgOCwgCiAgICAgICAgU0QyMiwgICA4LCAKICAgICAgICBTRDIzLCAg IDgsIAogICAgICAgIFNEMjQsICAgOCwgCiAgICAgICAgU0QyNSwgICA4LCAKICAgICAgICBT RDI2LCAgIDgsIAogICAgICAgIFNEMzEsICAgOCwgCiAgICAgICAgU0QzMiwgICA4LCAKICAg ICAgICBTRDMzLCAgIDgsIAogICAgICAgIFNEMzQsICAgOCwgCiAgICAgICAgU0QzNSwgICA4 LCAKICAgICAgICBTRDM2LCAgIDgsIAogICAgICAgIE9mZnNldCAoMHg5MDcpLCAKICAgICAg ICBTREFBLCAgIDgsIAogICAgICAgIFNEQUIsICAgOCwgCiAgICAgICAgQlRTRSwgICA4LCAK ICAgICAgICBCSVBNLCAgIDgsIAogICAgICAgIEJTUEwsICAgOCwgCiAgICAgICAgQlRCUiwg ICA4LCAKICAgICAgICBCRUQyLCAgIDgsIAogICAgICAgIEJFRDMsICAgOCwgCiAgICAgICAg QlRMRSwgICA4LCAKICAgICAgICBCVEwyLCAgIDgsIAogICAgICAgIEJUTEwsICAgOCwgCiAg ICAgICAgQVREViwgICA4LCAKICAgICAgICBDT0VNLCAgIDgsIAogICAgICAgIFJUVk0sICAg OCwgCiAgICAgICAgVVNUQywgICA4LCAKICAgICAgICBIRUIxLCAgIDMyLCAKICAgICAgICBU U0RCLCAgIDgsIAogICAgICAgIE9mZnNldCAoMHg5MUMpLCAKICAgICAgICBDVkZTLCAgIDgs IAogICAgICAgIENWRlQsICAgOCwgCiAgICAgICAgQ1VQTiwgICA4LCAKICAgICAgICBTQ1NT LCAgIDgsIAogICAgICAgIE5DVEMsICAgOCwgCiAgICAgICAgTkNUSSwgICA4LCAKICAgICAg ICBOQ1RILCAgIDgsIAogICAgICAgIEhTSU8sICAgOCwgCiAgICAgICAgSFVBUiwgICA4LCAK ICAgICAgICBaUE9ELCAgIDgsIAogICAgICAgIFJHQkMsICAgOCwgCiAgICAgICAgRFBUQywg ICA4LCAKICAgICAgICBDRURTLCAgIDgsIAogICAgICAgIFZCU1QsICAgOCwgCiAgICAgICAg QUVBQiwgICA4LCAKICAgICAgICBBSERCLCAgIDgsIAogICAgICAgIFVDTVMsICAgOCwgCiAg ICAgICAgVUNHMSwgICAzMiwgCiAgICAgICAgVUNHMiwgICAzMiwgCiAgICAgICAgUlBTRywg ICAzMiwgCiAgICAgICAgVEJEMywgICA4LCAKICAgICAgICBPZmZzZXQgKDB4OTcyKSwgCiAg ICAgICAgVURHRiwgICA4LCAKICAgICAgICBVRFVQLCAgIDgsIAogICAgICAgIERCR0YsICAg OCwgCiAgICAgICAgREJVUCwgICA4LCAKICAgICAgICBUVFVQLCAgIDgsIAogICAgICAgIFRQ MVQsICAgOCwgCiAgICAgICAgVFAxUCwgICA4LCAKICAgICAgICBUUDFELCAgIDgsIAogICAg ICAgIFRQMlQsICAgOCwgCiAgICAgICAgVFAyUCwgICA4LCAKICAgICAgICBUUDJELCAgIDgs IAogICAgICAgIFRQM1QsICAgOCwgCiAgICAgICAgVFAzUCwgICA4LCAKICAgICAgICBUUDNE LCAgIDgsIAogICAgICAgIFRQNFQsICAgOCwgCiAgICAgICAgVFA0UCwgICA4LCAKICAgICAg ICBUUDRELCAgIDgsIAogICAgICAgIFRQNVQsICAgOCwgCiAgICAgICAgVFA1UCwgICA4LCAK ICAgICAgICBUUDVELCAgIDgsIAogICAgICAgIFRQNlQsICAgOCwgCiAgICAgICAgVFA2UCwg ICA4LCAKICAgICAgICBUUDZELCAgIDgsIAogICAgICAgIFNUQVMsICAgOCwgCiAgICAgICAg V1JUTywgICA4LCAKICAgICAgICBQUlNULCAgIDMyLCAKICAgICAgICBXUFJQLCAgIDgsIAog ICAgICAgIFAxV0csICAgMzIsIAogICAgICAgIFAxUk4sICAgOCwgCiAgICAgICAgUDFQRywg ICAzMiwgCiAgICAgICAgUDFFUCwgICA4LCAKICAgICAgICBQMVJHLCAgIDMyLCAKICAgICAg ICBQMVJQLCAgIDgsIAogICAgICAgIFAyV0csICAgMzIsIAogICAgICAgIFAyUk4sICAgOCwg CiAgICAgICAgUDJQRywgICAzMiwgCiAgICAgICAgUDJFUCwgICA4LCAKICAgICAgICBQMlJH LCAgIDMyLCAKICAgICAgICBQMlJQLCAgIDgsIAogICAgICAgIFAzV0csICAgMzIsIAogICAg ICAgIFAzUk4sICAgOCwgCiAgICAgICAgUDNQRywgICAzMiwgCiAgICAgICAgUDNFUCwgICA4 LCAKICAgICAgICBQM1JHLCAgIDMyLCAKICAgICAgICBQM1JQLCAgIDgsIAogICAgICAgIFA0 V0csICAgMzIsIAogICAgICAgIFA0Uk4sICAgOCwgCiAgICAgICAgUDRQRywgICAzMiwgCiAg ICAgICAgUDRFUCwgICA4LCAKICAgICAgICBQNFJHLCAgIDMyLCAKICAgICAgICBQNFJQLCAg IDgsIAogICAgICAgIFA1V0csICAgMzIsIAogICAgICAgIFA1Uk4sICAgOCwgCiAgICAgICAg UDVQRywgICAzMiwgCiAgICAgICAgUDVFUCwgICA4LCAKICAgICAgICBQNVJHLCAgIDMyLCAK ICAgICAgICBQNVJQLCAgIDgsIAogICAgICAgIFA2V0csICAgMzIsIAogICAgICAgIFA2Uk4s ICAgOCwgCiAgICAgICAgUDZQRywgICAzMiwgCiAgICAgICAgUDZFUCwgICA4LCAKICAgICAg ICBQNlJHLCAgIDMyLCAKICAgICAgICBQNlJQLCAgIDgsIAogICAgICAgIFA3V0csICAgMzIs IAogICAgICAgIFA3Uk4sICAgOCwgCiAgICAgICAgUDdQRywgICAzMiwgCiAgICAgICAgUDdF UCwgICA4LCAKICAgICAgICBQN1JHLCAgIDMyLCAKICAgICAgICBQN1JQLCAgIDgsIAogICAg ICAgIFBPTUUsICAgOCwgCiAgICAgICAgV0ZDUCwgICAzMiwgCiAgICAgICAgUEZDUCwgICA4 LCAKICAgICAgICBXQlJTLCAgIDMyLCAKICAgICAgICBQQlJTLCAgIDgsIAogICAgICAgIFdX S1AsICAgMzIsIAogICAgICAgIFQwUEUsICAgMzIsIAogICAgICAgIFQwUFIsICAgMzIsIAog ICAgICAgIFQwSVAsICAgOCwgCiAgICAgICAgVDBFUCwgICA4LCAKICAgICAgICBUMFJQLCAg IDgsIAogICAgICAgIFQwR0ksICAgMzIsIAogICAgICAgIFQxUEUsICAgMzIsIAogICAgICAg IFQxUFIsICAgMzIsIAogICAgICAgIFQxSVAsICAgOCwgCiAgICAgICAgVDFFUCwgICA4LCAK ICAgICAgICBUMVJQLCAgIDgsIAogICAgICAgIFQxR0ksICAgMzIsIAogICAgICAgIFBQREks ICAgOCwgCiAgICAgICAgV0xXSywgICAzMiwgCiAgICAgICAgV0xSUCwgICA4LCAKICAgICAg ICBTQVRQLCAgIDMyLCAKICAgICAgICBTVFBQLCAgIDgsIAogICAgICAgIFMxUEcsICAgMzIs IAogICAgICAgIFMxUFAsICAgOCwgCiAgICAgICAgUzFSRywgICAzMiwgCiAgICAgICAgUzFS UCwgICA4LCAKICAgICAgICBTMlBHLCAgIDMyLCAKICAgICAgICBTMlBQLCAgIDgsIAogICAg ICAgIFMyUkcsICAgMzIsIAogICAgICAgIFMyUlAsICAgOCwgCiAgICAgICAgUzNQRywgICAz MiwgCiAgICAgICAgUzNQUCwgICA4LCAKICAgICAgICBTM1JHLCAgIDMyLCAKICAgICAgICBT M1JQLCAgIDgsIAogICAgICAgIFM0UEcsICAgMzIsIAogICAgICAgIFM0UFAsICAgOCwgCiAg ICAgICAgUzRSRywgICAzMiwgCiAgICAgICAgUzRSUCwgICA4LCAKICAgICAgICBTNVBHLCAg IDMyLCAKICAgICAgICBTNVBQLCAgIDgsIAogICAgICAgIFM1UkcsICAgMzIsIAogICAgICAg IFM1UlAsICAgOCwgCiAgICAgICAgU1hJMSwgICA4LCAKICAgICAgICBTWEkyLCAgIDgsIAog ICAgICAgIFNYUDEsICAgOCwgCiAgICAgICAgU1hQMiwgICA4LCAKICAgICAgICBUU0QwLCAg IDgsIAogICAgICAgIFdDTEssICAgOCwgCiAgICAgICAgQ0VDViwgICAzMiwgCiAgICAgICAg V1dSUCwgICA4LCAKICAgICAgICBXQUdNLCAgIDgsIAogICAgICAgIEFHQTEsICAgOCwgCiAg ICAgICAgQUdBMiwgICA4LCAKICAgICAgICBBR0EzLCAgIDgsIAogICAgICAgIEFHQTQsICAg OCwgCiAgICAgICAgQUdBNSwgICA4LCAKICAgICAgICBBR0IxLCAgIDgsIAogICAgICAgIEFH QjIsICAgOCwgCiAgICAgICAgQUdCMywgICA4LCAKICAgICAgICBBR0I0LCAgIDgsIAogICAg ICAgIEFHQjUsICAgOCwgCiAgICAgICAgQUNTRCwgICA4LCAKICAgICAgICBJNUJTLCAgIDgs IAogICAgICAgIERHVlIsICAgMzIsIAogICAgICAgIExQTVIsICAgMzIsIAogICAgICAgIEdQ MUUsICAgOCwgCiAgICAgICAgT2Zmc2V0ICgweEE4OCksIAogICAgICAgIFdQRkEsICAgMzIs IAogICAgICAgIFdQRkIsICAgMzIsIAogICAgICAgIFdQRkMsICAgMzIsIAogICAgICAgIFdQ RkQsICAgMzIsIAogICAgICAgIFNUNTAsICAgOCwgCiAgICAgICAgU1Q1MSwgICA4LCAKICAg ICAgICBTVDUyLCAgIDgsIAogICAgICAgIFNUNTMsICAgOCwgCiAgICAgICAgU1Q1NCwgICA4 LCAKICAgICAgICBTVDU1LCAgIDgsIAogICAgICAgIFNUNTYsICAgOCwgCiAgICAgICAgU1Q1 NywgICA4LCAKICAgICAgICBTVDU4LCAgIDgsIAogICAgICAgIFNUNTksICAgOCwgCiAgICAg ICAgU1Q1QSwgICA4LCAKICAgICAgICBTVDVCLCAgIDgsIAogICAgICAgIFNUNjAsICAgOCwg CiAgICAgICAgU1Q2MSwgICA4LCAKICAgICAgICBTVDYyLCAgIDgsIAogICAgICAgIFNUNjMs ICAgOCwgCiAgICAgICAgU1Q2NCwgICA4LCAKICAgICAgICBTVDY1LCAgIDgsIAogICAgICAg IFNUNjYsICAgOCwgCiAgICAgICAgU1Q2NywgICA4LCAKICAgICAgICBTVDY4LCAgIDgsIAog ICAgICAgIFNUNjksICAgOCwgCiAgICAgICAgU1Q2QSwgICA4LCAKICAgICAgICBTVDZCLCAg IDgsIAogICAgICAgIFNUNzAsICAgOCwgCiAgICAgICAgU1Q3MSwgICA4LCAKICAgICAgICBT VDcyLCAgIDgsIAogICAgICAgIFNUNzMsICAgOCwgCiAgICAgICAgU1Q3NCwgICA4LCAKICAg ICAgICBTVDc1LCAgIDgsIAogICAgICAgIFNUNzYsICAgOCwgCiAgICAgICAgU1Q3NywgICA4 LCAKICAgICAgICBTVDc4LCAgIDgsIAogICAgICAgIFNUNzksICAgOCwgCiAgICAgICAgU1Q3 QSwgICA4LCAKICAgICAgICBTVDdCLCAgIDgsIAogICAgICAgIFNUODAsICAgOCwgCiAgICAg ICAgU1Q4MSwgICA4LCAKICAgICAgICBTVDgyLCAgIDgsIAogICAgICAgIFNUODMsICAgOCwg CiAgICAgICAgU1Q4NCwgICA4LCAKICAgICAgICBTVDg1LCAgIDgsIAogICAgICAgIFNUODYs ICAgOCwgCiAgICAgICAgU1Q4NywgICA4LCAKICAgICAgICBTVDg4LCAgIDgsIAogICAgICAg IFNUODksICAgOCwgCiAgICAgICAgU1Q4QSwgICA4LCAKICAgICAgICBTVDhCLCAgIDgsIAog ICAgICAgIFNEMTcsICAgOCwgCiAgICAgICAgU0QxOCwgICA4LCAKICAgICAgICBTRDE5LCAg IDgsIAogICAgICAgIFNEMjcsICAgOCwgCiAgICAgICAgU0QyOCwgICA4LCAKICAgICAgICBT RDI5LCAgIDgsIAogICAgICAgIFNEMzcsICAgOCwgCiAgICAgICAgU0QzOCwgICA4LCAKICAg ICAgICBTRDM5LCAgIDgsIAogICAgICAgIEFHQTYsICAgOCwgCiAgICAgICAgQUdBNywgICA4 LCAKICAgICAgICBBR0E4LCAgIDgsIAogICAgICAgIEFHQTksICAgOCwgCiAgICAgICAgQUdB QSwgICA4LCAKICAgICAgICBBR0FCLCAgIDgsIAogICAgICAgIEFHQjYsICAgOCwgCiAgICAg ICAgQUdCNywgICA4LCAKICAgICAgICBBR0I4LCAgIDgsIAogICAgICAgIEFHQjksICAgOCwg CiAgICAgICAgQUdCQSwgICA4LCAKICAgICAgICBBR0JCLCAgIDgsIAogICAgICAgIFVIQlMs ICAgMzIsIAogICAgICAgIEFYU1UsICAgOCwgCiAgICAgICAgQVhNVSwgICA4LCAKICAgICAg ICBBWFNSLCAgIDgsIAogICAgICAgIEFYTVIsICAgOCwgCiAgICAgICAgQ0QxMCwgICA4LCAK ICAgICAgICBDRDExLCAgIDgsIAogICAgICAgIENEMTIsICAgOCwgCiAgICAgICAgQ0QxMywg ICA4LCAKICAgICAgICBDRDE0LCAgIDgsIAogICAgICAgIENEMTUsICAgOCwgCiAgICAgICAg Q0QxNiwgICA4LCAKICAgICAgICBDRDE3LCAgIDgsIAogICAgICAgIENEMTgsICAgOCwgCiAg ICAgICAgQ0QxOSwgICA4LCAKICAgICAgICBDRDFBLCAgIDgsIAogICAgICAgIENEMjAsICAg OCwgCiAgICAgICAgQ0QyMSwgICA4LCAKICAgICAgICBDRDIyLCAgIDgsIAogICAgICAgIENE MjMsICAgOCwgCiAgICAgICAgQ0QyNCwgICA4LCAKICAgICAgICBDRDI1LCAgIDgsIAogICAg ICAgIENEMjYsICAgOCwgCiAgICAgICAgQ0QyNywgICA4LCAKICAgICAgICBDRDI4LCAgIDgs IAogICAgICAgIENEMjksICAgOCwgCiAgICAgICAgQ0QyQSwgICA4LCAKICAgICAgICBDRDMw LCAgIDgsIAogICAgICAgIENEMzEsICAgOCwgCiAgICAgICAgQ0QzMiwgICA4LCAKICAgICAg ICBDRDMzLCAgIDgsIAogICAgICAgIENEMzQsICAgOCwgCiAgICAgICAgQ0QzNSwgICA4LCAK ICAgICAgICBDRDM2LCAgIDgsIAogICAgICAgIENEMzcsICAgOCwgCiAgICAgICAgQ0QzOCwg ICA4LCAKICAgICAgICBDRDM5LCAgIDgsIAogICAgICAgIENEM0EsICAgOCwgCiAgICAgICAg Q0QzQiwgICA4LCAKICAgICAgICBDRDNDLCAgIDgsIAogICAgICAgIENEM0QsICAgOCwgCiAg ICAgICAgQ0QzRSwgICA4LCAKICAgICAgICBDRDNGLCAgIDgsIAogICAgICAgIENENDAsICAg OCwgCiAgICAgICAgQ0Q0MSwgICA4LCAKICAgICAgICBDRDQyLCAgIDgsIAogICAgICAgIENE NDMsICAgOCwgCiAgICAgICAgQ0Q0NCwgICA4LCAKICAgICAgICBDRDQ1LCAgIDgsIAogICAg ICAgIENENDYsICAgOCwgCiAgICAgICAgQ0Q0NywgICA4LCAKICAgICAgICBDRDQ4LCAgIDgs IAogICAgICAgIENENDksICAgOCwgCiAgICAgICAgQ0Q0QSwgICA4LCAKICAgICAgICBDRDRC LCAgIDgsIAogICAgICAgIENENEMsICAgOCwgCiAgICAgICAgQ0Q0RCwgICA4LCAKICAgICAg ICBDRDRFLCAgIDgsIAogICAgICAgIENENEYsICAgOCwgCiAgICAgICAgQ0Q1MCwgICA4LCAK ICAgICAgICBDRDUxLCAgIDgsIAogICAgICAgIENENTIsICAgOCwgCiAgICAgICAgQ0Q1Mywg ICA4LCAKICAgICAgICBDRDU0LCAgIDgsIAogICAgICAgIENENTUsICAgOCwgCiAgICAgICAg Q0Q1NiwgICA4LCAKICAgICAgICBDRDU3LCAgIDgsIAogICAgICAgIENENTgsICAgOCwgCiAg ICAgICAgQ0Q1OSwgICA4LCAKICAgICAgICBDRDVBLCAgIDgsIAogICAgICAgIENENUIsICAg OCwgCiAgICAgICAgQ0Q1QywgICA4LCAKICAgICAgICBDRDVELCAgIDgsIAogICAgICAgIENE NUUsICAgOCwgCiAgICAgICAgQ0Q1RiwgICA4LCAKICAgICAgICBDRDYwLCAgIDgsIAogICAg ICAgIENENjEsICAgOCwgCiAgICAgICAgQ0Q2MiwgICA4LCAKICAgICAgICBDRDYzLCAgIDgs IAogICAgICAgIENENjQsICAgOCwgCiAgICAgICAgQ0Q2NSwgICA4LCAKICAgICAgICBDRDY2 LCAgIDgsIAogICAgICAgIENENjcsICAgOCwgCiAgICAgICAgQ0Q2OCwgICA4LCAKICAgICAg ICBDRDY5LCAgIDgsIAogICAgICAgIENENkEsICAgOCwgCiAgICAgICAgQ0Q2QiwgICA4LCAK ICAgICAgICBDRDZDLCAgIDgsIAogICAgICAgIENENkQsICAgOCwgCiAgICAgICAgQ0Q2RSwg ICA4LCAKICAgICAgICBDRDZGLCAgIDgsIAogICAgICAgIENENzAsICAgOCwgCiAgICAgICAg Q0Q3MSwgICA4LCAKICAgICAgICBXVFNFLCAgIDMyLCAKICAgICAgICBXVExFLCAgIDgsIAog ICAgICAgIEJMMDEsICAgMTYsIAogICAgICAgIEJMMDIsICAgMTYsIAogICAgICAgIEJMMDMs ICAgMTYsIAogICAgICAgIEJMMDQsICAgMTYsIAogICAgICAgIEJMMDUsICAgMTYsIAogICAg ICAgIEJMMDYsICAgMTYsIAogICAgICAgIEJMMDcsICAgMTYsIAogICAgICAgIEJMMDgsICAg MTYsIAogICAgICAgIEJMMDksICAgMTYsIAogICAgICAgIEJMMTAsICAgMTYsIAogICAgICAg IEJMMTEsICAgMTYsIAogICAgICAgIEJMMTIsICAgMTYsIAogICAgICAgIEJMMTMsICAgMTYs IAogICAgICAgIEJMMTQsICAgMTYsIAogICAgICAgIEJMMTUsICAgMTYsIAogICAgICAgIEJM MTYsICAgMTYsIAogICAgICAgIFRJTEUsICAgOCwgCiAgICAgICAgVElTMCwgICA4LCAKICAg ICAgICBUUzBYLCAgIDgsIAogICAgICAgIFRJUzQsICAgOCwgCiAgICAgICAgVElTNSwgICA4 LCAKICAgICAgICBCTEVDLCAgIDgsIAogICAgICAgIEJMUEQsICAgOCwgCiAgICAgICAgQkxQ SSwgICA4LCAKICAgICAgICBQWERDLCAgIDgsIAogICAgICAgIFBYQUMsICAgOCwgCiAgICAg ICAgUFhXQywgICA4LCAKICAgICAgICBQWFVDLCAgIDgsIAogICAgICAgIFBYRkQsICAgOCwg CiAgICAgICAgUERPRCwgICAxNiwgCiAgICAgICAgWFNNSSwgICAzMiwgCiAgICAgICAgV1dF TiwgICA4LCAKICAgICAgICBXRkZELCAgIDgsIAogICAgICAgIFROMkIsICAgMTYsIAogICAg ICAgIFRCMlIsICAgMTYsIAogICAgICAgIFRSMlAsICAgMTYsIAogICAgICAgIFRSMkIsICAg MTYsIAogICAgICAgIFRCMkYsICAgMTYsIAogICAgICAgIFRGREksICAgMTYsIAogICAgICAg IFRCVEcsICAgMTYsIAogICAgICAgIFRCVFAsICAgMTYsIAogICAgICAgIEVQVFUsICAgOCwg CiAgICAgICAgVTRDTSwgICA4LCAKICAgICAgICBDTVNLLCAgIDgsIAogICAgICAgIFU0U0Us ICAgOCwgCiAgICAgICAgVTRDTCwgICA4LCAKICAgICAgICBXU0lELCAgIDE2LCAKICAgICAg ICBXU1RPLCAgIDE2LCAKICAgICAgICBEVVdTLCAgIDgsIAogICAgICAgIFdGUkMsICAgMzIs IAogICAgICAgIFdGVUMsICAgMzIsIAogICAgICAgIFVOSTQsICAgMzIsIAogICAgICAgIFdG SUMsICAgMzIsIAogICAgICAgIFdGQlMsICAgMzIsIAogICAgICAgIFVEUlMsICAgOCwgCiAg ICAgICAgSEdEVCwgICA4LCAKICAgICAgICBXQ0VOLCAgIDgsIAogICAgICAgIFdMQkksICAg OCwgCiAgICAgICAgV0hCSSwgICA4LCAKICAgICAgICBTREdOLCAgIDgsIAogICAgICAgIFNE NDEsICAgOCwgCiAgICAgICAgU0Q0MiwgICA4LCAKICAgICAgICBTRDQzLCAgIDgsIAogICAg ICAgIFNENDQsICAgOCwgCiAgICAgICAgU0Q0NSwgICA4LCAKICAgICAgICBTRDQ2LCAgIDgs IAogICAgICAgIFNENDcsICAgOCwgCiAgICAgICAgU0Q0OCwgICA4LCAKICAgICAgICBTRDQ5 LCAgIDgsIAogICAgICAgIFNENTEsICAgOCwgCiAgICAgICAgU0Q1MiwgICA4LCAKICAgICAg ICBTRDUzLCAgIDgsIAogICAgICAgIFNENTQsICAgOCwgCiAgICAgICAgU0Q1NSwgICA4LCAK ICAgICAgICBTRDU2LCAgIDgsIAogICAgICAgIFNENTcsICAgOCwgCiAgICAgICAgU0Q1OCwg ICA4LCAKICAgICAgICBTRDU5LCAgIDgsIAogICAgICAgIFNENjEsICAgOCwgCiAgICAgICAg U0Q2MiwgICA4LCAKICAgICAgICBTRDYzLCAgIDgsIAogICAgICAgIFNENjQsICAgOCwgCiAg ICAgICAgU0Q2NSwgICA4LCAKICAgICAgICBTRDY2LCAgIDgsIAogICAgICAgIFNENjcsICAg OCwgCiAgICAgICAgU0Q2OCwgICA4LCAKICAgICAgICBTRDY5LCAgIDgsIAogICAgICAgIFNE NzEsICAgOCwgCiAgICAgICAgU0Q3MiwgICA4LCAKICAgICAgICBTRDczLCAgIDgsIAogICAg ICAgIFNENzQsICAgOCwgCiAgICAgICAgU0Q3NSwgICA4LCAKICAgICAgICBTRDc2LCAgIDgs IAogICAgICAgIFNENzcsICAgOCwgCiAgICAgICAgU0Q3OCwgICA4LCAKICAgICAgICBTRDc5 LCAgIDgsIAogICAgICAgIFNEODEsICAgOCwgCiAgICAgICAgU0Q4MiwgICA4LCAKICAgICAg ICBTRDgzLCAgIDgsIAogICAgICAgIFNEODQsICAgOCwgCiAgICAgICAgU0Q4NSwgICA4LCAK ICAgICAgICBTRDg2LCAgIDgsIAogICAgICAgIFNEODcsICAgOCwgCiAgICAgICAgU0Q4OCwg ICA4LCAKICAgICAgICBTRDg5LCAgIDgsIAogICAgICAgIFNTSDYsICAgMTYsIAogICAgICAg IFNTTDYsICAgMTYsIAogICAgICAgIFNTRDYsICAgMTYsIAogICAgICAgIEZNSDYsICAgMTYs IAogICAgICAgIEZNTDYsICAgMTYsIAogICAgICAgIEZNRDYsICAgMTYsIAogICAgICAgIEZQ SDYsICAgMTYsIAogICAgICAgIEZQTDYsICAgMTYsIAogICAgICAgIEZQRDYsICAgMTYsIAog ICAgICAgIEhTSDYsICAgMTYsIAogICAgICAgIEhTTDYsICAgMTYsIAogICAgICAgIEhTRDYs ICAgMTYsIAogICAgICAgIE0wQ0MsICAgMTYsIAogICAgICAgIE0xQ0MsICAgMTYsIAogICAg ICAgIFNTSDcsICAgMTYsIAogICAgICAgIFNTTDcsICAgMTYsIAogICAgICAgIFNTRDcsICAg MTYsIAogICAgICAgIEZNSDcsICAgMTYsIAogICAgICAgIEZNTDcsICAgMTYsIAogICAgICAg IEZNRDcsICAgMTYsIAogICAgICAgIEZQSDcsICAgMTYsIAogICAgICAgIEZQTDcsICAgMTYs IAogICAgICAgIEZQRDcsICAgMTYsIAogICAgICAgIEhTSDcsICAgMTYsIAogICAgICAgIEhT TDcsICAgMTYsIAogICAgICAgIEhTRDcsICAgMTYsIAogICAgICAgIE0wQ0QsICAgMTYsIAog ICAgICAgIE0xQ0QsICAgMTYsIAogICAgICAgIEwwRkksICAgOCwgCiAgICAgICAgTDFGSSwg ICA4LCAKICAgICAgICBMMkZJLCAgIDgsIAogICAgICAgIEwzRkksICAgOCwgCiAgICAgICAg TDRGSSwgICA4LCAKICAgICAgICBMNUZJLCAgIDgsIAogICAgICAgIEMwQzAsICAgMTYsIAog ICAgICAgIEMwQzEsICAgMTYsIAogICAgICAgIEMwQzIsICAgMTYsIAogICAgICAgIEMwQzMs ICAgMTYsIAogICAgICAgIEMwQzQsICAgMTYsIAogICAgICAgIEMwQzUsICAgMTYsIAogICAg ICAgIEMxQzAsICAgMTYsIAogICAgICAgIEMxQzEsICAgMTYsIAogICAgICAgIEMxQzIsICAg MTYsIAogICAgICAgIEMxQzMsICAgMTYsIAogICAgICAgIEMxQzQsICAgMTYsIAogICAgICAg IEMxQzUsICAgMTYsIAogICAgICAgIEMyQzAsICAgMTYsIAogICAgICAgIEMyQzEsICAgMTYs IAogICAgICAgIEMyQzIsICAgMTYsIAogICAgICAgIEMyQzMsICAgMTYsIAogICAgICAgIEMy QzQsICAgMTYsIAogICAgICAgIEMyQzUsICAgMTYsIAogICAgICAgIEMzQzAsICAgMTYsIAog ICAgICAgIEMzQzEsICAgMTYsIAogICAgICAgIEMzQzIsICAgMTYsIAogICAgICAgIEMzQzMs ICAgMTYsIAogICAgICAgIEMzQzQsICAgMTYsIAogICAgICAgIEMzQzUsICAgMTYsIAogICAg ICAgIEM0QzAsICAgMTYsIAogICAgICAgIEM0QzEsICAgMTYsIAogICAgICAgIEM0QzIsICAg MTYsIAogICAgICAgIEM0QzMsICAgMTYsIAogICAgICAgIEM0QzQsICAgMTYsIAogICAgICAg IEM0QzUsICAgMTYsIAogICAgICAgIEM1QzAsICAgMTYsIAogICAgICAgIEM1QzEsICAgMTYs IAogICAgICAgIEM1QzIsICAgMTYsIAogICAgICAgIEM1QzMsICAgMTYsIAogICAgICAgIEM1 QzQsICAgMTYsIAogICAgICAgIEM1QzUsICAgMTYsIAogICAgICAgIEYwQ1AsICAgMTYsIAog ICAgICAgIEYxQ1AsICAgMTYsIAogICAgICAgIEYyQ1AsICAgMTYsIAogICAgICAgIEYzQ1As ICAgMTYsIAogICAgICAgIEY0Q1AsICAgMTYsIAogICAgICAgIEY1Q1AsICAgMTYsIAogICAg ICAgIFRQN1QsICAgOCwgCiAgICAgICAgVFA3UCwgICA4LCAKICAgICAgICBUUDdELCAgIDgs IAogICAgICAgIFRQOFQsICAgOCwgCiAgICAgICAgVFA4UCwgICA4LCAKICAgICAgICBUUDhE LCAgIDgsIAogICAgICAgIFRQOVQsICAgOCwgCiAgICAgICAgVFA5UCwgICA4LCAKICAgICAg ICBUUDlELCAgIDgsIAogICAgICAgIFRQQVQsICAgOCwgCiAgICAgICAgVFBBUCwgICA4LCAK ICAgICAgICBUUEFELCAgIDgsIAogICAgICAgIFRQMVUsICAgOCwgCiAgICAgICAgVFAyVSwg ICA4LCAKICAgICAgICBUUDNVLCAgIDgsIAogICAgICAgIFRQNFUsICAgOCwgCiAgICAgICAg VFA1VSwgICA4LCAKICAgICAgICBUUDZVLCAgIDgsIAogICAgICAgIFRQN1UsICAgOCwgCiAg ICAgICAgVFA4VSwgICA4LCAKICAgICAgICBUUDlVLCAgIDgsIAogICAgICAgIFRQQVUsICAg OCwgCiAgICAgICAgREdCQSwgICA2NCwgCiAgICAgICAgREdPUCwgICAzMiwgCiAgICAgICAg REJSTCwgICA4LCAKICAgICAgICBTVkRDLCAgIDgsIAogICAgICAgIElBREcsICAgOCwgCiAg ICAgICAgU1JMRCwgICA4LCAKICAgICAgICBXRURULCAgIDMyLCAKICAgICAgICBXRjdDLCAg IDMyLCAKICAgICAgICBFRE1YLCAgIDMyLCAKICAgICAgICBETklELCAgIDgsIAogICAgICAg IERHRDEsICAgMzIsIAogICAgICAgIERHRDIsICAgMzIsIAogICAgICAgIERHRDMsICAgMzIs IAogICAgICAgIERHRDQsICAgMzIsIAogICAgICAgIERHRDUsICAgMzIsIAogICAgICAgIERH RDYsICAgMzIsIAogICAgICAgIERHRDcsICAgMzIsIAogICAgICAgIERHRDgsICAgMzIsIAog ICAgICAgIERHRDksICAgMzIsIAogICAgICAgIERHREEsICAgMzIsIAogICAgICAgIERHREIs ICAgMzIsIAogICAgICAgIERHREMsICAgMzIsIAogICAgICAgIERHREQsICAgMzIsIAogICAg ICAgIERHREUsICAgMzIsIAogICAgICAgIERHREYsICAgMzIsIAogICAgICAgIERHRFgsICAg MzIsIAogICAgICAgIERHRFMsICAgOCwgCiAgICAgICAgQ0lSTSwgICA4LCAKICAgICAgICBE V0ZLLCAgIDMyLCAKICAgICAgICBXTFJULCAgIDMyLCAKICAgICAgICBXVkhPLCAgIDMyLCAK ICAgICAgICBXRENPLCAgIDMyLCAKICAgICAgICBTQlNCLCAgIDgsIAogICAgICAgIFNCU0ws ICAgOCwgCiAgICAgICAgU0lPQiwgICAxNiwgCiAgICAgICAgU0lPTCwgICAxNiwgCiAgICAg ICAgU01FQiwgICAzMiwgCiAgICAgICAgU01FTCwgICAzMiwgCiAgICAgICAgU1BNQiwgICA2 NCwgCiAgICAgICAgU1BNTCwgICA2NCwgCiAgICAgICAgUEJTQiwgICA4LCAKICAgICAgICBQ QlNMLCAgIDgsIAogICAgICAgIFBJT0IsICAgMTYsIAogICAgICAgIFBJT0wsICAgMTYsIAog ICAgICAgIFBNRUIsICAgMzIsIAogICAgICAgIFBNRUwsICAgMzIsIAogICAgICAgIFBQTUIs ICAgNjQsIAogICAgICAgIFBQTUwsICAgNjQsIAogICAgICAgIEkyU0UsICAgOCwgCiAgICAg ICAgSVRDTSwgICA4LCAKICAgICAgICBJVEhXLCAgIDgsIAogICAgICAgIElUU0ksICAgOCwg CiAgICAgICAgVlRDTSwgICA4LCAKICAgICAgICBaUERBLCAgIDMyLCAKICAgICAgICBaRFBS LCAgIDMyLCAKICAgICAgICBaRFBXLCAgIDMyLCAKICAgICAgICBaRFBQLCAgIDgsIAogICAg ICAgIFpQUEIsICAgOCwgCiAgICAgICAgQVJMUCwgICA4LCAKICAgICAgICBBUkxTLCAgIDgs IAogICAgICAgIEZWV1AsICAgMzIsIAogICAgICAgIEZWUkUsICAgMzIsIAogICAgICAgIEZW UlAsICAgOCwgCiAgICAgICAgRlZQRSwgICAzMiwgCiAgICAgICAgRlZQUCwgICA4LCAKICAg ICAgICBGVlNQLCAgIDgsIAogICAgICAgIFJQRlYsICAgOCwgCiAgICAgICAgQ0JUQSwgICA4 LCAKICAgICAgICBJQ1MwLCAgIDMyLCAKICAgICAgICBJQ1MxLCAgIDMyLCAKICAgICAgICBJ Q1MyLCAgIDMyLCAKICAgICAgICBJQ1MzLCAgIDMyLCAKICAgICAgICBJQ1M0LCAgIDMyLCAK ICAgICAgICBJQ1M1LCAgIDMyLCAKICAgICAgICBMMFBWLCAgIDgsIAogICAgICAgIEwwUFUs ICAgOCwgCiAgICAgICAgTDFQViwgICA4LCAKICAgICAgICBMMVBVLCAgIDgsIAogICAgICAg IEwyUFYsICAgOCwgCiAgICAgICAgTDJQVSwgICA4LCAKICAgICAgICBMM1BVLCAgIDgsIAog ICAgICAgIEwzUFYsICAgOCwgCiAgICAgICAgTDRQVSwgICA4LCAKICAgICAgICBMNFBWLCAg IDgsIAogICAgICAgIEw1UFUsICAgOCwgCiAgICAgICAgTDVQViwgICA4LCAKICAgICAgICBB MEgwLCAgIDgsIAogICAgICAgIEEwSDEsICAgOCwgCiAgICAgICAgQTBIMiwgICA4LCAKICAg ICAgICBBMEgzLCAgIDgsIAogICAgICAgIEEwSDQsICAgOCwgCiAgICAgICAgQTBINSwgICA4 LCAKICAgICAgICBBMEg2LCAgIDgsIAogICAgICAgIEEwSDcsICAgOCwgCiAgICAgICAgQTBI OCwgICA4LCAKICAgICAgICBBMUgwLCAgIDgsIAogICAgICAgIEExSDEsICAgOCwgCiAgICAg ICAgQTFIMiwgICA4LCAKICAgICAgICBBMUgzLCAgIDgsIAogICAgICAgIEExSDQsICAgOCwg CiAgICAgICAgQTFINSwgICA4LCAKICAgICAgICBBMUg2LCAgIDgsIAogICAgICAgIEExSDcs ICAgOCwgCiAgICAgICAgQTFIOCwgICA4LCAKICAgICAgICBDR0xTLCAgIDgsIAogICAgICAg IFRQMUMsICAgOCwgCiAgICAgICAgVFAyQywgICA4LCAKICAgICAgICBUUDNDLCAgIDgsIAog ICAgICAgIFRQNEMsICAgOCwgCiAgICAgICAgVFA1QywgICA4LCAKICAgICAgICBUUDZDLCAg IDgsIAogICAgICAgIFRQN0MsICAgOCwgCiAgICAgICAgVFA4QywgICA4LCAKICAgICAgICBU UDlDLCAgIDgsIAogICAgICAgIFRQQUMsICAgOCwgCiAgICAgICAgRVZTQSwgICA4LCAKICAg ICAgICBEUjAxLCAgIDMyLCAKICAgICAgICBEUjAyLCAgIDMyLCAKICAgICAgICBEUjAzLCAg IDMyLCAKICAgICAgICBEUjA0LCAgIDMyLCAKICAgICAgICBER1BWLCAgIDE2LCAKICAgICAg ICBPU0RQLCAgIDgKICAgIH0KCiAgICBOYW1lIChQTlZCLCAweDY1REUyMDE4KQogICAgTmFt ZSAoUE5WTCwgMHgwNEFGKQogICAgT3BlcmF0aW9uUmVnaW9uIChQTlZBLCBTeXN0ZW1NZW1v cnksIFBOVkIsIFBOVkwpCiAgICBGaWVsZCAoUE5WQSwgQW55QWNjLCBMb2NrLCBQcmVzZXJ2 ZSkKICAgIHsKICAgICAgICBQQ0hTLCAgIDE2LCAKICAgICAgICBQQ0hHLCAgIDE2LCAKICAg ICAgICBQU1RQLCAgIDE2LCAKICAgICAgICBSUEExLCAgIDMyLCAKICAgICAgICBSUEEyLCAg IDMyLCAKICAgICAgICBSUEEzLCAgIDMyLCAKICAgICAgICBSUEE0LCAgIDMyLCAKICAgICAg ICBSUEE1LCAgIDMyLCAKICAgICAgICBSUEE2LCAgIDMyLCAKICAgICAgICBSUEE3LCAgIDMy LCAKICAgICAgICBSUEE4LCAgIDMyLCAKICAgICAgICBSUEE5LCAgIDMyLCAKICAgICAgICBS UEFBLCAgIDMyLCAKICAgICAgICBSUEFCLCAgIDMyLCAKICAgICAgICBSUEFDLCAgIDMyLCAK ICAgICAgICBSUEFELCAgIDMyLCAKICAgICAgICBSUEFFLCAgIDMyLCAKICAgICAgICBSUEFG LCAgIDMyLCAKICAgICAgICBSUEFHLCAgIDMyLCAKICAgICAgICBSUEFILCAgIDMyLCAKICAg ICAgICBSUEFJLCAgIDMyLCAKICAgICAgICBSUEFKLCAgIDMyLCAKICAgICAgICBSUEFLLCAg IDMyLCAKICAgICAgICBSUEFMLCAgIDMyLCAKICAgICAgICBSUEFNLCAgIDMyLCAKICAgICAg ICBSUEFOLCAgIDMyLCAKICAgICAgICBSUEFPLCAgIDMyLCAKICAgICAgICBSUEFQLCAgIDMy LCAKICAgICAgICBSUEFRLCAgIDMyLCAKICAgICAgICBSUEFSLCAgIDMyLCAKICAgICAgICBS UEFTLCAgIDMyLCAKICAgICAgICBOSEFBLCAgIDY0LCAKICAgICAgICBOSExMLCAgIDMyLCAK ICAgICAgICBBREZNLCAgIDMyLCAKICAgICAgICBTV1EwLCAgIDgsIAogICAgICAgIFNXUTEs ICAgOCwgCiAgICAgICAgU1dRMiwgICA4LCAKICAgICAgICBTV1EzLCAgIDgsIAogICAgICAg IEFDUzAsICAgOCwgCiAgICAgICAgQUNTMSwgICA4LCAKICAgICAgICBBQ1MyLCAgIDgsIAog ICAgICAgIEFDUzMsICAgOCwgCiAgICAgICAgREFJMCwgICA4LCAKICAgICAgICBEQUkxLCAg IDgsIAogICAgICAgIERBSTIsICAgOCwgCiAgICAgICAgREFJMywgICA4LCAKICAgICAgICBE T0QwLCAgIDgsIAogICAgICAgIERPRDEsICAgOCwgCiAgICAgICAgRE9EMiwgICA4LCAKICAg ICAgICBET0QzLCAgIDgsIAogICAgICAgIEhEQk8sICAgMTYsIAogICAgICAgIFNXTUMsICAg OCwgCiAgICAgICAgWFRBTCwgICAzMiwgCiAgICAgICAgU0JSRywgICAzMiwgCiAgICAgICAg R0VJMCwgICA4LCAKICAgICAgICBHRUkxLCAgIDgsIAogICAgICAgIEdFSTIsICAgOCwgCiAg ICAgICAgR0VEMCwgICA4LCAKICAgICAgICBHRUQxLCAgIDgsIAogICAgICAgIEdFRDIsICAg OCwgCiAgICAgICAgUE1MMSwgICAxNiwgCiAgICAgICAgUE1MMiwgICAxNiwgCiAgICAgICAg UE1MMywgICAxNiwgCiAgICAgICAgUE1MNCwgICAxNiwgCiAgICAgICAgUE1MNSwgICAxNiwg CiAgICAgICAgUE1MNiwgICAxNiwgCiAgICAgICAgUE1MNywgICAxNiwgCiAgICAgICAgUE1M OCwgICAxNiwgCiAgICAgICAgUE1MOSwgICAxNiwgCiAgICAgICAgUE1MQSwgICAxNiwgCiAg ICAgICAgUE1MQiwgICAxNiwgCiAgICAgICAgUE1MQywgICAxNiwgCiAgICAgICAgUE1MRCwg ICAxNiwgCiAgICAgICAgUE1MRSwgICAxNiwgCiAgICAgICAgUE1MRiwgICAxNiwgCiAgICAg ICAgUE1MRywgICAxNiwgCiAgICAgICAgUE1MSCwgICAxNiwgCiAgICAgICAgUE1MSSwgICAx NiwgCiAgICAgICAgUE1MSiwgICAxNiwgCiAgICAgICAgUE1MSywgICAxNiwgCiAgICAgICAg UE1MTCwgICAxNiwgCiAgICAgICAgUE1MTSwgICAxNiwgCiAgICAgICAgUE1MTiwgICAxNiwg CiAgICAgICAgUE1MTywgICAxNiwgCiAgICAgICAgUE1MUCwgICAxNiwgCiAgICAgICAgUE1M USwgICAxNiwgCiAgICAgICAgUE1MUiwgICAxNiwgCiAgICAgICAgUE1MUywgICAxNiwgCiAg ICAgICAgUE5MMSwgICAxNiwgCiAgICAgICAgUE5MMiwgICAxNiwgCiAgICAgICAgUE5MMywg ICAxNiwgCiAgICAgICAgUE5MNCwgICAxNiwgCiAgICAgICAgUE5MNSwgICAxNiwgCiAgICAg ICAgUE5MNiwgICAxNiwgCiAgICAgICAgUE5MNywgICAxNiwgCiAgICAgICAgUE5MOCwgICAx NiwgCiAgICAgICAgUE5MOSwgICAxNiwgCiAgICAgICAgUE5MQSwgICAxNiwgCiAgICAgICAg UE5MQiwgICAxNiwgCiAgICAgICAgUE5MQywgICAxNiwgCiAgICAgICAgUE5MRCwgICAxNiwg CiAgICAgICAgUE5MRSwgICAxNiwgCiAgICAgICAgUE5MRiwgICAxNiwgCiAgICAgICAgUE5M RywgICAxNiwgCiAgICAgICAgUE5MSCwgICAxNiwgCiAgICAgICAgUE5MSSwgICAxNiwgCiAg ICAgICAgUE5MSiwgICAxNiwgCiAgICAgICAgUE5MSywgICAxNiwgCiAgICAgICAgUE5MTCwg ICAxNiwgCiAgICAgICAgUE5MTSwgICAxNiwgCiAgICAgICAgUE5MTiwgICAxNiwgCiAgICAg ICAgUE5MTywgICAxNiwgCiAgICAgICAgUE5MUCwgICAxNiwgCiAgICAgICAgUE5MUSwgICAx NiwgCiAgICAgICAgUE5MUiwgICAxNiwgCiAgICAgICAgUE5MUywgICAxNiwgCiAgICAgICAg WEhQQywgICA4LCAKICAgICAgICBYUlBDLCAgIDgsIAogICAgICAgIFhTUEMsICAgOCwgCiAg ICAgICAgWFNQQSwgICA4LCAKICAgICAgICBIUFRCLCAgIDMyLCAKICAgICAgICBIUFRFLCAg IDgsIAogICAgICAgIFNNMDAsICAgOCwgCiAgICAgICAgU00wMSwgICA4LCAKICAgICAgICBT TTAyLCAgIDgsIAogICAgICAgIFNNMDMsICAgOCwgCiAgICAgICAgU00wNCwgICA4LCAKICAg ICAgICBTTTA1LCAgIDgsIAogICAgICAgIFNNMDYsICAgOCwgCiAgICAgICAgU0MwMCwgICA2 NCwgCiAgICAgICAgU0MwMSwgICA2NCwgCiAgICAgICAgU0MwMiwgICA2NCwgCiAgICAgICAg U0MwMywgICA2NCwgCiAgICAgICAgU0MwNCwgICA2NCwgCiAgICAgICAgU0MwNSwgICA2NCwg CiAgICAgICAgU0MwNiwgICA2NCwgCiAgICAgICAgSU0wMCwgICA4LCAKICAgICAgICBJTTAx LCAgIDgsIAogICAgICAgIElNMDIsICAgOCwgCiAgICAgICAgSU0wMywgICA4LCAKICAgICAg ICBJTTA0LCAgIDgsIAogICAgICAgIElNMDUsICAgOCwgCiAgICAgICAgSU0wNiwgICA4LCAK ICAgICAgICBJTTA3LCAgIDgsIAogICAgICAgIElDMDAsICAgNjQsIAogICAgICAgIElDMDEs ICAgNjQsIAogICAgICAgIElDMDIsICAgNjQsIAogICAgICAgIElDMDMsICAgNjQsIAogICAg ICAgIElDMDQsICAgNjQsIAogICAgICAgIElDMDUsICAgNjQsIAogICAgICAgIElDMDYsICAg NjQsIAogICAgICAgIElDMDcsICAgNjQsIAogICAgICAgIFVNMDAsICAgOCwgCiAgICAgICAg VU0wMSwgICA4LCAKICAgICAgICBVTTAyLCAgIDgsIAogICAgICAgIFVNMDMsICAgOCwgCiAg ICAgICAgVU0wNCwgICA4LCAKICAgICAgICBVTTA1LCAgIDgsIAogICAgICAgIFVNMDYsICAg OCwgCiAgICAgICAgVUMwMCwgICA2NCwgCiAgICAgICAgVUMwMSwgICA2NCwgCiAgICAgICAg VUMwMiwgICA2NCwgCiAgICAgICAgVUMwMywgICA2NCwgCiAgICAgICAgVUMwNCwgICA2NCwg CiAgICAgICAgVUMwNSwgICA2NCwgCiAgICAgICAgVUMwNiwgICA2NCwgCiAgICAgICAgVUQw MCwgICA4LCAKICAgICAgICBVRDAxLCAgIDgsIAogICAgICAgIFVEMDIsICAgOCwgCiAgICAg ICAgVUQwMywgICA4LCAKICAgICAgICBVRDA0LCAgIDgsIAogICAgICAgIFVEMDUsICAgOCwg CiAgICAgICAgVUQwNiwgICA4LCAKICAgICAgICBVUDAwLCAgIDgsIAogICAgICAgIFVQMDEs ICAgOCwgCiAgICAgICAgVVAwMiwgICA4LCAKICAgICAgICBVUDAzLCAgIDgsIAogICAgICAg IFVQMDQsICAgOCwgCiAgICAgICAgVVAwNSwgICA4LCAKICAgICAgICBVUDA2LCAgIDgsIAog ICAgICAgIFVJMDAsICAgOCwgCiAgICAgICAgVUkwMSwgICA4LCAKICAgICAgICBVSTAyLCAg IDgsIAogICAgICAgIFVJMDMsICAgOCwgCiAgICAgICAgVUkwNCwgICA4LCAKICAgICAgICBV STA1LCAgIDgsIAogICAgICAgIFVJMDYsICAgOCwgCiAgICAgICAgU0dJUiwgICA4LCAKICAg ICAgICBHUEhELCAgIDgsIAogICAgICAgIE5JVDEsICAgOCwgCiAgICAgICAgTklUMiwgICA4 LCAKICAgICAgICBOSVQzLCAgIDgsIAogICAgICAgIE5QTTEsICAgOCwgCiAgICAgICAgTlBN MiwgICA4LCAKICAgICAgICBOUE0zLCAgIDgsIAogICAgICAgIE5QQzEsICAgOCwgCiAgICAg ICAgTlBDMiwgICA4LCAKICAgICAgICBOUEMzLCAgIDgsIAogICAgICAgIE5MMTEsICAgMTYs IAogICAgICAgIE5MMTIsICAgMTYsIAogICAgICAgIE5MMTMsICAgMTYsIAogICAgICAgIE5E MjEsICAgOCwgCiAgICAgICAgTkQyMiwgICA4LCAKICAgICAgICBORDIzLCAgIDgsIAogICAg ICAgIE5EMTEsICAgMzIsIAogICAgICAgIE5EMTIsICAgMzIsIAogICAgICAgIE5EMTMsICAg MzIsIAogICAgICAgIE5MUjEsICAgMTYsIAogICAgICAgIE5MUjIsICAgMTYsIAogICAgICAg IE5MUjMsICAgMTYsIAogICAgICAgIE5MRDEsICAgMzIsIAogICAgICAgIE5MRDIsICAgMzIs IAogICAgICAgIE5MRDMsICAgMzIsIAogICAgICAgIE5FQTEsICAgMTYsIAogICAgICAgIE5F QTIsICAgMTYsIAogICAgICAgIE5FQTMsICAgMTYsIAogICAgICAgIE5FQjEsICAgMTYsIAog ICAgICAgIE5FQjIsICAgMTYsIAogICAgICAgIE5FQjMsICAgMTYsIAogICAgICAgIE5FQzEs ICAgMTYsIAogICAgICAgIE5FQzIsICAgMTYsIAogICAgICAgIE5FQzMsICAgMTYsIAogICAg ICAgIE5SQTEsICAgMTYsIAogICAgICAgIE5SQTIsICAgMTYsIAogICAgICAgIE5SQTMsICAg MTYsIAogICAgICAgIE5NQjEsICAgMzIsIAogICAgICAgIE5NQjIsICAgMzIsIAogICAgICAg IE5NQjMsICAgMzIsIAogICAgICAgIE5NVjEsICAgMzIsIAogICAgICAgIE5NVjIsICAgMzIs IAogICAgICAgIE5NVjMsICAgMzIsIAogICAgICAgIE5QQjEsICAgMzIsIAogICAgICAgIE5Q QjIsICAgMzIsIAogICAgICAgIE5QQjMsICAgMzIsIAogICAgICAgIE5QVjEsICAgMzIsIAog ICAgICAgIE5QVjIsICAgMzIsIAogICAgICAgIE5QVjMsICAgMzIsIAogICAgICAgIE5SUDEs ICAgMzIsIAogICAgICAgIE5SUDIsICAgMzIsIAogICAgICAgIE5SUDMsICAgMzIsIAogICAg ICAgIEVNSDQsICAgOCwgCiAgICAgICAgRU1EUywgICA4LCAKICAgICAgICBDU0tVLCAgIDgs IAogICAgICAgIElUQTAsICAgMTYsIAogICAgICAgIElUQTEsICAgMTYsIAogICAgICAgIElU QTIsICAgMTYsIAogICAgICAgIElUQTMsICAgMTYsIAogICAgICAgIElUUzAsICAgOCwgCiAg ICAgICAgSVRTMSwgICA4LCAKICAgICAgICBJVFMyLCAgIDgsIAogICAgICAgIElUUzMsICAg OCwgCiAgICAgICAgUE1CUywgICAxNiwgCiAgICAgICAgUFdSTSwgICAzMiwgCiAgICAgICAg Q1JGUCwgICA4LCAKICAgICAgICBQQ05WLCAgIDE2LCAKICAgICAgICBDV0ZDLCAgIDgsIAog ICAgICAgIENCVEMsICAgOCwgCiAgICAgICAgQ0JUSSwgICA4LCAKICAgICAgICBHQlRQLCAg IDMyLCAKICAgICAgICBDVlBSLCAgIDgsIAogICAgICAgIENSRkksICAgOCwgCiAgICAgICAg VFZCUywgICA4LCAKICAgICAgICBURldCLCAgIDMyLCAKICAgICAgICBQU09OLCAgIDgsIAog ICAgICAgIExUUjEsICAgOCwgCiAgICAgICAgTFRSMiwgICA4LCAKICAgICAgICBMVFIzLCAg IDgsIAogICAgICAgIExUUjQsICAgOCwgCiAgICAgICAgTFRSNSwgICA4LCAKICAgICAgICBM VFI2LCAgIDgsIAogICAgICAgIExUUjcsICAgOCwgCiAgICAgICAgTFRSOCwgICA4LCAKICAg ICAgICBMVFI5LCAgIDgsIAogICAgICAgIExUUkEsICAgOCwgCiAgICAgICAgTFRSQiwgICA4 LCAKICAgICAgICBMVFJDLCAgIDgsIAogICAgICAgIExUUkQsICAgOCwgCiAgICAgICAgTFRS RSwgICA4LCAKICAgICAgICBMVFJGLCAgIDgsIAogICAgICAgIExUUkcsICAgOCwgCiAgICAg ICAgTFRSSCwgICA4LCAKICAgICAgICBMVFJJLCAgIDgsIAogICAgICAgIExUUkosICAgOCwg CiAgICAgICAgTFRSSywgICA4LCAKICAgICAgICBMVFJMLCAgIDgsIAogICAgICAgIExUUk0s ICAgOCwgCiAgICAgICAgTFRSTiwgICA4LCAKICAgICAgICBMVFJPLCAgIDgsIAogICAgICAg IExUUlAsICAgOCwgCiAgICAgICAgTFRSUSwgICA4LCAKICAgICAgICBMVFJSLCAgIDgsIAog ICAgICAgIExUUlMsICAgOCwgCiAgICAgICAgR0JFUywgICA4LCAKICAgICAgICBQUERTLCAg IDMyLCAKICAgICAgICBFTUNFLCAgIDgsIAogICAgICAgIFNEQ0UsICAgOCwgCiAgICAgICAg VEdFQSwgICA4LCAKICAgICAgICBUR0VCLCAgIDgsIAogICAgICAgIENSMDAsICAgOCwgCiAg ICAgICAgQ1IwMSwgICA4LCAKICAgICAgICBDUjAyLCAgIDgsIAogICAgICAgIENSMDMsICAg OCwgCiAgICAgICAgQ1IwNCwgICA4LCAKICAgICAgICBDUjA1LCAgIDgsIAogICAgICAgIENS MDYsICAgOCwgCiAgICAgICAgQ1IwNywgICA4LCAKICAgICAgICBDUjA4LCAgIDgsIAogICAg ICAgIENSMDksICAgOCwgCiAgICAgICAgQ1IxMCwgICA4LCAKICAgICAgICBDUjExLCAgIDgs IAogICAgICAgIENSMTIsICAgOCwgCiAgICAgICAgQ1IxMywgICA4LCAKICAgICAgICBDUjE0 LCAgIDgsIAogICAgICAgIENSMTUsICAgOCwgCiAgICAgICAgQ1IxNiwgICA4LCAKICAgICAg ICBDUjE3LCAgIDgsIAogICAgICAgIFRDT0IsICAgMTYsIAogICAgICAgIElDS1AsICAgMTYs IAogICAgICAgIFBVMkMsICAgOCwgCiAgICAgICAgUFUzQywgICA4LCAKICAgICAgICBTUFBS LCAgIDgsIAogICAgICAgIElQQ0MsICAgOCwgCiAgICAgICAgQ1EwMCwgICA4LCAKICAgICAg ICBDUTAxLCAgIDgsIAogICAgICAgIENRMDIsICAgOCwgCiAgICAgICAgQ1EwMywgICA4LCAK ICAgICAgICBDUTA0LCAgIDgsIAogICAgICAgIENRMDUsICAgOCwgCiAgICAgICAgQ1EwNiwg ICA4LCAKICAgICAgICBDUTA3LCAgIDgsIAogICAgICAgIENRMDgsICAgOCwgCiAgICAgICAg Q1EwOSwgICA4LCAKICAgICAgICBDUTEwLCAgIDgsIAogICAgICAgIENRMTEsICAgOCwgCiAg ICAgICAgQ1ExMiwgICA4LCAKICAgICAgICBDUTEzLCAgIDgsIAogICAgICAgIENRMTQsICAg OCwgCiAgICAgICAgQ1ExNSwgICA4LCAKICAgICAgICBDUTE2LCAgIDgsIAogICAgICAgIENR MTcsICAgOCwgCiAgICAgICAgVElOMCwgICAzMiwgCiAgICAgICAgVElOMSwgICAzMiwgCiAg ICAgICAgVE1EMCwgICAxNiwgCiAgICAgICAgVE1EMSwgICAxNiwgCiAgICAgICAgVUYwRSwg ICA4LCAKICAgICAgICBVRjFFLCAgIDgsIAogICAgICAgIFVBT0UsICAgOCwgCiAgICAgICAg VDAxMCwgICAzMiwgCiAgICAgICAgVDAxMSwgICAzMiwgCiAgICAgICAgVDAyMCwgICA4LCAK ICAgICAgICBUMDIxLCAgIDgsIAogICAgICAgIFQwMzAsICAgMzIsIAogICAgICAgIFQwMzEs ICAgMzIsIAogICAgICAgIFQwNDAsICAgMzIsIAogICAgICAgIFQwNDEsICAgMzIsIAogICAg ICAgIFQwNTAsICAgMzIsIAogICAgICAgIFQwNTEsICAgMzIsIAogICAgICAgIFQwNjAsICAg MzIsIAogICAgICAgIFQwNjEsICAgMzIsIAogICAgICAgIFQwNzAsICAgMzIsIAogICAgICAg IFQwNzEsICAgMzIsIAogICAgICAgIFQwODAsICAgMzIsIAogICAgICAgIFQwODEsICAgMzIs IAogICAgICAgIFQwOTAsICAgMzIsIAogICAgICAgIFQwOTEsICAgMzIsIAogICAgICAgIFQw QTAsICAgMzIsIAogICAgICAgIFQwQTEsICAgMzIsIAogICAgICAgIFQwQjAsICAgMzIsIAog ICAgICAgIFQwQjEsICAgMzIsIAogICAgICAgIFQwQzAsICAgMzIsIAogICAgICAgIFQwQzEs ICAgMzIsIAogICAgICAgIFQwRDAsICAgMzIsIAogICAgICAgIFQwRDEsICAgMzIsIAogICAg ICAgIFQwRTAsICAgMzIsIAogICAgICAgIFQwRTEsICAgMzIsIAogICAgICAgIFQwRjAsICAg MzIsIAogICAgICAgIFQwRjEsICAgMzIsIAogICAgICAgIFQwRzAsICAgMTYsIAogICAgICAg IFQwRzEsICAgMTYsIAogICAgICAgIFQwSDAsICAgMzIsIAogICAgICAgIFQwSDEsICAgMzIs IAogICAgICAgIFQwSTAsICAgOCwgCiAgICAgICAgVDBJMSwgICA4LCAKICAgICAgICBUMEow LCAgIDY0LCAKICAgICAgICBUMEoxLCAgIDY0LCAKICAgICAgICBUMEswLCAgIDY0LCAKICAg ICAgICBUMEsxLCAgIDY0LCAKICAgICAgICBUMEwwLCAgIDY0LCAKICAgICAgICBUMEwxLCAg IDY0LCAKICAgICAgICBUME0wLCAgIDY0LCAKICAgICAgICBUME0xLCAgIDY0LCAKICAgICAg ICBUME4wLCAgIDY0LCAKICAgICAgICBUME4xLCAgIDY0LCAKICAgICAgICBUME8wLCAgIDY0 LCAKICAgICAgICBUME8xLCAgIDY0LCAKICAgICAgICBUMFAwLCAgIDY0LCAKICAgICAgICBU MFAxLCAgIDY0LCAKICAgICAgICBUMFEwLCAgIDY0LCAKICAgICAgICBUMFExLCAgIDY0LCAK ICAgICAgICBUMFIwLCAgIDY0LCAKICAgICAgICBUMFIxLCAgIDY0LCAKICAgICAgICBUMFMw LCAgIDY0LCAKICAgICAgICBUMFMxLCAgIDY0LCAKICAgICAgICBUMFQwLCAgIDY0LCAKICAg ICAgICBUMFQxLCAgIDY0LCAKICAgICAgICBUMFUwLCAgIDY0LCAKICAgICAgICBUMFUxLCAg IDY0LCAKICAgICAgICBUMFYwLCAgIDY0LCAKICAgICAgICBUMFYxLCAgIDY0LCAKICAgICAg ICBUMFcwLCAgIDY0LCAKICAgICAgICBUMFcxLCAgIDY0LCAKICAgICAgICBUMFgwLCAgIDY0 LCAKICAgICAgICBUMFgxLCAgIDY0LCAKICAgICAgICBUMFkwLCAgIDY0LCAKICAgICAgICBU MFkxLCAgIDY0LCAKICAgICAgICBUMFowLCAgIDY0LCAKICAgICAgICBUMFoxLCAgIDY0LCAK ICAgICAgICBUMDAwLCAgIDY0LCAKICAgICAgICBUMDAxLCAgIDY0LCAKICAgICAgICBDUFBF LCAgIDgsIAogICAgICAgIFBDSEEsICAgOCwgCiAgICAgICAgQVJMTSwgICA4LCAKICAgICAg ICBTTUwwLCAgIDgsIAogICAgICAgIFNNTDEsICAgOCwgCiAgICAgICAgU01MMiwgICA4LCAK ICAgICAgICBTTUwzLCAgIDgKICAgIH0KCiAgICBTY29wZSAoX1NCKQogICAgewogICAgICAg IERldmljZSAoUEMwMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJ ZCAoIlBOUDBBMDgiKSAvKiBQQ0kgRXhwcmVzcyBCdXMgKi8pICAvLyBfSElEOiBIYXJkd2Fy ZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCBFaXNhSWQgKCJQTlAwQTAzIikgLyogUENJ IEJ1cyAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFtZSAoX1NF RywgWmVybykgIC8vIF9TRUc6IFBDSSBTZWdtZW50CiAgICAgICAgICAgIE5hbWUgKF9CQk4s IFplcm8pICAvLyBfQkJOOiBCSU9TIEJ1cyBOdW1iZXIKICAgICAgICAgICAgTmFtZSAoX1VJ RCwgWmVybykgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBEZXZpY2UgKE1DKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FE UjogQWRkcmVzcwogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChIQlVTLCBQQ0lf Q29uZmlnLCBaZXJvLCAweDAxMDApCiAgICAgICAgICAgICAgICBGaWVsZCAoSEJVUywgRFdv cmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDQwKSwgCiAgICAgICAgICAgICAgICAgICAgRVBFTiwgICAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDExLCAKICAgICAgICAgICAgICAgICAg ICBFUEJSLCAgIDIwLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDgpLCAKICAg ICAgICAgICAgICAgICAgICBNSEVOLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAs ICAgMTQsIAogICAgICAgICAgICAgICAgICAgIE1IQlIsICAgMTcsIAogICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICAgICAgIEdDTEssICAgMSwg CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDU0KSwgCiAgICAgICAgICAgICAgICAg ICAgRDBFTiwgICAxLCAKICAgICAgICAgICAgICAgICAgICBEMUYyLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgIEQxRjEsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgRDFGMCwgICAx LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTYpLCAKICAgICAgICAgICAgICAg ICAgICBENkYwLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAog ICAgICAgICAgICAgICAgICAgIFBYRU4sICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUFhT WiwgICAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIyLCAKICAgICAgICAgICAg ICAgICAgICBQWEJSLCAgIDYsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2OCks IAogICAgICAgICAgICAgICAgICAgIERJRU4sICAgMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICwgICAxMSwgCiAgICAgICAgICAgICAgICAgICAgRElCUiwgICAyMCwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDcwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwg ICAyMCwgCiAgICAgICAgICAgICAgICAgICAgTUVCUiwgICAxMiwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA0LCAK ICAgICAgICAgICAgICAgICAgICBQTTBILCAgIDIsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHg4MSksIAogICAgICAgICAgICAgICAgICAgIFBNMUwsICAgMiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQTTFILCAgIDIs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MiksIAogICAgICAgICAgICAgICAg ICAgIFBNMkwsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAg ICAgICAgICAgICAgICBQTTJILCAgIDIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHg4MyksIAogICAgICAgICAgICAgICAgICAgIFBNM0wsICAgMiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQTTNILCAgIDIsIAogICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NCksIAogICAgICAgICAgICAgICAgICAgIFBN NEwsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAg ICAgICAgICBQTTRILCAgIDIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NSks IAogICAgICAgICAgICAgICAgICAgIFBNNUwsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQTTVILCAgIDIsIAogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg4NiksIAogICAgICAgICAgICAgICAgICAgIFBNNkwsICAg MiwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAg ICBQTTZILCAgIDIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NyksIAogICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBOCksIAogICAgICAgICAgICAgICAgICAgICAg ICAsICAgMjAsIAogICAgICAgICAgICAgICAgICAgIFRVVUQsICAgMTksIAogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHhCQyksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAg MjAsIAogICAgICAgICAgICAgICAgICAgIFRMVUQsICAgMTIsIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHhDOCksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgNywgCiAg ICAgICAgICAgICAgICAgICAgSFRTRSwgICAxCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgV29yZEJ1c051bWJlciAoUmVzb3VyY2VQcm9k dWNlciwgTWluRml4ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUsCiAgICAgICAgICAgICAgICAg ICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAg ICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgIDB4MDBGRiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAg ICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAg ICAgICAgICAgICAgICAgICAgMHgwMTAwLCAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAsLCBfWTAwKQogICAgICAgICAgICAgICAgRFdvcmRJTyAoUmVzb3Vy Y2VQcm9kdWNlciwgTWluRml4ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUsIEVudGlyZVJhbmdl LAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJp dHkKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwQ0Y3LCAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRy YW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDRjgsICAgICAg ICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgLCBUeXBlU3RhdGljLCBEZW5z ZVRyYW5zbGF0aW9uKQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAg ICAgICAgICAgIDB4MENGOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAg ICAgICAgICAgICAgIDB4MENGOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAg ICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg ICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICBEV29yZElPIChSZXNvdXJjZVByb2R1Y2Vy LCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsCiAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAg ICAgICAgICAgICAgIDB4MDAwMDBEMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgIDB4MDAwMEZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24g T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwRjMwMCwgICAgICAgICAvLyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICAsLCBfWTBFLCBUeXBlU3RhdGljLCBEZW5zZVRyYW5z bGF0aW9uKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIs IFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwK ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5 CiAgICAgICAgICAgICAgICAgICAgMHgwMDBBMDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBCRkZGRiwgICAgICAgICAvLyBSYW5nZSBN YXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFu c2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwLCAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsICwgQWRkcmVzc1JhbmdlTWVtb3J5 LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJv ZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRX cml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51 bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMCwgICAgICAgICAvLyBSYW5n ZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBDM0ZGRiwgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAv LyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAg ICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsIF9ZMDEsIEFkZHJlc3NS YW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChS ZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVh YmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAg ICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwQzQwMDAsICAgICAg ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwQzdGRkYsICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs ICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw MDAwNDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCBfWTAy LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29y ZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4 ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMEM4 MDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAw MENCRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAg ICAgICAgIDB4MDAwMDQwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgLCwgX1kwMywgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAg ICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4 ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAg ICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAg ICAgMHgwMDBDQzAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgMHgwMDBDRkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAg ICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICwsIF9ZMDQsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykK ICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNv ZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAg ICAgICAgICAgICAgIDB4MDAwRDAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgIDB4MDAwRDNGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24g T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICAsLCBfWTA1LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5 cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNl ciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRl LAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJp dHkKICAgICAgICAgICAgICAgICAgICAweDAwMEQ0MDAwLCAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMEQ3RkZGLCAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRy YW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAgICAg ICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgX1kwNiwgQWRkcmVzc1Jhbmdl TWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291 cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUs IFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8v IEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBEODAwMCwgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBEQkZGRiwgICAgICAg ICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAg ICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDA0 MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsIF9ZMDcsIEFk ZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVt b3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwg Q2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg ICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwREMwMDAs ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwREZG RkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAw MDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAg ICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAs LCBfWTA4LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAg ICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwg TWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAw eDAwMEUwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAg ICAweDAwMEUzRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAg ICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgLCwgX1kwOSwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAg ICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwg TWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAg ICAgICAgICAgMHgwMDBFNDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAg ICAgICAgICAgICAgMHgwMDBFN0ZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZz ZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICwsIF9ZMEEsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0 YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQ b3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAg ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQog ICAgICAgICAgICAgICAgICAgIDB4MDAwRTgwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgIDB4MDAwRUJGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNs YXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAv LyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCBfWTBCLCBBZGRyZXNzUmFuZ2VNZW1v cnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQ cm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVh ZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3Jh bnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMEVDMDAwLCAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMEVGRkZGLCAgICAgICAgIC8v IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg IC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAs ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgX1kwQywgQWRkcmVz c1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkg KFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNo ZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBGMDAwMCwgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBGRkZGRiwg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAw MCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAw eDAwMDEwMDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsIF9Z MEQsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERX b3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhG aXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgw MDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg IDB4REZGRkZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAg ICAgICAgICAgICAgMHhFMDAwMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAg ICAgICAgICAsLCBfWTBGLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAg ICAgICAgICAgICBRV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBN aW5GaXhlZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAg ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gR3JhbnVsYXJpdHkKICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDAwMDAwMTAwMDAsIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMUZGRkYsIC8vIFJhbmdlIE1heGltdW0KICAg ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIFRyYW5zbGF0aW9uIE9m ZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAxMDAwMCwgLy8gTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgLCwgX1kxMCwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBl U3RhdGljKQogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChFUF9CLCBaZXJvKQog ICAgICAgICAgICBOYW1lIChNSF9CLCBaZXJvKQogICAgICAgICAgICBOYW1lIChQQ19CLCBa ZXJvKQogICAgICAgICAgICBOYW1lIChQQ19MLCBaZXJvKQogICAgICAgICAgICBOYW1lIChE TV9CLCBaZXJvKQogICAgICAgICAgICBNZXRob2QgKEdFUEIsIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoRVBfQiA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFUF9CID0gKF5NQy5FUEJSIDw8IDB4 MEMpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChFUF9CKSAv KiBcX1NCXy5QQzAwLkVQX0IgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChHTUhCLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ ZiAoKE1IX0IgPT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgTUhfQiA9ICheTUMuTUhCUiA8PCAweDBGKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIFJldHVybiAoTUhfQikgLyogXF9TQl8uUEMwMC5NSF9CICovCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoR1BDQiwgMCwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQQ19CID09IFplcm8pKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFBDX0IgPSAoXk1DLlBYQlIgPDwgMHgxQSkK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBDX0IpIC8qIFxf U0JfLlBDMDAuUENfQiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBD Mk0sIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs MCA9IEdQQ0IgKCkKICAgICAgICAgICAgICAgIExvY2FsMCArPSAoQXJnMSA8PCAweDE0KQog ICAgICAgICAgICAgICAgTG9jYWwwICs9ICgoQXJnMCAmIDB4MDAxRjAwMDApID4+IE9uZSkK ICAgICAgICAgICAgICAgIExvY2FsMCArPSAoKEFyZzAgJiAweDA3KSA8PCAweDBDKQogICAg ICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoR1BDTCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgSWYgKChQQ19MID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmICgoXk1DLlBYU1ogPCAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFBDX0wgPSAoMHgxMDAwMDAwMCA+PiBeTUMuUFhT WikgLyogXF9TQl8uUEMwMC5NQ19fLlBYU1ogKi8KICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUENfTCA9IDB4MTAwMDAwMDAKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQQ19MKSAvKiBc X1NCXy5QQzAwLlBDX0wgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChH RE1CLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo KERNX0IgPT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg RE1fQiA9ICheTUMuRElCUiA8PCAweDBDKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIFJldHVybiAoRE1fQikgLyogXF9TQl8uUEMwMC5ETV9CICovCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6 IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuX1kwMC5fTUFYLCBQQk1YKSAg Ly8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZVdv cmRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLl9ZMDAuX0xFTiwgUEJMTikgIC8vIF9MRU46IExl bmd0aAogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDAu X1kwMC5fTUlOLCBQQk1OKSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFkZHJlc3MKICAgICAg ICAgICAgICAgIExvY2FsMCA9IEdQQ0wgKCkKICAgICAgICAgICAgICAgIFBCTVggPSAoKExv Y2FsMCA+PiAweDE0KSAtIDB4MDIpCiAgICAgICAgICAgICAgICBQQkxOID0gKChMb2NhbDAg Pj4gMHgxNCkgLSBPbmUpCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcVk1ERSkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoVk1ERSA9PSBP bmUpICYmIChQQk1YID4gMHhERikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUEJNWCA9IDB4REYKICAgICAgICAgICAgICAgICAgICAgICAgUEJM TiA9IDB4RTAKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJb QVNMXVZNRCBpcyBlbmFibGVkLCByZXN0cmljdGluZyBCdXMgbnVtYmVycyB0byAtIiwgVG9I ZXhTdHJpbmcgKFBCTVgpKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgSWYgKF5NQy5QTTFMKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUEMwMC5f WTAxLl9MRU4sIEMwTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBD MExOID0gWmVybwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoXk1D LlBNMUwgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBD cmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLl9ZMDEuX1JXLCBDMFJXKSAgLy8gX1JX XzogUmVhZC1Xcml0ZSBTdGF0dXMKICAgICAgICAgICAgICAgICAgICBDMFJXID0gWmVybwog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICheTUMuUE0xSCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYw LCBcX1NCLlBDMDAuX1kwMi5fTEVOLCBDNExOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgQzRMTiA9IFplcm8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBJZiAoKF5NQy5QTTFIID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUEMwMC5fWTAyLl9SVywg QzRSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAgICAgICAgICAgICAgICAg QzRSVyA9IFplcm8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoXk1D LlBNMkwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLl9ZMDMuX0xFTiwgQzhMTikgIC8vIF9MRU46IExl bmd0aAogICAgICAgICAgICAgICAgICAgIEM4TE4gPSBaZXJvCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKCheTUMuUE0yTCA9PSBPbmUpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBD MDAuX1kwMy5fUlcsIEM4UlcpICAvLyBfUldfOiBSZWFkLVdyaXRlIFN0YXR1cwogICAgICAg ICAgICAgICAgICAgIEM4UlcgPSBaZXJvCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKF5NQy5QTTJIKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUEMwMC5fWTA0Ll9MRU4sIENDTE4p ICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBDQ0xOID0gWmVybwogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoXk1DLlBNMkggPT0gT25lKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAo QlVGMCwgXF9TQi5QQzAwLl9ZMDQuX1JXLCBDQ1JXKSAgLy8gX1JXXzogUmVhZC1Xcml0ZSBT dGF0dXMKICAgICAgICAgICAgICAgICAgICBDQ1JXID0gWmVybwogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIElmICheTUMuUE0zTCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuX1kw NS5fTEVOLCBEMExOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgRDBM TiA9IFplcm8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKF5NQy5Q TTNMID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUEMwMC5fWTA1Ll9SVywgRDBSVykgIC8vIF9SV186 IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgRDBSVyA9IFplcm8KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoXk1DLlBNM0gpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwg XF9TQi5QQzAwLl9ZMDYuX0xFTiwgRDRMTikgIC8vIF9MRU46IExlbmd0aAogICAgICAgICAg ICAgICAgICAgIEQ0TE4gPSBaZXJvCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgSWYgKCheTUMuUE0zSCA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuX1kwNi5fUlcsIEQ0 UlcpICAvLyBfUldfOiBSZWFkLVdyaXRlIFN0YXR1cwogICAgICAgICAgICAgICAgICAgIEQ0 UlcgPSBaZXJvCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKF5NQy5Q TTRMKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKEJVRjAsIFxfU0IuUEMwMC5fWTA3Ll9MRU4sIEQ4TE4pICAvLyBfTEVOOiBMZW5n dGgKICAgICAgICAgICAgICAgICAgICBEOExOID0gWmVybwogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmICgoXk1DLlBNNEwgPT0gT25lKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQzAw Ll9ZMDcuX1JXLCBEOFJXKSAgLy8gX1JXXzogUmVhZC1Xcml0ZSBTdGF0dXMKICAgICAgICAg ICAgICAgICAgICBEOFJXID0gWmVybwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmICheTUMuUE00SCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuX1kwOC5fTEVOLCBEQ0xOKSAg Ly8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgRENMTiA9IFplcm8KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKF5NQy5QTTRIID09IE9uZSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJV RjAsIFxfU0IuUEMwMC5fWTA4Ll9SVywgRENSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3Rh dHVzCiAgICAgICAgICAgICAgICAgICAgRENSVyA9IFplcm8KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBJZiAoXk1DLlBNNUwpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLl9ZMDku X0xFTiwgRTBMTikgIC8vIF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgICAgIEUwTE4g PSBaZXJvCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKCheTUMuUE01 TCA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0 ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuX1kwOS5fUlcsIEUwUlcpICAvLyBfUldfOiBS ZWFkLVdyaXRlIFN0YXR1cwogICAgICAgICAgICAgICAgICAgIEUwUlcgPSBaZXJvCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKF5NQy5QTTVIKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxf U0IuUEMwMC5fWTBBLl9MRU4sIEU0TE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAg ICAgICAgICBFNExOID0gWmVybwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IElmICgoXk1DLlBNNUggPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLl9ZMEEuX1JXLCBFNFJX KSAgLy8gX1JXXzogUmVhZC1Xcml0ZSBTdGF0dXMKICAgICAgICAgICAgICAgICAgICBFNFJX ID0gWmVybwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICheTUMuUE02 TCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZp ZWxkIChCVUYwLCBcX1NCLlBDMDAuX1kwQi5fTEVOLCBFOExOKSAgLy8gX0xFTjogTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgRThMTiA9IFplcm8KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBJZiAoKF5NQy5QTTZMID09IE9uZSkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUEMwMC5f WTBCLl9SVywgRThSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzCiAgICAgICAgICAg ICAgICAgICAgRThSVyA9IFplcm8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBJZiAoXk1DLlBNNkgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLl9ZMEMuX0xFTiwgRUNMTikgIC8v IF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgICAgIEVDTE4gPSBaZXJvCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKCheTUMuUE02SCA9PSBPbmUpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYw LCBcX1NCLlBDMDAuX1kwQy5fUlcsIEVDUlcpICAvLyBfUldfOiBSZWFkLVdyaXRlIFN0YXR1 cwogICAgICAgICAgICAgICAgICAgIEVDUlcgPSBaZXJvCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgSWYgKF5NQy5QTTBIKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUEMwMC5fWTBELl9M RU4sIEYwTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBGMExOID0g WmVybwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoXk1DLlBNMEgg PT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVC aXRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLl9ZMEQuX1JXLCBGMFJXKSAgLy8gX1JXXzogUmVh ZC1Xcml0ZSBTdGF0dXMKICAgICAgICAgICAgICAgICAgICBGMFJXID0gWmVybwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxf U0IuUEMwMC5fWTBFLl9NSU4sIEkxTU4pICAvLyBfTUlOOiBNaW5pbXVtIEJhc2UgQWRkcmVz cwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLl9Z MEUuX01BWCwgSTFNWCkgIC8vIF9NQVg6IE1heGltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuX1kwRS5fTEVOLCBJ MUxOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChCVUYwLCBcX1NCLlBDMDAuX1kwRi5fTUlOLCBNMU1OKSAgLy8gX01JTjogTWluaW11bSBC YXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxf U0IuUEMwMC5fWTBGLl9NQVgsIE0xTVgpICAvLyBfTUFYOiBNYXhpbXVtIEJhc2UgQWRkcmVz cwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLl9Z MEYuX0xFTiwgTTFMTikgIC8vIF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgTTFMTiA9 IE0zMkwgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgICAgICBNMU1OID0g TTMyQiAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgICAgIE0xTVggPSAo KE0xTU4gKyBNMUxOKSAtIE9uZSkKICAgICAgICAgICAgICAgIElmICgoTTY0TCA9PSBaZXJv KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZp ZWxkIChCVUYwLCBcX1NCLlBDMDAuX1kxMC5fTEVOLCBNU0xOKSAgLy8gX0xFTjogTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgTVNMTiA9IFplcm8KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVRV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuX1kxMC5fTEVOLCBNMkxOKSAg Ly8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAo QlVGMCwgXF9TQi5QQzAwLl9ZMTAuX01JTiwgTTJNTikgIC8vIF9NSU46IE1pbmltdW0gQmFz ZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoQlVGMCwg XF9TQi5QQzAwLl9ZMTAuX01BWCwgTTJNWCkgIC8vIF9NQVg6IE1heGltdW0gQmFzZSBBZGRy ZXNzCiAgICAgICAgICAgICAgICAgICAgTTJMTiA9IE02NEwgLyogRXh0ZXJuYWwgcmVmZXJl bmNlICovCiAgICAgICAgICAgICAgICAgICAgTTJNTiA9IE02NEIgLyogRXh0ZXJuYWwgcmVm ZXJlbmNlICovCiAgICAgICAgICAgICAgICAgICAgTTJNWCA9ICgoTTJNTiArIE0yTE4pIC0g T25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoUENIQSAhPSBa ZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQQk1OID0gU0JT QiAvKiBcU0JTQiAqLwogICAgICAgICAgICAgICAgICAgIFBCTVggPSBTQlNMIC8qIFxTQlNM ICovCiAgICAgICAgICAgICAgICAgICAgUEJMTiA9IChTQlNMIC0gU0JTQikgLyogXFNCU0Ig Ki8KICAgICAgICAgICAgICAgICAgICBQQkxOICs9IE9uZQogICAgICAgICAgICAgICAgICAg IEkxTU4gPSBTSU9CIC8qIFxTSU9CICovCiAgICAgICAgICAgICAgICAgICAgSTFNWCA9IFNJ T0wgLyogXFNJT0wgKi8KICAgICAgICAgICAgICAgICAgICBJMUxOID0gKEkxTVggLSBJMU1O KSAvKiBcX1NCXy5QQzAwLl9DUlMuSTFNTiAqLwogICAgICAgICAgICAgICAgICAgIEkxTE4g Kz0gT25lCiAgICAgICAgICAgICAgICAgICAgTTFNTiA9IFNNRUIgLyogXFNNRUIgKi8KICAg ICAgICAgICAgICAgICAgICBNMU1YID0gU01FTCAvKiBcU01FTCAqLwogICAgICAgICAgICAg ICAgICAgIE0xTE4gPSAoTTFNWCAtIE0xTU4pIC8qIFxfU0JfLlBDMDAuX0NSUy5NMU1OICov CiAgICAgICAgICAgICAgICAgICAgTTFMTiArPSBPbmUKICAgICAgICAgICAgICAgICAgICBN Mk1OID0gU1BNQiAvKiBcU1BNQiAqLwogICAgICAgICAgICAgICAgICAgIE0yTVggPSBTUE1M IC8qIFxTUE1MICovCiAgICAgICAgICAgICAgICAgICAgTTJMTiA9IChNMk1YIC0gTTJNTikg LyogXF9TQl8uUEMwMC5fQ1JTLk0yTU4gKi8KICAgICAgICAgICAgICAgICAgICBNMkxOICs9 IE9uZQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMCkg LyogXF9TQl8uUEMwMC5CVUYwICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUg KEdVSUQsIFRvVVVJRCAoIjMzZGI0ZDViLTFmZjctNDAxYy05NjU3LTc0NDFjMDNkZDc2NiIp IC8qIFBDSSBIb3N0IEJyaWRnZSBEZXZpY2UgKi8pCiAgICAgICAgICAgIE5hbWUgKFNVUFAs IFplcm8pCiAgICAgICAgICAgIE5hbWUgKENUUkwsIFplcm8pCiAgICAgICAgICAgIE5hbWUg KFhDTlQsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX09TQywgNCwgU2VyaWFsaXplZCkg IC8vIF9PU0M6IE9wZXJhdGluZyBTeXN0ZW0gQ2FwYWJpbGl0aWVzCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIExvY2FsMCA9IEFyZzMKICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKExvY2FsMCwgWmVybywgQ0RXMSkKICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKExvY2FsMCwgMHgwNCwgQ0RXMikKICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKExvY2FsMCwgMHgwOCwgQ0RXMykKICAgICAgICAgICAgICAgIElmICgoQXJn MCA9PSBHVUlEKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTVVBQ ID0gQ0RXMiAvKiBcX1NCXy5QQzAwLl9PU0MuQ0RXMiAqLwogICAgICAgICAgICAgICAgICAg IENUUkwgPSBDRFczIC8qIFxfU0JfLlBDMDAuX09TQy5DRFczICovCiAgICAgICAgICAgICAg ICAgICAgSWYgKCFORVhQKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQ1RSTCAmPSAweEZGRkZGRkY4CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChJVFNQKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChJVFNQKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVFJMICY9IDB4RkZG RkZGRjcKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKH4oQ0RXMSAmIE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBPU0NDID0gQ1RSTCAvKiBcX1NCXy5Q QzAwLkNUUkwgKi8KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoU1dB SykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNXQUsgKDB4RkZGRiwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxICE9IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDRFcx IHw9IDB4MDgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm ICgoQ0RXMyAhPSBDVFJMKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIENEVzEgfD0gMHgxMAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgQ0RXMyA9IENUUkwgLyogXF9TQl8uUEMwMC5DVFJMICovCiAgICAgICAg ICAgICAgICAgICAgT1NDQyA9IENUUkwgLyogXF9TQl8uUEMwMC5DVFJMICovCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ0RX MSB8PSAweDA0CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFNjb3BlIChcX1NCLlBDMDAp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoQVIwMCwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KF5eQVIwMCkgLyogXF9TQl8uQVIwMCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoUEQwMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eUEQwMCkgLyogXF9TQl8uUEQwMCAq LwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQVIwNCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKF5eQVIwNCkgLyogXF9TQl8uQVIwNCAqLwogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoUEQwNCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eUEQwNCkgLyogXF9TQl8u UEQwNCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQVIw NSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKF5eQVIwNSkgLyogXF9TQl8uQVIwNSAqLwogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUEQwNSwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eUEQwNSkgLyog XF9TQl8uUEQwNSAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoQVIwNiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKF5eQVIwNikgLyogXF9TQl8uQVIwNiAqLwogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUEQwNiwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eUEQw NikgLyogXF9TQl8uUEQwNiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoQVIwNywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eQVIwNykgLyogXF9TQl8uQVIwNyAqLwogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUEQwNywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KF5eUEQwNykgLyogXF9TQl8uUEQwNyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoQVIwOCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eQVIwOCkgLyogXF9TQl8uQVIwOCAq LwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUEQwOCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKF5eUEQwOCkgLyogXF9TQl8uUEQwOCAqLwogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoQVIwOSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eQVIwOSkgLyogXF9TQl8u QVIwOSAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUEQw OSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKF5eUEQwOSkgLyogXF9TQl8uUEQwOSAqLwogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIERldmljZSAoR0ZYMCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMDIwMDAwKSAgLy8gX0FEUjogQWRk cmVzcwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoVENQVSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQs IFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChP bmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDA0MDAwMCkgIC8vIF9BRFI6 IEFkZHJlc3MKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKElQ VTApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwg MHgwMDA1MDAwMCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBEZXZpY2UgKEdOQTApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDA4MDAwMCkgIC8vIF9BRFI6IEFkZHJlc3MKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFZQVTApCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDBCMDAwMCkg IC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg ICAgIH0KCiAgICAgICAgSWYgKChQQ0hBICE9IFplcm8pKQogICAgICAgIHsKICAgICAgICAg ICAgRGV2aWNlIChQQzAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf SElELCBFaXNhSWQgKCJQTlAwQTA4IikgLyogUENJIEV4cHJlc3MgQnVzICovKSAgLy8gX0hJ RDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsIEVpc2FJZCAoIlBO UDBBMDMiKSAvKiBQQ0kgQnVzICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAg ICAgICAgICAgTmFtZSAoX1NFRywgWmVybykgIC8vIF9TRUc6IFBDSSBTZWdtZW50CiAgICAg ICAgICAgICAgICBNZXRob2QgKF9CQk4sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQkJOOiBC SU9TIEJ1cyBOdW1iZXIKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBCU0IpIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDIpICAvLyBfVUlEOiBVbmlxdWUg SUQKICAgICAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBXb3JkQnVzTnVtYmVyIChSZXNv dXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBHcmFudWxhcml0eQogICAg ICAgICAgICAgICAgICAgICAgICAweDAwODEsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0KICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAg Ly8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3Riwg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICwsIF9ZMTEp CiAgICAgICAgICAgICAgICAgICAgRFdvcmRJTyAoUmVzb3VyY2VQcm9kdWNlciwgTWluRml4 ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUsIEVudGlyZVJhbmdlLAogICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAwMDgwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFu c2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMCwgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgLCwgX1kxMiwgVHlwZVN0 YXRpYywgRGVuc2VUcmFuc2xhdGlvbikKICAgICAgICAgICAgICAgICAgICBEV29yZE1lbW9y eSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIE5v bkNhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw MDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgICAgIDB4 QjAwMDAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg ICAgICAweEJGRkZGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQK ICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMCwgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgLCwgX1kxMywgQWRkcmVzc1JhbmdlTWVtb3J5LCBU eXBlU3RhdGljKQogICAgICAgICAgICAgICAgICAgIFFXb3JkTWVtb3J5IChSZXNvdXJjZVBy b2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBS ZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwg Ly8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MDAwMDAw MDAwLCAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw NUZGRkZGRkZGRiwgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDAwMDAwMDAwMDAsIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDIwMDAwMDAwMDAsIC8vIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICAgICAsLCBfWTE0LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJp YWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGMCwgXF9T Qi5QQzAyLl9ZMTEuX01BWCwgUEJNWCkgIC8vIF9NQVg6IE1heGltdW0gQmFzZSBBZGRyZXNz CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDIu X1kxMS5fTUlOLCBQQk1OKSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFkZHJlc3MKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRjAsIFxfU0IuUEMwMi5fWTExLl9M RU4sIFBCTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBQQk1OID0g UEJTQiAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgICAgICAgICBQQk1Y ID0gUEJTTCAvKiBcUEJTTCAqLwogICAgICAgICAgICAgICAgICAgIFBCTE4gPSAoUEJNWCAt IFBCTU4pIC8qIFxfU0JfLlBDMDIuX0NSUy5QQk1OICovCiAgICAgICAgICAgICAgICAgICAg UEJMTiArPSBPbmUKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYw LCBcX1NCLlBDMDIuX1kxMi5fTUlOLCBJMU1OKSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFk ZHJlc3MKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NC LlBDMDIuX1kxMi5fTUFYLCBJMU1YKSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MK ICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDIu X1kxMi5fTEVOLCBJMUxOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg STFNTiA9IFBJT0IgLyogXFBJT0IgKi8KICAgICAgICAgICAgICAgICAgICBJMU1YID0gUElP TCAvKiBcUElPTCAqLwogICAgICAgICAgICAgICAgICAgIEkxTE4gPSAoSTFNWCAtIEkxTU4p IC8qIFxfU0JfLlBDMDIuX0NSUy5JMU1OICovCiAgICAgICAgICAgICAgICAgICAgSTFMTiAr PSBPbmUKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NC LlBDMDIuX1kxMy5fTUlOLCBNMU1OKSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFkZHJlc3MK ICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDIu X1kxMy5fTUFYLCBNMU1YKSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDIuX1kxMy5f TEVOLCBNMUxOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgTTFNTiA9 IFBNRUIgLyogXFBNRUIgKi8KICAgICAgICAgICAgICAgICAgICBNMU1YID0gUE1FTCAvKiBc UE1FTCAqLwogICAgICAgICAgICAgICAgICAgIE0xTE4gPSAoTTFNWCAtIE0xTU4pIC8qIFxf U0JfLlBDMDIuX0NSUy5NMU1OICovCiAgICAgICAgICAgICAgICAgICAgTTFMTiArPSBPbmUK ICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDIu X1kxNC5fTEVOLCBNMkxOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlUVdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQzAyLl9ZMTQuX01JTiwgTTJNTikgIC8v IF9NSU46IE1pbmltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl UVdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQzAyLl9ZMTQuX01BWCwgTTJNWCkgIC8vIF9NQVg6 IE1heGltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgTTJNTiA9IFBQTUIg LyogXFBQTUIgKi8KICAgICAgICAgICAgICAgICAgICBNMk1YID0gUFBNTCAvKiBcUFBNTCAq LwogICAgICAgICAgICAgICAgICAgIE0yTE4gPSAoTTJNWCAtIE0yTU4pIC8qIFxfU0JfLlBD MDIuX0NSUy5NMk1OICovCiAgICAgICAgICAgICAgICAgICAgTTJMTiArPSBPbmUKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLlBDMDIuQlVGMCAqLwogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKEdVSUQsIFRvVVVJRCAoIjMz ZGI0ZDViLTFmZjctNDAxYy05NjU3LTc0NDFjMDNkZDc2NiIpIC8qIFBDSSBIb3N0IEJyaWRn ZSBEZXZpY2UgKi8pCiAgICAgICAgICAgICAgICBOYW1lIChTVVBQLCBaZXJvKQogICAgICAg ICAgICAgICAgTmFtZSAoQ1RSTCwgWmVybykKICAgICAgICAgICAgICAgIE1ldGhvZCAoX09T QywgNCwgU2VyaWFsaXplZCkgIC8vIF9PU0M6IE9wZXJhdGluZyBTeXN0ZW0gQ2FwYWJpbGl0 aWVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQXJn MwogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsMCwgWmVybywg Q0RXMSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDAsIDB4 MDQsIENEVzIpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWww LCAweDA4LCBDRFczKQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCAhPSBHVUlEKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENEVzEgfD0g MHgwNAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSAhPSBPbmUpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0RXMSB8PSAw eDA4CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU1VQUCA9IENEVzIgLyogXF9TQl8u UEMwMi5fT1NDLkNEVzIgKi8KICAgICAgICAgICAgICAgICAgICBDVFJMID0gQ0RXMyAvKiBc X1NCXy5QQzAyLl9PU0MuQ0RXMyAqLwogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQQzAy IFN1cHBvcnQiKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKFRvSGV4U3RyaW5nIChTVVBQ KSkKICAgICAgICAgICAgICAgICAgICBBREJHICgiUEMwMiBDb250cm9sIikKICAgICAgICAg ICAgICAgICAgICBBREJHIChUb0hleFN0cmluZyAoQ1RSTCkpCiAgICAgICAgICAgICAgICAg ICAgSWYgKChDRFczICE9IENUUkwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlJlamVjdGluZyBPUyByZXF1ZXN0IG5ldyBjb250cm9s IikKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoVG9IZXhTdHJpbmcgKENUUkwpKQog ICAgICAgICAgICAgICAgICAgICAgICBDRFcxIHw9IDB4MTAKICAgICAgICAgICAgICAgICAg ICAgICAgQ0RXMyA9IENUUkwgLyogXF9TQl8uUEMwMi5DVFJMICovCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NC KQogICAgewogICAgICAgIE5hbWUgKFBEMDAsIFBhY2thZ2UgKDB4MkEpCiAgICAgICAgewog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMUZGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDFG RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAweDBBCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDFGRkZGRiwgCiAg ICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxRkZGRkYsIAogICAgICAgICAg ICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4 MEIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMURGRkZGLCAKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHgwMDFERkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBBCiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDFERkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 MDAxREZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMUNGRkZG LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAweDBCCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDFDRkZGRiwgCiAgICAg ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAweDBBCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDFDRkZGRiwgCiAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQgog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywg CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwMUJGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHgwMDFCRkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAweDBBCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDFC RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxQkZGRkYsIAog ICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTdGRkZGLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAw eDBCCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE2RkZGRiwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQgogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAxNkZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQQogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4MDAxNkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eDAwMTZGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZG RiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxNEZGRkYsIAogICAg ICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgMHgwQQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxNEZGRkYsIAogICAgICAgICAgICAg ICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIK ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAweDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMs IAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHgwMDA2RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9LCAK CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDAwNkZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgMHgwQQogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAw NkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDZGRkZGLCAK ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDBCCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg MHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAgICAgICAg T25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQQogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAg fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHgwMDAyRkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNEZG RkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAweDBCCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA4RkZGRiwgCiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgw QgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwREZGRkYsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMDdGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBBCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDA3RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkYs IAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAo QVIwMCwgUGFja2FnZSAoMHgzMikKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxRkZGRkYsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMUZGRkZGLCAKICAgICAgICAgICAgICAg IE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAweDAwMUZGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDFGRkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4MDAxRUZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMUVG RkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMUVGRkZGLCAKICAg ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAweDFCCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDFFRkZGRiwgCiAgICAgICAgICAg ICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgx QwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMUNGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweDAwMUNGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDFDRkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxOUZGRkYs IAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MUQKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTlGRkZGLCAKICAgICAg ICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MUUKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTlGRkZGLCAKICAgICAgICAgICAgICAg IDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDFGCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHgwMDE3RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIDB4MDAxNkZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMTZGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTZG RkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE2RkZGRiwgCiAg ICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgMHgxMwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxNUZGRkYsIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4 MjAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTVGRkZGLCAKICAgICAgICAgICAgICAgIE9u ZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MjEKICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMTVGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDIyCiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDE1RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgyMwogICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTRGRkZG LCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTRGRkZGLCAKICAgICAg ICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEyRkZGRiwgCiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxQQog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4MDAxMkZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgyNQogICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIDB4MDAxMkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTkKICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMTBGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAweDE3CiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEw RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAweDE2CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA2RkZGRiwgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNkZGRkYsIAogICAgICAgICAg ICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgx MQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNkZGRkYsIAogICAgICAgICAgICAgICAgMHgw MiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMDZGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDAxRkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 MDAwMUZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYs IAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDFGRkZGLCAKICAgICAg ICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4MDAwNEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHgwMDA4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAw REZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMERGRkZGLCAK ICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDdGRkZGLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAw eDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAgICAgICBP bmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4MDAwN0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfQogICAgICAg IH0pCiAgICAgICAgTmFtZSAoUEQwNCwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAweDBBCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4 MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAgICAgIH0KICAg ICAgICB9KQogICAgICAgIE5hbWUgKEFSMDQsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAog ICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgMHgxMQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICB9 CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQRDA1LCBQYWNrYWdlICgweDA0KQogICAgICAg IHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAweDBBCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAg ICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4 MEIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywg CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAg ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoQVIwNSwgUGFja2FnZSAoMHgwNCkKICAg ICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAg ICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4 MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAg ICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBEMDYsIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAg ICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg ICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQQog ICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChBUjA2LCBQYWNrYWdlICgw eDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYs IAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAg ICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4 MTEKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUEQwNywgUGFja2Fn ZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhG RkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAweDBBCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAg ICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAweDBCCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMDcsIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAg ICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgMHgxMgogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQRDA4 LCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEEKICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYs IAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAo QVIwOCwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgx MAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhG RkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5h bWUgKFBEMDksIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MEEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25l LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQgogICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAg ICBOYW1lIChBUjA5LCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAweDExCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg IE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg ICAgICAgTmFtZSAoUEQwRSwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwg CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgMHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBC CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBBCiAgICAgICAgICAgIH0KICAgICAgICB9 KQogICAgICAgIE5hbWUgKEFSMEUsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZG RkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg ICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg MHgxMwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAogICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9CiAgICAg ICAgfSkKICAgICAgICBOYW1lIChQRDBGLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHhGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAg ICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg MHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEEKICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfQog ICAgICAgIH0pCiAgICAgICAgTmFtZSAoQVIwRiwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7 CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwg CiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAg ICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEx CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAg IH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBEMDIsIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZG RkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgMHgwQQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg MHgwQgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAz LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQgogICAgICAg ICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChBUjAyLCBQYWNrYWdlICgweDA0KQog ICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg MHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAg ICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUEQwQSwgUGFja2FnZSAoMHgw NCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQQogICAgICAgICAgICB9LCAK CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAK ICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDBCCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAg ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBC CiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMEEsIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAg fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZG RiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgMHgxMwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg ICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg MHgxMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQRDBCLCBQYWNr YWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDBCCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIDB4MEEKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoQVIwQiwg UGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAK ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDExCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBE MEMsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MEIK ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgMHgwQQogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZG RiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgMHgwQgogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1l IChBUjBDLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAw eDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwg CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAg U2NvcGUgKFBDMDApCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEFSMDAgKCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgUmV0dXJuIChQRDAwICgpKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAg ICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDIpKQogICAgICAgIHsKICAgICAgICAgICAg U2NvcGUgKFBDMDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEFSUDAs IFBhY2thZ2UgKDB4MkIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAxRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MTAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAxRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQogICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFG RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFFRkZGRiwgCiAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFFRkZGRiwgCiAgICAgICAgICAg ICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAweDAwMUVGRkZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICAweDFCCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAweDAwMUVGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICAweDFDCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAweDAwMURGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICAweDEwCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAweDAwMURGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEK ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAxREZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxREZG RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAog ICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAogICAgICAg ICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDRkZGRiwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDFDRkZGRiwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgxMwogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDFCRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgxMAogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDFCRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAw eDExCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAweDAwMUJGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDEyCiAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAw MUJGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDEzCiAgICAgICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMTlGRkZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDFECiAgICAgICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMTlGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MUUKICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxOUZGRkYsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MUYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxN0ZGRkYsIAogICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAxNkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAxNkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBPbmUs IAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgxMQogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDE2RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAg ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgx MgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg MHgwMDE2RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxMwogICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE1 RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyMAogICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE1RkZGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAweDIxCiAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMTVGRkZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICAweDIyCiAgICAgICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMTVGRkZGLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICAweDIzCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAweDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAweDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg T25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MTEKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MTIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMK ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAxM0ZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjQKICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxM0ZG RkYsIAogICAgICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyNQogICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEyRkZGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxQQogICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEyRkZGRiwgCiAgICAgICAg ICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICAweDI2CiAgICAgICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICAweDE5CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAweDAwMTBGRkZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICAweDE3CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAweDAwMTBGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgT25l LCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MTYKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVDog UENJIFJvdXRpbmcgVGFibGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBJZiAoUElDTSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQVJQMCkgLyogXF9TQl8uUEMwMi5BUlAwICovCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBEMDApIC8qIFxfU0JfLlBE MDAgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0K CiAgICBJZiAoKFBDSFMgPT0gMHgwNCkpCiAgICB7CiAgICAgICAgU2NvcGUgKF9TQi5QQzAy KQogICAgICAgIHsKICAgICAgICAgICAgRGV2aWNlIChBV0FDKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBOYW1lIChfSElELCAiQUNQSTAwMEUiIC8qIFRpbWUgYW5kIEFsYXJt IERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1l IChXQVNULCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoV1RUUiwgWmVybykKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBv d2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoR1BSVyAoMHg2QiwgMHgwNCkpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTXV0ZXggKFJUQ0wsIDB4MDApCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFNUQVMgPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChfR0NQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0dDUDogR2V0IENhcGFi aWxpdGllcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHhCNykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKFJUQ00sIFN5c3RlbUNNT1MsIFplcm8sIDB4M0YpCiAgICAgICAgICAgICAgICBGaWVs ZCAoUlRDTSwgQnl0ZUFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgU0VDLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4MDIpLCAKICAgICAgICAgICAgICAgICAgICBNSU4sICAgIDgsIAogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHgwNCksIAogICAgICAgICAgICAgICAgICAgIEhPUiwgICAg OCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA3KSwgCiAgICAgICAgICAgICAg ICAgICAgREFZLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICBNT04sICAgIDgsIAogICAg ICAgICAgICAgICAgICAgIFlFQVIsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgUkVHQSwg ICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzIpLCAKICAgICAgICAgICAg ICAgICAgICBDTlRZLCAgIDgKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9HUlQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfR1JUOiBHZXQgUmVhbCBUaW1lCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGRiwgQnVmZmVy ICgweDEwKXt9KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGRiwg WmVybywgWSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4 MDIsIE0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDAz LCBEKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgwNCwg SCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MDUsIE1J TjEpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDA2LCBT KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgwNywgVikK ICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkYsIDB4MEEsIFRaKQog ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgwQywgREwpCiAg ICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoUlRDTCwgMHhGRkZGKQogICAgICAgICAgICAg ICAgICAgIExvY2FsMSA9IFplcm8KICAgICAgICAgICAgICAgICAgICBOYW1lIChUT1VULCAw eDAwMDE4NkEwKQogICAgICAgICAgICAgICAgICAgIFRPVVQgLz0gMHgwQQogICAgICAgICAg ICAgICAgICAgIFdoaWxlICgoKFJFR0EgJiAweDgwKSAmJiAoTG9jYWwxIDwgVE9VVCkpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RhbGwgKDB4 MEEpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSArPSAweDBBCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA+PSBUT1VUKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJf R1JUIHRpbWVvdXQgZmFpbCIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBGcm9tQkNEIChZRUFSLCBMb2NhbDUpCiAgICAgICAgICAgICAgICAgICAgRnJv bUJDRCAoQ05UWSwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgIFkgPSAoKExvY2FsNiAq IDB4NjQpICsgTG9jYWw1KQogICAgICAgICAgICAgICAgICAgIEZyb21CQ0QgKE1PTiwgTSkg LyogXF9TQl8uUEMwMi5BV0FDLl9HUlQuTV9fXyAqLwogICAgICAgICAgICAgICAgICAgIEZy b21CQ0QgKERBWSwgRCkgLyogXF9TQl8uUEMwMi5BV0FDLl9HUlQuRF9fXyAqLwogICAgICAg ICAgICAgICAgICAgIEZyb21CQ0QgKEhPUiwgSCkgLyogXF9TQl8uUEMwMi5BV0FDLl9HUlQu SF9fXyAqLwogICAgICAgICAgICAgICAgICAgIEZyb21CQ0QgKE1JTiwgTUlOMSkgLyogXF9T Ql8uUEMwMi5BV0FDLl9HUlQuTUlOMSAqLwogICAgICAgICAgICAgICAgICAgIEZyb21CQ0Qg KFNFQywgUykgLyogXF9TQl8uUEMwMi5BV0FDLl9HUlQuU19fXyAqLwogICAgICAgICAgICAg ICAgICAgIFJlbGVhc2UgKFJUQ0wpCiAgICAgICAgICAgICAgICAgICAgVFogPSAweDA3RkYK ICAgICAgICAgICAgICAgICAgICBETCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBWID0g T25lCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCVUZGKSAvKiBcX1NCXy5QQzAyLkFX QUMuX0dSVC5CVUZGICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfU1JULCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NSVDogU2V0IFJlYWwgVGltZQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo QXJnMCwgWmVybywgWSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFy ZzAsIDB4MDIsIE0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcw LCAweDAzLCBEKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwg MHgwNCwgSCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAsIDB4 MDUsIE1JTjEpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAw eDA2LCBTKQogICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKFJUQ0wsIDB4RkZGRikKICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoVE9VVCwgMHgwMDAxODZBMCkKICAgICAgICAgICAgICAgICAgICBUT1VUIC89IDB4MEEK ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKChSRUdBICYgMHg4MCkgJiYgKExvY2FsMSA8 IFRPVVQpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFN0YWxsICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgKz0gMHgwQQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEg Pj0gVE9VVCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiX1NSVCB0aW1lb3V0IGZhaWwiKQogICAgICAgICAgICAgICAgICAgICAgICBS ZWxlYXNlIChSVENMKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkZGRkZG RkYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBEaXZpZGUg KFksIDB4NjQsIExvY2FsNSwgTG9jYWw0KQogICAgICAgICAgICAgICAgICAgIFRvQkNEIChM b2NhbDQsIENOVFkpIC8qIFxfU0JfLlBDMDIuQVdBQy5DTlRZICovCiAgICAgICAgICAgICAg ICAgICAgVG9CQ0QgKExvY2FsNSwgWUVBUikgLyogXF9TQl8uUEMwMi5BV0FDLllFQVIgKi8K ICAgICAgICAgICAgICAgICAgICBUb0JDRCAoTSwgTU9OKSAvKiBcX1NCXy5QQzAyLkFXQUMu TU9OXyAqLwogICAgICAgICAgICAgICAgICAgIFRvQkNEIChELCBEQVkpIC8qIFxfU0JfLlBD MDIuQVdBQy5EQVlfICovCiAgICAgICAgICAgICAgICAgICAgVG9CQ0QgKEgsIEhPUikgLyog XF9TQl8uUEMwMi5BV0FDLkhPUl8gKi8KICAgICAgICAgICAgICAgICAgICBUb0JDRCAoTUlO MSwgTUlOKSAvKiBcX1NCXy5QQzAyLkFXQUMuTUlOXyAqLwogICAgICAgICAgICAgICAgICAg IFRvQkNEIChTLCBTRUMpIC8qIFxfU0JfLlBDMDIuQVdBQy5TRUNfICovCiAgICAgICAgICAg ICAgICAgICAgUmVsZWFzZSAoUlRDTCkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfR1dTLCAx LCBTZXJpYWxpemVkKSAgLy8gX0dXUzogR2V0IFdha2UgU3RhdHVzCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoKF5eUFBNQy5BQ1dBID09IDB4RkZGRkZGRkYpICYmIChP bmUgJiBXVFRSKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCB8PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFdUVFIgXj0gT25lIC8qIFxfU0JfLlBDMDIuQVdBQy5XVFRSICovCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg RWxzZUlmICgoKF5eUFBNQy5EQ1dBID09IDB4RkZGRkZGRkYpICYmICgweDAyICYgV1RUUikp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww IHw9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBXVFRSIF49IDB4MDIgLyogXF9TQl8u UEMwMi5BV0FDLldUVFIgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmIChXQVNUKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwwIHw9IDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAgV0FTVCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy biAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo X0NXUywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9DV1M6IENsZWFyIFdha2UgQWxhcm0gU3Rh dHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUUCwgMiwg Tm90U2VyaWFsaXplZCkgIC8vIF9TVFA6IFNldCBFeHBpcmVkIFRpbWVyIFdha2UgUG9saWN5 CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXl5Q UE1DLkFDRVQgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IF5eUFBNQy5EQ0VUID0gQXJnMQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1NUViwgMiwgU2VyaWFsaXplZCkgIC8vIF9TVFY6IFNldCBUaW1lciBW YWx1ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IF5eUFBNQy5BQ1dBID0gQXJnMQogICAgICAgICAgICAgICAgICAgICAgICBXVFRSIHw9IE9u ZSAvKiBcX1NCXy5QQzAyLkFXQUMuV1RUUiAqLwogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBeXlBQTUMuRENXQSA9IEFyZzEKICAgICAgICAgICAgICAgICAgICAg ICAgV1RUUiB8PSAweDAyIC8qIFxfU0JfLlBDMDIuQVdBQy5XVFRSICovCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfVElQLCAxLCBOb3RTZXJpYWxp emVkKSAgLy8gX1RJUDogRXhwaXJlZCBUaW1lciBXYWtlIFBvbGljeQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoXl5QUE1DLkFD RVQpIC8qIFxfU0JfLlBDMDIuUFBNQy5BQ0VUICovCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoXl5QUE1DLkRDRVQpIC8qIFxfU0JfLlBDMDIuUFBN Qy5EQ0VUICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1RJViwgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9USVY6 IFRpbWVyIFZhbHVlcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoXl5QUE1DLkFDV0EpIC8qIFxfU0JfLlBDMDIuUFBNQy5BQ1dB ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoXl5Q UE1DLkRDV0EpIC8qIFxfU0JfLlBDMDIuUFBNQy5EQ1dBICovCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQog ICAgRWxzZQogICAgewogICAgICAgIFNjb3BlIChfU0IuUEMwMCkKICAgICAgICB7CiAgICAg ICAgICAgIERldmljZSAoQVdBQykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFt ZSAoX0hJRCwgIkFDUEkwMDBFIiAvKiBUaW1lIGFuZCBBbGFybSBEZXZpY2UgKi8pICAvLyBf SElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoV0FTVCwgWmVybykKICAg ICAgICAgICAgICAgIE5hbWUgKFdUVFIsIFplcm8pCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9y IFdha2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQ UlcgKDB4NzIsIDB4MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE11 dGV4IChSVENMLCAweDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKChTVEFTID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dDUCwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9HQ1A6IEdldCBDYXBhYmlsaXRpZXMKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4QjcpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChSVENNLCBTeXN0ZW1D TU9TLCBaZXJvLCAweDNGKQogICAgICAgICAgICAgICAgRmllbGQgKFJUQ00sIEJ5dGVBY2Ms IExvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFNFQywgICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgCiAgICAg ICAgICAgICAgICAgICAgTUlOLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4MDQpLCAKICAgICAgICAgICAgICAgICAgICBIT1IsICAgIDgsIAogICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHgwNyksIAogICAgICAgICAgICAgICAgICAgIERBWSwgICAgOCwg CiAgICAgICAgICAgICAgICAgICAgTU9OLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICBZ RUFSLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFJFR0EsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDMyKSwgCiAgICAgICAgICAgICAgICAgICAgQ05UWSwgICA4 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfR1JULCAwLCBT ZXJpYWxpemVkKSAgLy8gX0dSVDogR2V0IFJlYWwgVGltZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRkYsIEJ1ZmZlciAoMHgxMCl7fSkKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkYsIFplcm8sIFkpCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDAyLCBNKQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgwMywgRCkKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MDQsIEgpCiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDA1LCBNSU4xKQogICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgwNiwgUykKICAgICAgICAgICAgICAg ICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MDcsIFYpCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChCVUZGLCAweDBBLCBUWikKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MEMsIERMKQogICAgICAgICAgICAgICAgICAg IEFjcXVpcmUgKFJUQ0wsIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBa ZXJvCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoVE9VVCwgMHgwMDAxODZBMCkKICAgICAg ICAgICAgICAgICAgICBUT1VUIC89IDB4MEEKICAgICAgICAgICAgICAgICAgICBXaGlsZSAo KChSRUdBICYgMHg4MCkgJiYgKExvY2FsMSA8IFRPVVQpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0YWxsICgweDBBKQogICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDEgKz0gMHgwQQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgPj0gVE9VVCkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiX0dSVCB0aW1lb3V0IGZhaWwi KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRnJvbUJDRCAo WUVBUiwgTG9jYWw1KQogICAgICAgICAgICAgICAgICAgIEZyb21CQ0QgKENOVFksIExvY2Fs NikKICAgICAgICAgICAgICAgICAgICBZID0gKChMb2NhbDYgKiAweDY0KSArIExvY2FsNSkK ICAgICAgICAgICAgICAgICAgICBGcm9tQkNEIChNT04sIE0pIC8qIFxfU0JfLlBDMDAuQVdB Qy5fR1JULk1fX18gKi8KICAgICAgICAgICAgICAgICAgICBGcm9tQkNEIChEQVksIEQpIC8q IFxfU0JfLlBDMDAuQVdBQy5fR1JULkRfX18gKi8KICAgICAgICAgICAgICAgICAgICBGcm9t QkNEIChIT1IsIEgpIC8qIFxfU0JfLlBDMDAuQVdBQy5fR1JULkhfX18gKi8KICAgICAgICAg ICAgICAgICAgICBGcm9tQkNEIChNSU4sIE1JTjEpIC8qIFxfU0JfLlBDMDAuQVdBQy5fR1JU Lk1JTjEgKi8KICAgICAgICAgICAgICAgICAgICBGcm9tQkNEIChTRUMsIFMpIC8qIFxfU0Jf LlBDMDAuQVdBQy5fR1JULlNfX18gKi8KICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChS VENMKQogICAgICAgICAgICAgICAgICAgIFRaID0gMHgwN0ZGCiAgICAgICAgICAgICAgICAg ICAgREwgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgViA9IE9uZQogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQlVGRikgLyogXF9TQl8uUEMwMC5BV0FDLl9HUlQuQlVGRiAqLwog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSVCwgMSwgTm90 U2VyaWFsaXplZCkgIC8vIF9TUlQ6IFNldCBSZWFsIFRpbWUKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIFplcm8sIFkpCiAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDAyLCBNKQogICAg ICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHgwMywgRCkKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzAsIDB4MDQsIEgpCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcwLCAweDA1LCBNSU4xKQogICAgICAg ICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMCwgMHgwNiwgUykKICAgICAgICAg ICAgICAgICAgICBBY3F1aXJlIChSVENMLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAg TG9jYWwxID0gWmVybwogICAgICAgICAgICAgICAgICAgIE5hbWUgKFRPVVQsIDB4MDAwMTg2 QTApCiAgICAgICAgICAgICAgICAgICAgVE9VVCAvPSAweDBBCiAgICAgICAgICAgICAgICAg ICAgV2hpbGUgKCgoUkVHQSAmIDB4ODApICYmIChMb2NhbDEgPCBUT1VUKSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdGFsbCAoMHgwQSkKICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwxICs9IDB4MEEKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID49IFRPVVQpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIl9TUlQgdGlt ZW91dCBmYWlsIikKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoUlRDTCkKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweEZGRkZGRkZGKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGl2aWRlIChZLCAweDY0LCBMb2NhbDUs IExvY2FsNCkKICAgICAgICAgICAgICAgICAgICBUb0JDRCAoTG9jYWw0LCBDTlRZKSAvKiBc X1NCXy5QQzAwLkFXQUMuQ05UWSAqLwogICAgICAgICAgICAgICAgICAgIFRvQkNEIChMb2Nh bDUsIFlFQVIpIC8qIFxfU0JfLlBDMDAuQVdBQy5ZRUFSICovCiAgICAgICAgICAgICAgICAg ICAgVG9CQ0QgKE0sIE1PTikgLyogXF9TQl8uUEMwMC5BV0FDLk1PTl8gKi8KICAgICAgICAg ICAgICAgICAgICBUb0JDRCAoRCwgREFZKSAvKiBcX1NCXy5QQzAwLkFXQUMuREFZXyAqLwog ICAgICAgICAgICAgICAgICAgIFRvQkNEIChILCBIT1IpIC8qIFxfU0JfLlBDMDAuQVdBQy5I T1JfICovCiAgICAgICAgICAgICAgICAgICAgVG9CQ0QgKE1JTjEsIE1JTikgLyogXF9TQl8u UEMwMC5BV0FDLk1JTl8gKi8KICAgICAgICAgICAgICAgICAgICBUb0JDRCAoUywgU0VDKSAv KiBcX1NCXy5QQzAwLkFXQUMuU0VDXyAqLwogICAgICAgICAgICAgICAgICAgIFJlbGVhc2Ug KFJUQ0wpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dXUywgMSwgU2VyaWFsaXplZCkgIC8v IF9HV1M6IEdldCBXYWtlIFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKChBQ1dBID09IDB4RkZGRkZGRkYpICYmIChPbmUgJiBXVFRSKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdUVFIgXj0gT25lIC8qIFxfU0JfLlBD MDAuQVdBQy5XVFRSICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKERDV0EgPT0gMHhGRkZG RkZGRikgJiYgKDB4MDIgJiBXVFRSKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg IFdUVFIgXj0gMHgwMiAvKiBcX1NCXy5QQzAwLkFXQUMuV1RUUiAqLwogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKFdBU1QpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gMHgwMgogICAgICAg ICAgICAgICAgICAgICAgICBXQVNUID0gWmVybwogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChfQ1dTLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NX UzogQ2xlYXIgV2FrZSBBbGFybSBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfU1RQLCAyLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUUDogU2V0IEV4 cGlyZWQgVGltZXIgV2FrZSBQb2xpY3kKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBBQ0VUID0gQXJnMQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBEQ0VUID0gQXJnMQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1NUViwgMiwgU2VyaWFsaXplZCkgIC8vIF9TVFY6IFNl dCBUaW1lciBWYWx1ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIEFDV0EgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIFdUVFIgfD0g T25lIC8qIFxfU0JfLlBDMDAuQVdBQy5XVFRSICovCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIERDV0EgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIFdU VFIgfD0gMHgwMiAvKiBcX1NCXy5QQzAwLkFXQUMuV1RUUiAqLwogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1RJUCwgMSwgTm90U2VyaWFsaXplZCkg IC8vIF9USVA6IEV4cGlyZWQgVGltZXIgV2FrZSBQb2xpY3kKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFDRVQpIC8qIEV4dGVy bmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKERDRVQpIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9U SVYsIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfVElWOiBUaW1lciBWYWx1ZXMKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFDV0Ep IC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKERDV0EpIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg ICAgIH0KICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKE9HTlMsIFN5c3RlbU1lbW9yeSwg MHg2NURFMkY5OCwgMHgwMDAwMDAwQykKICAgIEZpZWxkIChPR05TLCBBbnlBY2MsIExvY2ss IFByZXNlcnZlKQogICAgewogICAgICAgIE9HMDAsICAgOCwgCiAgICAgICAgT0cwMSwgICA4 LCAKICAgICAgICBPRzAyLCAgIDgsIAogICAgICAgIE9HMDMsICAgOCwgCiAgICAgICAgT0cw NCwgICA4LCAKICAgICAgICBPRzA1LCAgIDgsIAogICAgICAgIE9HMDYsICAgOCwgCiAgICAg ICAgT0cwNywgICA4LCAKICAgICAgICBPRzA4LCAgIDgsIAogICAgICAgIE9HMDksICAgOCwg CiAgICAgICAgT0cxMCwgICA4LCAKICAgICAgICBFQ0ZHLCAgIDgKICAgIH0KCiAgICBOYW1l IChCVUZOLCBaZXJvKQogICAgTmFtZSAoTUJVRiwgQnVmZmVyICgweDEwMDApe30pCiAgICBP cGVyYXRpb25SZWdpb24gKE1EQkcsIFN5c3RlbU1lbW9yeSwgMHg2NURCQzAxOCwgMHgwMDAw MTAwNCkKICAgIEZpZWxkIChNREJHLCBBbnlBY2MsIExvY2ssIFByZXNlcnZlKQogICAgewog ICAgICAgIE1ERzAsICAgMzI3NjgKICAgIH0KCiAgICBNZXRob2QgKERCMkgsIDEsIFNlcmlh bGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKFNSTEQpCiAgICAgICAgewogICAgICAgICAgICBT SE9XIChBcmcwKQogICAgICAgICAgICBNREdDICgweDIwKQogICAgICAgICAgICBNREcwID0g TUJVRiAvKiBcTUJVRiAqLwogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoRFcy SCwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAg TG9jYWwxID0gKEFyZzAgPj4gMHgwOCkKICAgICAgICBMb2NhbDAgJj0gMHhGRgogICAgICAg IExvY2FsMSAmPSAweEZGCiAgICAgICAgREIySCAoTG9jYWwxKQogICAgICAgIEJVRk4tLQog ICAgICAgIERCMkggKExvY2FsMCkKICAgIH0KCiAgICBNZXRob2QgKEREMkgsIDEsIFNlcmlh bGl6ZWQpCiAgICB7CiAgICAgICAgTG9jYWwwID0gQXJnMAogICAgICAgIExvY2FsMSA9IChB cmcwID4+IDB4MTApCiAgICAgICAgTG9jYWwwICY9IDB4RkZGRgogICAgICAgIExvY2FsMSAm PSAweEZGRkYKICAgICAgICBEVzJIIChMb2NhbDEpCiAgICAgICAgQlVGTi0tCiAgICAgICAg RFcySCAoTG9jYWwwKQogICAgfQoKICAgIE1ldGhvZCAoTUJHUywgMSwgU2VyaWFsaXplZCkK ICAgIHsKICAgICAgICBJZiAoU1JMRCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9 IFNpemVPZiAoQXJnMCkKICAgICAgICAgICAgTmFtZSAoQlVGUywgQnVmZmVyIChMb2NhbDAp e30pCiAgICAgICAgICAgIEJVRlMgPSBBcmcwCiAgICAgICAgICAgIE1ER0MgKDB4MjApCiAg ICAgICAgICAgIFdoaWxlIChMb2NhbDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IE1ER0MgKERlcmVmT2YgKEJVRlMgWyhTaXplT2YgKEFyZzApIC0gTG9jYWwwKV0pKQogICAg ICAgICAgICAgICAgTG9jYWwwLS0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTURHMCA9 IE1CVUYgLyogXE1CVUYgKi8KICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAgIHsKICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKEFE QkcsIDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKChTUkxEICYgT25lKSkKICAg ICAgICB7CiAgICAgICAgICAgIElmICgoU1JMRCAmIDB4MDIpKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBTREJHIChBcmcwKQogICAgICAgICAgICB9CgogICAgICAgICAgICBU b0hleFN0cmluZyAoQXJnMCwgTG9jYWwxKQogICAgICAgICAgICBMb2NhbDAgPSBTaXplT2Yg KExvY2FsMSkKICAgICAgICAgICAgTmFtZSAoQlVGUywgQnVmZmVyIChMb2NhbDApe30pCiAg ICAgICAgICAgIEJVRlMgPSBMb2NhbDEKICAgICAgICAgICAgTURHQyAoMHgyMCkKICAgICAg ICAgICAgV2hpbGUgKExvY2FsMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTURH QyAoRGVyZWZPZiAoQlVGUyBbKFNpemVPZiAoTG9jYWwxKSAtIExvY2FsMCldKSkKICAgICAg ICAgICAgICAgIExvY2FsMC0tCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ERzAgPSBN QlVGIC8qIFxNQlVGICovCiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoU0hPVywgMSwg U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBNREdDIChOVE9DICgoQXJnMCA+PiAweDA0KSkp CiAgICAgICAgTURHQyAoTlRPQyAoQXJnMCkpCiAgICB9CgogICAgTWV0aG9kIChMSU5FLCAw LCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IEJVRk4gLyogXEJVRk4gKi8K ICAgICAgICBMb2NhbDAgJj0gMHgwRgogICAgICAgIFdoaWxlIChMb2NhbDApCiAgICAgICAg ewogICAgICAgICAgICBNREdDIChaZXJvKQogICAgICAgICAgICBMb2NhbDArKwogICAgICAg ICAgICBMb2NhbDAgJj0gMHgwRgogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKE1ER0Ms IDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgTUJVRiBbQlVGTl0gPSBBcmcwCiAgICAg ICAgQlVGTiArPSBPbmUKICAgICAgICBJZiAoKEJVRk4gPiAweDBGRkYpKQogICAgICAgIHsK ICAgICAgICAgICAgQlVGTiAmPSAweDBGRkYKICAgICAgICAgICAgVVBfTCAoMHgwRikKICAg ICAgICB9CiAgICB9CgogICAgTWV0aG9kIChVUF9MLCAxLCBTZXJpYWxpemVkKQogICAgewog ICAgICAgIExvY2FsMiA9IEFyZzAKICAgICAgICBMb2NhbDIgPDw9IDB4MDQKICAgICAgICBN T1ZFIChMb2NhbDIpCiAgICAgICAgTG9jYWwzID0gKDB4MTAwMCAtIExvY2FsMikKICAgICAg ICBXaGlsZSAoTG9jYWwyKQogICAgICAgIHsKICAgICAgICAgICAgTUJVRiBbTG9jYWwzXSA9 IFplcm8KICAgICAgICAgICAgTG9jYWwzKysKICAgICAgICAgICAgTG9jYWwyLS0KICAgICAg ICB9CiAgICB9CgogICAgTWV0aG9kIChNT1ZFLCAxLCBTZXJpYWxpemVkKQogICAgewogICAg ICAgIExvY2FsNCA9IEFyZzAKICAgICAgICBCVUZOID0gWmVybwogICAgICAgIExvY2FsNSA9 ICgweDEwMDAgLSBMb2NhbDQpCiAgICAgICAgV2hpbGUgKExvY2FsNSkKICAgICAgICB7CiAg ICAgICAgICAgIExvY2FsNS0tCiAgICAgICAgICAgIE1CVUYgW0JVRk5dID0gRGVyZWZPZiAo TUJVRiBbTG9jYWw0XSkKICAgICAgICAgICAgQlVGTisrCiAgICAgICAgICAgIExvY2FsNCsr CiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoTlRPQywgMSwgU2VyaWFsaXplZCkKICAg IHsKICAgICAgICBMb2NhbDAgPSAoQXJnMCAmIDB4MEYpCiAgICAgICAgSWYgKChMb2NhbDAg PCAweDBBKSkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCArPSAweDMwCiAgICAgICAg fQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCArPSAweDM3CiAg ICAgICAgfQoKICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgIH0KCiAgICBJZiAoKEVDUjEg PT0gT25lKSkKICAgIHsKICAgICAgICBTY29wZSAoX1NCLlBDMDApCiAgICAgICAgewogICAg ICAgICAgICBOYW1lIChQQ0lHLCBUb1VVSUQgKCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1l YTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJmYWNlICovKQogICAgICAg ICAgICBNZXRob2QgKFBDSUQsIDQsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmICgoQXJnMCA9PSBQQ0lHKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAweDAzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA5KSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT25lcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25l cywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPbmVzCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoQ29uZFJlZk9mIChc X1NCLlBDMDIpKQogICAgICAgIHsKICAgICAgICAgICAgU2NvcGUgKF9TQi5QQzAyKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKFBDSUQsIDQsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChB cmcwLCBBcmcxLCBBcmcyLCBBcmczKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLlBDMDApCiAgICB7CiAgICAgICAg TWV0aG9kIChQQ0lDLCAxLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYg KChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJn MCA9PSBQQ0lHKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgIH0KCiAgICAgICAgSWYgKChQQ0hBID09IFplcm8pKQog ICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChJSUNCLCAyLCBTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJQzAsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlcklu aXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB ZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAwLkkyQzAiLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZMTUsIEV4Y2x1c2l2 ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlD MCwgXF9TQi5QQzAwLklJQ0IuX1kxNS5fQURSLCBEQUQwKSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICAgICAgICAgICAgICBEQUQwID0gQXJnMAogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKElJQzApIC8qIFxfU0JfLlBDMDAuSUlDQi5JSUMwICovCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKE9uZSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJQzEsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRp YXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRy ZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAwLkkyQzEiLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZMTYsIEV4Y2x1c2l2ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlDMSwg XF9TQi5QQzAwLklJQ0IuX1kxNi5fQURSLCBEQUQxKSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICAgICAgICAgICAgICBEQUQxID0gQXJnMAogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKElJQzEpIC8qIFxfU0JfLlBDMDAuSUlDQi5JSUMxICovCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChJSUMyLCBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0 ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVz c2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMC5JMkMyIiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTE3LCBFeGNsdXNpdmUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElJQzIsIFxf U0IuUEMwMC5JSUNCLl9ZMTcuX0FEUiwgREFEMikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAg ICAgICAgICAgICAgICAgICAgREFEMiA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChJSUMyKSAvKiBcX1NCXy5QQzAwLklJQ0IuSUlDMiAqLwogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAzKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlDMywgUmVzb3VyY2VU ZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVk LCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3Np bmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDMyIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1kxOCwgRXhjbHVzaXZlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJSUMzLCBcX1NC LlBDMDAuSUlDQi5fWTE4Ll9BRFIsIERBRDMpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAg ICAgICAgICAgICAgICAgIERBRDMgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoSUlDMykgLyogXF9TQl8uUEMwMC5JSUNCLklJQzMgKi8KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJQzQsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwg MHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5n TW9kZTdCaXQsICJcXF9TQi5QQzAwLkkyQzQiLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZMTksIEV4Y2x1c2l2ZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlDNCwgXF9TQi5Q QzAwLklJQ0IuX1kxOS5fQURSLCBEQUQ0KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICAgICAgICAgICBEQUQ0ID0gQXJnMAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKElJQzQpIC8qIFxfU0JfLlBDMDAuSUlDQi5JSUM0ICovCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDUpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChJSUM1LCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4 MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01v ZGU3Qml0LCAiXFxfU0IuUEMwMC5JMkM1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTFBLCBFeGNsdXNpdmUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElJQzUsIFxfU0IuUEMw MC5JSUNCLl9ZMUEuX0FEUiwgREFENSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgICAgICAgICAgREFENSA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChJSUM1KSAvKiBcX1NCXy5QQzAwLklJQ0IuSUlDNSAqLwogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlDNiwgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAw MDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2Rl N0JpdCwgIlxcX1NCLlBDMDAuSTJDNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1kxQiwgRXhjbHVzaXZlLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJSUM2LCBcX1NCLlBDMDAu SUlDQi5fWTFCLl9BRFIsIERBRDYpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAg ICAgICAgICAgIERBRDYgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo SUlDNikgLyogXF9TQl8uUEMwMC5JSUNCLklJQzYgKi8KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNykKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJQzcsIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2 MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdC aXQsICJcXF9TQi5QQzAwLkkyQzciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZMUMsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlDNywgXF9TQi5QQzAwLklJ Q0IuX1kxQy5fQURSLCBEQUQ3KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAg ICAgICAgICBEQUQ3ID0gQXJnMAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKElJ QzcpIC8qIFxfU0JfLlBDMDAuSUlDQi5JSUM3ICovCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBN ZXRob2QgKFZJSUMsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBTd2l0 Y2ggKFRvSW50ZWdlciAoQXJnMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENh c2UgKFplcm8pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAo VkkwMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlcklu aXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJl c3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLlZJQzAiLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1kxRCwgRXhjbHVz aXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChWSTAwLCBcX1NCLlBD MDAuVklJQy5fWTFELl9BRFIsIERBUjApICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg ICAgICAgICAgREFSMCA9IEFyZzAKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFZJMDAp IC8qIFxfU0JfLlBDMDAuVklJQy5WSTAwICovCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoVkkxMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29u dHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLlZJQzEiLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1kx RSwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChWSTEx LCBcX1NCLlBDMDAuVklJQy5fWTFFLl9BRFIsIERBUTEpICAvLyBfQURSOiBBZGRyZXNzCiAg ICAgICAgICAgICAgICAgICAgREFRMSA9IEFyZzAKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFZJMTEpIC8qIFxfU0JfLlBDMDAuVklJQy5WSTExICovCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBD b250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMC5YSENJLlJIVUIuVklDWCIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAs IEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQogICAgICAgIH0K CiAgICAgICAgTWV0aG9kIChJTlRCLCAzLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAg ICAgICAgTmFtZSAoSU5UUiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3Rp dmVMb3csIEV4Y2x1c2l2ZUFuZFdha2UsICwsIF9ZMUYpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfSkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoSU5UUiwgXF9TQi5QQzAw LklOVEIuX1kxRi5fSU5ULCBOVU1JKSAgLy8gX0lOVDogSW50ZXJydXB0cwogICAgICAgICAg ICBOVU1JID0gSU5VTSAoQXJnMCkKICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKElOVFIs IFxfU0IuUEMwMC5JTlRCLl9ZMUYuX0hFLCBMRVZJKSAgLy8gX0hFXzogSGlnaC1FZGdlCiAg ICAgICAgICAgIExFVkkgPSBBcmcxCiAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChJTlRS LCBcX1NCLlBDMDAuSU5UQi5fWTFGLl9MTCwgQUNUSSkgIC8vIF9MTF86IExvdyBMZXZlbAog ICAgICAgICAgICBBQ1RJID0gQXJnMgogICAgICAgICAgICBSZXR1cm4gKElOVFIpIC8qIFxf U0JfLlBDMDAuSU5UQi5JTlRSICovCiAgICAgICAgfQogICAgfQoKICAgIElmIChDb25kUmVm T2YgKFxfU0IuUEMwMikpCiAgICB7CiAgICAgICAgU2NvcGUgKF9TQi5QQzAyKQogICAgICAg IHsKICAgICAgICAgICAgTWV0aG9kIChQQ0lDLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKF5eUEMwMC5QQ0lDIChBcmcwKSkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChJSUNCLCAyLCBTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJQzAsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlcklu aXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB ZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAyLkkyQzAiLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZMjAsIEV4Y2x1c2l2 ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlD MCwgXF9TQi5QQzAyLklJQ0IuX1kyMC5fQURSLCBEQUQwKSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICAgICAgICAgICAgICBEQUQwID0gQXJnMAogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKElJQzApIC8qIFxfU0JfLlBDMDIuSUlDQi5JSUMwICovCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKE9uZSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJQzEsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRp YXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRy ZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAyLkkyQzEiLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZMjEsIEV4Y2x1c2l2ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlDMSwg XF9TQi5QQzAyLklJQ0IuX1kyMS5fQURSLCBEQUQxKSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICAgICAgICAgICAgICBEQUQxID0gQXJnMAogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKElJQzEpIC8qIFxfU0JfLlBDMDIuSUlDQi5JSUMxICovCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChJSUMyLCBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0 ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVz c2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMi5JMkMyIiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTIyLCBFeGNsdXNpdmUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElJQzIsIFxf U0IuUEMwMi5JSUNCLl9ZMjIuX0FEUiwgREFEMikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAg ICAgICAgICAgICAgICAgICAgREFEMiA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChJSUMyKSAvKiBcX1NCXy5QQzAyLklJQ0IuSUlDMiAqLwogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAzKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlDMywgUmVzb3VyY2VU ZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVk LCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3Np bmdNb2RlN0JpdCwgIlxcX1NCLlBDMDIuSTJDMyIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1kyMywgRXhjbHVzaXZlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJSUMzLCBcX1NC LlBDMDIuSUlDQi5fWTIzLl9BRFIsIERBRDMpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAg ICAgICAgICAgICAgICAgIERBRDMgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoSUlDMykgLyogXF9TQl8uUEMwMi5JSUNCLklJQzMgKi8KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJQzQsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwg MHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5n TW9kZTdCaXQsICJcXF9TQi5QQzAyLkkyQzQiLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZMjQsIEV4Y2x1c2l2ZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlDNCwgXF9TQi5Q QzAyLklJQ0IuX1kyNC5fQURSLCBEQUQ0KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICAgICAgICAgICBEQUQ0ID0gQXJnMAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKElJQzQpIC8qIFxfU0JfLlBDMDIuSUlDQi5JSUM0ICovCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDUpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChJSUM1LCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4 MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01v ZGU3Qml0LCAiXFxfU0IuUEMwMi5JMkM1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTI1LCBFeGNsdXNpdmUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElJQzUsIFxfU0IuUEMw Mi5JSUNCLl9ZMjUuX0FEUiwgREFENSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgICAgICAgICAgREFENSA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChJSUM1KSAvKiBcX1NCXy5QQzAyLklJQ0IuSUlDNSAqLwogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlDNiwgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAw MDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2Rl N0JpdCwgIlxcX1NCLlBDMDIuSTJDNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1kyNiwgRXhjbHVzaXZlLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJSUM2LCBcX1NCLlBDMDIu SUlDQi5fWTI2Ll9BRFIsIERBRDYpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAg ICAgICAgICAgIERBRDYgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo SUlDNikgLyogXF9TQl8uUEMwMi5JSUNCLklJQzYgKi8KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNykKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJQzcsIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2 MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdC aXQsICJcXF9TQi5QQzAyLkkyQzciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZMjcsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlDNywgXF9TQi5QQzAyLklJ Q0IuX1kyNy5fQURSLCBEQUQ3KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAg ICAgICAgICBEQUQ3ID0gQXJnMAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKElJ QzcpIC8qIFxfU0JfLlBDMDIuSUlDQi5JSUM3ICovCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KElOVEIsIDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5h bWUgKElOVFIsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3Rp dmVMb3csIEV4Y2x1c2l2ZUFuZFdha2UsICwsIF9ZMjgpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZp ZWxkIChJTlRSLCBcX1NCLlBDMDIuSU5UQi5fWTI4Ll9JTlQsIE5VTUkpICAvLyBfSU5UOiBJ bnRlcnJ1cHRzCiAgICAgICAgICAgICAgICBOVU1JID0gSU5VTSAoQXJnMCkKICAgICAgICAg ICAgICAgIENyZWF0ZUJpdEZpZWxkIChJTlRSLCBcX1NCLlBDMDIuSU5UQi5fWTI4Ll9IRSwg TEVWSSkgIC8vIF9IRV86IEhpZ2gtRWRnZQogICAgICAgICAgICAgICAgTEVWSSA9IEFyZzEK ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChJTlRSLCBcX1NCLlBDMDIuSU5UQi5f WTI4Ll9MTCwgQUNUSSkgIC8vIF9MTF86IExvdyBMZXZlbAogICAgICAgICAgICAgICAgQUNU SSA9IEFyZzIKICAgICAgICAgICAgICAgIFJldHVybiAoSU5UUikgLyogXF9TQl8uUEMwMi5J TlRCLklOVFIgKi8KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAo X1NCKQogICAgewogICAgICAgIE1ldGhvZCAoUFNEMywgMSwgU2VyaWFsaXplZCkKICAgICAg ICB7CiAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgSWYgKCgoU0lNRSA9 PSBPbmUpIHx8ICFJTVBTICgpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBTd2l0Y2ggKChaZXJvICsg QXJnMC0tKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSQUEwID0gT25lCiAgICAgICAg ICAgICAgICAgICAgV2hpbGUgKCgoQVBBMCA9PSBaZXJvKSAmJiAoTG9jYWwwIDwgMHgyNzEw KSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDArKwogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKE9uZSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSQUExID0gT25lCiAgICAg ICAgICAgICAgICAgICAgV2hpbGUgKCgoQVBBMSA9PSBaZXJvKSAmJiAoTG9jYWwwIDwgMHgy NzEwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKDB4 MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUkFBMiA9IE9uZQog ICAgICAgICAgICAgICAgICAgIFdoaWxlICgoKEFQQTIgPT0gWmVybykgJiYgKExvY2FsMCA8 IDB4MjcxMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBDYXNl ICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJBQTMgPSBP bmUKICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKChBUEEzID09IFplcm8pICYmIChMb2Nh bDAgPCAweDI3MTApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg Q2FzZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSUEIw ID0gT25lCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgoQVBCMCA9PSBaZXJvKSAmJiAo TG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25l KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIENhc2UgKDB4MDUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UlBCMSA9IE9uZQogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoKEFQQjEgPT0gWmVybykg JiYgKExvY2FsMCA8IDB4MjcxMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAg KE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJQQjIgPSBPbmUKICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKChBUEIyID09IFpl cm8pICYmIChMb2NhbDAgPCAweDI3MTApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAgIFNs ZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgQ2FzZSAoMHgwNykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSUEIzID0gT25lCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgoQVBCMyA9 PSBaZXJvKSAmJiAoTG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIENhc2UgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUlBDMCA9IE9uZQogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoKEFQ QzAgPT0gWmVybykgJiYgKExvY2FsMCA8IDB4MjcxMCkpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAg ICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDA5KQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJQQzEgPSBPbmUKICAgICAgICAgICAgICAgICAgICBXaGlsZSAo KChBUEMxID09IFplcm8pICYmIChMb2NhbDAgPCAweDI3MTApKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSUEMyID0gT25lCiAgICAgICAgICAgICAgICAgICAgV2hp bGUgKCgoQVBDMiA9PSBaZXJvKSAmJiAoTG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUlBDMyA9IE9uZQogICAgICAgICAgICAgICAgICAg IFdoaWxlICgoKEFQQzMgPT0gWmVybykgJiYgKExvY2FsMCA8IDB4MjcxMCkpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDBDKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJQRDAgPSBPbmUKICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoKChBUEQwID09IFplcm8pICYmIChMb2NhbDAgPCAweDI3MTApKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgwRCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSUEQxID0gT25lCiAgICAgICAgICAg ICAgICAgICAgV2hpbGUgKCgoQVBEMSA9PSBaZXJvKSAmJiAoTG9jYWwwIDwgMHgyNzEwKSkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAr KwogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKDB4MEUpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUlBEMiA9IE9uZQogICAgICAg ICAgICAgICAgICAgIFdoaWxlICgoKEFQRDIgPT0gWmVybykgJiYgKExvY2FsMCA8IDB4Mjcx MCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDBG KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJQRDMgPSBPbmUKICAg ICAgICAgICAgICAgICAgICBXaGlsZSAoKChBUEQzID09IFplcm8pICYmIChMb2NhbDAgPCAw eDI3MTApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAo MHgxMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSUEUwID0gT25l CiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgoQVBFMCA9PSBaZXJvKSAmJiAoTG9jYWww IDwgMHgyNzEwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENh c2UgKDB4MTEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUlBFMSA9 IE9uZQogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoKEFQRTEgPT0gWmVybykgJiYgKExv Y2FsMCA8IDB4MjcxMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICBDYXNlICgweDEyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJQ RTIgPSBPbmUKICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKChBUEUyID09IFplcm8pICYm IChMb2NhbDAgPCAweDI3MTApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChP bmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgQ2FzZSAoMHgxMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSUEUzID0gT25lCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgoQVBFMyA9PSBaZXJv KSAmJiAoTG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICBTbGVl cCAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIElmICgoTG9jYWwwID49IDB4MjcxMCkpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIEFEQkcgKCJFcnJvcjogVGltZW91dCBvY2N1cnJlZCIp CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUFNEMCwgMSwgU2Vy aWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAg ICAgSWYgKCgoU0lNRSA9PSBPbmUpIHx8ICFJTVBTICgpKSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBT d2l0Y2ggKChaZXJvICsgQXJnMC0tKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg Q2FzZSAoWmVybykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSQUEw ID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoKEFQQTAgPT0gT25lKSAmJiAo TG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25l KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIENhc2UgKE9uZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS QUExID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoKEFQQTEgPT0gT25lKSAm JiAoTG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAo T25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUkFBMiA9IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKChBUEEyID09IE9u ZSkgJiYgKExvY2FsMCA8IDB4MjcxMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICBDYXNlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJBQTMgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgoQVBBMyA9 PSBPbmUpICYmIChMb2NhbDAgPCAweDI3MTApKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAg IFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSUEIwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoKEFQ QjAgPT0gT25lKSAmJiAoTG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIENhc2UgKDB4MDUpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUlBCMSA9IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAo KChBUEIxID09IE9uZSkgJiYgKExvY2FsMCA8IDB4MjcxMCkpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJQQjIgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hp bGUgKCgoQVBCMiA9PSBPbmUpICYmIChMb2NhbDAgPCAweDI3MTApKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAg ICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgwNykKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSUEIzID0gWmVybwogICAgICAgICAgICAgICAgICAg IFdoaWxlICgoKEFQQjMgPT0gT25lKSAmJiAoTG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKDB4MDgpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUlBDMCA9IFplcm8KICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoKChBUEMwID09IE9uZSkgJiYgKExvY2FsMCA8IDB4MjcxMCkpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAg ICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDA5KQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJQQzEgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgV2hpbGUgKCgoQVBDMSA9PSBPbmUpICYmIChMb2NhbDAgPCAweDI3MTApKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsr CiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgwQSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSUEMyID0gWmVybwogICAgICAg ICAgICAgICAgICAgIFdoaWxlICgoKEFQQzIgPT0gT25lKSAmJiAoTG9jYWwwIDwgMHgyNzEw KSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDArKwogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKDB4MEIp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUlBDMyA9IFplcm8KICAg ICAgICAgICAgICAgICAgICBXaGlsZSAoKChBUEMzID09IE9uZSkgJiYgKExvY2FsMCA8IDB4 MjcxMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBDYXNlICgw eDBDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJQRDAgPSBaZXJv CiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgoQVBEMCA9PSBPbmUpICYmIChMb2NhbDAg PCAweDI3MTApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQ2Fz ZSAoMHgwRCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSUEQxID0g WmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoKEFQRDEgPT0gT25lKSAmJiAoTG9j YWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IENhc2UgKDB4MEUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUlBE MiA9IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKChBUEQyID09IE9uZSkgJiYg KExvY2FsMCA8IDB4MjcxMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9u ZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICBDYXNlICgweDBGKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJQRDMgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgoQVBEMyA9PSBPbmUp ICYmIChMb2NhbDAgPCAweDI3MTApKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVw IChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgQ2FzZSAoMHgxMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSUEUwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoKEFQRTAgPT0g T25lKSAmJiAoTG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICBT bGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIENhc2UgKDB4MTEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUlBFMSA9IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKChBUEUx ID09IE9uZSkgJiYgKExvY2FsMCA8IDB4MjcxMCkpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICBDYXNlICgweDEyKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJQRTIgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgo QVBFMiA9PSBPbmUpICYmIChMb2NhbDAgPCAweDI3MTApKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAg ICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgxMykKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSUEUzID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxl ICgoKEFQRTMgPT0gT25lKSAmJiAoTG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAg ICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoTG9jYWwwID49IDB4 MjcxMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEQkcgKCJFcnJvcjogVGlt ZW91dCBvY2N1cnJlZCIpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhv ZCAoQ1NEMywgMSwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9 IFplcm8KICAgICAgICAgICAgSWYgKCgoU0lNRSA9PSBPbmUpIHx8ICFJTVBTICgpKSkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMCkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIENhc2UgKDB4MTQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUlNBVCA9IE9uZQogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoKEFT QVQgPT0gWmVybykgJiYgKExvY2FsMCA8IDB4MjcxMCkpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAg ICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDE1KQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJHQkUgPSBPbmUKICAgICAgICAgICAgICAgICAgICBXaGlsZSAo KChBR0JFID09IFplcm8pICYmIChMb2NhbDAgPCAweDI3MTApKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgxNikKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSWEhDID0gT25lCiAgICAgICAgICAgICAgICAgICAgV2hp bGUgKCgoQVhIQyA9PSBaZXJvKSAmJiAoTG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKDB4MTcpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUlhEQyA9IE9uZQogICAgICAgICAgICAgICAgICAg IFdoaWxlICgoKEFYREMgPT0gWmVybykgJiYgKExvY2FsMCA8IDB4MjcxMCkpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDE4KQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJVRlMgPSBPbmUKICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoKChBVUZTID09IFplcm8pICYmIChMb2NhbDAgPCAweDI3MTApKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChM b2NhbDAgPj0gMHgyNzEwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAo IkVycm9yOiBUaW1lb3V0IG9jY3VycmVkIikKICAgICAgICAgICAgfQogICAgICAgIH0KCiAg ICAgICAgTWV0aG9kIChDU0QwLCAxLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg ICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICBJZiAoKChTSU1FID09IE9uZSkgfHwgIUlN UFMgKCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcwKSkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgQ2FzZSAoMHgxNCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSU0FUID0gWmVybwogICAgICAgICAgICAgICAgICAg IFdoaWxlICgoKEFTQVQgPT0gT25lKSAmJiAoTG9jYWwwIDwgMHgyNzEwKSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKDB4MTUpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUkdCRSA9IFplcm8KICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoKChBR0JFID09IE9uZSkgJiYgKExvY2FsMCA8IDB4MjcxMCkpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAg ICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBDYXNlICgweDE2KQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJYSEMgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgV2hpbGUgKCgoQVhIQyA9PSBPbmUpICYmIChMb2NhbDAgPCAweDI3MTApKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsr CiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQ2FzZSAoMHgxNykKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSWERDID0gWmVybwogICAgICAg ICAgICAgICAgICAgIFdoaWxlICgoKEFYREMgPT0gT25lKSAmJiAoTG9jYWwwIDwgMHgyNzEw KSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDArKwogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIENhc2UgKDB4MTgp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUlVGUyA9IFplcm8KICAg ICAgICAgICAgICAgICAgICBXaGlsZSAoKChBVUZTID09IE9uZSkgJiYgKExvY2FsMCA8IDB4 MjcxMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CgogICAgICAg ICAgICBJZiAoKExvY2FsMCA+PSAweDI3MTApKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBBREJHICgiRXJyb3I6IFRpbWVvdXQgb2NjdXJyZWQiKQogICAgICAgICAgICB9CiAg ICAgICAgfQogICAgfQoKICAgIE5hbWUgKFRITU4sIDB4NDgpCiAgICBOYW1lIChUSENOLCAw eDBFKQogICAgTmFtZSAoQ05QTSwgMHg4MCkKICAgIE5hbWUgKEZNU04sIDB4MTApCiAgICBT Y29wZSAoXCkKICAgIHsKICAgICAgICBNZXRob2QgKFRIREEsIDIsIFNlcmlhbGl6ZWQpCiAg ICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBURldCIC8qIFxURldCICovCiAgICAgICAg ICAgIExvY2FsMCArPSAoMHg0MCAqIChDTlBNICogKEFyZzAgLSBGTVNOKSkpCiAgICAgICAg ICAgIExvY2FsMCArPSAoMHg0MCAqIEFyZzEpCiAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTVFJELCAzLCBTZXJpYWxpemVkKQogICAg ICAgIHsKICAgICAgICAgICAgSWYgKCgoQXJnMSArIEFyZzIpID4gU2l6ZU9mIChBcmcwKSkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgVG9CdWZmZXIgKEFyZzAsIExvY2FsMykKICAgICAgICAgICAg TG9jYWwwID0gWmVybwogICAgICAgICAgICBMb2NhbDEgPSBaZXJvCiAgICAgICAgICAgIFdo aWxlICgoTG9jYWwxIDwgQXJnMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExv Y2FsMiA9IERlcmVmT2YgKExvY2FsMyBbKEFyZzEgKyBMb2NhbDEpXSkKICAgICAgICAgICAg ICAgIExvY2FsMCArPSAoTG9jYWwyIDw8ICgweDA4ICogTG9jYWwxKSkKICAgICAgICAgICAg ICAgIExvY2FsMSsrCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChUSERTLCAxLCBTZXJpYWxpemVkKQogICAg ICAgIHsKICAgICAgICAgICAgSWYgKCEoVFZCUyAmIE9uZSkpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAg Q29uY2F0ZW5hdGUgKEFyZzAsICJcbiIsIExvY2FsMikKICAgICAgICAgICAgTG9jYWwwID0g U2l6ZU9mIChMb2NhbDIpCiAgICAgICAgICAgIExvY2FsMSA9IFRIREEgKFRITU4sIFRIQ04p CiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVEhCQSwgU3lzdGVtTWVtb3J5LCBMb2Nh bDEsIDB4NDApCiAgICAgICAgICAgIEZpZWxkIChUSEJBLCBRV29yZEFjYywgTm9Mb2NrLCBX cml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFFPMDAsICAgNjQK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgRmllbGQgKFRIQkEsIERXb3JkQWNjLCBOb0xv Y2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRE8wMCwg ICAzMiwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTApLCAKICAgICAgICAgICAgICAg IERPMTAsICAgMzIsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMwKSwgCiAgICAgICAg ICAgICAgICBETzMwLCAgIDMyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEZpZWxkIChU SEJBLCBXb3JkQWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgV08wMCwgICAxNgogICAgICAgICAgICB9CgogICAgICAgICAgICBGaWVs ZCAoVEhCQSwgQnl0ZUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIEJPMDAsICAgOAogICAgICAgICAgICB9CgogICAgICAgICAgICBE TzEwID0gMHgwMTAwMDI0MgogICAgICAgICAgICBXTzAwID0gTG9jYWwwCiAgICAgICAgICAg IExvY2FsNiA9IFplcm8KICAgICAgICAgICAgTG9jYWw3ID0gTG9jYWwwCiAgICAgICAgICAg IFdoaWxlICgoTG9jYWw3ID49IDB4MDgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBRTzAwID0gU1RSRCAoTG9jYWwyLCBMb2NhbDYsIDB4MDgpCiAgICAgICAgICAgICAgICBM b2NhbDYgKz0gMHgwOAogICAgICAgICAgICAgICAgTG9jYWw3IC09IDB4MDgKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgSWYgKChMb2NhbDcgPj0gMHgwNCkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIERPMDAgPSBTVFJEIChMb2NhbDIsIExvY2FsNiwgMHgwNCkKICAg ICAgICAgICAgICAgIExvY2FsNiArPSAweDA0CiAgICAgICAgICAgICAgICBMb2NhbDcgLT0g MHgwNAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKExvY2FsNyA+PSAweDAyKSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgV08wMCA9IFNUUkQgKExvY2FsMiwgTG9j YWw2LCAweDAyKQogICAgICAgICAgICAgICAgTG9jYWw2ICs9IDB4MDIKICAgICAgICAgICAg ICAgIExvY2FsNyAtPSAweDAyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoTG9j YWw3ID49IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEJPMDAgPSBTVFJE IChMb2NhbDIsIExvY2FsNiwgT25lKQogICAgICAgICAgICAgICAgTG9jYWw2ICs9IE9uZQog ICAgICAgICAgICAgICAgTG9jYWw3IC09IE9uZQogICAgICAgICAgICB9CgogICAgICAgICAg ICBETzMwID0gWmVybwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChUSERILCAxLCBTZXJp YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgVEhEUyAoVG9IZXhTdHJpbmcgKEFyZzAp KQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChUSERELCAxLCBTZXJpYWxpemVkKQogICAg ICAgIHsKICAgICAgICAgICAgVEhEUyAoVG9EZWNpbWFsU3RyaW5nIChBcmcwKSkKICAgICAg ICB9CiAgICB9CgogICAgTmFtZSAoUENISCwgT25lKQogICAgTmFtZSAoUENITiwgMHgwMykK ICAgIE5hbWUgKFBDSEwsIDB4MDIpCiAgICBOYW1lIChQQ0hQLCAweDA1KQogICAgTmFtZSAo UENITSwgMHgwNikKICAgIE5hbWUgKFBDSFgsIDB4MDQpCiAgICBTY29wZSAoX1NCKQogICAg ewogICAgICAgIE1ldGhvZCAoUFdBSywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgUzIzVyAoKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBOYW1lIChI REFBLCBPbmUpCiAgICAgICAgTmFtZSAoRElTQSwgT25lKQogICAgICAgIE5hbWUgKENJV0Ys IE9uZSkKICAgICAgICBOYW1lIChDSUJULCBPbmUpCiAgICAgICAgTmFtZSAoUzIzQywgWmVy bykKICAgICAgICBNZXRob2QgKFMyM1csIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewog ICAgICAgICAgICBIREFBID0gT25lCiAgICAgICAgICAgIERJU0EgPSBPbmUKICAgICAgICAg ICAgQ0lXRiA9IE9uZQogICAgICAgICAgICBDSUJUID0gT25lCiAgICAgICAgfQoKICAgICAg ICBNZXRob2QgKERJT04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg ICBTMDIzIChPbmUsIE9uZSkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoRElPRiwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFMwMjMgKE9uZSwgWmVybykK ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUzAyMywgMiwgU2VyaWFsaXplZCkKICAgICAg ICB7CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFBSUkUpCiAgICAgICAgewogICAgICAg ICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJk IFJlc291cmNlcyAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUg KF9VSUQsICJQQ0hSRVNWIikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBOYW1l IChfU1RBLCAweDA4KSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIE1ldGhvZCAoX0NS UywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMy Rml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMCwg ICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAy MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAg ICAgICAgICAgICAgICAgICAgICAweEZFMDRDMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFz ZQogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIEFkZHJl c3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkUwNTAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwNjAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRX cml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTBEMDAwMCwgICAgICAgICAvLyBB ZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzMDAwMCwgICAgICAg ICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg ICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAg ICAgICAgICAweEZFMjAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAg ICAgICAgICAgICAgICAweDAwNjAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp eGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMCwgICAg ICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAw MCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAg ICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkYsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgIF9ZMjkpCiAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NCLlBSUkUuX0NSUy5fWTI5Ll9N SU4sIEFNSU4pICAvLyBfTUlOOiBNaW5pbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChCVUYwLCBcX1NCLlBSUkUuX0NSUy5fWTI5Ll9NQVgsIEFN QVgpICAvLyBfTUFYOiBNYXhpbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQU1J TiA9IFBNQlMgLyogXFBNQlMgKi8KICAgICAgICAgICAgICAgIEFNQVggPSBQTUJTIC8qIFxQ TUJTICovCiAgICAgICAgICAgICAgICBOYW1lIChTQlIwLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAo UmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAweDAwRDEwMDAwLCAg ICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgIF9ZMkEp CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo U0JSMCwgXF9TQi5QUlJFLl9DUlMuX1kyQS5fQkFTLCBCQVMwKSAgLy8gX0JBUzogQmFzZSBB ZGRyZXNzCiAgICAgICAgICAgICAgICBCQVMwID0gU0JSRyAvKiBcU0JSRyAqLwogICAgICAg ICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQlVGMCwgU0JSMCwgTG9jYWwwKQog ICAgICAgICAgICAgICAgTmFtZSAoU0JSRSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0 ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRy ZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAv LyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICBfWTJCKQogICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFNCUkUsIFxf U0IuUFJSRS5fQ1JTLl9ZMkIuX0JBUywgQkFTMykgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwog ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JSRSwgXF9TQi5QUlJFLl9DUlMu X1kyQi5fTEVOLCBMRU4zKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICBCQVMz ID0gKFNCUkcgKyAweDAwRDYwMDAwKQogICAgICAgICAgICAgICAgTEVOMyA9ICgoU0JSRyAr IDB4MTAwMDAwMDApIC0gQkFTMykKICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVt cGxhdGUgKExvY2FsMCwgU0JSRSwgTG9jYWwyKQogICAgICAgICAgICAgICAgUmV0dXJuIChM b2NhbDIpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoSU9UUikK ICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSAv KiBQTlAgTW90aGVyYm9hcmQgUmVzb3VyY2VzICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgTmFtZSAoX1VJRCwgIklvVHJhcHMiKSAgLy8gX1VJRDogVW5pcXVlIElE CiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6 IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAgICAweEZGLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAg ICAgICAgICAgICAgICAgICAgICBfWTJDKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgIE5hbWUgKEJVRjEsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQK ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgX1kyRCkKICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICBOYW1lIChCVUYyLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25t ZW50CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgICAgIF9ZMkUpCiAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgTmFtZSAoQlVGMywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFs aWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAgICAgICAgICAgICAgIC8v IExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICBfWTJGKQogICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGMCwgXF9TQi5JT1RSLl9D UlMuX1kyQy5fTUlOLCBBTUkwKSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFkZHJlc3MKICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGMCwgXF9TQi5JT1RSLl9DUlMuX1ky Qy5fTUFYLCBBTUEwKSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAg ICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGMSwgXF9TQi5JT1RSLl9DUlMuX1kyRC5fTUlO LCBBTUkxKSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoQlVGMSwgXF9TQi5JT1RSLl9DUlMuX1kyRC5fTUFYLCBBTUEx KSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoQlVGMiwgXF9TQi5JT1RSLl9DUlMuX1kyRS5fTUlOLCBBTUkyKSAgLy8g X01JTjogTWluaW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoQlVGMiwgXF9TQi5JT1RSLl9DUlMuX1kyRS5fTUFYLCBBTUEyKSAgLy8gX01BWDog TWF4aW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo QlVGMywgXF9TQi5JT1RSLl9DUlMuX1kyRi5fTUlOLCBBTUkzKSAgLy8gX01JTjogTWluaW11 bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGMywg XF9TQi5JT1RSLl9DUlMuX1kyRi5fTUFYLCBBTUEzKSAgLy8gX01BWDogTWF4aW11bSBCYXNl IEFkZHJlc3MKICAgICAgICAgICAgICAgIExvY2FsMiA9IFplcm8KICAgICAgICAgICAgICAg IElmICgoSVRTMCA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEFNSTAgPSBJVEEwIC8qIFxJVEEwICovCiAgICAgICAgICAgICAgICAgICAgQU1BMCA9 IElUQTAgLyogXElUQTAgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBCVUYwIC8q IFxfU0JfLklPVFIuX0NSUy5CVUYwICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0g T25lCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChJVFMxID09IE9u ZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQU1JMSA9IElUQTEg LyogXElUQTEgKi8KICAgICAgICAgICAgICAgICAgICBBTUExID0gSVRBMSAvKiBcSVRBMSAq LwogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwyID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBs YXRlIChCVUYxLCBMb2NhbDAsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gTG9jYWwxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IEJVRjEgLyogXF9TQl8uSU9UUi5fQ1JTLkJVRjEgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwyID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoSVRTMiA9PSBPbmUpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEFNSTIgPSBJVEEyIC8qIFxJVEEyICovCiAg ICAgICAgICAgICAgICAgICAgQU1BMiA9IElUQTIgLyogXElUQTIgKi8KICAgICAgICAgICAg ICAgICAgICBJZiAoKExvY2FsMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQlVGMiwgTG9j YWwwLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBCVUYyIC8q IFxfU0JfLklPVFIuX0NSUy5CVUYyICovCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MiA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoKElUUzMgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBBTUkzID0gSVRBMyAvKiBcSVRBMyAqLwogICAgICAgICAgICAgICAg ICAgIEFNQTMgPSBJVEEzIC8qIFxJVEEzICovCiAgICAgICAgICAgICAgICAgICAgSWYgKChM b2NhbDIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKEJVRjMsIExvY2FsMCwgTG9jYWwxKQog ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDEKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQlVGMyAvKiBcX1NCXy5JT1RSLl9D UlMuQlVGMyAqLwogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBPbmUKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg KChMb2NhbDIgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl ciAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAweDc5LCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g eS4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IuUEMwMCkKICAgIHsKICAgICAg ICBOYW1lIChURU1QLCBaZXJvKQogICAgICAgIERldmljZSAoTFBDQikKICAgICAgICB7CiAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxRjAwMDApICAvLyBfQURSOiBBZGRyZXNzCiAg ICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmlj ZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBD SUMgKEFyZzApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoTFBDLCBQQ0lfQ29uZmlnLCBaZXJvLCAw eDAxMDApCiAgICAgICAgICAgIEZpZWxkIChMUEMsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgCiAgICAg ICAgICAgICAgICBDRElELCAgIDE2LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwOCks IAogICAgICAgICAgICAgICAgQ1JJRCwgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNldCAo MHg4MCksIAogICAgICAgICAgICAgICAgSU9EMCwgICA4LCAKICAgICAgICAgICAgICAgIElP RDEsICAgOCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTApLCAKICAgICAgICAgICAg ICAgICAgICAsICAgOSwgCiAgICAgICAgICAgICAgICBQUkJMLCAgIDEsIAogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweERDKSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAg ICAgICAgICAgICAgRVNQSSwgICAxCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAg IERldmljZSAoU0JVUykKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAx RjAwMDQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwg QXJnMykpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKE9uZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUg KFwpCiAgICB7CiAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQTUlPLCBTeXN0ZW1JTywgUE1C UywgMHg4MCkKICAgICAgICBGaWVsZCAoUE1JTywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgwMSksIAogICAgICAgICAgICBQ QlNTLCAgIDEsIAogICAgICAgICAgICBPZmZzZXQgKDB4NDApLCAKICAgICAgICAgICAgICAg ICwgICAxNywgCiAgICAgICAgICAgIEdQRUMsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAo MHg2QyksIAogICAgICAgICAgICBPZmZzZXQgKDB4N0MpLCAKICAgICAgICAgICAgICAgICwg ICAxOCwgCiAgICAgICAgICAgIFdBRU4sICAgMQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k IChJTVBTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChQ Q0hTID09IDB4MDQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAg ICAgTWV0aG9kIChJUENTLCA3LCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg TmFtZSAoUlBLRywgUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgIH0pCiAgICAgICAgICAgIEFEQkcgKCJQTUMgSVBDIikKICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJDb21tYW5kOiAiLCBUb0hleFN0cmluZyAoQXJnMCkpKQogICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlN1YkNtZElkOiAiLCBUb0hleFN0cmluZyAoQXJn MSkpKQogICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlNpemU6ICIsIFRvSGV4U3Ry aW5nIChBcmcyKSkpCiAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiV0J1ZmYwOiAi LCBUb0hleFN0cmluZyAoQXJnMykpKQogICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IldCdWZmMTogIiwgVG9IZXhTdHJpbmcgKEFyZzQpKSkKICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJXQnVmZjI6ICIsIFRvSGV4U3RyaW5nIChBcmc1KSkpCiAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiV0J1ZmYzOiAiLCBUb0hleFN0cmluZyAoQXJnNikpKQog ICAgICAgICAgICBJZiAoKEFyZzIgPiAweDEwKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQURCRyAoIkNtZFNpemU+MTYgRXJyb3IiKQogICAgICAgICAgICAgICAgUlBLRyBb WmVyb10gPSBPbmUKICAgICAgICAgICAgICAgIFJldHVybiAoUlBLRykgLyogXElQQ1MuUlBL RyAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBJV0IwID0gQXJnMwogICAgICAgICAg ICBJV0IxID0gQXJnNAogICAgICAgICAgICBJV0IyID0gQXJnNQogICAgICAgICAgICBJV0Iz ID0gQXJnNgogICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgIExvY2FsMCAr PSAoQXJnMCA8PCBaZXJvKQogICAgICAgICAgICBMb2NhbDAgKz0gKEFyZzEgPDwgMHgwQykK ICAgICAgICAgICAgTG9jYWwwICs9IChBcmcyIDw8IDB4MTApCiAgICAgICAgICAgIENNRFIg PSBMb2NhbDAKICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICBXaGlsZSAo T25lKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKCFJQlNZIHx8IChJRVJS ID09IE9uZSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJyZWFr CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDBB KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiSVBDIEJ1 c3kgVE8iKQogICAgICAgICAgICAgICAgICAgIFJQS0cgW1plcm9dID0gMHgwMwogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUlBLRykgLyogXElQQ1MuUlBLRyAqLwogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICBM b2NhbDArKwogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKElFUlIgPT0gT25lKSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoIklQQyBFcnJvcjoiKQogICAg ICAgICAgICAgICAgQURCRyAoSUVSQykKICAgICAgICAgICAgICAgIEFEQkcgKEFyZzApCiAg ICAgICAgICAgICAgICBBREJHIChBcmcxKQogICAgICAgICAgICAgICAgQURCRyAoQXJnMikK ICAgICAgICAgICAgICAgIEFEQkcgKEFyZzMpCiAgICAgICAgICAgICAgICBBREJHIChBcmc0 KQogICAgICAgICAgICAgICAgQURCRyAoQXJnNSkKICAgICAgICAgICAgICAgIEFEQkcgKEFy ZzYpCiAgICAgICAgICAgICAgICBSUEtHIFtaZXJvXSA9IDB4MDIKICAgICAgICAgICAgICAg IFJldHVybiAoUlBLRykgLyogXElQQ1MuUlBLRyAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBSUEtHIFtPbmVdID0gSVJCMCAvKiBcSVJCMCAqLwogICAgICAgICAgICBSUEtHIFsw eDAyXSA9IElSQjEgLyogXElSQjEgKi8KICAgICAgICAgICAgUlBLRyBbMHgwM10gPSBJUkIy IC8qIFxJUkIyICovCiAgICAgICAgICAgIFJQS0cgWzB4MDRdID0gSVJCMyAvKiBcSVJCMyAq LwogICAgICAgICAgICBSZXR1cm4gKFJQS0cpIC8qIFxJUENTLlJQS0cgKi8KICAgICAgICB9 CgogICAgICAgIE1ldGhvZCAoVUxUUiwgMSwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAg ICAgICAgIExUUlUgPSBBcmcwCiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24g KFBXTVIsIFN5c3RlbU1lbW9yeSwgUFdSTSwgMHgxRTMwKQogICAgICAgIEZpZWxkIChQV01S LCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIENN RFIsICAgMzIsIAogICAgICAgICAgICBJQlNZLCAgIDEsIAogICAgICAgICAgICBJRVJSLCAg IDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAog ICAgICAgICAgICBPZmZzZXQgKDB4MDUpLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDA2KSwg CiAgICAgICAgICAgIElFUkMsICAgOCwgCiAgICAgICAgICAgIE9mZnNldCAoMHgwOCksIAog ICAgICAgICAgICBPZmZzZXQgKDB4ODApLCAKICAgICAgICAgICAgSVdCMCwgICAzMiwgCiAg ICAgICAgICAgIElXQjEsICAgMzIsIAogICAgICAgICAgICBJV0IyLCAgIDMyLCAKICAgICAg ICAgICAgSVdCMywgICAzMiwgCiAgICAgICAgICAgIElSQjAsICAgMzIsIAogICAgICAgICAg ICBJUkIxLCAgIDMyLCAKICAgICAgICAgICAgSVJCMiwgICAzMiwgCiAgICAgICAgICAgIElS QjMsICAgMzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MTBEMCksIAogICAgICAgICAgICBS QUEwLCAgIDEsIAogICAgICAgICAgICBSQUExLCAgIDEsIAogICAgICAgICAgICBSQUEyLCAg IDEsIAogICAgICAgICAgICBSQUEzLCAgIDEsIAogICAgICAgICAgICBSUEIwLCAgIDEsIAog ICAgICAgICAgICBSUEIxLCAgIDEsIAogICAgICAgICAgICBSUEIyLCAgIDEsIAogICAgICAg ICAgICBSUEIzLCAgIDEsIAogICAgICAgICAgICBSUEMwLCAgIDEsIAogICAgICAgICAgICBS UEMxLCAgIDEsIAogICAgICAgICAgICBSUEMyLCAgIDEsIAogICAgICAgICAgICBSUEMzLCAg IDEsIAogICAgICAgICAgICBSU0FULCAgIDEsIAogICAgICAgICAgICBSR0JFLCAgIDEsIAog ICAgICAgICAgICBSWEhDLCAgIDEsIAogICAgICAgICAgICBSWERDLCAgIDEsIAogICAgICAg ICAgICBSVUZTLCAgIDEsIAogICAgICAgICAgICBSUEQwLCAgIDEsIAogICAgICAgICAgICBS UEQxLCAgIDEsIAogICAgICAgICAgICBSUEQyLCAgIDEsIAogICAgICAgICAgICBSUEQzLCAg IDEsIAogICAgICAgICAgICBSUEUwLCAgIDEsIAogICAgICAgICAgICBSUEUxLCAgIDEsIAog ICAgICAgICAgICBSUEUyLCAgIDEsIAogICAgICAgICAgICBSUEUzLCAgIDEsIAogICAgICAg ICAgICBPZmZzZXQgKDB4MTBENCksIAogICAgICAgICAgICBBUEEwLCAgIDEsIAogICAgICAg ICAgICBBUEExLCAgIDEsIAogICAgICAgICAgICBBUEEyLCAgIDEsIAogICAgICAgICAgICBB UEEzLCAgIDEsIAogICAgICAgICAgICBBUEIwLCAgIDEsIAogICAgICAgICAgICBBUEIxLCAg IDEsIAogICAgICAgICAgICBBUEIyLCAgIDEsIAogICAgICAgICAgICBBUEIzLCAgIDEsIAog ICAgICAgICAgICBBUEMwLCAgIDEsIAogICAgICAgICAgICBBUEMxLCAgIDEsIAogICAgICAg ICAgICBBUEMyLCAgIDEsIAogICAgICAgICAgICBBUEMzLCAgIDEsIAogICAgICAgICAgICBB U0FULCAgIDEsIAogICAgICAgICAgICBBR0JFLCAgIDEsIAogICAgICAgICAgICBBWEhDLCAg IDEsIAogICAgICAgICAgICBBWERDLCAgIDEsIAogICAgICAgICAgICBBVUZTLCAgIDEsIAog ICAgICAgICAgICBBUEQwLCAgIDEsIAogICAgICAgICAgICBBUEQxLCAgIDEsIAogICAgICAg ICAgICBBUEQyLCAgIDEsIAogICAgICAgICAgICBBUEQzLCAgIDEsIAogICAgICAgICAgICBB UEUwLCAgIDEsIAogICAgICAgICAgICBBUEUxLCAgIDEsIAogICAgICAgICAgICBBUEUyLCAg IDEsIAogICAgICAgICAgICBBUEUzLCAgIDEsIAogICAgICAgICAgICBPZmZzZXQgKDB4MTgw MCksIAogICAgICAgICAgICBBQ1dBLCAgIDMyLCAKICAgICAgICAgICAgRENXQSwgICAzMiwg CiAgICAgICAgICAgIEFDRVQsICAgMzIsIAogICAgICAgICAgICBEQ0VULCAgIDMyLCAKICAg ICAgICAgICAgT2Zmc2V0ICgweDE4RTgpLCAKICAgICAgICAgICAgICAgICwgICAyOSwgCiAg ICAgICAgICAgIEFQRzMsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAg ICAgIENFQ0UsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgxQjBDKSwgCiAgICAgICAg ICAgICAgICAsICAgMiwgCiAgICAgICAgICAgIElTQVQsICAgMSwgCiAgICAgICAgICAgICAg ICAsICAgMTgsIAogICAgICAgICAgICBMVFJVLCAgIDEsIAogICAgICAgICAgICBPZmZzZXQg KDB4MUIxQyksIAogICAgICAgICAgICAgICAgLCAgIDIyLCAKICAgICAgICAgICAgWFNRRCwg ICAxLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDFCRDApLCAKICAgICAgICAgICAgICAgICwg ICAzMSwgCiAgICAgICAgICAgIENQUE0sICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgx RTIwKSwgCiAgICAgICAgICAgIEdCRUQsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgx RTI4KSwgCiAgICAgICAgICAgICAgICAsICAgMjIsIAogICAgICAgICAgICBTQ0ZELCAgIDEK ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUEczQywgMSwgU2VyaWFsaXplZCkKICAgICAg ICB7CiAgICAgICAgICAgIElmIChBcmcwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBBREJHICgiUEczIEVuYWJsZSIpCiAgICAgICAgICAgICAgICBBUEczID0gT25lCiAgICAg ICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBBREJHICgiUEczIERpc2FibGUiKQogICAgICAgICAgICAgICAgQVBHMyA9IFplcm8KICAg ICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQRzNULCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKEFQRzMpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICB9CiAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBTT0MsIDEsIFNlcmlhbGl6 ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoUFNPTikKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgSWYgKEFyZzApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQURCRyAoIlBTX09OIEVuYWJsZSIpCiAgICAgICAgICAgICAgICAgICAgQ0VDRSA9 IE9uZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU19PTiBEaXNhYmxlIikKICAg ICAgICAgICAgICAgICAgICBDRUNFID0gWmVybwogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBTT1MsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ0VDRSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQ0ZBRSwgMSwgTm90U2VyaWFsaXpl ZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKENQUEUpKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKENQUEUgPT0gT25lKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoRGVyZWZPZiAoQXJnMCBbWmVyb10pKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNQ UE0gRm9yY2VkIEFsaWdubWVudCBEaXNhYmxlIikKICAgICAgICAgICAgICAgICAgICAgICAg Q1BQTSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJDUFBNIEZvcmNlZCBBbGlnbm1lbnQgRW5hYmxlIikK ICAgICAgICAgICAgICAgICAgICAgICAgQ1BQTSA9IE9uZQogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLgogICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAo X1NCLlBDMDApCiAgICB7CiAgICAgICAgTmFtZSAoTFRFTiwgWmVybykKICAgICAgICBOYW1l IChMTVNMLCBaZXJvKQogICAgICAgIE5hbWUgKExOU0wsIFplcm8pCiAgICB9CgogICAgSWYg KChQQ0hTICE9IDB4MDQpKQogICAgewogICAgICAgIFNjb3BlIChfU0IuUEMwMCkKICAgICAg ICB7CiAgICAgICAgICAgIERldmljZSAoWERDSSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwMSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoT1RHRCwgUENJX0NvbmZpZywgWmVybywgMHgw MTAwKQogICAgICAgICAgICAgICAgRmllbGQgKE9UR0QsIERXb3JkQWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERWSUQsICAg MTYsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMCksIAogICAgICAgICAgICAg ICAgICAgIFhEQ0IsICAgNjQKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBG aWVsZCAoT1RHRCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODQpLCAKICAgICAgICAgICAgICAg ICAgICBEMEkzLCAgIDIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKFhEQkEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgoWERDQiAmIDB4RkZGRkZGRkZGRkZGRkYwMCkpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxp emVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmIChQQ0lDIChBcmcwKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJn MSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBBREJHICgiWERDSSBEU00iKQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSBUb1VVSUQgKCI3MzJiODVkNS1iN2E3LTRhMWItOWJhMC00YmJkMDBmZmQ1MTEiKSAvKiBV bmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoU1BQUywgMiwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFhEQlcsIFN5c3RlbU1lbW9yeSwgWERCQSAo KSwgMHgwMDExMDAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZCAo WERCVywgV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHgxMEY4MTApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDEwRjgxMSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV MkNQLCAgIDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVM0NQLCAg IDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTBG ODE4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBVUFMsICAgMiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBVUkMsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMEY4MUEpLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwRjgxQyksIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBVWFBFLCAgIDIsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTBGODFFKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwx ID0gQXJnMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IEFyZzEK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJQTVUgRDAiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBVWFBFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFdoaWxlICgoTG9jYWwwIDwgMHgwQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 YWxsICgweDY0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFVQUyA9IFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IDB4MDdEMCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0YWxsICgweDY0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKCgoVTJDUCA9PSBaZXJvKSAmJiAoVTNDUCA9PSBaZXJvKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFUyQ1AgIT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJVMiBub3QgaW4gRDAiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKFUzQ1AgIT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJVMyBub3QgaW4gRDAiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSAweDAzKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJQTVUgRDMiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKFUyQ1AgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJVMiBub3QgaW4gRDAiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFUzQ1AgIT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJVMyBub3QgaW4gRDAiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQVVBTID0gMHgwMwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDwgMHgwN0QwKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RhbGwgKDB4NjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKChVMkNQID09IDB4MDMpICYmIChVM0NQID09IDB4MDMpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVTJDUCAhPSAweDAzKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlUyIG5vdCBpbiBEMyIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoVTNDUCAhPSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlUzIG5vdCBpbiBEMyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVYUEUgPSBM b2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChB cmcyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlhEQ0kg Rm4wIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEIzLCAweDAzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIlhEQ0kgRm4xIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDQpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBREJHICgiWERDSSBGbjQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDEgPSBEZXJlZk9mIChBcmczIFtaZXJvXSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTUFBTIChMb2NhbDEsIFplcm8pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4 MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiWERDSSBGbjUiKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4 MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiWERDSSBGbjciKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFhEMjIsIFN5c3RlbU1lbW9y eSwgWERCQSAoKSwgMHgwMDExMDAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmllbGQgKFhEMjIsIFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMEY4MTgpLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFAyUFMsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTBGODFBKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBQMlBTIC8qIFxfU0JfLlBDMDAuWERDSS5fRFNNLlAyUFMgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiWERDSSBGbjgiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ2FzZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJYRENJIEZuOSIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoWEdD VCwgU3lzdGVtTWVtb3J5LCBYREJBICgpLCAweDAwMTEwMDAwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGaWVsZCAoWEdDVCwgV29yZEFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEMxMTApLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDVEwsICAgMzIKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwxID0gKFBQRFMgJiAweEZGRjgwMDAwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPj49IDB4MTMKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0ggWERDSTogRnVu YzkgUmV0dXJuIFZhbCA9ICIsIFRvSGV4U3RyaW5nIChMb2NhbDEpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoX0RETiwgIlBDSCBYRENJIGNv bnRyb2xsZXIiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAgICBO YW1lIChfU1RSLCBVbmljb2RlICgiUENIIFhEQ0kgY29udHJvbGxlciIpKSAgLy8gX1NUUjog RGVzY3JpcHRpb24gU3RyaW5nCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TMFcsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoR1AxRSAhPSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChHUFJXICgweDhDLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJX ICgweDZELCAweDA0KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9EU1csIDMsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNXOiBEZXZpY2UgU2xlZXAgV2Fr ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBJZiAoKEdCRVMgIT0gWmVybykpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIERldmljZSAoR0xBTikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChfQURSLCAweDAwMUYwMDA2KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDMpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2Fr ZSBTdGF0ZQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoR1AxRSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoR1AxRSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4ODYsIDB4MDQp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NkQsIDB4MDQp KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf RFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFBDSUMg KEFyZzApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBDSUQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTVywgMywgTm90U2VyaWFs aXplZCkgIC8vIF9EU1c6IERldmljZSBTbGVlcCBXYWtlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgRGV2aWNlIChYSENJKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBOYW1lIChfQURSLCAweDAwMTQwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAg ICAgICAgICAgTmFtZSAoRFVXUywgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKFBVMkMs IFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChQVTNDLCBaZXJvKQogICAgICAgICAgICAg ICAgTmFtZSAoQUhXQSwgT25lKQogICAgICAgICAgICAgICAgTmFtZSAoUFBJRCwgMHgzQSkK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9Q Ulc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKERVV1MpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoR1AxRSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo R1AxRSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4ODksIERVV1MpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NkQsIERVV1MpKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFF KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChHUDFFICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg4OSwgMHgw NCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2RCwgMHgw NCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIERVV1MgPSBcRFVXUwogICAgICAgICAgICAgICAgUFUyQyA9IFxQVTJDCiAgICAg ICAgICAgICAgICBQVTNDID0gXFBVM0MKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lv biAoWFBSVCwgUENJX0NvbmZpZywgWmVybywgMHgwMTAwKQogICAgICAgICAgICAgICAgRmll bGQgKFhQUlQsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBEVklELCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4MTApLCAKICAgICAgICAgICAgICAgICAgICBYQURSLCAgIDY0LCAKICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4NzQpLCAKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4NzUpLCAKICAgICAgICAgICAgICAgICAgICBQTUVFLCAgIDEsIAogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg3NiksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHhBMiksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAg ICAgICAgRDNIRSwgICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1l dGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJYSENJ IF9EU00iKQogICAgICAgICAgICAgICAgICAgIElmIChQQ0lDIChBcmcwKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJn MCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMjAzYjIwM2ItMWYxMy00MDlhLTlh YWUtMWEwMzQ3NTI1NTg0IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcy KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChBSFdBKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoKEFIV0EgJiYgT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChP bmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1MzRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TM0Q6IFMzIERldmljZSBT dGF0ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw MykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TNEQsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfUzREOiBTNCBEZXZpY2UgU3RhdGUKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUzNXLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1MzVzogUzMgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfUzRXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1M0VzogUzQg RGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfUzBXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2Ug U3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MDMpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNXLCAz LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTVzogRGV2aWNlIFNsZWVwIFdha2UKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9J TkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXlJIVUIuSU5JUikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBeUkhVQi5J TklSICgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoVVNSQSwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKChQVTJDICsgQXJnMCkpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChTU1BBLCAxLCBTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoKFBVMkMg KyAoMHgwMiArIEFyZzApKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKFVQUlUsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgXl5TQlNDLlBDQU8gKFBQSUQsIEFyZzAsIEFyZzEsIEFyZzIpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJp YWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJYSENJIEQwIikKICAgICAgICAgICAgICAgICAgICBV UFJVIChaZXJvLCAweEZGRkZGRkY3LCBaZXJvKQogICAgICAgICAgICAgICAgICAgIElmICgo RFZJRCA9PSAweEZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFMwWCkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBQUzBYICgpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwg U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHICgiWEhDSSBEMyIpCiAgICAgICAgICAgICAgICAg ICAgVVBSVSAoWmVybywgMHhGRkZGRkZGRiwgMHgwOCkKICAgICAgICAgICAgICAgICAgICBJ ZiAoKERWSUQgPT0gMHhGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBTM1gpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUFMzWCAoKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKENVSUQs IDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcwID09IFRvVVVJRCAoIjdjOTUxMmE5LTE3MDUtNGNiNC1hZjdkLTUwNmEyNDIz YWI3MSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKFJIVUIpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMw OiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiWEhDSSBSSFVCIFBTMCIpCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoRFZJRCA9PSAweEZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBTMFgp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiWEhDSSBDU0QwIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTRDAg KDB4MTYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUzBYICgpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1BTMiwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzI6IFBvd2VyIFN0YXRl IDIKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJYSENJIFJIVUIgUFMyIikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEVklEID09 IDB4RkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFMyWCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTMlggKCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJYSENJIENTRDMiKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ1NEMyAoMHgxNikKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UFMzLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlhIQ0kgUkhVQiBQ UzMiKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZGKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChQUzNYKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFMzWCAoKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlhIQ0kgQ1NEMyIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDU0QzICgweDE2KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlh bGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiWEhDSSBSSFVCIF9EU00i KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiY2UyZWUz ODUtMDBlNi00OGNiLTlmMDUtMmVkYjkyN2M0ODk5IikgLyogVVNCIENvbnRyb2xsZXIgKi8p KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlhIQ0kgUkhVQiBGMCIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDgxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDcpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJYSENJIFJIVUIgRjciKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFBVMkMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChPbmUgPD0gUFUyQykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoSFMwMSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOYW1lIChfQURSLCBPbmUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoMHgwMiA8PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChIUzAyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIDB4MDIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoMHgwMyA8PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChIUzAzKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKF9BRFIsIDB4MDMpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZUQ00pICYmIChWVENNID09IE9uZSkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKCgoU1hQMSA9PSAweDAzKSB8fCAoU1hQMiA9PSAweDAzKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VUEMsIFBhY2thZ2UgKDB4MDQpICAv LyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBa ZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BMRCwgUGFja2FnZSAo MHgwMSkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRvUExEICgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JldmlzaW9uICAgICAgICAgICA9IDB4MiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0ln bm9yZUNvbG9yICAgICAgICA9IDB4MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUExEX1JlZCAgICAgICAgICAgICAgICA9IDB4MCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyZWVuICAg ICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUExEX0JsdWUgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1dpZHRoICAgICAgICAg ICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUExEX0hlaWdodCAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1VzZXJWaXNpYmxlICAgICAgICA9 IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UExEX0RvY2sgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUExEX0xpZCAgICAgICAgICAgICAgICA9IDB4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1Bh bmVsICAgICAgICAgICAgICA9ICJUT1AiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfVmVydGljYWxQb3NpdGlvbiAgID0gIlVQUEVSIiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hv cml6b250YWxQb3NpdGlvbiA9ICJMRUZUIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUExEX1NoYXBlICAgICAgICAgICAgICA9ICJST1VORCIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9H cm91cE9yaWVudGF0aW9uICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFRva2VuICAgICAgICAgPSAweDEsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFBv c2l0aW9uICAgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9CYXkgICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9FamVjdGFibGUgICAg ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9FamVjdFJlcXVpcmVkICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYWJpbmV0TnVtYmVyICAgICAg PSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9DYXJkQ2FnZU51bWJlciAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9SZWZlcmVuY2UgICAgICAgICAgPSAweDAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9S b3RhdGlvbiAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBMRF9PcmRlciAgICAgICAgICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9WZXJ0aWNh bE9mZnNldCAgICAgPSAweEZGRkYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFsT2Zmc2V0ICAgPSAweEZGRkYpCgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoQ0lSKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9B RFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoKDB4MDMgKyBTWEkxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9QTEQsIFBhY2thZ2UgKDB4MDEpICAvLyBfUExEOiBQaHlzaWNhbCBMb2Nh dGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvUExEICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9SZXZpc2lvbiAgICAgICAgICAgPSAweDIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfSWdub3JlQ29sb3IgICAg ICAgID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1JlZCAgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9HcmVlbiAgICAgICAg ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTERfQmx1ZSAgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1dpZHRoICAgICAg ICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9IZWlnaHQgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVXNlclZpc2li bGUgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUExEX0RvY2sgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9MaWQgICAg ICAgICAgICAgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQTERfUGFuZWwgICAgICAgICAgICAgID0gIkZST05UIiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9W ZXJ0aWNhbFBvc2l0aW9uICAgPSAiVVBQRVIiLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hvcml6b250YWxQb3NpdGlvbiA9ICJD RU5URVIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUExEX1NoYXBlICAgICAgICAgICAgICA9ICJST1VORCIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBPcmllbnRh dGlvbiAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUExEX0dyb3VwVG9rZW4gICAgICAgICA9IDB4MCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFBvc2l0 aW9uICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTERfQmF5ICAgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0VqZWN0YWJs ZSAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9FamVjdFJlcXVpcmVkICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQ2FiaW5l dE51bWJlciAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUExEX0NhcmRDYWdlTnVtYmVyICAgICA9IDB4MCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9SZWZl cmVuY2UgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfUm90YXRpb24gICAgICAgICAgID0gMHgwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX09y ZGVyICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9WZXJ0aWNhbE9mZnNldCAgICAgPSAweEM4LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExE X0hvcml6b250YWxPZmZzZXQgICA9IDB4QTApCgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoMHgwNCA8PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChIUzA0KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoMHgwNSA8PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRGV2aWNlIChIUzA1KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4 MDUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChDb25kUmVmT2YgKFZUQ00pICYmIChWVENNID09IE9uZSkpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKCgoU1hQMSA9PSAweDA1KSB8fCAoU1hQMiA9PSAweDA1KSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9VUEMsIFBhY2thZ2UgKDB4MDQpICAvLyBfVVBDOiBVU0Ig UG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BMRCwgUGFja2FnZSAoMHgwMSkgIC8vIF9Q TEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRvUExEICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUExEX1JldmlzaW9uICAgICAgICAgICA9IDB4MiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0lnbm9yZUNvbG9yICAg ICAgICA9IDB4MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUExEX1JlZCAgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyZWVuICAgICAgICAgICAgICA9 IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UExEX0JsdWUgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUExEX1dpZHRoICAgICAgICAgICAgICA9IDB4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hl aWdodCAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUExEX1VzZXJWaXNpYmxlICAgICAgICA9IDB4MCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0RvY2sgICAg ICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUExEX0xpZCAgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1BhbmVsICAgICAgICAg ICAgICA9ICJUT1AiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfVmVydGljYWxQb3NpdGlvbiAgID0gIlVQUEVSIiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hvcml6b250YWxQb3Np dGlvbiA9ICJMRUZUIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1NoYXBlICAgICAgICAgICAgICA9ICJST1VORCIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cE9yaWVudGF0 aW9uICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9Hcm91cFRva2VuICAgICAgICAgPSAweDEsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFBvc2l0aW9uICAgICAg PSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9CYXkgICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9FamVjdGFibGUgICAgICAgICAgPSAweDAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9F amVjdFJlcXVpcmVkICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBMRF9DYWJpbmV0TnVtYmVyICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYXJkQ2Fn ZU51bWJlciAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9SZWZlcmVuY2UgICAgICAgICAgPSAweDAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Sb3RhdGlvbiAgICAg ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9PcmRlciAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9WZXJ0aWNhbE9mZnNldCAgICAg PSAweEZGRkYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBMRF9Ib3Jpem9udGFsT2Zmc2V0ICAgPSAweEZGRkYpCgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERldmljZSAoQ0lSKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoKDB4MDUg KyBTWEkxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9Q TEQsIFBhY2thZ2UgKDB4MDEpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZp Y2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvUExEICgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9S ZXZpc2lvbiAgICAgICAgICAgPSAweDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQTERfSWdub3JlQ29sb3IgICAgICAgID0gMHgxLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExE X1JlZCAgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9HcmVlbiAgICAgICAgICAgICAgPSAweDAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ TERfQmx1ZSAgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1dpZHRoICAgICAgICAgICAgICA9IDB4 MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9IZWlnaHQgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVXNlclZpc2libGUgICAgICAgID0g MHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUExEX0RvY2sgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9MaWQgICAgICAgICAgICAgICAg PSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQTERfUGFuZWwgICAgICAgICAgICAgID0gIkZST05UIiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9WZXJ0aWNhbFBvc2l0 aW9uICAgPSAiVVBQRVIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUExEX0hvcml6b250YWxQb3NpdGlvbiA9ICJDRU5URVIiLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1No YXBlICAgICAgICAgICAgICA9ICJST1VORCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBPcmllbnRhdGlvbiAgID0gMHgw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UExEX0dyb3VwVG9rZW4gICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFBvc2l0aW9uICAgICAgPSAw eDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQTERfQmF5ICAgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0VqZWN0YWJsZSAgICAgICAgICA9 IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBMRF9FamVjdFJlcXVpcmVkICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQ2FiaW5ldE51bWJlciAgICAg ID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUExEX0NhcmRDYWdlTnVtYmVyICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9SZWZlcmVuY2UgICAgICAg ICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfUm90YXRpb24gICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX09yZGVyICAgICAgICAg ICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBMRF9WZXJ0aWNhbE9mZnNldCAgICAgPSAweEM4LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hvcml6b250YWxP ZmZzZXQgICA9IDB4QTApCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoMHgwNiA8 PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRGV2aWNlIChIUzA2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDYpICAvLyBf QURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoMHgwNyA8PSBQ VTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRGV2aWNlIChIUzA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDcpICAvLyBfQURS OiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoMHgwOCA8PSBQVTJD KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRGV2aWNlIChIUzA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDgpICAvLyBfQURSOiBB ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChSQ0FNKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwOCkgIC8vIF9BRFI6IEFkZHJlc3MKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfVVBDLCAwLCBTZXJp YWxpemVkKSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENQKSAv KiBcX1NCXy5QQzAwLlhIQ0kuUkhVQi5IUzA4LlJDQU0uX1VQQy5VUENQICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBo eXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1l IChQTERQLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwMDAgKi8gIDB4ODIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDI0LCAweDFELCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAgLy8gJC4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwgMHhG RiwgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQzAwLlhIQ0kuUkhVQi5IUzA4LlJD QU0uX1BMRC5QTERQICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoMHgwOSA8PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChIUzA5KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDkpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoMHgwQSA8PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChIUzEwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9B RFIsIDB4MEEpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoMHgwQiA8PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChIUzExKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MEIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoMHgwQyA8PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRGV2aWNlIChIUzEyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4 MEMpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo MHgwRCA8PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgRGV2aWNlIChIUzEzKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MEQp ICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoMHgw RSA8PSBQVTJDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRGV2aWNlIChIUzE0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MEUpICAv LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoVVNS MSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoVVNSQSAoT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg RGV2aWNlIChVU1IyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURS OiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChVU1JBICgweDAyKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFUzQykpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE9uZSA8 PSBQVTNDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRGV2aWNlIChTUzAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU1NQ QSAoT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoMHgwMiA8PSBQVTNDKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChTUzAyKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoU1NQQSAoMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MDMg PD0gUFUzQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERldmljZSAoU1MwMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNT UEEgKDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCgweDA0IDw9IFBVM0MpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFNTMDQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVz cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChTU1BBICgweDA0KSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoMHgw NSA8PSBQVTNDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRGV2aWNlIChTUzA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo U1NQQSAoMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MDYgPD0gUFUzQykpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoU1MwNikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRy ZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNTUEEgKDB4MDYpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgw eDA3IDw9IFBVM0MpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEZXZpY2UgKFNTMDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChTU1BBICgweDA3KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoMHgwOCA8PSBQVTNDKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChTUzA4 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFk ZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU1NQQSAoMHgwOCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KDB4MDkgPD0gUFUzQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERldmljZSAoU1MwOSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFNTUEEgKDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgweDBBIDw9IFBVM0MpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFNT MTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTU1BBICgweDBBKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoSERBUykK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFGMDAwMykg IC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2Vy aWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBBREJHICgiSEQtQSBDdHJsciBEMCIpCiAgICAgICAgICAgICAg ICAgICAgUzAyMyAoWmVybywgT25lKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFxfU0IuUEMwMC5IREFTLlBTMFgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUFMwWCAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6 ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoIkhELUEgQ3RybHIgRDMiKQogICAgICAgICAgICAgICAgICAg IFMwMjMgKFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo XF9TQi5QQzAwLkhEQVMuUFMzWCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBQUzNYICgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEdQMUUpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChHUDFFICE9IFplcm8p KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEdQUlcgKDB4OEEsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQ UlcgKDB4NkQsIDB4MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoSERBUiwgUENJX0NvbmZpZywgWmVybywgMHgwMTAwKQogICAgICAg ICAgICAgICAgRmllbGQgKEhEQVIsIFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkRJRCwgICAzMgogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDMpICAvLyBfUzBXOiBT MCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNXLCAzLCBO b3RTZXJpYWxpemVkKSAgLy8gX0RTVzogRGV2aWNlIFNsZWVwIFdha2UKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChOQlUwLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUVdvcmRNZW1vcnkgKFJlc291cmNlQ29uc3VtZXIsIFBvc0RlY29kZSwgTWluTm90Rml4 ZWQsIE1heE5vdEZpeGVkLCBOb25DYWNoZWFibGUsIFJlYWRPbmx5LAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDEsIC8vIEdyYW51bGFyaXR5CiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gUmFuZ2UgTWluaW11bQog ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBU cmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAw MDAwMDAwLCAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgLCwgX1kzMCwgQWRk cmVzc1JhbmdlQUNQSSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0 aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkhE QVMgX0lOSSIpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoTkJVMCwg XF9TQi5QQzAwLkhEQVMuX1kzMC5fTUlOLCBOQkEwKSAgLy8gX01JTjogTWluaW11bSBCYXNl IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChOQlUwLCBc X1NCLlBDMDAuSERBUy5fWTMwLl9NQVgsIE5NQTApICAvLyBfTUFYOiBNYXhpbXVtIEJhc2Ug QWRkcmVzcwogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKE5CVTAsIFxf U0IuUEMwMC5IREFTLl9ZMzAuX0xFTiwgTkxFMCkgIC8vIF9MRU46IExlbmd0aAogICAgICAg ICAgICAgICAgICAgIE5CQTAgPSBOSEFBIC8qIFxOSEFBICovCiAgICAgICAgICAgICAgICAg ICAgTk1BMCA9IChOSEFBICsgKE5ITEwgLSBPbmUpKQogICAgICAgICAgICAgICAgICAgIE5M RTAgPSBOSExMIC8qIFxOSExMICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTmFtZSAoX0RTRCwgUGFja2FnZSAoMHgwMikgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZp YyBEYXRhCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgi ZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2aWNlIFByb3Bl cnRpZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAibmhsdC12ZXJzaW9uIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAi MS44LTAiCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgRGV2aWNlIChJREEpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgxMDAwMDAw MCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00s IDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiSERBUyBf RFNNIikKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQXJnMikKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBDSUQgKEFyZzAsIEFyZzEs IEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiYTY5Zjg4NmUtNmNlYi00NTk0LWE0 MWYtN2I1ZGNlMjRjNTUzIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVn ZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDRiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoIl9EU00gRnVuIDEgTkhMVCIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmczKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE5CVTApIC8qIFxfU0JfLlBDMDAuSERBUy5OQlUwICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChOQlUwKSAvKiBcX1NCXy5QQzAwLkhEQVMuTkJVMCAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIl9EU00gRnVuIDIgRk1TSyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQURGTSkgLyogXEFERk0gKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAo MHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJfRFNNIEZ1biAzIFBQTVMiKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAu SERBUy5QUE1TKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUE1TIChBcmcz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJQUE1TIG5vdCBmb3VuZCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ2FzZSAoMHgwNikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJfRFNN IEZ1biA2IFhDRkciKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFhUQUwpIC8qIFxYVEFMICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDcpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiX0RTTSBGdW4gNyBIREJPIikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoSERCTykKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChIREJPKSAvKiBcSERCTyAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiX0RTTSBGdW4gTk9LIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoSElXQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChISVdDIChBcmcwKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChISURXKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSElEVyAoQXJn MCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiX0RTTSBVVUlEIE5PSyIpCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgU2NvcGUgKEhEQVMuSURBKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBEZXZpY2UgKFNORFcpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHg0MDAwMDAwMCkgIC8vIF9BRFI6 IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCBQYWNrYWdlICgweDAy KSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgIlBSUDAwMDAxIiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICJQTlAwQTA1IiAvKiBHZW5lcmljIENvbnRhaW5lciBEZXZpY2UgKi8KICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChRQ0ZHLCA0LCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAo RGVyZWZPZiAoQXJnMCBbT25lXSkgW1plcm9dKSBbT25lXQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gQXJnMQogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChEZXJl Zk9mIChBcmcwIFtPbmVdKSBbMHgwNF0pIFtPbmVdCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPSBBcmcyCiAgICAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKERlcmVmT2Yg KEFyZzAgW09uZV0pIFsweDA1XSkgW09uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA9IEFyZzMKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoWENGRywgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSAweDAxNkUzNjAwKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IlhUQUwgMjRNSHoiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgw MTZFMzYwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMDVCOEQ4 MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHg3RAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwzID0gMHgwMgogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEgPT0gMHgwMjQ5RjAw MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJYVEFMIDM4LjRNSHoiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gMHgwMjQ5RjAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwx ID0gMHgwMDQ5M0UwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gMHgz MgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gMHgwNAogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzEg PT0gMHgwMTI0RjgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJYVEFMIDE5LjJNSHoiKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gMHgwMTI0RjgwMAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwxID0gMHgwMDQ5M0UwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwyID0gMHgzMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gMHgw NAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlhUQUwgVU5TVVBQT1JURUQiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g WmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gWmVybwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gWmVybwogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChEZXJlZk9mIChBcmcw IFtPbmVdKSBbT25lXSkgW09uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IExv Y2FsMAogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChEZXJlZk9mIChEZXJlZk9m IChBcmcwIFtPbmVdKSBbMHgwOF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgW09u ZV0pIFtaZXJvXSA9IExvY2FsMQogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChE ZXJlZk9mIChBcmcwIFtPbmVdKSBbMHgwQV0pIFtPbmVdCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRGVy ZWZPZiAoQXJnMCBbT25lXSkgWzB4MEJdKSBbT25lXQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gTG9jYWwzCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKERDRkcsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChEZXJlZk9mIChBcmcwIFtP bmVdKSBbMHgwMl0pIFtPbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBBcmcx CiAgICAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKERlcmVmT2YgKEFyZzAgW09uZV0p IFsweDAzXSkgW09uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IEFyZzIKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoU0RXVSwg MSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIERlcmVmT2YgKERlcmVmT2YgKF9EU0QgW09uZV0pIFsweDAyXSkgW09uZV0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IEFyZzAKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJTTkRXIF9JTkkiKQogICAgICAgICAgICAgICAgICAg ICAgICBTRFdVIChTV01DKQogICAgICAgICAgICAgICAgICAgICAgICBRQ0ZHIChMTkswLCBT V1EwLCBBQ1MwLCBTTUwwKQogICAgICAgICAgICAgICAgICAgICAgICBRQ0ZHIChMTksxLCBT V1ExLCBBQ1MxLCBTTUwxKQogICAgICAgICAgICAgICAgICAgICAgICBRQ0ZHIChMTksyLCBT V1EyLCBBQ1MyLCBTTUwyKQogICAgICAgICAgICAgICAgICAgICAgICBRQ0ZHIChMTkszLCBT V1EzLCBBQ1MzLCBTTUwzKQogICAgICAgICAgICAgICAgICAgICAgICBYQ0ZHIChMTkswLCBY VEFMKQogICAgICAgICAgICAgICAgICAgICAgICBYQ0ZHIChMTksxLCBYVEFMKQogICAgICAg ICAgICAgICAgICAgICAgICBYQ0ZHIChMTksyLCBYVEFMKQogICAgICAgICAgICAgICAgICAg ICAgICBYQ0ZHIChMTkszLCBYVEFMKQogICAgICAgICAgICAgICAgICAgICAgICBEQ0ZHIChM TkswLCBEQUkwLCBET0QwKQogICAgICAgICAgICAgICAgICAgICAgICBEQ0ZHIChMTksxLCBE QUkxLCBET0QwKQogICAgICAgICAgICAgICAgICAgICAgICBEQ0ZHIChMTksyLCBEQUkyLCBE T0QwKQogICAgICAgICAgICAgICAgICAgICAgICBEQ0ZHIChMTkszLCBEQUkzLCBET0QwKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RTRCwg UGFja2FnZSAoMHgwNCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJkYWZmZDgx NC02ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEiKSAvKiBEZXZpY2UgUHJvcGVydGllcyBm b3IgX0RTRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LXN3LWludGVyZmFjZS1yZXZpc2lvbiIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LW1hbmFnZXItbGlzdCIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEYKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIm1pcGktc2R3LW1hc3Rlci1jb3VudCIsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJk YmI4ZTNlNi01ODg2LTRiYTYtODc5NS0xMzE5ZjUyYTk2NmIiKSAvKiBIaWVyYXJjaGljYWwg RGF0YSBFeHRlbnNpb24gKi8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1saW5rLTAtc3VicHJvcGVy dGllcyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMTkswIgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctbGluay0xLXN1YnByb3BlcnRpZXMi LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTE5LMSIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWxpbmstMi1zdWJwcm9wZXJ0aWVzIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxOSzIiCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJtaXBpLXNkdy1saW5rLTMtc3VicHJvcGVydGllcyIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJMTkszIgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChMTkswLCBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZGFm ZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2aWNlIFByb3BlcnRp ZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDBF KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlbC1xdWlyay1tYXNrIiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiaW50ZWwtc2R3LWlwLWNsb2NrIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMjQ5RjAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWwt c2R3LWRvYWlzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlbC1zZHctZG9kcyIsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiaW50ZWwtYXV0b25vbW91cy1jbG9jay1zdG9wIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWwt c2R3LWxhbmUtbWFzayIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctY2xvY2stc3RvcC1tb2Rl MC1zdXBwb3J0ZWQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWNsb2NrLXN0b3AtbW9kZTEt c3VwcG9ydGVkIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1jbG9jay1mcmVxdWVuY2llcy1z dXBwb3J0ZWQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDQ5M0UwMAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWRl ZmF1bHQtZnJhbWUtcmF0ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 QkI4MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctZGVmYXVsdC1m cmFtZS1yb3ctc2l6ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWRlZmF1bHQtZnJhbWUt Y29sLXNpemUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1keW5hbWljLWZyYW1lLXNoYXBl IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJtaXBpLXNkdy1jb21tYW5kLWVycm9yLXRocmVzaG9sZCIsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoTE5LMSwgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAo ImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIpIC8qIERldmljZSBQcm9w ZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwRSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWwtcXVpcmstbWFzayIsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImludGVsLXNkdy1pcC1jbG9jayIsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDI0OUYwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlu dGVsLXNkdy1kb2FpcyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWwtc2R3LWRvZHMiLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImludGVsLWF1dG9ub21vdXMtY2xvY2stc3RvcCIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlu dGVsLXNkdy1sYW5lLW1hc2siLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWNsb2NrLXN0b3At bW9kZTAtc3VwcG9ydGVkIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25l CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1jbG9jay1zdG9wLW1v ZGUxLXN1cHBvcnRlZCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctY2xvY2stZnJlcXVlbmNp ZXMtc3VwcG9ydGVkIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OTNFMDAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNk dy1kZWZhdWx0LWZyYW1lLXJhdGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEJCODAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWRlZmF1 bHQtZnJhbWUtcm93LXNpemUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDMyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1kZWZhdWx0LWZy YW1lLWNvbC1zaXplIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctZHluYW1pYy1mcmFtZS1z aGFwZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctY29tbWFuZC1lcnJvci10aHJlc2hvbGQi LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKExOSzIsIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUb1VV SUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEiKSAvKiBEZXZpY2Ug UHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MEUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVsLXF1aXJrLW1hc2siLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJpbnRlbC1zZHctaXAtY2xvY2siLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAyNDlGMDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJpbnRlbC1zZHctZG9haXMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVsLXNkdy1kb2RzIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJpbnRlbC1hdXRvbm9tb3VzLWNsb2NrLXN0b3AiLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJpbnRlbC1zZHctbGFuZS1tYXNrIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1jbG9jay1z dG9wLW1vZGUwLXN1cHBvcnRlZCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctY2xvY2stc3Rv cC1tb2RlMS1zdXBwb3J0ZWQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWNsb2NrLWZyZXF1 ZW5jaWVzLXN1cHBvcnRlZCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDkzRTAwCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlw aS1zZHctZGVmYXVsdC1mcmFtZS1yYXRlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHhCQjgwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1k ZWZhdWx0LWZyYW1lLXJvdy1zaXplIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgzMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctZGVmYXVs dC1mcmFtZS1jb2wtc2l6ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWR5bmFtaWMtZnJh bWUtc2hhcGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWNvbW1hbmQtZXJyb3ItdGhyZXNo b2xkIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChMTkszLCBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg VG9VVUlEICgiZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2 aWNlIFByb3BlcnRpZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDBFKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlbC1xdWlyay1tYXNr IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiaW50ZWwtc2R3LWlwLWNsb2NrIiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMjQ5RjAwMAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiaW50ZWwtc2R3LWRvYWlzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlbC1zZHctZG9kcyIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiaW50ZWwtYXV0b25vbW91cy1jbG9jay1zdG9wIiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiaW50ZWwtc2R3LWxhbmUtbWFzayIsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctY2xv Y2stc3RvcC1tb2RlMC1zdXBwb3J0ZWQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWNsb2Nr LXN0b3AtbW9kZTEtc3VwcG9ydGVkIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1jbG9jay1m cmVxdWVuY2llcy1zdXBwb3J0ZWQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ5M0UwMAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Im1pcGktc2R3LWRlZmF1bHQtZnJhbWUtcmF0ZSIsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4QkI4MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1z ZHctZGVmYXVsdC1mcmFtZS1yb3ctc2l6ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MzIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWRl ZmF1bHQtZnJhbWUtY29sLXNpemUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1keW5hbWlj LWZyYW1lLXNoYXBlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1jb21tYW5kLWVycm9yLXRo cmVzaG9sZCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg SWYgKChVQU9FICE9IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIERldmljZSAoVUFPTCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4NTAwMDAwMDApICAvLyBfQURSOiBBZGRyZXNzCiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsIFBhY2thZ2UgKDB4MDIpICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJQUlAwMDAwMSIsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlBOUDBBMDUiIC8qIEdlbmVyaWMgQ29udGFpbmVyIERldmljZSAqLwogICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0 aG9kCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJVQU9MIF9EU00iKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcwID09IFRvVVVJRCAoIjJlNjBhZWZjLTFiYTgtNDY3YS1iOGNjLTU3MjdiOThjZWNi NyIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFy ZzIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KENGQUUgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RTRCwg UGFja2FnZSAoMHgwNCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAo ImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIpIC8qIERldmljZSBQcm9w ZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1YW9s LWN0cmwtY291bnQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImRi YjhlM2U2LTU4ODYtNGJhNi04Nzk1LTEzMTlmNTJhOTY2YiIpIC8qIEhpZXJhcmNoaWNhbCBE YXRhIEV4dGVuc2lvbiAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidWFvbC1k ZXNjcmlwdG9yLTAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVB TzAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidWFv bC1kZXNjcmlwdG9yLTEiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlVBTzEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChVQU8wLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJkYWZm ZDgxNC02ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEiKSAvKiBEZXZpY2UgUHJvcGVydGll cyBmb3IgX0RTRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidWFvbC1pbnN0 YW5jZS1udW1iZXIiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJkZi1y b3V0aW5nLWVuYWJsZWQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg WmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBl ZXItaW50ZWdyYXRlZC1jb250cm9sbGVyLWlkZW50aWZpZXIiLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHg5OEVECiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChVQU8xLCBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUb1VVSUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEi KSAvKiBEZXZpY2UgUHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAidWFvbC1pbnN0YW5jZS1udW1iZXIiLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiYmRmLXJvdXRpbmctZW5hYmxlZCIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAicGVlci1pbnRlZ3JhdGVkLWNvbnRyb2xsZXItaWRlbnRpZmll ciIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEFCQ0QKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEhF Q0kpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNjAw MDApICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQs IE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkhFQ0kgX0RTTSIpCiAg ICAgICAgICAgICAgICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBBcmcxLCBB cmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKEhJV0MpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKEhJV0MgKEFyZzApKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChISURXKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEhJRFcgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChIRUMzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBOYW1lIChfQURSLCAweDAwMTYwMDA0KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNw ZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChQQ0lDIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg ICAgIH0KCiAgICAgICAgU2NvcGUgKF9TQi5QQzAwKQogICAgICAgIHsKICAgICAgICAgICAg RGV2aWNlIChJU0hEKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURS LCAweDAwMTIwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICB9CiAgICAgICAg fQogICAgfQoKICAgIElmICgoUENIUyAhPSAweDA0KSkKICAgIHsKICAgICAgICBTY29wZSAo X1NCLlBDMDApCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKFNPRDMsIDMsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo SUNCMSwgU3lzdGVtTWVtb3J5LCAoR1BDQiAoKSArIEFyZzApLCAweDg4KQogICAgICAgICAg ICAgICAgSWYgKEFyZzEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg RmllbGQgKElDQjEsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODQpLCAKICAgICAg ICAgICAgICAgICAgICAgICAgUE1FQywgICA4CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBQTUVDID0gMHgwMwogICAgICAgICAgICAgICAgICAgIFBNRUMg fD0gWmVybwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMSAm JiBBcmcyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBGaWVsZCAo SUNCMSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIEJBUjAsICAgNjQKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIEJBUjAgPSBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIERldmljZSAoSTJDMCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKChJTTAwID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNw ZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBDSUQgKEFyZzAsIEFyZzEsIEFyZzIs IEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BT MywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNPRDMgKElDMDAsIE9uZSwg T25lKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwMDE1MDAwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChJMkMxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoKElNMDEgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3Bl Y2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwg QXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMz LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU09EMyAoSUMwMSwgT25lLCBP bmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAwMTUwMDAxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBEZXZpY2UgKEkyQzIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IElmICgoSU0wMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVj aWZpYyBNZXRob2QKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmIChQQ0lDIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBBcmcxLCBBcmcyLCBB cmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTT0QzIChJQzAyLCBPbmUsIE9u ZSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDAxNTAwMDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoSTJDMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKChJTTAzID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNp ZmljIE1ldGhvZAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBDSUQgKEFyZzAsIEFyZzEsIEFyZzIsIEFy ZzMpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNPRDMgKElDMDMsIE9uZSwgT25l KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwMDE1MDAwMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgRGV2aWNlIChJMkM0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ ZiAoKElNMDQgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lm aWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJn MykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU09EMyAoSUMwNCwgT25lLCBPbmUp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9Q UzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf QURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDAwMTkwMDAwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg ICAgICAgICBEZXZpY2UgKEkyQzUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm ICgoSU0wNSA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZp YyBNZXRob2QKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmIChQQ0lDIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBBcmcxLCBBcmcyLCBBcmcz KSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTT0QzIChJQzA1LCBPbmUsIE9uZSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BT MCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9B RFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDAxOTAwMDEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIFNjb3BlIChcX1NCLlBDMDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IERldmljZSAoSTNDMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChJM0NSLCBQYWNrYWdlICgweDM4KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgMHhEMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAy MDAwMDIsIAogICAgICAgICAgICAgICAgICAgICAgICAweEQ0LCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMTAxMDQwNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIxNCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGQTAwRkEsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDAyMTgsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDA4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjFDLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMEZBMDBGQSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyMCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDA2NDAwNjQsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDAyMjQsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzMjAwM0FDLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMjI4LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgy MDIwMjAyMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyQywgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAwMzAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAy MzAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMjM0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDJCQywgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJDMCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJDOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICAweDAyQ0MsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMkQwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg1MiwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDJENCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MjA0NDIwNDQsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA0RDAsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDAwMjAwMDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHgwNEQ0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAxMDQwNCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDYxNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBG QTAwRkEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA2MTgsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwMDgwMDA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjFD LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZBMDBGQSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDYyMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NDAwNjQs IAogICAgICAgICAgICAgICAgICAgICAgICAweDA2MjQsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDAzMjAwM0FDLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjI4LCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHgyMDIwMjAyMCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDYyQywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzAwMDAsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDA2MzAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDEwMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjM0LCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwOAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE1MDAwNCkgIC8vIF9BRFI6IEFkZHJlc3MKICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNN OiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwg QXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNTkxNTJkZS1iZDkzLTQx NjQtOGE1ZS0yODI4ZmJkOGI5NTkiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRv SW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRiwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSTNDUikgLyogXF9TQl8uUEMwMC5JM0Mw LkkzQ1IgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9TMFcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2Fr ZSBTdGF0ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVz b3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChHUDFFICE9IFplcm8pKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoR1BSVyAoMHg4RSwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoR1BSVyAoMHg2RCwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFNQ STApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoU00wMCA9PSBPbmUpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQQ0lDIChBcmcwKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQQ0lEIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczKSkKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBTT0QzIChTQzAwLCBPbmUsIE9uZSkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxRTAwMDIpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU1BJ MSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChTTTAxID09IE9uZSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBT ZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFBDSUMgKEFyZzApKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBDSUQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFNPRDMgKFNDMDEsIE9uZSwgT25lKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMDFFMDAwMykKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChTUEky KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFNNMDIgPT0gT25lKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNl cmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g LgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgU09EMyAoU0MwMiwgT25lLCBPbmUpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwMTIwMDA2KQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFVEU00s IDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJn MCA9PSBUb1VVSUQgKCJmN2FmODM0Ny1hOTY2LTQ5ZmUtOTAyMi03YTlkZWVlYmRiMjciKSAv KiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChVRE1BLCAy LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTd2l0Y2ggKFRv SW50ZWdlciAoQXJnMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg Q2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyICgweDA4KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2Ug KE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoVG9JbnRlZ2VyIChBcmcxKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDA4KQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChfU0IpCiAg ICAgICAgewogICAgICAgICAgICBEZXZpY2UgKFVSU0MpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSAvKiBQTlAgTW90aGVy Ym9hcmQgUmVzb3VyY2VzICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg ICAgIE5hbWUgKF9TVEEsIDB4MDMpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAg IE5hbWUgKF9VSUQsIDB4MDUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAg IE1ldGhvZCAoVUFSQiwgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKChBcmcwID09IDB4MDIpIHx8IChBcmcwID09IDB4MDMpKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlv blJlZ2lvbiAoVUFDRiwgU3lzdGVtTWVtb3J5LCBBcmcxLCAweDIwKQogICAgICAgICAgICAg ICAgICAgICAgICBGaWVsZCAoVUFDRiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4MTApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBUjAsICAgNjQsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFSMSwgICA2NAogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUYxLCBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDBGRjgsICAgICAgICAgLy8g QWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTMxKQog ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBOYW1l IChCVUYyLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8v IEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEw MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBfWTMyKQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYxLCBcX1NCLlVSU0MuVUFSQi5fWTMx Ll9CQVMsIEFEUjEpICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMiwgXF9TQi5VUlNDLlVBUkIuX1kzMi5fQkFT LCBBRFIyKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMSA9IChCQVIwICYgMHhGRkZGRkZGRkZGRkZGMDAwKQogICAgICAgICAgICAgICAg ICAgICAgICBBRFIxID0gKExvY2FsMSArIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAg IEFEUjIgPSAoQkFSMSAmIDB4RkZGRkZGRkZGRkZGRjAwMCkKICAgICAgICAgICAgICAgICAg ICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQlVGMSwgQlVGMiwgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAyKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzksIDB4MDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB5LgogICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoVVJE QSwgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwNikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw NikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJv CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFVSU0Es IDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9 IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDwgU2l6ZU9mICheVVJTQy5V UkRBKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g RGVyZWZPZiAoRGVyZWZPZiAoXlVSU0MuVVJEQSBbTG9jYWwwXSkgW1plcm9dKQogICAgICAg ICAgICAgICAgICAgIElmICgoTG9jYWwxID09IEFyZzApKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoXlVSU0MuVVJEQSBbTG9jYWww XSkgW09uZV0gPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSBP bmUKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAg ICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IFNpemVPZiAoXlVSU0MuVVJEQSkpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IERlcmVmT2Yg KERlcmVmT2YgKF5VUlNDLlVSREEgW0xvY2FsMF0pIFtaZXJvXSkKICAgICAgICAgICAgICAg ICAgICBJZiAoKExvY2FsMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKF5VUlNDLlVSREEgW0xvY2FsMF0pIFtaZXJv XSA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoXlVSU0MuVVJEQSBb TG9jYWwwXSkgW09uZV0gPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2Fs MCArPSBPbmUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChVUlJTLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8IFNp emVPZiAoXlVSU0MuVVJEQSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIExvY2FsMSA9IERlcmVmT2YgKERlcmVmT2YgKF5VUlNDLlVSREEgW0xvY2FsMF0pIFta ZXJvXSkKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSA9PSBBcmcwKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRGVyZWZP ZiAoRGVyZWZPZiAoXlVSU0MuVVJEQSBbTG9jYWwwXSkgW09uZV0pKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IE9uZQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwOCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKFVBUkgsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVUFDRiwgU3lzdGVtTWVtb3J5LCBBcmcwLCAweDE4 KQogICAgICAgICAgICAgICAgRmllbGQgKFVBQ0YsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTAp LCAKICAgICAgICAgICAgICAgICAgICBCQVIwLCAgIDY0CiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0 ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRy ZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOCwgICAgICAgICAv LyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICBfWTMzKQogICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKElCVUYsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQg KFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgLCwgX1kzNCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw MTQsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuVUFSSC5fWTMzLl9CQVMsIEFE UjApICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKElCVUYsIFxfU0IuVUFSSC5fWTM0Ll9JTlQsIElSUU4pICAvLyBfSU5UOiBJbnRl cnJ1cHRzCiAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQkFSMCAmIDB4RkZGRkZGRkZGRkZG RjAwMCkKICAgICAgICAgICAgICAgIEFEUjAgPSBMb2NhbDAKICAgICAgICAgICAgICAgIElS UU4gPSBBcmcxCiAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChCVUYw LCBJQlVGLCBMb2NhbDEpCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChVQVBHLCAzLCBTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzEgIT0gMHgwMikpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBcmcxKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVUFDRiwgU3lzdGVt TWVtb3J5LCBBcmcyLCAweDE4KQogICAgICAgICAgICAgICAgRmllbGQgKFVBQ0YsIEFueUFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MTApLCAKICAgICAgICAgICAgICAgICAgICBCQVIwLCAgIDY0CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChVQUIw LCBTeXN0ZW1NZW1vcnksIChCQVIwICYgMHhGRkZGRkZGRkZGRkZGMDAwKSwgMHgxMCkKICAg ICAgICAgICAgICAgIEZpZWxkIChVQUIwLCBCeXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBETEwsICAgIDgsIAogICAgICAg ICAgICAgICAgICAgIERMSCwgICAgOCwgCiAgICAgICAgICAgICAgICAgICAgRkNSLCAgICA4 LCAKICAgICAgICAgICAgICAgICAgICBMQ1IsICAgIDgKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBMb2NhbDAgPSBMQ1IgLyogXF9TQl8uVUFQRy5MQ1JfICovCiAgICAg ICAgICAgICAgICBJZiAoKExvY2FsMCAmJiAweDdGKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoVUhJRCwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKChBcmcwID09IDB4MDMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMTA1RDA0MSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MDIwQ0QwNDEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoVVBTMywgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgTmFtZSAoUkVHUywgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IE9uZSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChVQUNG LCBTeXN0ZW1NZW1vcnksIEFyZzEsIDB4ODgpCiAgICAgICAgICAgICAgICAgICAgRmllbGQg KFVBQ0YsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMCksIAogICAgICAgICAgICAg ICAgICAgICAgICBCQVIwLCAgIDY0CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBGaWVsZCAoVUFDRiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4 NCksIAogICAgICAgICAgICAgICAgICAgICAgICBQTUVDLCAgIDgKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVUFCMCwgU3lz dGVtTWVtb3J5LCAoQkFSMCAmIDB4RkZGRkZGRkZGRkZGRjAwMCksIDB4ODUpCiAgICAgICAg ICAgICAgICAgICAgRmllbGQgKFVBQjAsIEJ5dGVBY2MsIExvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRExMLCAgICA4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgRExILCAgICA4LCAKICAgICAgICAgICAgICAgICAg ICAgICAgRkNSLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgTENSLCAgICA4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgTUNSLCAgICA4LCAKICAgICAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDgxKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBQUlIsICAg OAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFVB QjAsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFBDTEssICAgMzIKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIExvY2FsMSA9IExDUiAvKiBcX1NCXy5VUFMzLkxDUl8gKi8KICAgICAgICAg ICAgICAgICAgICBMQ1IgfD0gMHg4MAogICAgICAgICAgICAgICAgICAgIFJFR1MgW1plcm9d ID0gRExMIC8qIFxfU0JfLlVQUzMuRExMXyAqLwogICAgICAgICAgICAgICAgICAgIFJFR1Mg W09uZV0gPSBETEggLyogXF9TQl8uVVBTMy5ETEhfICovCiAgICAgICAgICAgICAgICAgICAg TENSID0gTG9jYWwxCiAgICAgICAgICAgICAgICAgICAgUkVHUyBbMHgwMl0gPSBGQ1IgLyog XF9TQl8uVVBTMy5GQ1JfICovCiAgICAgICAgICAgICAgICAgICAgUkVHUyBbMHgwM10gPSBM b2NhbDEKICAgICAgICAgICAgICAgICAgICBSRUdTIFsweDA0XSA9IE1DUiAvKiBcX1NCXy5V UFMzLk1DUl8gKi8KICAgICAgICAgICAgICAgICAgICBSRUdTIFsweDA1XSA9IFBDTEsgLyog XF9TQl8uVVBTMy5QQ0xLICovCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoRGVyZWZPZiAo UkVHUyBbMHgwNV0pICE9IFplcm8pICYmICgKICAgICAgICAgICAgICAgICAgICAgICAgRGVy ZWZPZiAoUkVHUyBbMHgwNV0pICE9IDB4RkZGRkZGRkYpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFVSU0EgKChCQVIwICYgMHhGRkZGRkZGRkZG RkZGMDAwKSwgUkVHUykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIFBQUlIgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgUFBSUiB8PSBaZXJvCiAgICAg ICAgICAgICAgICAgICAgUE1FQyA9IDB4MDMKICAgICAgICAgICAgICAgICAgICBQTUVDIHw9 IFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChVUFMwLCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoKEFyZzAgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKFVBQ0YsIFN5c3RlbU1lbW9yeSwgQXJnMSwgMHg4OCkK ICAgICAgICAgICAgICAgICAgICBGaWVsZCAoVUFDRiwgQW55QWNjLCBOb0xvY2ssIFByZXNl cnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDEwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJBUjAsICAgNjQKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEZpZWxkIChVQUNGLCBCeXRl QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAgICAgICAgICAg IFBNRUMsICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg T3BlcmF0aW9uUmVnaW9uIChVQUIwLCBTeXN0ZW1NZW1vcnksIChCQVIwICYgMHhGRkZGRkZG RkZGRkZGMDAwKSwgMHg4NSkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoVUFCMCwgQnl0 ZUFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBETEwsICAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBETEgs ICAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBGQ1IsICAgIDgsIAogICAgICAgICAg ICAgICAgICAgICAgICBMQ1IsICAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBNQ1Is ICAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODEpLCAKICAgICAg ICAgICAgICAgICAgICAgICAgUFBSUiwgICA4CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBGaWVsZCAoVUFCMCwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4ODApLCAKICAgICAgICAgICAgICAgICAgICAgICAgUENMSywgICAzMgogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUE1FQyA9IFplcm8KICAgICAg ICAgICAgICAgICAgICBQTUVDIHw9IFplcm8KICAgICAgICAgICAgICAgICAgICBQUFJSID0g MHgwNwogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFVSUlMgKChCQVIwICYgMHhGRkZG RkZGRkZGRkZGMDAwKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKChEZXJlZk9mIChMb2Nh bDAgWzB4MDVdKSAhPSBaZXJvKSAmJiAoCiAgICAgICAgICAgICAgICAgICAgICAgIERlcmVm T2YgKExvY2FsMCBbMHgwNV0pICE9IDB4RkZGRkZGRkYpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExDUiB8PSAweDgwCiAgICAgICAgICAgICAg ICAgICAgICAgIERMTCA9IERlcmVmT2YgKExvY2FsMCBbWmVyb10pCiAgICAgICAgICAgICAg ICAgICAgICAgIERMSCA9IERlcmVmT2YgKExvY2FsMCBbT25lXSkKICAgICAgICAgICAgICAg ICAgICAgICAgTENSID0gRGVyZWZPZiAoTG9jYWwwIFsweDAzXSkKICAgICAgICAgICAgICAg ICAgICAgICAgRkNSID0gRGVyZWZPZiAoTG9jYWwwIFsweDAyXSkKICAgICAgICAgICAgICAg ICAgICAgICAgTUNSID0gRGVyZWZPZiAoTG9jYWwwIFsweDA0XSkKICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwyID0gKERlcmVmT2YgKExvY2FsMCBbMHgwNV0pIHwgMHg4MDAwMDAw MSkKICAgICAgICAgICAgICAgICAgICAgICAgUENMSyA9IExvY2FsMgogICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDIgPSAoRGVyZWZPZiAoTG9jYWwwIFsweDA1XSkgfCBPbmUpCiAg ICAgICAgICAgICAgICAgICAgICAgIFBDTEsgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv ZCAoVVBTQywgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg T3BlcmF0aW9uUmVnaW9uIChVQUNGLCBTeXN0ZW1NZW1vcnksIChBcmcwICsgMHg4NCksIDB4 MDQpCiAgICAgICAgICAgICAgICBGaWVsZCAoVUFDRiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQTUVDLCAgIDgK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKChQTUVDICYgMHgw MykpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChfU0IuVVJTQykK ICAgICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8v IF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgTG9jYWwwID0gVUFSQiAoVU0wMCwgVUMwMCkKICAgICAgICAgICAgICAgIENv bmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgVUFSQiAoVU0wMSwgVUMwMSksIExvY2Fs MSkKICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMQogICAgICAgICAgICAgICAgQ29u Y2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBVQVJCIChVTTAyLCBVQzAyKSwgTG9jYWwx KQogICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwxCiAgICAgICAgICAgICAgICBSZXR1 cm4gKExvY2FsMCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKF9T Qi5QQzAwKQogICAgICAgIHsKICAgICAgICAgICAgRGV2aWNlIChVQTAwKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBf RFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBBcmcxLCBBcmcyLCBB cmczKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChV RFNNIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoVURNQSAoQXJnMiwgVUQwMCkpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwMUUwMDAwKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBTT0QzIChVQzAwLCBPbmUsIE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dl ciBTdGF0ZSAwCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChfU0IpCiAgICAgICAgewogICAgICAg ICAgICBJZiAoKChVTTAwID09IDB4MDIpIHx8IChVTTAwID09IDB4MDMpKSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgRGV2aWNlIChVQUgwKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJTZXJpYWxJb1VhcnQwIikgIC8vIF9E RE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsICJT ZXJpYWxJb1VhcnQwIikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0hJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJlIElE CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFVISUQgKFVNMDApKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBS ZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChVQVJIIChVQzAwLCBVSTAwKSkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChVTTAwID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFVQMDAgPT0gMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVVAwMCA9IFVBUEcgKFVNMDAsIFVQMDAsIFVDMDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBG KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDgpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBJZiAoKFVNMDAgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9QU0MsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFND OiBQb3dlciBTdGF0ZSBDdXJyZW50CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBTQyAoVUMwMCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBTMyAoVVAwMCwg VUMwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3Rh dGUgMAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBVUFMwIChVUDAwLCBVQzAwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg ICAgfQoKICAgICAgICBTY29wZSAoX1NCLlBDMDApCiAgICAgICAgewogICAgICAgICAgICBE ZXZpY2UgKFVBMDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RT TSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBD SUQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKFVEU00gKEFyZzApKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVRE1BIChBcmcyLCBVRDAxKSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVm ZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJl c3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAx RTAwMDEpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMz LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFNPRDMgKFVDMDEsIE9uZSwgT25lKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU2NvcGUg KF9TQikKICAgICAgICB7CiAgICAgICAgICAgIElmICgoKFVNMDEgPT0gMHgwMikgfHwgKFVN MDEgPT0gMHgwMykpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXZpY2UgKFVB SDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RETiwg IlNlcmlhbElvVWFydDEiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX1VJRCwgIlNlcmlhbElvVWFydDEiKSAgLy8gX1VJRDogVW5pcXVl IElECiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfSElELCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoVUhJRCAoVU0wMSkpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVBUkggKFVDMDEsIFVJ MDEpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFVNMDEgPT0gMHgwMykp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoVVAwMSA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUDAxID0gVUFQRyAoVU0wMSwgVVAwMSwg VUMwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOCkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVU0wMSA9PSAweDAzKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTQywgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9QU0M6IFBvd2VyIFN0YXRlIEN1cnJlbnQKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChV UFNDIChVQzAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93 ZXIgU3RhdGUgMwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBVUFMzIChVUDAxLCBVQzAxKQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQUzAgKFVQMDEsIFVDMDEpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChfU0IuUEMwMCkK ICAgICAgICB7CiAgICAgICAgICAgIERldmljZSAoVUEwMikKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2 aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmIChQQ0lDIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoVURTTSAoQXJn MCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFVETUEgKEFyZzIsIFVEMDIpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMDE5MDAwMikKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQ b3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU09E MyAoVUMwMiwgT25lLCBPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUg MAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg ICAgICAgfQoKICAgICAgICBTY29wZSAoX1NCKQogICAgICAgIHsKICAgICAgICAgICAgSWYg KCgoVU0wMiA9PSAweDAyKSB8fCAoVU0wMiA9PSAweDAzKSkpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIERldmljZSAoVUFIMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfREROLCAiU2VyaWFsSW9VYXJ0MiIpICAvLyBfREROOiBET1Mg RGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAiU2VyaWFsSW9V YXJ0MiIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9ISUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVSElEIChV TTAyKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2Ug U2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoVUFSSCAoVUMwMiwgVUkwMikpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf U1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoVU0wMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChVUDAyID09IDB4MDIpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQ MDIgPSBVQVBHIChVTTAyLCBVUDAyLCBVQzAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDA4KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChV TTAyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfUFNDLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTQzogUG93ZXIg U3RhdGUgQ3VycmVudAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFVQU0MgKFVDMDIpKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQUzMgKFVQMDIsIFVDMDIpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBT MCAoVVAwMiwgVUMwMikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAg ICAgICAgU2NvcGUgKF9TQi5QQzAwKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChDUkZQ ID09IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQ1dGQyA9PSBP bmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERldmljZSAoQ05W VykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDAxNDAwMDMpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAg ICAgICAgIE5hbWUgKFBVMkMsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIFBVMkMg PSBcUFUyQwogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEJBU0UsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMCA9IFBDMk0gKF9BRFIsIFplcm8pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAg Ly8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiQ05WVyBDdHJsciBEMCIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTMDIzICgweDAyLCBPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2Vy aWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNOVlcgQ3RybHIgRDMi KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gUENSUiAoUENOViwgMHg4 MTAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwwICYgMHg3Rikg PT0gMHg0QykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUzAyMyAoMHgwMiwgWmVybykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93 ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEdQMUUpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoR1AxRSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg4NSwg MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo R1BSVyAoMHg2RCwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKEFERUwsIFplcm8pCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQVJMTSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREVMID0gMHgzMgogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURFTCA9IDB4MEEKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUlNU VCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUFJSUywgWmVybykKICAg ICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChDV0FSLCBTeXN0ZW1NZW1v cnksIEJBU0UgKCksIDB4MDEwMCkKICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQgKENX QVIsIFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZESUQsICAgMzIsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQ0KSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLCAgIDI4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdGTFIs ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDgpLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMTUsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgV0lGUiwgICAxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1MwVywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNXLCAz LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTVzogRGV2aWNlIFNsZWVwIFdha2UKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBQb3dlclJlc291cmNlIChXUlNULCAweDA1LCAweDAwMDApCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09O XzogUG93ZXIgT24KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9PRkYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1aXJlIChD Tk1ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2Nh bDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDRkxSICgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBSUlMgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFJTVFQpICYmIChSU1RUID09IE9uZSkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV2lGaSBQcm9kdWN0IFJlc2V0IikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiUElEIG9mIENOVmkgPSAiLCBUb0hleFN0cmluZyAoUENOVikpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gXl5eU0JTQy5QQ1JSIChQQ05W LCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJSZWdpc3RlciBQTERCIFZhbHVlID0gIiwgVG9IZXhTdHJpbmcgKExv Y2FsNSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgo Xl5eU0JTQy5QQ1JSIChQQ05WLCAweDgwKSAmIDB4MDIpID09IFplcm8pKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJBQk9SVF9SRVFVRVNUID0gMCwgcHJldmlv dXMgUExEUiBjb21wbGV0ZWQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoR0JUUiAoKSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQlRSSyAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4QTApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eU0JTQy5QQ1JPIChQQ05WLCAweDgwLCAw eDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiV2lGaSBQTERSIFRpbWVvdXQgd2FpdChtcykgPSAiLCBUb0hleFN0 cmluZyAoQURFTCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNsZWVwIChBREVMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMSA9IF5eXlNCU0MuUENSUiAoUENOViwgMHg4MCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkNO VklfUExEUl9BQk9SVCA9ICIsIFRvSGV4U3RyaW5nIChMb2NhbDEpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKCgoTG9jYWwxICYgMHgwMikg PT0gWmVybykgJiYgKExvY2FsMSAmIDB4MDQpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJXaUZpIFByb2R1Y3QgUmVzZXQgQ29tcGxldGVkIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJSUyA9 IDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChMb2NhbDIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQlRSSyAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4QTApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUFJSUyA9IDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQlRSSyAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQUlJTID0gMHgwMwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIldpRmkgUFJSUyA9ICIsIFBSUlMpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWxlYXNlIChDTk1UKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BSUiwgUGFj a2FnZSAoMHgwMSkgIC8vIF9QUlI6IFBvd2VyIFJlc291cmNlIGZvciBSZXNldAogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXUlNUCiAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoQ0ZMUiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJXaUZpIENv cmUgUmVzZXQsIFdGTFIgPSAiLCBXRkxSKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoV0ZMUiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdJRlIgPSBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAg ICAgICAgU2NvcGUgKF9TQi5QQzAwKQogICAgICAgIHsKICAgICAgICAgICAgRGV2aWNlIChT QVQwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTcw MDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAw LCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJTQVRBMCBDdHJsciBEMCIpCiAgICAgICAg ICAgICAgICAgICAgSWYgKChQQ0hTID09IFBDSFApKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCFTQ0ZEKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU0QwICgweDE0KQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJU0FUID0gWmVybwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiU0FUQTAgQ3Ry bHIgRDMiKQogICAgICAgICAgICAgICAgICAgIElTQVQgPSBPbmUKICAgICAgICAgICAgICAg ICAgICBJZiAoKFBDSFMgPT0gUENIUCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBDU0QzICgweDE0KQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChTVEQzICE9IFpl cm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0RTRCwgUGFja2FnZSAoMHgwMikgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRh CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQz RW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBT ZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQQ0lDIChBcmcwKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJn MCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoKENvbmRSZWZPZiAoU0FUQykgJiYgQ29uZFJlZk9mIChTQVREKSkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoU0FU QyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU0FURCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1MwVywgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIERldmljZSAoUFJUMCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBOYW1lIChfQURSLCAweEZGRkYpICAvLyBfQURSOiBBZGRyZXNzCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTUFBSICYg T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgRGV2aWNlIChQUlQxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMUZGRkYpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTUFBSICYgMHgw MikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIERldmljZSAoUFJUMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChfQURSLCAweDAwMDJGRkZGKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1BQUiAmIDB4MDQp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBEZXZpY2UgKFBSVDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX0FEUiwgMHgwMDAzRkZGRikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNQUFIgJiAweDA4KSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgRGV2aWNlIChQUlQ0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIDB4MDAwNEZGRkYpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTUFBSICYgMHgxMCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IERldmljZSAoUFJUNSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMDVGRkZGKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1BQUiAmIDB4MjApKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBE ZXZpY2UgKFBSVDYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0FEUiwgMHgwMDA2RkZGRikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNQUFIgJiAweDQwKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2 aWNlIChQUlQ3KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDAwN0ZGRkYpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTUFBSICYgMHg4MCkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAg fQoKICAgICAgICBTY29wZSAoX1NCLlBDMDApCiAgICAgICAgewogICAgICAgICAgICBNZXRo b2QgKFRJTlQsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IE5hbWUgKFRJTlIsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBHcGlvSW50IChMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmVB bmRXYWtlLCBQdWxsVXAsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NC LkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoVElO UiwgMHgxNywgSU5UMSkKICAgICAgICAgICAgICAgIElOVDEgPSBHTlVNIChBcmcwKQogICAg ICAgICAgICAgICAgUmV0dXJuIChUSU5SKSAvKiBcX1NCXy5QQzAwLlRJTlQuVElOUiAqLwog ICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFRIQzApCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxMDAwMDApICAvLyBfQURSOiBBZGRy ZXNzCiAgICAgICAgICAgICAgICBOYW1lIChSU1RMLCBaZXJvKQogICAgICAgICAgICAgICAg T3BlcmF0aW9uUmVnaW9uIChUSENSLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDAxMDApCiAgICAg ICAgICAgICAgICBGaWVsZCAoVEhDUiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWRElELCAgIDMyCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKElDUlMsIEJ1ZmZl ciAoMHgwQyl7fSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElDUlMs IFplcm8sIERBRFIpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSUNS UywgMHgwMiwgRFNQRCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKElD UlMsIDB4MEEsIERBRE0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoSVNVQiwgQnVmZmVy ICgweDkxKXt9KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIs IFplcm8sIFNNSFgpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNV QiwgMHgwOCwgU01MWCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJ U1VCLCAweDEwLCBTTVREKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQg KElTVUIsIDB4MTgsIFNNUkQpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVs ZCAoSVNVQiwgMHgyMCwgRk1IWCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZp ZWxkIChJU1VCLCAweDI4LCBGTUxYKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3Jk RmllbGQgKElTVUIsIDB4MzAsIEZNVEQpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdv cmRGaWVsZCAoSVNVQiwgMHgzOCwgRk1SRCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVR V29yZEZpZWxkIChJU1VCLCAweDQwLCBGTVNMKQogICAgICAgICAgICAgICAgICAgIENyZWF0 ZVFXb3JkRmllbGQgKElTVUIsIDB4NDgsIEZQSFgpCiAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlUVdvcmRGaWVsZCAoSVNVQiwgMHg1MCwgRlBMWCkKICAgICAgICAgICAgICAgICAgICBD cmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDU4LCBGUFREKQogICAgICAgICAgICAgICAgICAg IENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4NjAsIEZQUkQpCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHg2OCwgSE1IWCkKICAgICAgICAgICAgICAg ICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDcwLCBITUxYKQogICAgICAgICAgICAg ICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4NzgsIEhNVEQpCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHg4MCwgSE1SRCkKICAgICAgICAg ICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDg4LCBITVNMKQogICAgICAg ICAgICAgICAgICAgIERBRFIgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgRFNQRCA9IFpl cm8KICAgICAgICAgICAgICAgICAgICBEQURNID0gWmVybwogICAgICAgICAgICAgICAgICAg IFNNSFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgU01MWCA9IFplcm8KICAgICAgICAg ICAgICAgICAgICBTTVREID0gWmVybwogICAgICAgICAgICAgICAgICAgIFNNUkQgPSBaZXJv CiAgICAgICAgICAgICAgICAgICAgRk1IWCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBG TUxYID0gWmVybwogICAgICAgICAgICAgICAgICAgIEZNVEQgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgRk1SRCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBGTVNMID0gWmVybwog ICAgICAgICAgICAgICAgICAgIEZQSFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgRlBM WCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBGUFREID0gWmVybwogICAgICAgICAgICAg ICAgICAgIEZQUkQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgSE1IWCA9IFplcm8KICAg ICAgICAgICAgICAgICAgICBITUxYID0gWmVybwogICAgICAgICAgICAgICAgICAgIEhNVEQg PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgSE1SRCA9IFplcm8KICAgICAgICAgICAgICAg ICAgICBITVNMID0gWmVybwogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQQ0lDIChBcmcwKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQQ0lEIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczKSkKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUTUQwID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSBUb1VVSUQgKCI2ZTJhYzQzNi0wZmNmLTQxYWYtYTI2NS1iMzJhMjIw ZGNmYWIiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2Vy IChBcmcyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcxKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0YgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgi VEhDIFRIQ19JTlBVVF9SRVBPUlRfSEVBREVSX0FERFJFU1MiKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb0ludGVnZXIgKFQwNDApKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJUSEMgVEhDX0lOUFVUX1JFUE9SVF9CT0RZX0FERFJFU1MiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb0ludGVnZXIgKFQwNTApKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJUSEMgVEhDX09VVFBVVF9SRVBPUlRfQUREUkVTUyIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRvSW50ZWdlciAoVDA2MCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoIlRIQyBUSENfUkVBRF9PUENPREUiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoQlVGNCwgQnVmZmVyIChPbmUpe30pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBUb0J1ZmZlciAoVDA3MCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRjQgW1plcm9dID0g RGVyZWZPZiAoTG9jYWwwIFtaZXJvXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQlVGNCkgLyogXF9TQl8uUEMwMC5USEMwLl9EU00uQlVGNCAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJUSEMgVEhDX1dSSVRFX09QQ09ERSIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUY1LCBCdWZmZXIgKE9uZSl7fSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFRvQnVmZmVyIChU MDgwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGNSBbWmVy b10gPSBEZXJlZk9mIChMb2NhbDEgW1plcm9dKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChCVUY1KSAvKiBcX1NCXy5QQzAwLlRIQzAuX0RTTS5C VUY1ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoIlRIQyBUSENfRkxBR1MiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb0ludGVnZXIgKFQwOTApKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzAgPT0gVG9VVUlEICgiMzAwZDM1YjctYWMyMC00MTNlLThlOWMtOTJlNGRhZmQw YWZlIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAo QXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDA3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJUSEMgVEhDX0NPTk5FQ1RJT05fU1BFRUQiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChUb0ludGVnZXIgKFQwMzApKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUSEMg VEhDX0xJTUlUX1BBQ0tFVF9TSVpFIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoVG9JbnRlZ2VyIChUMEMwKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDYXNlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19Q RVJGT1JNQU5DRV9MSU1JVEFUSU9OIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoVG9JbnRlZ2VyIChUMEQwKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjg0MDA1NjgyLTViNzEtNDFh NC04ZDY2LTgxMzBmNzg3YTEzOCIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9J bnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJUSEMgVEhDX0FDVElWRV9MVFIiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRvSW50ZWdlciAoVDBBMCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19JRExF X0xUUiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVG9J bnRlZ2VyIChUMEIwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoIjliMWU3N2M0LTUzZGItNDNiZC1hMjc2LWY3Mjg3NjA0ZDFiZCIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJv KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUSEMgVEhDX0RJU1BM QVlfRlJBTUVfU1lOQ19QRVJJT0QiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBU b1VVSUQgKCIzY2RmZjZmNy00MjY3LTQ1NTUtYWQwNS1iMzBhM2Q4OTM4ZGUiKSAvKiBISUQg STJDIERldmljZSAqLykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENhc2UgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUSEMgVEhD X0hJREkyQ19ERVZJQ0VfQUREUkVTUyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKFplcm8pe30pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBJZiAoKFRJTjAgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChfUzBXLCAweDAzKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdh a2UgU3RhdGUKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJp YWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRJ TlQgKFRJTjApKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRNRDAgIT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUSEMgX0lOSSIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFBPIChUMDEwLCBPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTUE1WIChUMDEwLCBaZXJvKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU1BDMCAoVDAxMCwgKDB4NDIwMDAyMDAgfCAofihUMDIwICYgT25lKSAm IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXkNJTkkpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENJTkkgKFQw MTAsIFQwRjApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwg U2VyaWFsaXplZCkgIC8vIF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIF9SU1QiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChSU1RMID09IE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUlNUTCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU0dPViAoVDAxMCwgKFQwMjAgJiBPbmUpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2xlZXAgKFQwRjApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTR09WIChU MDEwLCAofihUMDIwICYgT25lKSAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSU1RMID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBOYW1lIChfRFNELCBQYWNrYWdlICgweDA0KSAgLy8gX0RTRDogRGV2aWNl LVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgVG9VVUlEICgiZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJm NGFhMzAxIikgLyogRGV2aWNlIFByb3BlcnRpZXMgZm9yIF9EU0QgKi8sIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSUNSUywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBU b1VVSUQgKCJkYmI4ZTNlNi01ODg2LTRiYTYtODc5NS0xMzE5ZjUyYTk2NmIiKSAvKiBIaWVy YXJjaGljYWwgRGF0YSBFeHRlbnNpb24gKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSVNVQgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNl IChUSEMxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAw MTAwMDAxKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgTmFtZSAoUlNUTCwg WmVybykKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVEhDUiwgUENJX0NvbmZp ZywgWmVybywgMHgwMTAwKQogICAgICAgICAgICAgICAgRmllbGQgKFRIQ1IsIEJ5dGVBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgVkRJRCwgICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgo VkRJRCAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChJQ1JTLCBCdWZmZXIgKDB4MEMpe30pCiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlV29yZEZpZWxkIChJQ1JTLCBaZXJvLCBEQURSKQogICAgICAgICAgICAgICAgICAg IENyZWF0ZVFXb3JkRmllbGQgKElDUlMsIDB4MDIsIERTUEQpCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQnl0ZUZpZWxkIChJQ1JTLCAweDBBLCBEQURNKQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKElTVUIsIEJ1ZmZlciAoMHg5MSl7fSkKICAgICAgICAgICAgICAgICAgICBD cmVhdGVRV29yZEZpZWxkIChJU1VCLCBaZXJvLCBTTUhYKQogICAgICAgICAgICAgICAgICAg IENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4MDgsIFNNTFgpCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHgxMCwgU01URCkKICAgICAgICAgICAgICAg ICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDE4LCBTTVJEKQogICAgICAgICAgICAg ICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4MjAsIEZNSFgpCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHgyOCwgRk1MWCkKICAgICAgICAg ICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDMwLCBGTVREKQogICAgICAg ICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4MzgsIEZNUkQpCiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHg0MCwgRk1TTCkKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDQ4LCBGUEhYKQog ICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4NTAsIEZQTFgp CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHg1OCwgRlBU RCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDYwLCBG UFJEKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4Njgs IEhNSFgpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHg3 MCwgSE1MWCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAw eDc4LCBITVREKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIs IDB4ODAsIEhNUkQpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNV QiwgMHg4OCwgSE1TTCkKICAgICAgICAgICAgICAgICAgICBEQURSID0gWmVybwogICAgICAg ICAgICAgICAgICAgIERTUEQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgREFETSA9IFpl cm8KICAgICAgICAgICAgICAgICAgICBTTUhYID0gWmVybwogICAgICAgICAgICAgICAgICAg IFNNTFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgU01URCA9IFplcm8KICAgICAgICAg ICAgICAgICAgICBTTVJEID0gWmVybwogICAgICAgICAgICAgICAgICAgIEZNSFggPSBaZXJv CiAgICAgICAgICAgICAgICAgICAgRk1MWCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBG TVREID0gWmVybwogICAgICAgICAgICAgICAgICAgIEZNUkQgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgRk1TTCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBGUEhYID0gWmVybwog ICAgICAgICAgICAgICAgICAgIEZQTFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgRlBU RCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBGUFJEID0gWmVybwogICAgICAgICAgICAg ICAgICAgIEhNSFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgSE1MWCA9IFplcm8KICAg ICAgICAgICAgICAgICAgICBITVREID0gWmVybwogICAgICAgICAgICAgICAgICAgIEhNUkQg PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgSE1TTCA9IFplcm8KICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3Bl Y2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwg QXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoVE1EMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNmUyYWM0MzYt MGZjZi00MWFmLWEyNjUtYjMyYTIyMGRjZmFiIikgLyogVW5rbm93biBVVUlEICovKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICha ZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDdGICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlRIQyBUSENfSU5QVVRfUkVQT1JUX0hFQURFUl9BRERS RVNTIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo VG9JbnRlZ2VyIChUMDQxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19JTlBVVF9SRVBPUlRfQk9EWV9B RERSRVNTIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoVG9JbnRlZ2VyIChUMDUxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAzKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19PVVRQVVRfUkVQT1JUX0FE RFJFU1MiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChUb0ludGVnZXIgKFQwNjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUSEMgVEhDX1JFQURfT1BDT0RFIikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRjQsIEJ1ZmZl ciAoT25lKXt9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gVG9CdWZmZXIgKFQwNzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCVUY0IFtaZXJvXSA9IERlcmVmT2YgKExvY2FsMCBbWmVyb10pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjQpIC8qIFxfU0Jf LlBDMDAuVEhDMS5fRFNNLkJVRjQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA1 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19XUklURV9PUENPREUi KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGNSwg QnVmZmVyIChPbmUpe30pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDEgPSBUb0J1ZmZlciAoVDA4MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJVRjUgW1plcm9dID0gRGVyZWZPZiAoTG9jYWwxIFtaZXJvXSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQlVGNSkgLyog XF9TQl8uUEMwMC5USEMxLl9EU00uQlVGNSAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUSEMgVEhDX0ZMQUdTIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVG9JbnRl Z2VyIChUMDkxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjMwMGQzNWI3LWFj MjAtNDEzZS04ZTljLTkyZTRkYWZkMGFmZSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVy bykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19DT05ORUNUSU9OX1NQRUVEIikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVG9JbnRlZ2Vy IChUMDMxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiVEhDIFRIQ19MSU1JVF9QQUNLRVRfU0laRSIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRvSW50ZWdlciAoVDBD MSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIlRIQyBUSENfUEVSRk9STUFOQ0VfTElNSVRBVElPTiIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRvSW50ZWdlciAoVDBE MSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VV SUQgKCI4NDAwNTY4Mi01YjcxLTQxYTQtOGQ2Ni04MTMwZjc4N2ExMzgiKSAvKiBVbmtub3du IFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVy bykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19BQ1RJ VkVfTFRSIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChU b0ludGVnZXIgKFQwQTEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlRIQyBUSENfSURMRV9MVFIiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFRvSW50ZWdlciAoVDBCMSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1 bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI5YjFlNzdjNC01M2RiLTQzYmQtYTI3Ni1mNzI4 NzYwNGQxYmQiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJn MikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVy IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiVEhDIFRIQ19ESVNQTEFZX0ZSQU1FX1NZTkNfUEVSSU9EIikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE ZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiM2NkZmY2ZjctNDI2Ny00NTU1LWFkMDUt YjMwYTNkODkzOGRlIikgLyogSElEIEkyQyBEZXZpY2UgKi8pKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdl ciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiVEhDIFRIQ19ISURJMkNfREVWSUNFX0FERFJFU1MiKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChaZXJvKXt9KQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUSU4xICE9IFplcm8pKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1MwVywgMHgwMykg IC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChUSU5UIChUSU4xKSkKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChU TUQxICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlh bGl6ZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBREJHICgiVEhDIF9JTkkiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hQ TyAoVDAxMSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BNViAoVDAxMSwg WmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQQzAgKFQwMTEsICgweDQyMDAw MjAwIHwgKH4oVDAyMSAmIE9uZSkgJiBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKF5D SU5JKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDSU5JIChUMDExLCBUMEYxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9SU1QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVz ZXQKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlRIQyBfUlNUIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxl ICgoUlNUTCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDBBKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJTVEwgPSBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNHT1YgKFQwMTEsIChUMDIxICYgT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChUMEYxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU0dPViAoVDAxMSwgKH4oVDAyMSAmIE9uZSkgJiBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUlNUTCA9IFplcm8KICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RTRCwgUGFja2FnZSAo MHgwNCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImRhZmZkODE0 LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIpIC8qIERldmljZSBQcm9wZXJ0aWVzIGZv ciBfRFNEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElDUlMsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZGJiOGUzZTYtNTg4Ni00YmE2LTg3OTUt MTMxOWY1MmE5NjZiIikgLyogSGllcmFyY2hpY2FsIERhdGEgRXh0ZW5zaW9uICovLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElTVUIKICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAwKQogICAgewogICAgICAg IFNjb3BlIChcX1NCLlBDMDApCiAgICAgICAgewogICAgICAgICAgICBJZiAoKFVGMEUgPT0g T25lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGV2aWNlIChQVUYwKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxMjAw MDcpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RETiwg IkludGVsKFIpIFVGUyBDb250cm9sbGVyIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNj b3BlIChfU0IpCiAgICB7CiAgICAgICAgRGV2aWNlIChJQ0xLKQogICAgICAgIHsKICAgICAg ICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpIC8qIFBOUCBNb3RoZXJib2Fy ZCBSZXNvdXJjZXMgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1l IChfVUlELCAiU09DQ0xLIikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBPcGVy YXRpb25SZWdpb24gKENLT1IsIFN5c3RlbU1lbW9yeSwgKFNCUkcgKyAoKElDS1AgPDwgMHgx MCkgKyAweDgwMDApKSwgMHg0MCkKICAgICAgICAgICAgRmllbGQgKENLT1IsIEFueUFjYywg TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENMSzAsICAg OCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgICAgIENM SzEsICAgOCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTgpLCAKICAgICAgICAgICAg ICAgIENMSzIsICAgOCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjQpLCAKICAgICAg ICAgICAgICAgIENMSzMsICAgOCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzApLCAK ICAgICAgICAgICAgICAgIENMSzQsICAgOCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 M0MpLCAKICAgICAgICAgICAgICAgIENMSzUsICAgOAogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKE5DTEssIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwNikKICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChDTEtDLCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMCkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IENMSzAgLyogXF9TQl8uSUNMSy5DTEswICov CiAgICAgICAgICAgICAgICAgICAgICAgIENMSzAgPSAoKExvY2FsMCAmIDB4RkZGRkZGRkZG RkZGRkZGQikgfCAoQXJnMSA8PCAweDAyKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQ0xLMSAvKiBcX1NCXy5JQ0xLLkNMSzEgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgQ0xLMSA9ICgoTG9jYWwwICYgMHhGRkZGRkZGRkZG RkZGRkZCKSB8IChBcmcxIDw8IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQ0xLMiAvKiBcX1NCXy5JQ0xLLkNMSzIgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgQ0xLMiA9ICgoTG9jYWwwICYgMHhGRkZGRkZGRkZG RkZGRkZCKSB8IChBcmcxIDw8IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQ0xLMyAvKiBcX1NCXy5JQ0xLLkNMSzMgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgQ0xLMyA9ICgoTG9jYWwwICYgMHhGRkZGRkZGRkZG RkZGRkZCKSB8IChBcmcxIDw8IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQ0xLNCAvKiBcX1NCXy5JQ0xLLkNMSzQgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgQ0xLNCA9ICgoTG9jYWwwICYgMHhGRkZGRkZGRkZG RkZGRkZCKSB8IChBcmcxIDw8IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDA1KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQ0xLNSAvKiBcX1NCXy5JQ0xLLkNMSzUgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgQ0xLNSA9ICgoTG9jYWwwICYgMHhGRkZGRkZGRkZG RkZGRkZCKSB8IChBcmcxIDw8IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoQ0xLRiwg MiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3dpdGNoIChU b0ludGVnZXIgKEFyZzApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBDTEswIC8qIFxfU0JfLklDTEsuQ0xLMCAqLwogICAgICAgICAgICAg ICAgICAgICAgICBDTEswID0gKChMb2NhbDAgJiAweEZGRkZGRkZGRkZGRkZGRkMpIHwgKEFy ZzEgJiAweDAzKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg Q2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gQ0xLMSAvKiBcX1NCXy5JQ0xLLkNMSzEgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgQ0xLMSA9ICgoTG9jYWwwICYgMHhGRkZGRkZGRkZGRkZGRkZDKSB8IChBcmcx ICYgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENh c2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBDTEsyIC8qIFxfU0JfLklDTEsuQ0xLMiAqLwogICAgICAgICAgICAgICAg ICAgICAgICBDTEsyID0gKChMb2NhbDAgJiAweEZGRkZGRkZGRkZGRkZGRkMpIHwgKEFyZzEg JiAweDAzKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCA9IENMSzMgLyogXF9TQl8uSUNMSy5DTEszICovCiAgICAgICAgICAgICAgICAg ICAgICAgIENMSzMgPSAoKExvY2FsMCAmIDB4RkZGRkZGRkZGRkZGRkZGQykgfCAoQXJnMSAm IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gQ0xLNCAvKiBcX1NCXy5JQ0xLLkNMSzQgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgQ0xLNCA9ICgoTG9jYWwwICYgMHhGRkZGRkZGRkZGRkZGRkZDKSB8IChBcmcxICYg MHgwMykpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MDUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBDTEs1IC8qIFxfU0JfLklDTEsuQ0xLNSAqLwogICAgICAgICAgICAgICAgICAg ICAgICBDTEs1ID0gKChMb2NhbDAgJiAweEZGRkZGRkZGRkZGRkZGRkMpIHwgKEFyZzEgJiAw eDAzKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgw eDAzKQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChQSUQsIDB4NjQpCiAgICAg ICAgICAgIE1ldGhvZCAoQ0xLRCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgXl5QQzAwLlNCU0MuUENSQSAoUElELCAweDgwODAsIH4oT25lIDw8 IEFyZzApKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKENMS0UsIDEsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF5eUEMwMC5TQlND LlBDUk8gKFBJRCwgMHg4MDgwLCAoT25lIDw8IEFyZzApKQogICAgICAgICAgICB9CiAgICAg ICAgfQoKICAgICAgICBEZXZpY2UgKEVDTEspCiAgICAgICAgewogICAgICAgICAgICBOYW1l IChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJkIFJlc291cmNl cyAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQsICJJ T0VDTEsiKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5h bWUgKFBJRCwgMHg2NCkKICAgICAgICAgICAgTWV0aG9kIChDTEtELCAxLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBeXlBDMDAuU0JJRS5QQ1JBIChQ SUQsIDB4ODA4MCwgfihPbmUgPDwgQXJnMCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoQ0xLRSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgXl5QQzAwLlNCSUUuUENSTyAoUElELCAweDgwODAsIChPbmUgPDwgQXJnMCkp CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFwpCiAgICB7CiAg ICAgICAgTWV0aG9kIChTUENPLCAyLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg ICAgQURCRyAoIkNhbGxpbmcgU1BDTyBtZXRob2QgdG8gY29uZmlndXJlIFBDSWUgQ2xrUmVx IE92ZXJyaWRlIikKICAgICAgICAgICAgSWYgKChQQ0hTID09IDB4MDQpKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPiAweDAzKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuRUNMSy5DTEtFICgoQXJn MCAtIDB4MDQpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBcX1NC LklDTEsuQ0xLRSAoQXJnMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcwID4gMHgwMykpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgXF9TQi5FQ0xLLkNMS0QgKChBcmcwIC0gMHgw NCkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgXF9TQi5JQ0xLLkNMS0QgKEFyZzApCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9 PSBPbmUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPiAweDA1 KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBcX1NCLkVDTEsuQ0xL RSAoKEFyZzAgLSAweDA2KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBcX1NCLklDTEsuQ0xL RSAoQXJnMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBF bHNlSWYgKChBcmcwID4gMHgwNSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFxf U0IuRUNMSy5DTEtEICgoQXJnMCAtIDB4MDYpKQogICAgICAgICAgICB9CiAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9TQi5JQ0xLLkNMS0QgKEFy ZzApCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoSEJDTSwgMiwg U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0Ip CiAgICB7CiAgICAgICAgRGV2aWNlIChHUEkwKQogICAgICAgIHsKICAgICAgICAgICAgTWV0 aG9kIChfSElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChHUEhEID09IE9uZSkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiUE5QMEMwMiIpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChQQ0hTID09IDB4MDQpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoIklOVEMxMDgyIikK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFSTE0gPT0gT25l KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJTlRD MTA1RSIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiSU5UQzEwODMiKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChMSU5LLCAi XFxfU0IuR1BJMCIpCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoUkJQUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25z dW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCAsLCBfWTM1KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwRSwKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdy aXRlLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgIF9ZMzYpCiAgICAg ICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAg ICAgICAgICAgICAgICAgICAweDAwMDEwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgICAgIF9ZMzcpCiAgICAgICAgICAgICAgICAgICAgTWVt b3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDEwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgICAgIF9ZMzgpCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoUkJQUywgXF9TQi5HUEkwLl9DUlMuX1kzNS5fSU5ULCBJTlRIKSAgLy8g X0lOVDogSW50ZXJydXB0cwogICAgICAgICAgICAgICAgSU5USCA9IFNHSVIgLyogXFNHSVIg Ki8KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCUFMsIFxfU0IuR1BJMC5f Q1JTLl9ZMzYuX0JBUywgQ01IMCkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAg ICAgICAgQ01IMCA9IChTQlJHICsgMHgwMEQxMDAwMCkKICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKFJCUFMsIFxfU0IuR1BJMC5fQ1JTLl9ZMzcuX0JBUywgQ01IMSkgIC8v IF9CQVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQ01IMSA9IChTQlJHICsgMHgw MEQyMDAwMCkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCUFMsIFxfU0Iu R1BJMC5fQ1JTLl9ZMzguX0JBUywgQ01IMykgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAg ICAgICAgICAgICAgQ01IMyA9IChTQlJHICsgMHgwMEQzMDAwMCkKICAgICAgICAgICAgICAg IElmICgoUENIUyAhPSAweDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChSQkZTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMCwgICAg ICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1kz OSkKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRy ZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDAsICAgICAg ICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ZM0Ep CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChSQkZTLCBcX1NCLkdQSTAuX0NSUy5fWTM5Ll9CQVMsIENNSDQpICAvLyBfQkFT OiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBDTUg0ID0gKFNCUkcgKyAweDAw RDQwMDAwKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCRlMsIFxf U0IuR1BJMC5fQ1JTLl9ZM0EuX0JBUywgQ01INSkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwog ICAgICAgICAgICAgICAgICAgIENNSDUgPSAoU0JSRyArIDB4MDBENTAwMDApCiAgICAgICAg ICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoUkJQUywgUkJGUywgTG9jYWww KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIFJldHVybiAoUkJQUykgLyogXF9TQl8uR1BJMC5fQ1JTLlJC UFMgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmICgoR1BIRCA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwOCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2Nv cGUgKF9TQikKICAgIHsKICAgICAgICBOYW1lIChHUENNLCBQYWNrYWdlICgweDA1KQogICAg ICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMEQxMDAwMCwgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDA1LCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHgwNjAwLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHgwMTQwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhCMCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDIzMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExMCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDExNCwgCiAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDE4LCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwNjUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQ0LCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHhCNCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDIzNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDExQywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAsIAog ICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDA3RDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxNDgsIAogICAgICAgICAg ICAgICAgICAgICAgICAweEMwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjM4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTIwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMTI0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMEQyMDAwMCwgCiAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAweDE5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjAwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMTQwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhCMCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzMCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDExMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExNCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4NjAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDE5 LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzkwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMTQ0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhDMCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDIzNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEx OCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExQywgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA0CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDBE MzAwMDAsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA5KQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDYwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4QjAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAy MzAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxMTAsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDAxMTQsIAogICAgICAgICAgICAgICAgICAgICAgICAweEEwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwNQogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDA5KQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgMHgxQSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDdBMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0NCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4QzAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyMzQsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDAxMTgsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDAxMUMsIAogICAgICAgICAgICAgICAgICAgICAgICAweEMwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwNgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDA5KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk0MCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDE0OCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4RDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyMzgsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDAxMjAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxMjQsIAog ICAgICAgICAgICAgICAgICAgICAgICAweEUwLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHgwNwogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDA5KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwRSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEEzMCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDE0QywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RDgsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDAyM0MsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDAxMjgsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxMkMsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDAxMDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA4CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LCAK CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDBENDAwMDAsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA5KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDYwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0 MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4QjAsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDAyMzAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxMTAsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDAxMTQsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAx MjAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA5CiAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDBDLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwNjgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQ0LCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHhCNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDIzNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDExQywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MEEKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMEQ1MDAwMCwgCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAweDE5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjAwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTQwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHhCMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIzMCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDExMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExNCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MEIKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MTksIAogICAgICAgICAgICAgICAgICAgICAgICAweDA3OTAsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDAxNDQsIAogICAgICAgICAgICAgICAgICAgICAgICAweEMw LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjM0LCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMTE4LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFDLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMTgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgw QwogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDA5KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg MHgyMywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkyMCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDE0OCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RDAsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDAyMzgsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDAxMjAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxMjQsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDAxQTAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDBECiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg ICAgfSkKICAgICAgICBOYW1lIChHUENTLCBQYWNrYWdlICgweDAzKQogICAgICAgIHsKICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHgwMEQxMDAwMCwgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwNjAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTEwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHhCMCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDIyMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAsIAogICAgICAgICAgICAg ICAgICAgICAgICAweEY0LCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDA3QzAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxMTQsIAogICAgICAgICAgICAg ICAgICAgICAgICAweEMwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI0LCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHhGOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkMsIAogICAgICAgICAgICAgICAgICAgICAgICAweDIwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAweDFCLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwOEUwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMTE4LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhD QywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIyOCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDEwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwNCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4NDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAy CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4MDBEMjAwMDAsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA5KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDYwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDExMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4QjAsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDAyMjAsIAogICAgICAgICAgICAgICAgICAgICAgICAweEYwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHhGNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NjAs IAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwNzQwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE0LCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHhCQywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIy NCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RjgsIAogICAgICAgICAgICAgICAgICAg ICAgICAweEZDLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDQKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MTgsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA3NjAs IAogICAgICAgICAgICAgICAgICAgICAgICAweDAxMTgsIAogICAgICAgICAgICAgICAgICAg ICAgICAweEMwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjI4LCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMTAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTA0 LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhBMCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHgwMEQzMDAwMCwgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDEw LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjAwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMTEwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhCMCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDIyMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAs IAogICAgICAgICAgICAgICAgICAgICAgICAweEY0LCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHhDMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYKICAgICAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwOSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDA3MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxMTQs IAogICAgICAgICAgICAgICAgICAgICAgICAweEI4LCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMjI0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkMsIAogICAgICAgICAgICAgICAgICAgICAgICAweEUwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHgwNwogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICB9CgogICAgU2NvcGUg KF9TQikKICAgIHsKICAgICAgICBNZXRob2QgKEdEU0MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgewogICAgICAgICAgICBJZiAoKFBDSFMgPT0gMHgwNCkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFJldHVybiAoR1BDUykgLyogXF9TQl8uR1BDUyAqLwogICAgICAg ICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg UmV0dXJuIChHUENNKSAvKiBcX1NCXy5HUENNICovCiAgICAgICAgICAgIH0KICAgICAgICB9 CgogICAgICAgIE1ldGhvZCAoR01YRywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIElmICgoUENIUyA9PSAweDA0KSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgUmV0dXJuICgweDA4KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDBFKQogICAgICAgICAgICB9 CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEdDTVAsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBHRFNDICgpCiAgICAgICAgICAgIFJldHVy biAoRGVyZWZPZiAoRGVyZWZPZiAoTG9jYWwwIFtBcmcwXSkgW1plcm9dKSkKICAgICAgICB9 CgogICAgICAgIE1ldGhvZCAoR0lORiwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIExvY2FsMCA9IEdEU0MgKCkKICAgICAgICAgICAgUmV0dXJuIChEZXJlZk9m IChEZXJlZk9mIChEZXJlZk9mIChEZXJlZk9mIChMb2NhbDAgW0FyZzBdKSBbCiAgICAgICAg ICAgICAgICBPbmVdKSBbQXJnMV0pIFtBcmcyXSkpCiAgICAgICAgfQoKICAgICAgICBNZXRo b2QgKEdDT00sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAg PSAoKEFyZzAgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoR0dSUCwgMSwgU2VyaWFsaXplZCkKICAgICAg ICB7CiAgICAgICAgICAgIExvY2FsMCA9ICgoQXJnMCA+PiAweDA3KSAmIDB4MDcpCiAgICAg ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChHTk1C LCAxLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuICgoQXJnMCAm IDB4N0YpKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChHQURSLCAyLCBOb3RTZXJpYWxp emVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwyID0gR0dSUCAoQXJnMCkKICAgICAg ICAgICAgTG9jYWwzID0gR0NPTSAoQXJnMCkKICAgICAgICAgICAgTG9jYWwwID0gKEdDTVAg KExvY2FsMykgKyBTQlJHKQogICAgICAgICAgICBMb2NhbDEgPSBHSU5GIChMb2NhbDMsIExv Y2FsMiwgQXJnMSkKICAgICAgICAgICAgUmV0dXJuICgoTG9jYWwwICsgTG9jYWwxKSkKICAg ICAgICB9CgogICAgICAgIE1ldGhvZCAoR05VTSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAg ICB7CiAgICAgICAgICAgIExvY2FsMCA9IEdOTUIgKEFyZzApCiAgICAgICAgICAgIExvY2Fs MSA9IEdHUlAgKEFyZzApCiAgICAgICAgICAgIExvY2FsMiA9IEdDT00gKEFyZzApCiAgICAg ICAgICAgIFJldHVybiAoKEdJTkYgKExvY2FsMiwgTG9jYWwxLCAweDA3KSArIExvY2FsMCkp CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEdHR1AsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBHR1JQIChBcmcwKQogICAgICAgICAgICBM b2NhbDEgPSBHQ09NIChBcmcwKQogICAgICAgICAgICBSZXR1cm4gKEdJTkYgKExvY2FsMSwg TG9jYWwwLCAweDA4KSkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoSU5VTSwgMSwgTm90 U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoKEdQQzEgKEFyZzAp ICYgMHg3RikpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEdHUEUsIDEsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBHR0dQIChBcmcwKQogICAg ICAgICAgICBMb2NhbDEgPSBHTk1CIChBcmcwKQogICAgICAgICAgICBMb2NhbDIgPSAoTG9j YWwxID4+IDB4MDUpCiAgICAgICAgICAgIElmICghKCgoKEdFSTAgPT0gTG9jYWwwKSAmJiAo R0VEMCA9PSBMb2NhbDIpKSB8ICgKICAgICAgICAgICAgICAgIChHRUkxID09IExvY2FsMCkg JiYgKEdFRDEgPT0gTG9jYWwyKSkpIHwgKChHRUkyID09IExvY2FsMCkgJiYgKEdFRDIgPT0g CiAgICAgICAgICAgICAgICBMb2NhbDIpKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIFJldHVybiAoMHg2RikKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKEdFSTAgPT0gTG9jYWwwKSAmJiAoR0VE MCA9PSBMb2NhbDIpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBM b2NhbDMgPSBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlSWYg KCgoR0VJMSA9PSBMb2NhbDApICYmIChHRUQxID09IExvY2FsMikpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IE9uZQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgRWxzZUlmICgoKEdFSTIgPT0gTG9jYWwwKSAmJiAoR0VEMiA9 PSBMb2NhbDIpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2Nh bDMgPSAweDAyCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQnJlYWtQb2ludAogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBSZXR1cm4gKCgoKExvY2FsMyAtIExvY2FsMikgKiAweDIwKSArIExvY2FsMSkpCiAg ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoR1BDMCwgMSwgU2VyaWFs aXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMiA9IChHQURSIChBcmcwLCBPbmUp ICsgKEdOTUIgKEFyZzApICogMHgxMCkpCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo UERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChQ RFcwLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFRFTVAsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChU RU1QKSAvKiBcX1NCXy5HUEMwLlRFTVAgKi8KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo U1BDMCwgMiwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMiA9IChH QURSIChBcmcwLCBPbmUpICsgKEdOTUIgKEFyZzApICogMHgxMCkpCiAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpCiAgICAg ICAgICAgIEZpZWxkIChQRFcwLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFRFTVAsICAgMzIKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgVEVNUCA9IEFyZzEKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoR1BDMSwgMSwg U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMiA9ICgoR0FEUiAoQXJn MCwgT25lKSArIChHTk1CIChBcmcwKSAqIDB4MTApCiAgICAgICAgICAgICAgICApICsgMHgw NCkKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRFcxLCBTeXN0ZW1NZW1vcnksIExv Y2FsMiwgMHgwNCkKICAgICAgICAgICAgRmllbGQgKFBEVzEsIEFueUFjYywgTm9Mb2NrLCBQ cmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVEVNUCwgICAzMgogICAg ICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFRFTVApIC8qIFxfU0JfLkdQQzEuVEVN UCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTUEMxLCAyLCBTZXJpYWxpemVkKQog ICAgICAgIHsKICAgICAgICAgICAgTG9jYWwyID0gKChHQURSIChBcmcwLCBPbmUpICsgKEdO TUIgKEFyZzApICogMHgxMCkKICAgICAgICAgICAgICAgICkgKyAweDA0KQogICAgICAgICAg ICBPcGVyYXRpb25SZWdpb24gKFBEVzEsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQog ICAgICAgICAgICBGaWVsZCAoUERXMSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBURU1QLCAgIDMyCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIFRFTVAgPSBBcmcxCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNSWE8s IDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAo QXJnMCwgT25lKSArIChHTk1CIChBcmcwKSAqIDB4MTApKQogICAgICAgICAgICBPcGVyYXRp b25SZWdpb24gKFBEVzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQogICAgICAgICAg ICBGaWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgLCAgIDI4LCAKICAgICAgICAgICAgICAgIFRFTVAsICAg MSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIFRFTVAgPSBBcmcxCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEdHSVYsIDEs IFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAoQXJn MCwgT25lKSArIChHTk1CIChBcmcwKSAqIDB4MTApKQogICAgICAgICAgICBPcGVyYXRpb25S ZWdpb24gKFBEVzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQogICAgICAgICAgICBG aWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgVEVNUCwgICAxLCAK ICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCkKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgUmV0dXJuIChURU1QKSAvKiBcX1NCXy5HR0lWLlRFTVAgKi8KICAgICAgICB9CgogICAg ICAgIE1ldGhvZCAoR0dPViwgMSwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAg IExvY2FsMiA9IChHQURSIChBcmcwLCBPbmUpICsgKEdOTUIgKEFyZzApICogMHgxMCkpCiAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIs IDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChQRFcwLCBBbnlBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRFTVAsICAgMSwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4MDQpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVy biAoVEVNUCkgLyogXF9TQl8uR0dPVi5URU1QICovCiAgICAgICAgfQoKICAgICAgICBNZXRo b2QgKFNHT1YsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIg PSAoR0FEUiAoQXJnMCwgT25lKSArIChHTk1CIChBcmcwKSAqIDB4MTApKQogICAgICAgICAg ICBPcGVyYXRpb25SZWdpb24gKFBEVzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQog ICAgICAgICAgICBGaWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBURU1QLCAgIDEsIAogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDA0KQogICAgICAgICAgICB9CgogICAgICAgICAgICBURU1QID0gQXJnMQog ICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChHR0lJLCAxLCBTZXJpYWxpemVkKQogICAgICAg IHsKICAgICAgICAgICAgTG9jYWwyID0gKEdBRFIgKEFyZzAsIE9uZSkgKyAoR05NQiAoQXJn MCkgKiAweDEwKSkKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRFcwLCBTeXN0ZW1N ZW1vcnksIExvY2FsMiwgMHgwNCkKICAgICAgICAgICAgRmllbGQgKFBEVzAsIEFueUFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICwg ICAyMywgCiAgICAgICAgICAgICAgICBURU1QLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zm c2V0ICgweDA0KQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFRFTVApIC8q IFxfU0JfLkdHSUkuVEVNUCAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChTR0lJLCAy LCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwyID0gKEdBRFIgKEFy ZzAsIE9uZSkgKyAoR05NQiAoQXJnMCkgKiAweDEwKSkKICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChQRFcwLCBTeXN0ZW1NZW1vcnksIExvY2FsMiwgMHgwNCkKICAgICAgICAgICAg RmllbGQgKFBEVzAsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICwgICAyMywgCiAgICAgICAgICAgICAgICBURU1QLCAgIDEs IAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KQogICAgICAgICAgICB9CgogICAgICAg ICAgICBURU1QID0gQXJnMQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChHUE1WLCAxLCBT ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwyID0gKEdBRFIgKEFyZzAs IE9uZSkgKyAoR05NQiAoQXJnMCkgKiAweDEwKSkKICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChQRFcwLCBTeXN0ZW1NZW1vcnksIExvY2FsMiwgMHgwNCkKICAgICAgICAgICAgRmll bGQgKFBEVzAsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICwgICAxMCwgCiAgICAgICAgICAgICAgICBURU1QLCAgIDMsIAog ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KQogICAgICAgICAgICB9CgogICAgICAgICAg ICBSZXR1cm4gKFRFTVApIC8qIFxfU0JfLkdQTVYuVEVNUCAqLwogICAgICAgIH0KCiAgICAg ICAgTWV0aG9kIChTUE1WLCAyLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg TG9jYWwyID0gKEdBRFIgKEFyZzAsIE9uZSkgKyAoR05NQiAoQXJnMCkgKiAweDEwKSkKICAg ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRFcwLCBTeXN0ZW1NZW1vcnksIExvY2FsMiwg MHgwNCkKICAgICAgICAgICAgRmllbGQgKFBEVzAsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICwgICAxMCwgCiAgICAgICAg ICAgICAgICBURU1QLCAgIDMsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KQogICAg ICAgICAgICB9CgogICAgICAgICAgICBURU1QID0gQXJnMQogICAgICAgIH0KCiAgICAgICAg TWV0aG9kIChHSFBPLCAxLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9j YWwxID0gR05NQiAoQXJnMCkKICAgICAgICAgICAgTG9jYWwzID0gKEdBRFIgKEFyZzAsIDB4 MDIpICsgKChMb2NhbDEgPj4gMHgwNSkgKiAweDA0KSkKICAgICAgICAgICAgTG9jYWw0ID0g KExvY2FsMSAmIDB4MUYpCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFJFRywgU3lz dGVtTWVtb3J5LCBMb2NhbDMsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChQUkVHLCBBbnlB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRF TVAsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuICgoKFRFTVAgPj4g TG9jYWw0KSAmIE9uZSkpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNIUE8sIDIsIFNl cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDEgPSBHTk1CIChBcmcwKQog ICAgICAgICAgICBBREJHICgiUGFkIG51bWJlciIpCiAgICAgICAgICAgIEFEQkcgKFRvSGV4 U3RyaW5nIChMb2NhbDEpKQogICAgICAgICAgICBMb2NhbDMgPSAoR0FEUiAoQXJnMCwgMHgw MikgKyAoKExvY2FsMSA+PiAweDA1KSAqIDB4MDQpKQogICAgICAgICAgICBBREJHICgiSE9T VCBvd25lciBvZmZzZXQiKQogICAgICAgICAgICBBREJHIChUb0hleFN0cmluZyAoTG9jYWwz KSkKICAgICAgICAgICAgTG9jYWw0ID0gKExvY2FsMSAmIDB4MUYpCiAgICAgICAgICAgIEFE QkcgKCJQYWQgcG9zaXRpb24iKQogICAgICAgICAgICBBREJHIChUb0hleFN0cmluZyAoTG9j YWw0KSkKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQUkVHLCBTeXN0ZW1NZW1vcnks IExvY2FsMywgMHgwNCkKICAgICAgICAgICAgRmllbGQgKFBSRUcsIEFueUFjYywgTm9Mb2Nr LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVEVNUCwgICAzMgog ICAgICAgICAgICB9CgogICAgICAgICAgICBBREJHICgiSE9TVCBvd24gYmVmb3JlIikKICAg ICAgICAgICAgQURCRyAoVG9IZXhTdHJpbmcgKFRFTVApKQogICAgICAgICAgICBJZiAoQXJn MSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVEVNUCB8PSAoT25lIDw8IExvY2Fs NCkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFRFTVAgJj0gfihPbmUgPDwgTG9jYWw0KQogICAgICAgICAgICB9CgogICAg ICAgICAgICBBREJHICgiSE9TVCBvd24gYWZ0ZXIiKQogICAgICAgICAgICBBREJHIChUb0hl eFN0cmluZyAoVEVNUCkpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEdHUE8sIDEsIFNl cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDEgPSBHTk1CIChBcmcwKQog ICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAoQXJnMCwgMHgwMykgKyAoKExvY2FsMSA+PiAw eDAzKSAqIDB4MDQKICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoUFJFRywgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpCiAgICAgICAgICAgIEZp ZWxkIChQUkVHLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFRFTVAsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0 dXJuICgoKFRFTVAgPj4gKChMb2NhbDEgJiAweDA3KSAqIDB4MDQpKSAmIAogICAgICAgICAg ICAgICAgMHgwMykpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNHUkEsIDIsIFNlcmlh bGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAoQXJnMCwgT25l KSArIChHTk1CIChBcmcwKSAqIDB4MTApKQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24g KFBEVzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQogICAgICAgICAgICBGaWVsZCAo UERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgLCAgIDIwLCAKICAgICAgICAgICAgICAgIFRFTVAsICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4MDQpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFRF TVAgPSBBcmcxCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFNHV1AsIDIsIFNlcmlhbGl6 ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIgPSAoKEdBRFIgKEFyZzAsIE9uZSkg KyAoR05NQiAoQXJnMCkgKiAweDEwKQogICAgICAgICAgICAgICAgKSArIDB4MDQpCiAgICAg ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4 MDQpCiAgICAgICAgICAgIEZpZWxkIChQRFcwLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAsICAgMTAsIAogICAgICAgICAg ICAgICAgVEVNUCwgICA0LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgVEVNUCA9IEFyZzEKICAgICAgICB9CgogICAgICAgIE1l dGhvZCAoQ0dQSSwgMSwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2Fs MSA9IEdOTUIgKEFyZzApCiAgICAgICAgICAgIEFEQkcgKCJQYWQgbnVtYmVyIikKICAgICAg ICAgICAgQURCRyAoVG9IZXhTdHJpbmcgKExvY2FsMSkpCiAgICAgICAgICAgIExvY2FsNCA9 IChMb2NhbDEgPj4gMHgwNSkKICAgICAgICAgICAgQURCRyAoIkdyb3VwIERXIikKICAgICAg ICAgICAgQURCRyAoVG9IZXhTdHJpbmcgKExvY2FsNCkpCiAgICAgICAgICAgIExvY2FsMyA9 IEdBRFIgKEFyZzAsIDB4MDQpCiAgICAgICAgICAgIEFEQkcgKCJSZWcgb2Zmc2V0IikKICAg ICAgICAgICAgQURCRyAoVG9IZXhTdHJpbmcgKExvY2FsMykpCiAgICAgICAgICAgIElmICgo KExvY2FsMyAmIDB4RkZGRikgIT0gMHhGRkZGKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQURCRyAoIkNsZWFyaW5nIEdQSSIpCiAgICAgICAgICAgICAgICBPcGVyYXRpb25S ZWdpb24gKEdQUFgsIFN5c3RlbU1lbW9yeSwgKExvY2FsMyArIChMb2NhbDQgKiAweDA0KSks IDB4MDQpCiAgICAgICAgICAgICAgICBGaWVsZCAoR1BQWCwgQW55QWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNUU1gsICAg MzIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDIgPSAoT25lIDw8 IChMb2NhbDEgJSAweDIwKSkKICAgICAgICAgICAgICAgIEFEQkcgKCJTVFNYIGJlZm9yZSIp CiAgICAgICAgICAgICAgICBBREJHIChUb0hleFN0cmluZyAoU1RTWCkpCiAgICAgICAgICAg ICAgICBTVFNYID0gTG9jYWwyCiAgICAgICAgICAgICAgICBBREJHICgiU1RTWCBhZnRlciIp CiAgICAgICAgICAgICAgICBBREJHIChUb0hleFN0cmluZyAoU1RTWCkpCiAgICAgICAgICAg IH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoQ0FHUywgMSwgU2VyaWFsaXplZCkKICAg ICAgICB7CiAgICAgICAgICAgIExvY2FsMCA9IEdHR1AgKEFyZzApCiAgICAgICAgICAgIExv Y2FsMSA9IEdOTUIgKEFyZzApCiAgICAgICAgICAgIExvY2FsNCA9IChMb2NhbDEgPj4gMHgw NSkKICAgICAgICAgICAgSWYgKCEoKCgoR0VJMCA9PSBMb2NhbDApICYmIChHRUQwID09IExv Y2FsNCkpIHwgKAogICAgICAgICAgICAgICAgKEdFSTEgPT0gTG9jYWwwKSAmJiAoR0VEMSA9 PSBMb2NhbDQpKSkgfCAoKEdFSTIgPT0gTG9jYWwwKSAmJiAoR0VEMiA9PSAKICAgICAgICAg ICAgICAgIExvY2FsNCkpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwz ID0gR0FEUiAoQXJnMCwgMHgwNCkKICAgICAgICAgICAgICAgIElmICgoKExvY2FsMyAmIDB4 RkZGRikgIT0gMHhGRkZGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBPcGVyYXRpb25SZWdpb24gKEdQUFgsIFN5c3RlbU1lbW9yeSwgKExvY2FsMyArIChMb2Nh bDQgKiAweDA0KSksIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEdQUFgsIEFu eUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFNUU1gsICAgMzIKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIExvY2FsMiA9IChPbmUgPDwgKExvY2FsMSAlIDB4MjApKQogICAg ICAgICAgICAgICAgICAgIFNUU1ggPSBMb2NhbDIKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChJR1BJLCAxLCBTZXJpYWxpemVk KQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWwxID0gR05NQiAoQXJnMCkKICAgICAgICAg ICAgTG9jYWw0ID0gKExvY2FsMSA+PiAweDA1KQogICAgICAgICAgICBJZiAoKChHQURSIChB cmcwLCAweDA0KSAmIDB4RkZGRikgPT0gMHhGRkZGKSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBMb2Nh bDIgPSAoR0FEUiAoQXJnMCwgMHgwNCkgKyAoTG9jYWw0ICogMHgwNCkpCiAgICAgICAgICAg IExvY2FsMyA9IChMb2NhbDEgJiAweDFGKQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24g KEdQUFgsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDI0KQogICAgICAgICAgICBGaWVsZCAo R1BQWCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBTVFNYLCAgIDMyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMCksIAog ICAgICAgICAgICAgICAgR0VOWCwgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBS ZXR1cm4gKCgoKFNUU1ggJiBHRU5YKSA+PiBMb2NhbDMpICYgT25lKSkKICAgICAgICB9Cgog ICAgICAgIE1ldGhvZCAoSVNNRSwgMSwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg ICAgIExvY2FsMCA9IEdHR1AgKEFyZzApCiAgICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFy ZzApCiAgICAgICAgICAgIExvY2FsNCA9IChMb2NhbDEgPj4gMHgwNSkKICAgICAgICAgICAg SWYgKCEhKCgoKEdFSTAgPT0gTG9jYWwwKSAmJiAoR0VEMCA9PSBMb2NhbDQpKSB8IAogICAg ICAgICAgICAgICAgKChHRUkxID09IExvY2FsMCkgJiYgKEdFRDEgPT0gTG9jYWw0KSkpIHwg KChHRUkyID09IExvY2FsMCkgJiYgKAogICAgICAgICAgICAgICAgR0VEMiA9PSBMb2NhbDQp KSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgSWYgKCgoR0FEUiAoQXJnMCwgMHgwNCkgJiAweEZGRkYp ID09IDB4RkZGRikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTG9jYWwyID0gKEdBRFIgKEFyZzAsIDB4 MDQpICsgKExvY2FsNCAqIDB4MDQpKQogICAgICAgICAgICBMb2NhbDMgPSAoTG9jYWwxICYg MHgxRikKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChHUFBYLCBTeXN0ZW1NZW1vcnks IExvY2FsMiwgMHgyNCkKICAgICAgICAgICAgRmllbGQgKEdQUFgsIEFueUFjYywgTm9Mb2Nr LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU1RTWCwgICAzMiwg CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjApLCAKICAgICAgICAgICAgICAgIEdFTlgs ICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuICgoKChTVFNYICYgR0VO WCkgPj4gTG9jYWwzKSAmIE9uZSkpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEdSWEUs IDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAo QXJnMCwgT25lKSArIChHTk1CIChBcmcwKSAqIDB4MTApKQogICAgICAgICAgICBPcGVyYXRp b25SZWdpb24gKFBEVzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQogICAgICAgICAg ICBGaWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgLCAgIDI1LCAKICAgICAgICAgICAgICAgIFJDRkcsICAg MiwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIFJDRkcgPSBBcmcxCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEdMT0MsIDIs IFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDEgPSBHTk1CIChBcmcw KQogICAgICAgICAgICBMb2NhbDIgPSBHQURSIChBcmcwLCAweDA1KQogICAgICAgICAgICBP cGVyYXRpb25SZWdpb24gKFBSRUcsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQogICAg ICAgICAgICBGaWVsZCAoUFJFRywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBURU1QLCAgIDMyCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIFJldHVybiAoKChURU1QID4+IExvY2FsMSkgJiBPbmUpKQogICAgICAgIH0KCiAg ICAgICAgTWV0aG9kIChHTE9ULCAyLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg ICAgTG9jYWwxID0gR05NQiAoQXJnMCkKICAgICAgICAgICAgTG9jYWwyID0gR0FEUiAoQXJn MCwgMHgwNikKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQUkVHLCBTeXN0ZW1NZW1v cnksIExvY2FsMiwgMHgwNCkKICAgICAgICAgICAgRmllbGQgKFBSRUcsIEFueUFjYywgTm9M b2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVEVNUCwgICAz MgogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKCgoVEVNUCA+PiBMb2NhbDEp ICYgT25lKSkKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAwKQogICAgewog ICAgICAgIERldmljZSAoU0JTQykKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQs IEVpc2FJZCAoIlBOUDBDMDIiKSAvKiBQTlAgTW90aGVyYm9hcmQgUmVzb3VyY2VzICovKSAg Ly8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgIlNPQ1AyU0Ii KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9TVEEsIDB4MDgpICAv LyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgTmFtZSAoU0JSRywgWmVybykKICAgICAgICAg ICAgU0JSRyA9IFxTQlJHCiAgICAgICAgICAgIE1ldGhvZCAoUENSUiwgMiwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxID0gKEFyZzEgJiAweEZG RkYpCiAgICAgICAgICAgICAgICBMb2NhbDIgPSAoKEFyZzEgJiAweDAwMEYwMDAwKSA8PCAw eDA4KQogICAgICAgICAgICAgICAgTG9jYWwwID0gKChBcmcwIDw8IDB4MTApICsgTG9jYWwx KQogICAgICAgICAgICAgICAgTG9jYWwwID0gKChMb2NhbDIgKyBMb2NhbDApICsgU0JSRykg LyogXF9TQl8uUEMwMC5TQlNDLlNCUkcgKi8KICAgICAgICAgICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoUENSMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgICAg ICBGaWVsZCAoUENSMCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIERBVDAsICAgMzIKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBSZXR1cm4gKERBVDApIC8qIFxfU0JfLlBDMDAuU0JTQy5QQ1JS LkRBVDAgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQQ1JXLCAzLCBT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDEgPSAoQXJn MSAmIDB4RkZGRikKICAgICAgICAgICAgICAgIExvY2FsMiA9ICgoQXJnMSAmIDB4MDAwRjAw MDApIDw8IDB4MDgpCiAgICAgICAgICAgICAgICBMb2NhbDAgPSAoKEFyZzAgPDwgMHgxMCkg KyBMb2NhbDEpCiAgICAgICAgICAgICAgICBMb2NhbDAgPSAoKExvY2FsMiArIExvY2FsMCkg KyBTQlJHKSAvKiBcX1NCXy5QQzAwLlNCU0MuU0JSRyAqLwogICAgICAgICAgICAgICAgT3Bl cmF0aW9uUmVnaW9uIChQQ1IwLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAg ICAgICAgICAgIEZpZWxkIChQQ1IwLCBEV29yZEFjYywgTG9jaywgUHJlc2VydmUpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgREFUMCwgICAzMgogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIERBVDAgPSBBcmcyCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoUENSTywgMywgU2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTG9jYWwwID0gUENSUiAoQXJnMCwgQXJnMSkKICAgICAgICAgICAg ICAgIExvY2FsMSA9IChMb2NhbDAgfCBBcmcyKQogICAgICAgICAgICAgICAgUENSVyAoQXJn MCwgQXJnMSwgTG9jYWwxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBD UkEsIDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2Fs MCA9IFBDUlIgKEFyZzAsIEFyZzEpCiAgICAgICAgICAgICAgICBMb2NhbDEgPSAoTG9jYWww ICYgQXJnMikKICAgICAgICAgICAgICAgIFBDUlcgKEFyZzAsIEFyZzEsIExvY2FsMSkKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQQ0FPLCA0LCBTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBQQ1JSIChBcmcwLCBBcmcx KQogICAgICAgICAgICAgICAgTG9jYWwxID0gKChMb2NhbDAgJiBBcmcyKSB8IEFyZzMpCiAg ICAgICAgICAgICAgICBQQ1JXIChBcmcwLCBBcmcxLCBMb2NhbDEpCiAgICAgICAgICAgIH0K ICAgICAgICB9CgogICAgICAgIERldmljZSAoU0JJRSkKICAgICAgICB7CiAgICAgICAgICAg IE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSAvKiBQTlAgTW90aGVyYm9hcmQgUmVz b3VyY2VzICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJ RCwgIklPRVAyU0IiKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9T VEEsIDB4MDgpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgTmFtZSAoU0JSRywgMHgw MDAwMDNGRkYwMDAwMDAwKQogICAgICAgICAgICBNZXRob2QgKFBDUlIsIDIsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSA9IChBcmcxICYgMHhG RkZGKQogICAgICAgICAgICAgICAgTG9jYWwyID0gKChBcmcxICYgMHgwMDBGMDAwMCkgPDwg MHgwOCkKICAgICAgICAgICAgICAgIExvY2FsMCA9ICgoQXJnMCA8PCAweDEwKSArIExvY2Fs MSkKICAgICAgICAgICAgICAgIExvY2FsMCA9ICgoTG9jYWwyICsgTG9jYWwwKSArIFNCUkcp IC8qIFxfU0JfLlBDMDAuU0JJRS5TQlJHICovCiAgICAgICAgICAgICAgICBPcGVyYXRpb25S ZWdpb24gKFBDUjAsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICAg ICAgRmllbGQgKFBDUjAsIERXb3JkQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBEQVQwLCAgIDMyCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgUmV0dXJuIChEQVQwKSAvKiBcX1NCXy5QQzAwLlNCSUUuUENS Ui5EQVQwICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoUENSVywgMywg U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwxID0gKEFy ZzEgJiAweEZGRkYpCiAgICAgICAgICAgICAgICBMb2NhbDIgPSAoKEFyZzEgJiAweDAwMEYw MDAwKSA8PCAweDA4KQogICAgICAgICAgICAgICAgTG9jYWwwID0gKChBcmcwIDw8IDB4MTAp ICsgTG9jYWwxKQogICAgICAgICAgICAgICAgTG9jYWwwID0gKChMb2NhbDIgKyBMb2NhbDAp ICsgU0JSRykgLyogXF9TQl8uUEMwMC5TQklFLlNCUkcgKi8KICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUENSMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDAsIDB4MDQpCiAgICAg ICAgICAgICAgICBGaWVsZCAoUENSMCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERBVDAsICAgMzIKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBEQVQwID0gQXJnMgogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKFBDUk8sIDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIExvY2FsMCA9IFBDUlIgKEFyZzAsIEFyZzEpCiAgICAgICAgICAg ICAgICBMb2NhbDEgPSAoTG9jYWwwIHwgQXJnMikKICAgICAgICAgICAgICAgIFBDUlcgKEFy ZzAsIEFyZzEsIExvY2FsMSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQ Q1JBLCAzLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2Nh bDAgPSBQQ1JSIChBcmcwLCBBcmcxKQogICAgICAgICAgICAgICAgTG9jYWwxID0gKExvY2Fs MCAmIEFyZzIpCiAgICAgICAgICAgICAgICBQQ1JXIChBcmcwLCBBcmcxLCBMb2NhbDEpCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoUENBTywgNCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gUENSUiAoQXJnMCwgQXJn MSkKICAgICAgICAgICAgICAgIExvY2FsMSA9ICgoTG9jYWwwICYgQXJnMikgfCBBcmczKQog ICAgICAgICAgICAgICAgUENSVyAoQXJnMCwgQXJnMSwgTG9jYWwxKQogICAgICAgICAgICB9 CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcKQogICAgewogICAgICAgIE1ldGhvZCAo UENSUiwgMiwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIExvY2FsMSA9IChB cmcxICYgMHhGRkZGKQogICAgICAgICAgICBMb2NhbDIgPSAoKEFyZzEgJiAweDAwMEYwMDAw KSA8PCAweDA4KQogICAgICAgICAgICBMb2NhbDAgPSAoKEFyZzAgPDwgMHgxMCkgKyBMb2Nh bDEpCiAgICAgICAgICAgIExvY2FsMCA9ICgoTG9jYWwyICsgTG9jYWwwKSArIFNCUkcpIC8q IFxTQlJHICovCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUENSMCwgU3lzdGVtTWVt b3J5LCBMb2NhbDAsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChQQ1IwLCBEV29yZEFjYywg TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERBVDAsICAg MzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChEQVQwKSAvKiBcUENSUi5E QVQwICovCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBDUlcsIDMsIFNlcmlhbGl6ZWQp CiAgICAgICAgewogICAgICAgICAgICBMb2NhbDEgPSAoQXJnMSAmIDB4RkZGRikKICAgICAg ICAgICAgTG9jYWwyID0gKChBcmcxICYgMHgwMDBGMDAwMCkgPDwgMHgwOCkKICAgICAgICAg ICAgTG9jYWwwID0gKChBcmcwIDw8IDB4MTApICsgTG9jYWwxKQogICAgICAgICAgICBMb2Nh bDAgPSAoKExvY2FsMiArIExvY2FsMCkgKyBTQlJHKSAvKiBcU0JSRyAqLwogICAgICAgICAg ICBPcGVyYXRpb25SZWdpb24gKFBDUjAsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQog ICAgICAgICAgICBGaWVsZCAoUENSMCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBEQVQwLCAgIDMyCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERBVDAgPSBBcmcyCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBDUk8s IDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBQQ1JSIChB cmcwLCBBcmcxKQogICAgICAgICAgICBMb2NhbDEgPSAoTG9jYWwwIHwgQXJnMikKICAgICAg ICAgICAgUENSVyAoQXJnMCwgQXJnMSwgTG9jYWwxKQogICAgICAgIH0KCiAgICAgICAgTWV0 aG9kIChQQ1JBLCAzLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTG9jYWww ID0gUENSUiAoQXJnMCwgQXJnMSkKICAgICAgICAgICAgTG9jYWwxID0gKExvY2FsMCAmIEFy ZzIpCiAgICAgICAgICAgIFBDUlcgKEFyZzAsIEFyZzEsIExvY2FsMSkKICAgICAgICB9Cgog ICAgICAgIE1ldGhvZCAoUENBTywgNCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg ICAgIExvY2FsMCA9IFBDUlIgKEFyZzAsIEFyZzEpCiAgICAgICAgICAgIExvY2FsMSA9ICgo TG9jYWwwICYgQXJnMikgfCBBcmczKQogICAgICAgICAgICBQQ1JXIChBcmcwLCBBcmcxLCBM b2NhbDEpCiAgICAgICAgfQogICAgfQoKICAgIElmICgoUENIQSAhPSBaZXJvKSkKICAgIHsK ICAgICAgICBOYW1lIChNTlZCLCAweEZGRkYwMDAwKQogICAgICAgIE5hbWUgKE1OVkwsIDB4 QUE1NSkKICAgICAgICBTY29wZSAoX1NCLlBDMDIpCiAgICAgICAgewogICAgICAgICAgICBP cGVyYXRpb25SZWdpb24gKE1UTlYsIFN5c3RlbU1lbW9yeSwgTU5WQiwgTU5WTCkKICAgICAg ICAgICAgRmllbGQgKE1UTlYsIEFueUFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFBXUk0sICAgMzIsIAogICAgICAgICAgICAgICAgQUJBUywg ICAxNiwgCiAgICAgICAgICAgICAgICBTQlJHLCAgIDY0LCAKICAgICAgICAgICAgICAgIFBV MkMsICAgOCwgCiAgICAgICAgICAgICAgICBQVTNDLCAgIDgsIAogICAgICAgICAgICAgICAg R0JFUywgICA4LCAKICAgICAgICAgICAgICAgIE5IQUEsICAgNjQsIAogICAgICAgICAgICAg ICAgTkhMTCwgICAzMiwgCiAgICAgICAgICAgICAgICBBREZNLCAgIDMyLCAKICAgICAgICAg ICAgICAgIFNXUTAsICAgOCwgCiAgICAgICAgICAgICAgICBTV1ExLCAgIDgsIAogICAgICAg ICAgICAgICAgU1dRMiwgICA4LCAKICAgICAgICAgICAgICAgIFNXUTMsICAgOCwgCiAgICAg ICAgICAgICAgICBBQ1MwLCAgIDgsIAogICAgICAgICAgICAgICAgQUNTMSwgICA4LCAKICAg ICAgICAgICAgICAgIEFDUzIsICAgOCwgCiAgICAgICAgICAgICAgICBBQ1MzLCAgIDgsIAog ICAgICAgICAgICAgICAgREFJMCwgICA4LCAKICAgICAgICAgICAgICAgIERBSTEsICAgOCwg CiAgICAgICAgICAgICAgICBEQUkyLCAgIDgsIAogICAgICAgICAgICAgICAgREFJMywgICA4 LCAKICAgICAgICAgICAgICAgIERPRDAsICAgOCwgCiAgICAgICAgICAgICAgICBET0QxLCAg IDgsIAogICAgICAgICAgICAgICAgRE9EMiwgICA4LCAKICAgICAgICAgICAgICAgIERPRDMs ICAgOCwgCiAgICAgICAgICAgICAgICBIREJPLCAgIDE2LCAKICAgICAgICAgICAgICAgIFNX TUMsICAgOCwgCiAgICAgICAgICAgICAgICBYVEFMLCAgIDMyLCAKICAgICAgICAgICAgICAg IFJQQTEsICAgMzIsIAogICAgICAgICAgICAgICAgUlBBMiwgICAzMiwgCiAgICAgICAgICAg ICAgICBSUEEzLCAgIDMyLCAKICAgICAgICAgICAgICAgIFJQQTQsICAgMzIsIAogICAgICAg ICAgICAgICAgUlBBNSwgICAzMiwgCiAgICAgICAgICAgICAgICBSUEE2LCAgIDMyLCAKICAg ICAgICAgICAgICAgIFJQQTcsICAgMzIsIAogICAgICAgICAgICAgICAgUlBBOCwgICAzMiwg CiAgICAgICAgICAgICAgICBSUEE5LCAgIDMyLCAKICAgICAgICAgICAgICAgIFJQQUEsICAg MzIsIAogICAgICAgICAgICAgICAgUlBBQiwgICAzMiwgCiAgICAgICAgICAgICAgICBSUEFD LCAgIDMyLCAKICAgICAgICAgICAgICAgIFJQQUQsICAgMzIsIAogICAgICAgICAgICAgICAg UlBBRSwgICAzMiwgCiAgICAgICAgICAgICAgICBSUEFGLCAgIDMyLCAKICAgICAgICAgICAg ICAgIFJQQUcsICAgMzIsIAogICAgICAgICAgICAgICAgUlBBSCwgICAzMiwgCiAgICAgICAg ICAgICAgICBSUEFJLCAgIDMyLCAKICAgICAgICAgICAgICAgIFJQQUosICAgMzIsIAogICAg ICAgICAgICAgICAgUlBBSywgICAzMiwgCiAgICAgICAgICAgICAgICBSUEFMLCAgIDMyLCAK ICAgICAgICAgICAgICAgIFJQQU0sICAgMzIsIAogICAgICAgICAgICAgICAgUlBBTiwgICAz MiwgCiAgICAgICAgICAgICAgICBSUEFPLCAgIDMyLCAKICAgICAgICAgICAgICAgIFBNTDEs ICAgMTYsIAogICAgICAgICAgICAgICAgUE1MMiwgICAxNiwgCiAgICAgICAgICAgICAgICBQ TUwzLCAgIDE2LCAKICAgICAgICAgICAgICAgIFBNTDQsICAgMTYsIAogICAgICAgICAgICAg ICAgUE1MNSwgICAxNiwgCiAgICAgICAgICAgICAgICBQTUw2LCAgIDE2LCAKICAgICAgICAg ICAgICAgIFBNTDcsICAgMTYsIAogICAgICAgICAgICAgICAgUE1MOCwgICAxNiwgCiAgICAg ICAgICAgICAgICBQTUw5LCAgIDE2LCAKICAgICAgICAgICAgICAgIFBNTEEsICAgMTYsIAog ICAgICAgICAgICAgICAgUE1MQiwgICAxNiwgCiAgICAgICAgICAgICAgICBQTUxDLCAgIDE2 LCAKICAgICAgICAgICAgICAgIFBNTEQsICAgMTYsIAogICAgICAgICAgICAgICAgUE1MRSwg ICAxNiwgCiAgICAgICAgICAgICAgICBQTUxGLCAgIDE2LCAKICAgICAgICAgICAgICAgIFBN TEcsICAgMTYsIAogICAgICAgICAgICAgICAgUE1MSCwgICAxNiwgCiAgICAgICAgICAgICAg ICBQTUxJLCAgIDE2LCAKICAgICAgICAgICAgICAgIFBNTEosICAgMTYsIAogICAgICAgICAg ICAgICAgUE1MSywgICAxNiwgCiAgICAgICAgICAgICAgICBQTUxMLCAgIDE2LCAKICAgICAg ICAgICAgICAgIFBNTE0sICAgMTYsIAogICAgICAgICAgICAgICAgUE1MTiwgICAxNiwgCiAg ICAgICAgICAgICAgICBQTUxPLCAgIDE2LCAKICAgICAgICAgICAgICAgIFBOTDEsICAgMTYs IAogICAgICAgICAgICAgICAgUE5MMiwgICAxNiwgCiAgICAgICAgICAgICAgICBQTkwzLCAg IDE2LCAKICAgICAgICAgICAgICAgIFBOTDQsICAgMTYsIAogICAgICAgICAgICAgICAgUE5M NSwgICAxNiwgCiAgICAgICAgICAgICAgICBQTkw2LCAgIDE2LCAKICAgICAgICAgICAgICAg IFBOTDcsICAgMTYsIAogICAgICAgICAgICAgICAgUE5MOCwgICAxNiwgCiAgICAgICAgICAg ICAgICBQTkw5LCAgIDE2LCAKICAgICAgICAgICAgICAgIFBOTEEsICAgMTYsIAogICAgICAg ICAgICAgICAgUE5MQiwgICAxNiwgCiAgICAgICAgICAgICAgICBQTkxDLCAgIDE2LCAKICAg ICAgICAgICAgICAgIFBOTEQsICAgMTYsIAogICAgICAgICAgICAgICAgUE5MRSwgICAxNiwg CiAgICAgICAgICAgICAgICBQTkxGLCAgIDE2LCAKICAgICAgICAgICAgICAgIFBOTEcsICAg MTYsIAogICAgICAgICAgICAgICAgUE5MSCwgICAxNiwgCiAgICAgICAgICAgICAgICBQTkxJ LCAgIDE2LCAKICAgICAgICAgICAgICAgIFBOTEosICAgMTYsIAogICAgICAgICAgICAgICAg UE5MSywgICAxNiwgCiAgICAgICAgICAgICAgICBQTkxMLCAgIDE2LCAKICAgICAgICAgICAg ICAgIFBOTE0sICAgMTYsIAogICAgICAgICAgICAgICAgUE5MTiwgICAxNiwgCiAgICAgICAg ICAgICAgICBQTkxPLCAgIDE2LCAKICAgICAgICAgICAgICAgIFRJTjAsICAgMzIsIAogICAg ICAgICAgICAgICAgVElOMSwgICAzMiwgCiAgICAgICAgICAgICAgICBUTUQwLCAgIDE2LCAK ICAgICAgICAgICAgICAgIFRNRDEsICAgMTYsIAogICAgICAgICAgICAgICAgVUYwRSwgICA4 LCAKICAgICAgICAgICAgICAgIFVGMUUsICAgOCwgCiAgICAgICAgICAgICAgICBVQU9FLCAg IDgsIAogICAgICAgICAgICAgICAgVDAxMCwgICAzMiwgCiAgICAgICAgICAgICAgICBUMDEx LCAgIDMyLCAKICAgICAgICAgICAgICAgIFQwMjAsICAgOCwgCiAgICAgICAgICAgICAgICBU MDIxLCAgIDgsIAogICAgICAgICAgICAgICAgVDAzMCwgICAzMiwgCiAgICAgICAgICAgICAg ICBUMDMxLCAgIDMyLCAKICAgICAgICAgICAgICAgIFQwNDAsICAgMzIsIAogICAgICAgICAg ICAgICAgVDA0MSwgICAzMiwgCiAgICAgICAgICAgICAgICBUMDUwLCAgIDMyLCAKICAgICAg ICAgICAgICAgIFQwNTEsICAgMzIsIAogICAgICAgICAgICAgICAgVDA2MCwgICAzMiwgCiAg ICAgICAgICAgICAgICBUMDYxLCAgIDMyLCAKICAgICAgICAgICAgICAgIFQwNzAsICAgMzIs IAogICAgICAgICAgICAgICAgVDA3MSwgICAzMiwgCiAgICAgICAgICAgICAgICBUMDgwLCAg IDMyLCAKICAgICAgICAgICAgICAgIFQwODEsICAgMzIsIAogICAgICAgICAgICAgICAgVDA5 MCwgICAzMiwgCiAgICAgICAgICAgICAgICBUMDkxLCAgIDMyLCAKICAgICAgICAgICAgICAg IFQwQTAsICAgMzIsIAogICAgICAgICAgICAgICAgVDBBMSwgICAzMiwgCiAgICAgICAgICAg ICAgICBUMEIwLCAgIDMyLCAKICAgICAgICAgICAgICAgIFQwQjEsICAgMzIsIAogICAgICAg ICAgICAgICAgVDBDMCwgICAzMiwgCiAgICAgICAgICAgICAgICBUMEMxLCAgIDMyLCAKICAg ICAgICAgICAgICAgIFQwRDAsICAgMzIsIAogICAgICAgICAgICAgICAgVDBEMSwgICAzMiwg CiAgICAgICAgICAgICAgICBUMEUwLCAgIDMyLCAKICAgICAgICAgICAgICAgIFQwRTEsICAg MzIsIAogICAgICAgICAgICAgICAgVDBGMCwgICAzMiwgCiAgICAgICAgICAgICAgICBUMEYx LCAgIDMyLCAKICAgICAgICAgICAgICAgIFNNMDAsICAgOCwgCiAgICAgICAgICAgICAgICBT TTAxLCAgIDgsIAogICAgICAgICAgICAgICAgU00wMiwgICA4LCAKICAgICAgICAgICAgICAg IFNNMDMsICAgOCwgCiAgICAgICAgICAgICAgICBTQzAwLCAgIDY0LCAKICAgICAgICAgICAg ICAgIFNDMDEsICAgNjQsIAogICAgICAgICAgICAgICAgU0MwMiwgICA2NCwgCiAgICAgICAg ICAgICAgICBTQzAzLCAgIDY0LCAKICAgICAgICAgICAgICAgIElNMDAsICAgOCwgCiAgICAg ICAgICAgICAgICBJTTAxLCAgIDgsIAogICAgICAgICAgICAgICAgSU0wMiwgICA4LCAKICAg ICAgICAgICAgICAgIElNMDMsICAgOCwgCiAgICAgICAgICAgICAgICBJTTA0LCAgIDgsIAog ICAgICAgICAgICAgICAgSU0wNSwgICA4LCAKICAgICAgICAgICAgICAgIElDMDAsICAgNjQs IAogICAgICAgICAgICAgICAgSUMwMSwgICA2NCwgCiAgICAgICAgICAgICAgICBJQzAyLCAg IDY0LCAKICAgICAgICAgICAgICAgIElDMDMsICAgNjQsIAogICAgICAgICAgICAgICAgSUMw NCwgICA2NCwgCiAgICAgICAgICAgICAgICBJQzA1LCAgIDY0LCAKICAgICAgICAgICAgICAg IFVNMDAsICAgOCwgCiAgICAgICAgICAgICAgICBVTTAxLCAgIDgsIAogICAgICAgICAgICAg ICAgVU0wMiwgICA4LCAKICAgICAgICAgICAgICAgIFVNMDMsICAgOCwgCiAgICAgICAgICAg ICAgICBVQzAwLCAgIDY0LCAKICAgICAgICAgICAgICAgIFVDMDEsICAgNjQsIAogICAgICAg ICAgICAgICAgVUMwMiwgICA2NCwgCiAgICAgICAgICAgICAgICBVQzAzLCAgIDY0LCAKICAg ICAgICAgICAgICAgIFVEMDAsICAgOCwgCiAgICAgICAgICAgICAgICBVRDAxLCAgIDgsIAog ICAgICAgICAgICAgICAgVUQwMiwgICA4LCAKICAgICAgICAgICAgICAgIFVEMDMsICAgOCwg CiAgICAgICAgICAgICAgICBVUDAwLCAgIDgsIAogICAgICAgICAgICAgICAgVVAwMSwgICA4 LCAKICAgICAgICAgICAgICAgIFVQMDIsICAgOCwgCiAgICAgICAgICAgICAgICBVUDAzLCAg IDgsIAogICAgICAgICAgICAgICAgVUkwMCwgICA4LCAKICAgICAgICAgICAgICAgIFVJMDEs ICAgOCwgCiAgICAgICAgICAgICAgICBVSTAyLCAgIDgsIAogICAgICAgICAgICAgICAgVUkw MywgICA4LCAKICAgICAgICAgICAgICAgIFBDTlYsICAgMTYsIAogICAgICAgICAgICAgICAg R0VJMCwgICA4LCAKICAgICAgICAgICAgICAgIEdFSTEsICAgOCwgCiAgICAgICAgICAgICAg ICBHRUkyLCAgIDgsIAogICAgICAgICAgICAgICAgR0VEMCwgICA4LCAKICAgICAgICAgICAg ICAgIEdFRDEsICAgOCwgCiAgICAgICAgICAgICAgICBHRUQyLCAgIDgsIAogICAgICAgICAg ICAgICAgU01MMCwgICA4LCAKICAgICAgICAgICAgICAgIFNNTDEsICAgOCwgCiAgICAgICAg ICAgICAgICBTTUwyLCAgIDgsIAogICAgICAgICAgICAgICAgU01MMywgICA4CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU0JQQykKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpIC8qIFBOUCBNb3RoZXJi b2FyZCBSZXNvdXJjZXMgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAg ICAgTmFtZSAoX1VJRCwgIlBDSFAyU0IiKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAg ICAgICAgICBOYW1lIChfU1RBLCAweDA4KSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAg ICAgICBOYW1lIChTQlJHLCBaZXJvKQogICAgICAgICAgICAgICAgU0JSRyA9IF5TQlJHIC8q IFxfU0JfLlBDMDIuU0JSRyAqLwogICAgICAgICAgICAgICAgTWV0aG9kIChQQ1JSLCAyLCBT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2Fs MSA9IChBcmcxICYgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9ICgoQXJn MSAmIDB4MDAwRjAwMDApIDw8IDB4MDgpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g KChBcmcwIDw8IDB4MTApICsgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 ICgoTG9jYWwyICsgTG9jYWwwKSArIFNCUkcpIC8qIFxfU0JfLlBDMDIuU0JQQy5TQlJHICov CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ1IwLCBTeXN0ZW1NZW1v cnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoUENSMCwgRFdv cmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgREFUMCwgICAzMgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChEQVQwKSAvKiBcX1NCXy5QQzAyLlNCUEMuUENSUi5E QVQwICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChQQ1JX LCAzLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IExvY2FsMSA9IChBcmcxICYgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9 ICgoQXJnMSAmIDB4MDAwRjAwMDApIDw8IDB4MDgpCiAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gKChBcmcwIDw8IDB4MTApICsgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9ICgoTG9jYWwyICsgTG9jYWwwKSArIFNCUkcpIC8qIFxfU0JfLlBDMDIuU0JQQy5T QlJHICovCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ1IwLCBTeXN0 ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoUENS MCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgREFUMCwgICAzMgogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgREFUMCA9IEFyZzIKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKFBDUk8sIDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gUENSUiAoQXJnMCwgQXJnMSkK ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoTG9jYWwwIHwgQXJnMikKICAgICAgICAg ICAgICAgICAgICBQQ1JXIChBcmcwLCBBcmcxLCBMb2NhbDEpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChQQ1JBLCAzLCBTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFBDUlIgKEFyZzAsIEFy ZzEpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKExvY2FsMCAmIEFyZzIpCiAgICAg ICAgICAgICAgICAgICAgUENSVyAoQXJnMCwgQXJnMSwgTG9jYWwxKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUENBTywgNCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBQQ1JSIChBcmcw LCBBcmcxKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9ICgoTG9jYWwwICYgQXJnMikg fCBBcmczKQogICAgICAgICAgICAgICAgICAgIFBDUlcgKEFyZzAsIEFyZzEsIExvY2FsMSkK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChQ UE1DKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg KCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJkIFJlc291cmNlcyAqLykgIC8vIF9ISUQ6 IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAiTVRQUE1DIikgIC8v IF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX1NUQSwgMHgwOCkgIC8v IF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgTWV0aG9kIChJUENTLCA3LCBTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKFJQS0cs IFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgQURCRyAoIlBNQyBJUEMiKQogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiQ29tbWFuZDogIiwgVG9IZXhTdHJpbmcgKEFyZzApKSkK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlN1YkNtZElkOiAiLCBU b0hleFN0cmluZyAoQXJnMSkpKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiU2l6ZTogIiwgVG9IZXhTdHJpbmcgKEFyZzIpKSkKICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIldCdWZmMDogIiwgVG9IZXhTdHJpbmcgKEFyZzMpKSkK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIldCdWZmMTogIiwgVG9I ZXhTdHJpbmcgKEFyZzQpKSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIldCdWZmMjogIiwgVG9IZXhTdHJpbmcgKEFyZzUpKSkKICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIldCdWZmMzogIiwgVG9IZXhTdHJpbmcgKEFyZzYpKSkK ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPiAweDEwKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDbWRTaXplPjE2IEVycm9y IikKICAgICAgICAgICAgICAgICAgICAgICAgUlBLRyBbWmVyb10gPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChSUEtHKSAvKiBcX1NCXy5QQzAyLlBQTUMuSVBDUy5S UEtHICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJV0Iw ID0gQXJnMwogICAgICAgICAgICAgICAgICAgIElXQjEgPSBBcmc0CiAgICAgICAgICAgICAg ICAgICAgSVdCMiA9IEFyZzUKICAgICAgICAgICAgICAgICAgICBJV0IzID0gQXJnNgogICAg ICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgKz0gKEFyZzAgPDwgWmVybykKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gKEFy ZzEgPDwgMHgwQykKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gKEFyZzIgPDwgMHgx MCkKICAgICAgICAgICAgICAgICAgICBDTURSID0gTG9jYWwwCiAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKCFJQlNZIHx8 IChJRVJSID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MEEpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiSVBDIEJ1 c3kgVE8iKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUlBLRyBbWmVyb10gPSAweDAz CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJQS0cpIC8qIFxfU0JfLlBD MDIuUFBNQy5JUENTLlJQS0cgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm ICgoSUVSUiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoIklQQyBFcnJvcjoiKQogICAgICAgICAgICAgICAgICAgICAgICBB REJHIChJRVJDKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChBcmcwKQogICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChBcmcxKQogICAgICAgICAgICAgICAgICAgICAgICBB REJHIChBcmcyKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChBcmczKQogICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChBcmc0KQogICAgICAgICAgICAgICAgICAgICAgICBB REJHIChBcmc1KQogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChBcmc2KQogICAgICAg ICAgICAgICAgICAgICAgICBSUEtHIFtaZXJvXSA9IDB4MDIKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChSUEtHKSAvKiBcX1NCXy5QQzAyLlBQTUMuSVBDUy5SUEtHICovCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSUEtHIFtPbmVdID0g SVJCMCAvKiBcX1NCXy5QQzAyLlBQTUMuSVJCMCAqLwogICAgICAgICAgICAgICAgICAgIFJQ S0cgWzB4MDJdID0gSVJCMSAvKiBcX1NCXy5QQzAyLlBQTUMuSVJCMSAqLwogICAgICAgICAg ICAgICAgICAgIFJQS0cgWzB4MDNdID0gSVJCMiAvKiBcX1NCXy5QQzAyLlBQTUMuSVJCMiAq LwogICAgICAgICAgICAgICAgICAgIFJQS0cgWzB4MDRdID0gSVJCMyAvKiBcX1NCXy5QQzAy LlBQTUMuSVJCMyAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlBLRykgLyogXF9T Ql8uUEMwMi5QUE1DLklQQ1MuUlBLRyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoVUxUUiwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBMVFJVID0gQXJnMAogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFdNUiwgU3lzdGVtTWVtb3J5LCBQV1JN LCAweDFFMzApCiAgICAgICAgICAgICAgICBGaWVsZCAoUFdNUiwgRFdvcmRBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ01E UiwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgSUJTWSwgICAxLCAKICAgICAgICAgICAg ICAgICAgICBJRVJSLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4MDUpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDYpLCAKICAgICAg ICAgICAgICAgICAgICBJRVJDLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgwOCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MCksIAogICAgICAgICAg ICAgICAgICAgIElXQjAsICAgMzIsIAogICAgICAgICAgICAgICAgICAgIElXQjEsICAgMzIs IAogICAgICAgICAgICAgICAgICAgIElXQjIsICAgMzIsIAogICAgICAgICAgICAgICAgICAg IElXQjMsICAgMzIsIAogICAgICAgICAgICAgICAgICAgIElSQjAsICAgMzIsIAogICAgICAg ICAgICAgICAgICAgIElSQjEsICAgMzIsIAogICAgICAgICAgICAgICAgICAgIElSQjIsICAg MzIsIAogICAgICAgICAgICAgICAgICAgIElSQjMsICAgMzIsIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgxMEQwKSwgCiAgICAgICAgICAgICAgICAgICAgUkFBMCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBSQUExLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFJB QTIsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUkFBMywgICAxLCAKICAgICAgICAgICAg ICAgICAgICBSUEIwLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFJQQjEsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgUlBCMiwgICAxLCAKICAgICAgICAgICAgICAgICAgICBSUEIz LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFJQQzAsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgUlBDMSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBSUEMyLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIFJQQzMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUlNBVCwg ICAxLCAKICAgICAgICAgICAgICAgICAgICBSR0JFLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIFJYSEMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUlhEQywgICAxLCAKICAgICAg ICAgICAgICAgICAgICBSVUZTLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFJQRDAsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgUlBEMSwgICAxLCAKICAgICAgICAgICAgICAgICAg ICBSUEQyLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFJQRDMsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgUlBFMCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBSUEUxLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIFJQRTIsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg UlBFMywgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTBENCksIAogICAg ICAgICAgICAgICAgICAgIEFQQTAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQVBBMSwg ICAxLCAKICAgICAgICAgICAgICAgICAgICBBUEEyLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIEFQQTMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQVBCMCwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBBUEIxLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEFQQjIsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgQVBCMywgICAxLCAKICAgICAgICAgICAgICAgICAg ICBBUEMwLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEFQQzEsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgQVBDMiwgICAxLCAKICAgICAgICAgICAgICAgICAgICBBUEMzLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIEFTQVQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg QUdCRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBBWEhDLCAgIDEsIAogICAgICAgICAg ICAgICAgICAgIEFYREMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQVVGUywgICAxLCAK ICAgICAgICAgICAgICAgICAgICBBUEQwLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEFQ RDEsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQVBEMiwgICAxLCAKICAgICAgICAgICAg ICAgICAgICBBUEQzLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEFQRTAsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgQVBFMSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBBUEUy LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEFQRTMsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDE4MDApLCAKICAgICAgICAgICAgICAgICAgICBBQ1dBLCAgIDMy LCAKICAgICAgICAgICAgICAgICAgICBEQ1dBLCAgIDMyLCAKICAgICAgICAgICAgICAgICAg ICBBQ0VULCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBEQ0VULCAgIDMyLCAKICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MThFOCksIAogICAgICAgICAgICAgICAgICAgICAg ICAsICAgMjksIAogICAgICAgICAgICAgICAgICAgIEFQRzMsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICAgICBDRUNFLCAgIDEsIAog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxQjBDKSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBJU0FULCAgIDEsIAogICAgICAg ICAgICAgICAgICAgICAgICAsICAgMTgsIAogICAgICAgICAgICAgICAgICAgIExUUlUsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDFCMUMpLCAKICAgICAgICAgICAg ICAgICAgICAgICAgLCAgIDIyLCAKICAgICAgICAgICAgICAgICAgICBYU1FELCAgIDEsIAog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxQkQwKSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICwgICAzMSwgCiAgICAgICAgICAgICAgICAgICAgQ1BQTSwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MUUyMCksIAogICAgICAgICAgICAgICAgICAgIEdC RUQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDFFMjgpLCAKICAgICAg ICAgICAgICAgICAgICAgICAgLCAgIDIyLCAKICAgICAgICAgICAgICAgICAgICBTQ0ZELCAg IDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFBHM0MsIDEs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KEFyZzApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiUEczIEVuYWJsZSIpCiAgICAgICAgICAgICAgICAgICAgICAgIEFQRzMgPSBPbmUK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBHMyBEaXNh YmxlIikKICAgICAgICAgICAgICAgICAgICAgICAgQVBHMyA9IFplcm8KICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChQ RzNULCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmIChBUEczKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChQU09DLCAxLCBTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQU09OKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFyZzApCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJQU19PTiBFbmFibGUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VDRSA9IE9u ZQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlBTX09OIERpc2FibGUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Q0VDRSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFBTT1Ms IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKENFQ0UpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKENGQUUsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoQ1BQ RSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KENQUEUgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKERlcmVmT2YgKEFyZzAgW1plcm9dKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiQ1BQTSBGb3JjZWQgQWxpZ25tZW50IERpc2FibGUiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENQUE0gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNQUE0gRm9y Y2VkIEFsaWdubWVudCBFbmFibGUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENQUE0gPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU0FUMCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE3MDAwMCkgIC8vIF9BRFI6IEFk ZHJlc3MKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8v IF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBeXlBQTUMuSVNBVCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlNBVEEgUFMwIExUUiBpZ25vcmUgYml0IHN0YXR1cyA9ICIsIFRvSGV4U3Ry aW5nICheXlBQTUMuSVNBVCkpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBeXlBQTUMuSVNBVCA9IE9u ZQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU0FUQSBQUzMgTFRS IGlnbm9yZSBiaXQgc3RhdHVzID0gIiwgVG9IZXhTdHJpbmcgKF5eUFBNQy5JU0FUKSkpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoU1REMyAhPSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKF9EU0QsIFBhY2thZ2UgKDB4MDIpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0 YQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBV bmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VE M0VuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBDSUQgKEFy ZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFNBVEMpICYmIENvbmRSZWZPZiAoU0FURCkp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFNB VEMgKEFyZzApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFNBVEQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TMFcsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKFBSVDApCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHhGRkZGKSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1BQUiAm IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIERldmljZSAoUFJUMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAwMDFGRkZGKSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1BQUiAmIDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBEZXZpY2UgKFBSVDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0FEUiwgMHgwMDAyRkZGRikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNQUFIgJiAweDA0 KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgRGV2aWNlIChQUlQzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9BRFIsIDB4MDAwM0ZGRkYpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTUFBSICYgMHgwOCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIERldmljZSAoUFJUNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBOYW1lIChfQURSLCAweDAwMDRGRkZGKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1BQUiAmIDB4MTApKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBEZXZpY2UgKFBSVDUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0FEUiwgMHgwMDA1RkZGRikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNQUFIgJiAweDIwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg RGV2aWNlIChQUlQ2KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5h bWUgKF9BRFIsIDB4MDAwNkZGRkYpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTUFBSICYgMHg0MCkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERl dmljZSAoUFJUNykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQURSLCAweDAwMDdGRkZGKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1BQUiAmIDB4ODApKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgRGV2aWNlIChYSENJKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1l IChfQURSLCAweDAwMTQwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAg TmFtZSAoRFVXUywgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKFBVMkMsIFplcm8pCiAg ICAgICAgICAgICAgICBOYW1lIChQVTNDLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAo QUhXQSwgT25lKQogICAgICAgICAgICAgICAgTmFtZSAoUFBJRCwgMHg0RikKICAgICAgICAg ICAgICAgIERVV1MgPSBcRFVXUwogICAgICAgICAgICAgICAgUFUyQyA9IF5QVTJDIC8qIFxf U0JfLlBDMDIuUFUyQyAqLwogICAgICAgICAgICAgICAgUFUzQyA9IF5QVTNDIC8qIFxfU0Jf LlBDMDIuUFUzQyAqLwogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRFVXUykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcg KDB4NkIsIERVV1MpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEdQUlcgKDB4NkIsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFhQUlQsIFBD SV9Db25maWcsIFplcm8sIDB4MDEwMCkKICAgICAgICAgICAgICAgIEZpZWxkIChYUFJULCBB bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgRFZJRCwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEw KSwgCiAgICAgICAgICAgICAgICAgICAgWEFEUiwgICA2NCwgCiAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDc0KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDc1KSwg CiAgICAgICAgICAgICAgICAgICAgUE1FRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4NzYpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTIpLCAKICAg ICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIEQzSEUs ICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwg NCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiWEhDSSBfRFNNIikKICAg ICAgICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBDSUQgKEFyZzAsIEFyZzEsIEFy ZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcwID09IFRvVVVJRCAoIjIwM2IyMDNiLTFmMTMtNDA5YS05YWFlLTFhMDM0NzUy NTU4NCIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAz ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoQUhXQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKChBSFdBICYm IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9T M0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUzNEOiBTMyBEZXZpY2UgU3RhdGUKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUzRELCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX1M0RDogUzQgRGV2aWNlIFN0YXRlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1MzVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TM1c6IFMz IERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1M0VywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TNFc6IFM0IERldmljZSBXYWtl IFN0YXRlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDAzKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1MwVywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTVywgMywgTm90U2VyaWFs aXplZCkgIC8vIF9EU1c6IERldmljZSBTbGVlcCBXYWtlCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKF5SSFVCLklOSVIpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXlJIVUIuSU5JUiAoKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKFVTUkEsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgoUFUyQyArIEFyZzApKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoU1NQQSwgMSwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKChQVTJDICsgKDB4MDIgKyBB cmcwKSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChVUFJV LCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIF5eU0JQQy5QQ0FPIChQUElELCBBcmcwLCBBcmcxLCBBcmcyKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8v IF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBBREJHICgiWEhDSSBEMCIpCiAgICAgICAgICAgICAgICAgICAgVVBSVSAoWmVybywg MHhGRkZGRkZGNywgWmVybykKICAgICAgICAgICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhG RkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFBTMFgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUFMwWCAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQp ICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQURCRyAoIlhIQ0kgRDMiKQogICAgICAgICAgICAgICAgICAgIFVQUlUgKFpl cm8sIDB4RkZGRkZGRkYsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgSWYgKChEVklEID09 IDB4RkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChQUzNYKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFBTM1ggKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChDVUlELCAxLCBTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSBUb1VVSUQgKCI3Yzk1MTJhOS0xNzA1LTRjYjQtYWY3ZC01MDZhMjQyM2FiNzEiKSAvKiBV bmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgRGV2aWNlIChSSFVCKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3Rh dGUgMAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlhIQ0kgUkhVQiBQUzAiKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERWSUQg PT0gMHhGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUzBYKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlhI Q0kgQ1NEMCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU0QwICgweDE2KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUFMwWCAoKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzIsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMyOiBQb3dlciBTdGF0ZSAyCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiWEhDSSBSSFVC IFBTMiIpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRFZJRCA9PSAweEZGRkYpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFBTMlgpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUzJYICgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHICgiWEhDSSBDU0QzIikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENTRDMgKDB4MTYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2Vy aWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJYSENJIFJIVUIgUFMzIikKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChEVklEID09IDB4RkZGRikpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoUFMzWCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBTM1ggKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJYSENJIENTRDMiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NEMyAo MHgxNikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8g X0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlhIQ0kgUkhVQiBfRFNNIikKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImNlMmVlMzg1LTAwZTYtNDhj Yi05ZjA1LTJlZGI5MjdjNDg5OSIpIC8qIFVTQiBDb250cm9sbGVyICovKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJYSENJIFJIVUIgRjAiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHg4MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDA3KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiWEhDSSBSSFVCIEY3IikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChQVTJDKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoT25lIDw9IFBVMkMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKEhTMDEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo X0FEUiwgT25lKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKDB4MDIgPD0gUFUyQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoSFMwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURS LCAweDAyKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKDB4MDMgPD0gUFUyQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERldmljZSAoSFMwMykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAw eDAzKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQ29uZFJlZk9mIChWVENNKSAmJiAoVlRDTSA9PSBPbmUpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoKFNYUDEgPT0gMHgwMykgfHwgKFNYUDIgPT0gMHgwMykpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChfVVBDLCBQYWNrYWdlICgweDA0KSAgLy8gX1VQQzogVVNC IFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QTEQsIFBhY2thZ2UgKDB4MDEpICAvLyBf UExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUb1BMRCAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9SZXZpc2lvbiAgICAgICAgICAgPSAweDIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9JZ25vcmVDb2xvciAg ICAgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9SZWQgICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9HcmVlbiAgICAgICAgICAgICAg PSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9CbHVlICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9XaWR0aCAgICAgICAgICAgICAgPSAweDAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9I ZWlnaHQgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBMRF9Vc2VyVmlzaWJsZSAgICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Eb2NrICAg ICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9MaWQgICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9QYW5lbCAgICAgICAg ICAgICAgPSAiVE9QIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1ZlcnRpY2FsUG9zaXRpb24gICA9ICJVUFBFUiIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFsUG9z aXRpb24gPSAiTEVGVCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBMRF9TaGFwZSAgICAgICAgICAgICAgPSAiUk9VTkQiLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBPcmllbnRh dGlvbiAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfR3JvdXBUb2tlbiAgICAgICAgID0gMHgxLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBQb3NpdGlvbiAgICAg ID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQTERfQmF5ICAgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfRWplY3RhYmxlICAgICAgICAgID0gMHgw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf RWplY3RSZXF1aXJlZCAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfQ2FiaW5ldE51bWJlciAgICAgID0gMHgwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQ2FyZENh Z2VOdW1iZXIgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTERfUmVmZXJlbmNlICAgICAgICAgID0gMHgwLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUm90YXRpb24gICAg ICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfT3JkZXIgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVmVydGljYWxPZmZzZXQgICAg ID0gMHhGRkZGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQTERfSG9yaXpvbnRhbE9mZnNldCAgID0gMHhGRkZGKQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEZXZpY2UgKENJUikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNz CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCgweDAz ICsgU1hJMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChf UExELCBQYWNrYWdlICgweDAxKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2 aWNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1BMRCAoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf UmV2aXNpb24gICAgICAgICAgID0gMHgyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUExEX0lnbm9yZUNvbG9yICAgICAgICA9IDB4MSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBM RF9SZWQgICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JlZW4gICAgICAgICAgICAgID0gMHgw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UExEX0JsdWUgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9XaWR0aCAgICAgICAgICAgICAgPSAw eDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQTERfSGVpZ2h0ICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1VzZXJWaXNpYmxlICAgICAgICA9 IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBMRF9Eb2NrICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfTGlkICAgICAgICAgICAgICAg ID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUExEX1BhbmVsICAgICAgICAgICAgICA9ICJGUk9OVCIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVmVydGljYWxQb3Np dGlvbiAgID0gIlVQUEVSIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFsUG9zaXRpb24gPSAiQ0VOVEVSIiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9T aGFwZSAgICAgICAgICAgICAgPSAiUk9VTkQiLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyb3VwT3JpZW50YXRpb24gICA9IDB4 MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9Hcm91cFRva2VuICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBQb3NpdGlvbiAgICAgID0g MHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUExEX0JheSAgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9FamVjdGFibGUgICAgICAgICAg PSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQTERfRWplY3RSZXF1aXJlZCAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0NhYmluZXROdW1iZXIgICAg ICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9DYXJkQ2FnZU51bWJlciAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUmVmZXJlbmNlICAgICAg ICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1JvdGF0aW9uICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9PcmRlciAgICAgICAg ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTERfVmVydGljYWxPZmZzZXQgICAgID0gMHhDOCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFs T2Zmc2V0ICAgPSAweEEwKQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MDQg PD0gUFUyQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERldmljZSAoSFMwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA0KSAgLy8g X0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MDUgPD0g UFUyQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERldmljZSAoSFMwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA1KSAgLy8gX0FE UjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQ29uZFJl Zk9mIChWVENNKSAmJiAoVlRDTSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFNY UDEgPT0gMHgwNSkgfHwgKFNYUDIgPT0gMHgwNSkpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChfVVBDLCBQYWNrYWdlICgweDA0KSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJp bGl0aWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9QTEQsIFBhY2thZ2UgKDB4MDEpICAvLyBfUExEOiBQaHlzaWNh bCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU b1BMRCAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9SZXZpc2lvbiAgICAgICAgICAgPSAweDIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9JZ25vcmVDb2xvciAgICAgICAgPSAweDEs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9S ZWQgICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBMRF9HcmVlbiAgICAgICAgICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9CbHVlICAg ICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9XaWR0aCAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9IZWlnaHQgICAgICAg ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9Vc2VyVmlzaWJsZSAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Eb2NrICAgICAgICAgICAgICAg PSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9MaWQgICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9QYW5lbCAgICAgICAgICAgICAgPSAiVE9Q IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExE X1ZlcnRpY2FsUG9zaXRpb24gICA9ICJVUFBFUiIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFsUG9zaXRpb24gPSAiTEVG VCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBM RF9TaGFwZSAgICAgICAgICAgICAgPSAiUk9VTkQiLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBPcmllbnRhdGlvbiAgID0gMHgw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf R3JvdXBUb2tlbiAgICAgICAgID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBQb3NpdGlvbiAgICAgID0gMHgxLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQmF5ICAg ICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTERfRWplY3RhYmxlICAgICAgICAgID0gMHgwLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfRWplY3RSZXF1aXJl ZCAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfQ2FiaW5ldE51bWJlciAgICAgID0gMHgwLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQ2FyZENhZ2VOdW1iZXIgICAg ID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQTERfUmVmZXJlbmNlICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUm90YXRpb24gICAgICAgICAgID0gMHgw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf T3JkZXIgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfVmVydGljYWxPZmZzZXQgICAgID0gMHhGRkZGLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfSG9y aXpvbnRhbE9mZnNldCAgID0gMHhGRkZGKQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEZXZpY2UgKENJUikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCgweDA1ICsgU1hJMSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfUExELCBQYWNrYWdl ICgweDAxKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1BMRCAoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUmV2aXNpb24gICAg ICAgICAgID0gMHgyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUExEX0lnbm9yZUNvbG9yICAgICAgICA9IDB4MSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9SZWQgICAgICAg ICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTERfR3JlZW4gICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0JsdWUgICAg ICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9XaWR0aCAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfSGVpZ2h0 ICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUExEX1VzZXJWaXNpYmxlICAgICAgICA9IDB4MCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Eb2Nr ICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfTGlkICAgICAgICAgICAgICAgID0gMHgxLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1Bh bmVsICAgICAgICAgICAgICA9ICJGUk9OVCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVmVydGljYWxQb3NpdGlvbiAgID0gIlVQ UEVSIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBMRF9Ib3Jpem9udGFsUG9zaXRpb24gPSAiQ0VOVEVSIiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9TaGFwZSAgICAgICAg ICAgICAgPSAiUk9VTkQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUExEX0dyb3VwT3JpZW50YXRpb24gICA9IDB4MCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFRv a2VuICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQTERfR3JvdXBQb3NpdGlvbiAgICAgID0gMHgwLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0JheSAg ICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBMRF9FamVjdGFibGUgICAgICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfRWpl Y3RSZXF1aXJlZCAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUExEX0NhYmluZXROdW1iZXIgICAgICA9IDB4MCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9D YXJkQ2FnZU51bWJlciAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQTERfUmVmZXJlbmNlICAgICAgICAgID0gMHgwLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExE X1JvdGF0aW9uICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9PcmRlciAgICAgICAgICAgICAgPSAweDAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ TERfVmVydGljYWxPZmZzZXQgICAgID0gMHhDOCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFsT2Zmc2V0ICAgPSAw eEEwKQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MDYgPD0gUFUyQykpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERl dmljZSAoSFMwNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA2KSAgLy8gX0FEUjogQWRkcmVz cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MDcgPD0gUFUyQykpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmlj ZSAoSFMwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA3KSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MDggPD0gUFUyQykpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAo SFMwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA4KSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoUkNBTSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9BRFIsIDB4MDgpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8v IF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO YW1lIChVUENQLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBDUCkgLyogXF9TQl8uUEMw Mi5YSENJLlJIVUIuSFMwOC5SQ0FNLl9VUEMuVVBDUCAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2Nh dGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUExEUCwgUGFj a2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4 MTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICov ICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8g Li4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogMDAwOCAqLyAgMHgyNCwgMHgxRCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgIC8vICQuLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUExEUCkgLyogXF9TQl8uUEMwMi5YSENJLlJIVUIuSFMwOC5SQ0FNLl9QTEQuUExE UCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KDB4MDkgPD0gUFUyQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERldmljZSAoSFMwOSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA5 KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4 MEEgPD0gUFUyQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERldmljZSAoSFMxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDBBKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MEIg PD0gUFUyQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERldmljZSAoSFMxMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDBCKSAgLy8g X0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MEMgPD0g UFUyQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERldmljZSAoSFMxMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDBDKSAgLy8gX0FE UjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MEQgPD0gUFUy QykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERldmljZSAoSFMxMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDBEKSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MEUgPD0gUFUyQykp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IERldmljZSAoSFMxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDBFKSAgLy8gX0FEUjogQWRk cmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFVTUjEpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFVTUkEgKE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoVVNS MikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoVVNSQSAoMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBVM0MpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChPbmUgPD0gUFUzQykpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERl dmljZSAoU1MwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNTUEEgKE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKDB4MDIgPD0gUFUzQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoU1MwMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFNTUEEgKDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgweDAzIDw9IFBVM0MpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBE ZXZpY2UgKFNTMDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTU1BBICgweDAzKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoMHgwNCA8PSBQVTNDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChTUzA0KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoU1NQQSAoMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKDB4MDUgPD0gUFUzQykp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IERldmljZSAoU1MwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNTUEEgKDB4MDUp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKCgweDA2IDw9IFBVM0MpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFNTMDYpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChTU1BBICgweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoMHgwNyA8PSBQVTND KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRGV2aWNlIChTUzA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU1NQQSAoMHgw NykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKDB4MDggPD0gUFUzQykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoU1MwOCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFNTUEEgKDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgweDA5IDw9IFBV M0MpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBEZXZpY2UgKFNTMDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTU1BBICgw eDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoMHgwQSA8PSBQVTNDKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChTUzEwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoU1NQQSAoMHgwQSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEdMQU4pCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxRjAwMDYpICAvLyBfQURSOiBB ZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1lIChfUzBXLCAweDAzKSAgLy8gX1MwVzogUzAg RGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2QiwgMHgw NCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0 LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQQ0lDIChBcmcwKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAo QXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU1csIDMsIE5vdFNl cmlhbGl6ZWQpICAvLyBfRFNXOiBEZXZpY2UgU2xlZXAgV2FrZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2Ug KEhEQVMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAx RjAwMDMpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAs IDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkhELUEgQ3RybHIgRDAiKQogICAgICAg ICAgICAgICAgICAgIFMwMjMgKFplcm8sIE9uZSkKICAgICAgICAgICAgICAgICAgICBJZiAo Q29uZFJlZk9mIChcX1NCLlBDMDIuSERBUy5QUzBYKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFBTMFggKCkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBT ZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJIRC1BIEN0cmxyIEQzIikKICAgICAgICAgICAg ICAgICAgICBTMDIzIChaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFxfU0IuUEMwMi5IREFTLlBTM1gpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUFMzWCAoKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NkIsIDB4MDQp KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo SERBUiwgUENJX0NvbmZpZywgWmVybywgMHgwMTAwKQogICAgICAgICAgICAgICAgRmllbGQg KEhEQVIsIFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgVkRJRCwgICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDMpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBT dGF0ZQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNXLCAzLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0RTVzogRGV2aWNlIFNsZWVwIFdha2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChOQlUwLCBSZXNvdXJjZVRlbXBsYXRl ICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUVdvcmRNZW1vcnkg KFJlc291cmNlQ29uc3VtZXIsIFBvc0RlY29kZSwgTWluTm90Rml4ZWQsIE1heE5vdEZpeGVk LCBOb25DYWNoZWFibGUsIFJlYWRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAweDAw MDAwMDAwMDAwMDAwMDEsIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBUcmFuc2xhdGlvbiBPZmZz ZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICAgICAgLCwgX1kzQiwgQWRkcmVzc1JhbmdlQUNQSSwg VHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkhEQVMgX0lOSSIpCiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoTkJVMCwgXF9TQi5QQzAyLkhEQVMu X1kzQi5fTUlOLCBOQkEwKSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFkZHJlc3MKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChOQlUwLCBcX1NCLlBDMDIuSERBUy5f WTNCLl9NQVgsIE5NQTApICAvLyBfTUFYOiBNYXhpbXVtIEJhc2UgQWRkcmVzcwogICAgICAg ICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKE5CVTAsIFxfU0IuUEMwMi5IREFTLl9Z M0IuX0xFTiwgTkxFMCkgIC8vIF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgICAgIE5C QTAgPSBOSEFBIC8qIFxfU0JfLlBDMDIuTkhBQSAqLwogICAgICAgICAgICAgICAgICAgIE5N QTAgPSAoTkhBQSArIChOSExMIC0gT25lKSkKICAgICAgICAgICAgICAgICAgICBOTEUwID0g TkhMTCAvKiBcX1NCXy5QQzAyLk5ITEwgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBOYW1lIChfRFNELCBQYWNrYWdlICgweDAyKSAgLy8gX0RTRDogRGV2aWNlLVNw ZWNpZmljIERhdGEKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUb1VV SUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEiKSAvKiBEZXZpY2Ug UHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJuaGx0LXZlcnNpb24iLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIxLjgtMCIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBEZXZpY2UgKElEQSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDEw MDAwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJI REFTIF9EU00iKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChBcmcyKQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwg QXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJhNjlmODg2ZS02Y2ViLTQ1 OTQtYTQxZi03YjVkY2UyNGM1NTMiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRv SW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweENGICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHICgiX0RTTSBGdW4gMSBOSExUIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzMpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoTkJVMCkgLyogXF9TQl8uUEMwMi5IREFTLk5CVTAgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE5CVTApIC8qIFxfU0JfLlBDMDIuSERBUy5OQlUwICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiX0RTTSBGdW4gMiBGTVNLIikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChBREZNKSAvKiBcX1NCXy5QQzAyLkFERk0gKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ2FzZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJfRFNNIEZ1biAz IFBQTVMiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChcX1NCLlBDMDIuSERBUy5QUE1TKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChQUE1TIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJQUE1TIG5vdCBmb3VuZCIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJfRFNNIEZ1biA2IFhDRkciKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFhUQUwpIC8qIFxfU0JfLlBDMDIuWFRBTCAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIl9EU00gRnVuIDcgSERC TyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKEhEQk8pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSERCTykgLyogXF9T Ql8uUEMwMi5IREJPICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJfRFNNIEZ1biBOT0siKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChISVdDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKEhJV0MgKEFyZzApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEhJRFcp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChISURXIChBcmcwLCBBcmcxLCBBcmcyLCBBcmcz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJfRFNNIFVVSUQgTk9LIikKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBTY29wZSAoSERBUy5JREEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIERldmljZSAoU05EVykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBOYW1lIChfQURSLCAweDQwMDAwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9DSUQsIFBhY2thZ2UgKDB4MDIpICAvLyBfQ0lEOiBDb21wYXRp YmxlIElECiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAi UFJQMDAwMDEiLCAKICAgICAgICAgICAgICAgICAgICAgICAgIlBOUDBBMDUiIC8qIEdlbmVy aWMgQ29udGFpbmVyIERldmljZSAqLwogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTog U3RhdHVzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKFFDRkcsIDQsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChEZXJlZk9mIChBcmcwIFtPbmVd KSBbWmVyb10pIFtPbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBBcmcxCiAg ICAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKERlcmVmT2YgKEFyZzAgW09uZV0pIFsw eDA0XSkgW09uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IEFyZzIKICAgICAg ICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRGVyZWZPZiAoQXJnMCBbT25lXSkgWzB4MDVd KSBbT25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gQXJnMwogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChYQ0ZHLCAyLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcxID09IDB4MDE2RTM2MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiWFRBTCAyNE1IeiIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAxNkUzNjAwCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAwNUI4RDgwCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDIgPSAweDdECiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDMgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAyNDlGMDAwKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlhUQUwgMzgu NE1IeiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAyNDlGMDAw CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAwNDkzRTAwCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDMyCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDMgPSAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSAweDAxMjRGODAwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlhUQUwgMTkuMk1IeiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg PSAweDAxMjRGODAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAw NDkzRTAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAweDMyCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSAweDA0CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiWFRBTCBVTlNV UFBPUlRFRCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDIgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDMgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIERlcmVmT2YgKERlcmVmT2YgKEFyZzAgW09uZV0pIFtPbmVdKSBbT25l XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gTG9jYWwwCiAgICAgICAgICAgICAg ICAgICAgICAgIERlcmVmT2YgKERlcmVmT2YgKERlcmVmT2YgKEFyZzAgW09uZV0pIFsweDA4 XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBbT25lXSkgW1plcm9dID0gTG9jYWwx CiAgICAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKERlcmVmT2YgKEFyZzAgW09uZV0p IFsweDBBXSkgW09uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IExvY2FsMgog ICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChEZXJlZk9mIChBcmcwIFtPbmVdKSBb MHgwQl0pIFtPbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBMb2NhbDMKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoRENGRywg MywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIERlcmVmT2YgKERlcmVmT2YgKEFyZzAgW09uZV0pIFsweDAyXSkgW09uZV0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IEFyZzEKICAgICAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoRGVyZWZPZiAoQXJnMCBbT25lXSkgWzB4MDNdKSBbT25lXQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gQXJnMgogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChTRFdVLCAxLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAo RGVyZWZPZiAoX0RTRCBbT25lXSkgWzB4MDJdKSBbT25lXQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gQXJnMAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlh bGl6ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlNORFcgX0lOSSIpCiAgICAgICAgICAgICAgICAgICAgICAgIFNEV1UgKFNXTUMpCiAg ICAgICAgICAgICAgICAgICAgICAgIFFDRkcgKExOSzAsIFNXUTAsIEFDUzAsIFNNTDApCiAg ICAgICAgICAgICAgICAgICAgICAgIFFDRkcgKExOSzEsIFNXUTEsIEFDUzEsIFNNTDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIFFDRkcgKExOSzIsIFNXUTIsIEFDUzIsIFNNTDIpCiAg ICAgICAgICAgICAgICAgICAgICAgIFFDRkcgKExOSzMsIFNXUTMsIEFDUzMsIFNNTDMpCiAg ICAgICAgICAgICAgICAgICAgICAgIFhDRkcgKExOSzAsIFhUQUwpCiAgICAgICAgICAgICAg ICAgICAgICAgIFhDRkcgKExOSzEsIFhUQUwpCiAgICAgICAgICAgICAgICAgICAgICAgIFhD RkcgKExOSzIsIFhUQUwpCiAgICAgICAgICAgICAgICAgICAgICAgIFhDRkcgKExOSzMsIFhU QUwpCiAgICAgICAgICAgICAgICAgICAgICAgIERDRkcgKExOSzAsIERBSTAsIERPRDApCiAg ICAgICAgICAgICAgICAgICAgICAgIERDRkcgKExOSzEsIERBSTEsIERPRDApCiAgICAgICAg ICAgICAgICAgICAgICAgIERDRkcgKExOSzIsIERBSTIsIERPRDApCiAgICAgICAgICAgICAg ICAgICAgICAgIERDRkcgKExOSzMsIERBSTMsIERPRDApCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChfRFNELCBQYWNrYWdlICgweDA0KSAgLy8g X0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJj OWJiZjRhYTMwMSIpIC8qIERldmljZSBQcm9wZXJ0aWVzIGZvciBfRFNEICovLCAKICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAibWlwaS1zZHctc3ctaW50ZXJmYWNlLXJldmlzaW9uIiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDAxMDAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAibWlwaS1zZHctbWFuYWdlci1saXN0IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctbWFz dGVyLWNvdW50IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImRiYjhlM2U2LTU4ODYtNGJhNi04 Nzk1LTEzMTlmNTJhOTY2YiIpIC8qIEhpZXJhcmNoaWNhbCBEYXRhIEV4dGVuc2lvbiAqLywg CiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIm1pcGktc2R3LWxpbmstMC1zdWJwcm9wZXJ0aWVzIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIkxOSzAiCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJtaXBpLXNkdy1saW5rLTEtc3VicHJvcGVydGllcyIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJMTksxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi bWlwaS1zZHctbGluay0yLXN1YnByb3BlcnRpZXMiLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiTE5LMiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGkt c2R3LWxpbmstMy1zdWJwcm9wZXJ0aWVzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkxOSzMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKExOSzAsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5 MS1iYzliYmY0YWEzMDEiKSAvKiBEZXZpY2UgUHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MEUpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImludGVsLXF1aXJrLW1hc2siLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlbC1zZHctaXAt Y2xvY2siLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDlGMDAwCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlbC1zZHctZG9haXMiLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImludGVsLXNkdy1kb2RzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlbC1hdXRvbm9tb3Vz LWNsb2NrLXN0b3AiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlbC1zZHctbGFuZS1tYXNrIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJtaXBpLXNkdy1jbG9jay1zdG9wLW1vZGUwLXN1cHBvcnRlZCIsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAibWlwaS1zZHctY2xvY2stc3RvcC1tb2RlMS1zdXBwb3J0ZWQiLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIm1pcGktc2R3LWNsb2NrLWZyZXF1ZW5jaWVzLXN1cHBvcnRlZCIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwNDkzRTAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctZGVmYXVsdC1mcmFtZS1yYXRlIiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhCQjgwCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJtaXBpLXNkdy1kZWZhdWx0LWZyYW1lLXJvdy1zaXplIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAibWlwaS1zZHctZGVmYXVsdC1mcmFtZS1jb2wtc2l6ZSIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIm1pcGktc2R3LWR5bmFtaWMtZnJhbWUtc2hhcGUiLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1p cGktc2R3LWNvbW1hbmQtZXJyb3ItdGhyZXNob2xkIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgxMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICBOYW1lIChMTksxLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZGFmZmQ4MTQtNmViYS00ZDhj LThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2aWNlIFByb3BlcnRpZXMgZm9yIF9EU0QgKi8s IAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDBFKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJpbnRlbC1xdWlyay1tYXNrIiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWwtc2R3 LWlwLWNsb2NrIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ5RjAw MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWwtc2R3LWRvYWlzIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJpbnRlbC1zZHctZG9kcyIsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWwtYXV0b25v bW91cy1jbG9jay1zdG9wIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWwtc2R3LWxhbmUtbWFzayIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAibWlwaS1zZHctY2xvY2stc3RvcC1tb2RlMC1zdXBwb3J0ZWQiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIm1pcGktc2R3LWNsb2NrLXN0b3AtbW9kZTEtc3VwcG9ydGVkIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJtaXBpLXNkdy1jbG9jay1mcmVxdWVuY2llcy1zdXBwb3J0ZWQiLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDQ5M0UwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWRlZmF1bHQtZnJhbWUtcmF0 ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QkI4MAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctZGVmYXVsdC1mcmFtZS1yb3ctc2l6ZSIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIm1pcGktc2R3LWRlZmF1bHQtZnJhbWUtY29sLXNpemUiLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJtaXBpLXNkdy1keW5hbWljLWZyYW1lLXNoYXBlIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJtaXBpLXNkdy1jb21tYW5kLWVycm9yLXRocmVzaG9sZCIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoTE5LMiwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImRhZmZkODE0LTZlYmEt NGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIpIC8qIERldmljZSBQcm9wZXJ0aWVzIGZvciBfRFNE ICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwRSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiaW50ZWwtcXVpcmstbWFzayIsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVs LXNkdy1pcC1jbG9jayIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDI0 OUYwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVsLXNkdy1kb2FpcyIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiaW50ZWwtc2R3LWRvZHMiLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVsLWF1 dG9ub21vdXMtY2xvY2stc3RvcCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVsLXNkdy1sYW5lLW1h c2siLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWNsb2NrLXN0b3AtbW9kZTAtc3VwcG9ydGVk IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJtaXBpLXNkdy1jbG9jay1zdG9wLW1vZGUxLXN1cHBvcnRlZCIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAibWlwaS1zZHctY2xvY2stZnJlcXVlbmNpZXMtc3VwcG9ydGVkIiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDA0OTNFMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1kZWZhdWx0LWZyYW1l LXJhdGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEJCODAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWRlZmF1bHQtZnJhbWUtcm93LXNp emUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1kZWZhdWx0LWZyYW1lLWNvbC1zaXplIiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAibWlwaS1zZHctZHluYW1pYy1mcmFtZS1zaGFwZSIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAibWlwaS1zZHctY29tbWFuZC1lcnJvci10aHJlc2hvbGQiLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKExOSzMsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJkYWZmZDgxNC02 ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEiKSAvKiBEZXZpY2UgUHJvcGVydGllcyBmb3Ig X0RTRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MEUpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImludGVsLXF1aXJrLW1hc2siLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJp bnRlbC1zZHctaXAtY2xvY2siLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAyNDlGMDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlbC1zZHctZG9h aXMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImludGVsLXNkdy1kb2RzIiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRl bC1hdXRvbm9tb3VzLWNsb2NrLXN0b3AiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlbC1zZHctbGFu ZS1tYXNrIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1jbG9jay1zdG9wLW1vZGUwLXN1cHBv cnRlZCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctY2xvY2stc3RvcC1tb2RlMS1zdXBwb3J0 ZWQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWNsb2NrLWZyZXF1ZW5jaWVzLXN1cHBvcnRl ZCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwNDkzRTAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctZGVmYXVsdC1m cmFtZS1yYXRlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhCQjgwCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXBpLXNkdy1kZWZhdWx0LWZyYW1lLXJv dy1zaXplIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAibWlwaS1zZHctZGVmYXVsdC1mcmFtZS1jb2wtc2l6 ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIm1pcGktc2R3LWR5bmFtaWMtZnJhbWUtc2hhcGUiLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIm1pcGktc2R3LWNvbW1hbmQtZXJyb3ItdGhyZXNob2xkIiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKFVBT0UgIT0gWmVybykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChVQU9MKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHg1MDAwMDAwMCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX0NJRCwgUGFja2FnZSAoMHgwMikgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg IlBSUDAwMDAxIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUE5QMEEwNSIgLyog R2VuZXJpYyBDb250YWluZXIgRGV2aWNlICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFs aXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlVBT0wgX0RT TSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgi MmU2MGFlZmMtMWJhOC00NjdhLWI4Y2MtNTcyN2I5OGNlY2I3IikgLyogVW5rbm93biBVVUlE ICovKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChP bmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ0ZBRSAoQXJnMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfRFNELCBQYWNrYWdlICgweDA0KSAgLy8g X0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZGFmZmQ4MTQtNmViYS00ZDhj LThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2aWNlIFByb3BlcnRpZXMgZm9yIF9EU0QgKi8s IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVhb2wtY3RybC1jb3VudCIsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZGJiOGUzZTYtNTg4Ni00YmE2LTg3 OTUtMTMxOWY1MmE5NjZiIikgLyogSGllcmFyY2hpY2FsIERhdGEgRXh0ZW5zaW9uICovLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1YW9sLWRlc2NyaXB0b3ItMCIsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVUFPMCIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1YW9sLWRlc2NyaXB0b3ItMSIsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVUFPMSIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUg KFVBTzAsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImRhZmZkODE0LTZlYmEtNGQ4Yy04YTkx LWJjOWJiZjRhYTMwMSIpIC8qIERldmljZSBQcm9wZXJ0aWVzIGZvciBfRFNEICovLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ1YW9sLWluc3RhbmNlLW51bWJlciIsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmRmLXJvdXRpbmctZW5hYmxlZCIsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGVlci1pbnRlZ3JhdGVkLWNvbnRy b2xsZXItaWRlbnRpZmllciIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDk4RUQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKFVBTzEsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImRh ZmZkODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIpIC8qIERldmljZSBQcm9wZXJ0 aWVzIGZvciBfRFNEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1YW9sLWlu c3RhbmNlLW51bWJlciIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZGYt cm91dGluZy1lbmFibGVkIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw ZWVyLWludGVncmF0ZWQtY29udHJvbGxlci1pZGVudGlmaWVyIiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4QUJDRAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoUlAwMSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoUEJOVSwgWmVybykKICAgICAgICAgICAgICAgIFBCTlUg PSBQQlNCIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgTWV0aG9k IChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoUlBBMSAhPSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlBBMSkg LyogXF9TQl8uUEMwMi5SUEExICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMDFDMDAwMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoU0xPVCwgT25lKQogICAgICAg ICAgICAgICAgTmFtZSAoUFJUUCwgMHgwMikKICAgICAgICAgICAgICAgIE5hbWUgKExURU4s IFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChMTVNMLCBaZXJvKQogICAgICAgICAgICAg ICAgTmFtZSAoTE5TTCwgWmVybykKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBMVEVOID0gTFRSMSAvKiBcTFRSMSAqLwogICAgICAgICAg ICAgICAgICAgIExNU0wgPSBQTUwxIC8qIFxfU0JfLlBDMDIuUE1MMSAqLwogICAgICAgICAg ICAgICAgICAgIExOU0wgPSBQTkwxIC8qIFxfU0JfLlBDMDIuUE5MMSAqLwogICAgICAgICAg ICAgICAgICAgIElmICgoQ29uZFJlZk9mIChWTVBQKSAmJiBDb25kUmVmT2YgKFZNREUpKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFZN REUgPT0gT25lKSAmJiAoKFZNUFAgJiBPbmUpICE9IFplcm8pKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBDSCBSUDAx ICgxMjkvMjgvMCkgaXMgbWFwcGVkIHVuZGVyIFZNRCIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UElOSSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBJTkkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAy LlJQMDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMDEuUFJNVikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmlu ZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQz QyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUg RDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVt TWVtb3J5LCBeXlBDMDAuUEMyTSAoX0FEUiAoKSwgUEJOVSksIDB4MDQ4MCkKICAgICAgICAg ICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAgICAgICAgICAgICAgICAgICAgTDBTRSwgICAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMsIAogICAgICAgICAgICAgICAgICAg IExESVMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgCiAgICAgICAgICAgICAgICAgICAgICAg ICwgICAxMywgCiAgICAgICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAgICAgICAgICAgICAgICAgICBBQlBYLCAgIDEs IAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg UERDWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAg ICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVC KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAgICAgICAgUFNQWCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgICAgICAg ICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgICAgICBMTlJFLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICAgICAgIEQzSFQs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICAgICAgSFBFWCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBQTUVYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHhFMCksIAogICAgICAgICAgICAgICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAgICAgICAgICBOQ0I3LCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAg ICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgTDIzRSwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgzMjgpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAg ICAgICAgICAgICAgTFRTTSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NDA0KSwgCiAgICAgICAgICAgICAgICAgICAgTFNPRSwgICAxLCAKICAgICAgICAgICAgICAg ICAgICBMTlNFLCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBGaWVs ZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4REMpLCAKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAgICBIUFNYLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIFBNU1gsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00g YXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAg ICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhT dHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTDIzUiA9IE9uZQog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBX aGlsZSAoTDIzUikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNS IFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNDQjAgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdo aWxlICgoTEFTWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJp bmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KERMMjMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQg LSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTEFT WCA9PSBPbmUpICYmIChMTlJFID09IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBP bmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTE5SRSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiVG9nZ2xlIExOUkUiKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBM MjNFID0gT25lCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlIChMMjNF KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM b2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQ ICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgU0NCMCA9IE9u ZQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNT TSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBOYW1lIChMVFJWLCBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChQUk1W LCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAgICAgICAgICAg ICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMg TWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8q IERldmljZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMsIEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAw eDA2LCBGVU42KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZp ZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBBLCBGVU5BKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBG VU5CKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZVTjAgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU42ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU44ID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5B ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQ Q0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPUFRTKSAvKiBcX1NCXy5QQzAyLlJQMDEuX0RTTS5P UFRTICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExUUlYgW1plcm9dID0gKChMTVNMID4+IDB4MEEpICYgMHgwNykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYg MHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAy XSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExUUlYgWzB4MDNdID0gKExOU0wgJiAweDAzRkYpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikgLyogXF9TQl8uUEMwMi5SUDAx LkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAw eDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT25lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBBKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUFJEIChBcmcz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2Ug KFBYU1gpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBPcGVyYXRp b25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcsIFplcm8sIDB4MTApCiAgICAgICAgICAgICAg ICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEVklELCAgIDMyLCAKICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAgICAgICAg ICAgICAgIFBJWFgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQ1gsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NY ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIEFIQ0kiKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUE5W TSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChQSVhYID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgTlZN ZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEVklEID09IDB4RkZGRkZGRkYp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChJ U0dYLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChTVEQzICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFIQyAo KSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQg RW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3Rv cmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAv KiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93 ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KEdQMUUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDZC LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5 LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93 ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiX1BTMCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMwKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3Jt IFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgICAgICBQUFMwICgpCiAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBD SUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBf UFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMzIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcg UGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBQ UzMgKCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxh dGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAi LCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKEFEU0QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhT dHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBRFNEICgp KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1 MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNU b0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjZiNGFkNDIwLThm ZDMtNDM2NC1hY2Y4LWViOTQ4NzZmZDllYiIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAwKXt9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQt ZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAw eEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhTWCwgMHgwMikgLy8gRGV2aWNlIFdh a2UKICAgICAgICAgICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAgICAgICAgICAgICAg ICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElDTSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjA0KSAvKiBc X1NCXy5BUjA0ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEQwNCkgLyogXF9TQl8uUEQw NCAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZp Y2UgKFJQMDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFBCTlUsIFpl cm8pCiAgICAgICAgICAgICAgICBQQk5VID0gUEJTQiAvKiBFeHRlcm5hbCByZWZlcmVuY2Ug Ki8KICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoKFJQQTIgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFJQQTIpIC8qIFxfU0JfLlBDMDIuUlBBMiAqLwogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxQzAwMDEpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE5hbWUgKFNMT1QsIDB4MDIpCiAgICAgICAgICAgICAgICBOYW1lIChQUlRQLCAweDAyKQog ICAgICAgICAgICAgICAgTmFtZSAoTFRFTiwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUg KExNU0wsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChMTlNMLCBaZXJvKQogICAgICAg ICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5p dGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExURU4gPSBM VFIyIC8qIFxMVFIyICovCiAgICAgICAgICAgICAgICAgICAgTE1TTCA9IFBNTDIgLyogXF9T Ql8uUEMwMi5QTUwyICovCiAgICAgICAgICAgICAgICAgICAgTE5TTCA9IFBOTDIgLyogXF9T Ql8uUEMwMi5QTkwyICovCiAgICAgICAgICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZN UFApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCgoVk1ERSA9PSBPbmUpICYmICgoVk1QUCAmIDB4MDIp ICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlBDSCBSUDAyICgxMjkvMjgvMSkgaXMgbWFwcGVkIHVuZGVy IFZNRCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBJTkkgKCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMDIpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAy LlJQMDIuUFJNVikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50 aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheUFhT WC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChS RDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQz IC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVtTWVtb3J5LCBeXlBDMDAuUEMyTSAoX0FEUiAo KSwgUEJOVSksIDB4MDQ4MCkKICAgICAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAg ICAgICAgICAgICAgICAgICAgTDBTRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAg LCAgIDMsIAogICAgICAgICAgICAgICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUy KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAgICAg ICAgTEFTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAg ICAgICAgICAgICAgICAgICBBQlBYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERDWCwgICAxLCAKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVCKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDYwKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAg ICAgICAgICAgICAgICAgUFNQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NjgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAg ICAgICAgICBMTlJFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBNCks IAogICAgICAgICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAg ICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBQTUVYLCAg IDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMCksIAogICAgICAgICAgICAg ICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAg ICAgICAgICAgICAgICAgICBOQ0I3LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAg ICAgICAgICAgTDIzRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBMMjNSLCAgIDEsIAog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMjgpLCAKICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAgICAgICAgICAgICAgTFRTTSwgICA4LCAKICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDA0KSwgCiAgICAgICAgICAgICAgICAgICAg TFNPRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdy aXRlQXNaZXJvcykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4REMpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAg ICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFBNU1gsICAgMQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3Ry aW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTDIzUiA9IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTDIzUikKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNSIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFNDQjAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g WmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTEFTWCA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4g MHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5n IChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkK ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNT TSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKERMMjMsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQ Q0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAg ICAgICAgICAgICAgICAgICAgSWYgKCgoTEFTWCA9PSBPbmUpICYmIChMTlJFID09IFplcm8p KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo KExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExOUkUgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVG9n Z2xlIExOUkUiKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBMMjNFID0gT25lCiAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAg ICAgICAgICAgICAgICAgIFdoaWxlIChMMjNFKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAg ICAgICAgICAgICAgICAgICAgU0NCMCA9IE9uZQogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJp bmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChM VFJWLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBOYW1lIChQUk1WLCBaZXJvKQogICAgICAgICAgICAgICAgTmFt ZSAoUkQzQywgMHgwMikKICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFZE SUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQp ICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMt NGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZhY2Ug Ki8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3dp dGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMs IEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJp dEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA2LCBGVU42KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5 LCBGVU45KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxk IChPUFRTLCAweDBBLCBGVU5BKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBGVU5CKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjAgPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU42ID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU44ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMSA+PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGVU5BID0gT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5n IChPUFRTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPUFRT KSAvKiBcX1NCXy5QQzAyLlJQMDIuX0RTTS5PUFRTICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW1plcm9dID0g KChMTVNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDNdID0gKExO U0wgJiAweDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTFRSVikgLyogXF9TQl8uUEMwMi5SUDAyLkxUUlYgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQUEJBIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChVUFJEIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFBYU1gpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcs IFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBEVklELCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBJWFgsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFNDQ1gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJD Q1gsICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2 KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFBJWFggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQ U1NEIEFIQ0kiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoUE5WTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IDB4MDIpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlBTU0QgTlZNZSIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChEVklEID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChJU0dYLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4 MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTVEQzICE9IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lm aWMgRGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQgRW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFi NC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJm LTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEdQMUUpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChHUFJXICgweDZCLCAweDA0KSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAw LCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMCBQQ0llIFJQ IiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChQUFMwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAg ICAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMz IFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFBQUzMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIp CiAgICAgICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVj aWZpYyBEYXRhCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEFEU0QpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRl cm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChBRFNEICgpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50 YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRvVVVJRCAoIjZiNGFkNDIwLThmZDMtNDM2NC1hY2Y4LWViOTQ4NzZmZDllYiIp IC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAwKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlE ICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBV VUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmlj ZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAweEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUp KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlm eSAoUFhTWCwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICAgICAg UE1TWCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxl CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UElDTSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoUElDTSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChBUjA1KSAvKiBcX1NCXy5BUjA1ICovCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IFJldHVybiAoUEQwNSkgLyogXF9TQl8uUEQwNSAqLwogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFJQMDMpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKFBCTlUsIFplcm8pCiAgICAgICAgICAgICAgICBQQk5VID0g UEJTQiAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgICAgIE1ldGhvZCAo X0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFJQQTMgIT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJQQTMpIC8q IFxfU0JfLlBDMDIuUlBBMyAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDAxQzAwMDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKFNMT1QsIDB4MDMpCiAgICAgICAg ICAgICAgICBOYW1lIChQUlRQLCAweDAyKQogICAgICAgICAgICAgICAgTmFtZSAoTFRFTiwg WmVybykKICAgICAgICAgICAgICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAgICAg ICBOYW1lIChMTlNMLCBaZXJvKQogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIExURU4gPSBMVFIzIC8qIFxMVFIzICovCiAgICAgICAgICAg ICAgICAgICAgTE1TTCA9IFBNTDMgLyogXF9TQl8uUEMwMi5QTUwzICovCiAgICAgICAgICAg ICAgICAgICAgTE5TTCA9IFBOTDMgLyogXF9TQl8uUEMwMi5QTkwzICovCiAgICAgICAgICAg ICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZNUFApICYmIENvbmRSZWZPZiAoVk1ERSkpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoVk1E RSA9PSBPbmUpICYmICgoVk1QUCAmIDB4MDQpICE9IFplcm8pKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBDSCBSUDAz ICgxMjkvMjgvMikgaXMgbWFwcGVkIHVuZGVyIFZNRCIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UElOSSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBJTkkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAy LlJQMDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMDMuUFJNVikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmlu ZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQz QyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUg RDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVt TWVtb3J5LCBeXlBDMDAuUEMyTSAoX0FEUiAoKSwgUEJOVSksIDB4MDQ4MCkKICAgICAgICAg ICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAgICAgICAgICAgICAgICAgICAgTDBTRSwgICAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMsIAogICAgICAgICAgICAgICAgICAg IExESVMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgCiAgICAgICAgICAgICAgICAgICAgICAg ICwgICAxMywgCiAgICAgICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAgICAgICAgICAgICAgICAgICBBQlBYLCAgIDEs IAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg UERDWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAg ICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVC KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAgICAgICAgUFNQWCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgICAgICAg ICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgICAgICBMTlJFLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICAgICAgIEQzSFQs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICAgICAgSFBFWCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBQTUVYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHhFMCksIAogICAgICAgICAgICAgICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAgICAgICAgICBOQ0I3LCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAg ICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgTDIzRSwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgzMjgpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAg ICAgICAgICAgICAgTFRTTSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NDA0KSwgCiAgICAgICAgICAgICAgICAgICAgTFNPRSwgICAxLCAKICAgICAgICAgICAgICAg ICAgICBMTlNFLCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBGaWVs ZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4REMpLCAKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAgICBIUFNYLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIFBNU1gsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00g YXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAg ICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhT dHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTDIzUiA9IE9uZQog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBX aGlsZSAoTDIzUikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNS IFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNDQjAgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdo aWxlICgoTEFTWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJp bmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KERMMjMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQg LSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTEFT WCA9PSBPbmUpICYmIChMTlJFID09IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBP bmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTE5SRSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiVG9nZ2xlIExOUkUiKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBM MjNFID0gT25lCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlIChMMjNF KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM b2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQ ICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgU0NCMCA9IE9u ZQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNT TSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBOYW1lIChMVFJWLCBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChQUk1W LCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAgICAgICAgICAg ICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMg TWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8q IERldmljZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMsIEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAw eDA2LCBGVU42KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZp ZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBBLCBGVU5BKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBG VU5CKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZVTjAgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU42ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU44ID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5B ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQ Q0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPUFRTKSAvKiBcX1NCXy5QQzAyLlJQMDMuX0RTTS5P UFRTICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExUUlYgW1plcm9dID0gKChMTVNMID4+IDB4MEEpICYgMHgwNykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYg MHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAy XSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExUUlYgWzB4MDNdID0gKExOU0wgJiAweDAzRkYpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikgLyogXF9TQl8uUEMwMi5SUDAz LkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAw eDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT25lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBBKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUFJEIChBcmcz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2Ug KFBYU1gpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBPcGVyYXRp b25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcsIFplcm8sIDB4MTApCiAgICAgICAgICAgICAg ICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEVklELCAgIDMyLCAKICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAgICAgICAg ICAgICAgIFBJWFgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQ1gsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NY ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIEFIQ0kiKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUE5W TSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChQSVhYID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgTlZN ZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEVklEID09IDB4RkZGRkZGRkYp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChJ U0dYLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChTVEQzICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFIQyAo KSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQg RW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3Rv cmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAv KiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93 ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KEdQMUUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDZC LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5 LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93 ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiX1BTMCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMwKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3Jt IFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgICAgICBQUFMwICgpCiAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBD SUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBf UFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMzIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcg UGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBQ UzMgKCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxh dGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAi LCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKEFEU0QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhT dHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBRFNEICgp KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1 MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNU b0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjZiNGFkNDIwLThm ZDMtNDM2NC1hY2Y4LWViOTQ4NzZmZDllYiIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAwKXt9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQt ZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAw eEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhTWCwgMHgwMikgLy8gRGV2aWNlIFdh a2UKICAgICAgICAgICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAgICAgICAgICAgICAg ICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElDTSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjA2KSAvKiBc X1NCXy5BUjA2ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEQwNikgLyogXF9TQl8uUEQw NiAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZp Y2UgKFJQMDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFBCTlUsIFpl cm8pCiAgICAgICAgICAgICAgICBQQk5VID0gUEJTQiAvKiBFeHRlcm5hbCByZWZlcmVuY2Ug Ki8KICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoKFJQQTQgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFJQQTQpIC8qIFxfU0JfLlBDMDIuUlBBNCAqLwogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxQzAwMDMpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE5hbWUgKFNMT1QsIDB4MDQpCiAgICAgICAgICAgICAgICBOYW1lIChQUlRQLCAweDAyKQog ICAgICAgICAgICAgICAgTmFtZSAoTFRFTiwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUg KExNU0wsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChMTlNMLCBaZXJvKQogICAgICAg ICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5p dGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExURU4gPSBM VFI0IC8qIFxMVFI0ICovCiAgICAgICAgICAgICAgICAgICAgTE1TTCA9IFBNTDQgLyogXF9T Ql8uUEMwMi5QTUw0ICovCiAgICAgICAgICAgICAgICAgICAgTE5TTCA9IFBOTDQgLyogXF9T Ql8uUEMwMi5QTkw0ICovCiAgICAgICAgICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZN UFApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCgoVk1ERSA9PSBPbmUpICYmICgoVk1QUCAmIDB4MDgp ICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlBDSCBSUDA0ICgxMjkvMjgvMykgaXMgbWFwcGVkIHVuZGVy IFZNRCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBJTkkgKCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMDQpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAy LlJQMDQuUFJNVikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50 aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheUFhT WC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChS RDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQz IC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVtTWVtb3J5LCBeXlBDMDAuUEMyTSAoX0FEUiAo KSwgUEJOVSksIDB4MDQ4MCkKICAgICAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAg ICAgICAgICAgICAgICAgICAgTDBTRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAg LCAgIDMsIAogICAgICAgICAgICAgICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUy KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAgICAg ICAgTEFTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAg ICAgICAgICAgICAgICAgICBBQlBYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERDWCwgICAxLCAKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVCKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDYwKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAg ICAgICAgICAgICAgICAgUFNQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NjgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAg ICAgICAgICBMTlJFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBNCks IAogICAgICAgICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAg ICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBQTUVYLCAg IDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMCksIAogICAgICAgICAgICAg ICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAg ICAgICAgICAgICAgICAgICBOQ0I3LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAg ICAgICAgICAgTDIzRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBMMjNSLCAgIDEsIAog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMjgpLCAKICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAgICAgICAgICAgICAgTFRTTSwgICA4LCAKICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDA0KSwgCiAgICAgICAgICAgICAgICAgICAg TFNPRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdy aXRlQXNaZXJvcykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4REMpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAg ICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFBNU1gsICAgMQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3Ry aW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTDIzUiA9IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTDIzUikKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNSIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFNDQjAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g WmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTEFTWCA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4g MHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5n IChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkK ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNT TSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKERMMjMsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQ Q0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAg ICAgICAgICAgICAgICAgICAgSWYgKCgoTEFTWCA9PSBPbmUpICYmIChMTlJFID09IFplcm8p KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo KExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExOUkUgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVG9n Z2xlIExOUkUiKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBMMjNFID0gT25lCiAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAg ICAgICAgICAgICAgICAgIFdoaWxlIChMMjNFKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAg ICAgICAgICAgICAgICAgICAgU0NCMCA9IE9uZQogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJp bmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChM VFJWLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBOYW1lIChQUk1WLCBaZXJvKQogICAgICAgICAgICAgICAgTmFt ZSAoUkQzQywgMHgwMikKICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFZE SUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQp ICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMt NGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZhY2Ug Ki8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3dp dGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMs IEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJp dEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA2LCBGVU42KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5 LCBGVU45KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxk IChPUFRTLCAweDBBLCBGVU5BKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBGVU5CKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjAgPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU42ID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU44ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMSA+PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGVU5BID0gT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5n IChPUFRTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPUFRT KSAvKiBcX1NCXy5QQzAyLlJQMDQuX0RTTS5PUFRTICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW1plcm9dID0g KChMTVNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDNdID0gKExO U0wgJiAweDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTFRSVikgLyogXF9TQl8uUEMwMi5SUDA0LkxUUlYgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQUEJBIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChVUFJEIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFBYU1gpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcs IFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBEVklELCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBJWFgsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFNDQ1gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJD Q1gsICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2 KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFBJWFggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQ U1NEIEFIQ0kiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoUE5WTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IDB4MDIpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlBTU0QgTlZNZSIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChEVklEID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChJU0dYLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4 MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTVEQzICE9IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lm aWMgRGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQgRW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFi NC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJm LTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEdQMUUpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChHUFJXICgweDZCLCAweDA0KSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAw LCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMCBQQ0llIFJQ IiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChQUFMwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAg ICAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMz IFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFBQUzMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIp CiAgICAgICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVj aWZpYyBEYXRhCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEFEU0QpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRl cm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChBRFNEICgpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50 YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRvVVVJRCAoIjZiNGFkNDIwLThmZDMtNDM2NC1hY2Y4LWViOTQ4NzZmZDllYiIp IC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAwKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlE ICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBV VUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmlj ZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAweEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUp KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlm eSAoUFhTWCwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICAgICAg UE1TWCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxl CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UElDTSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoUElDTSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChBUjA3KSAvKiBcX1NCXy5BUjA3ICovCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IFJldHVybiAoUEQwNykgLyogXF9TQl8uUEQwNyAqLwogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFJQMDUpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKFBCTlUsIFplcm8pCiAgICAgICAgICAgICAgICBQQk5VID0g UEJTQiAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgICAgIE1ldGhvZCAo X0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFJQQTUgIT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJQQTUpIC8q IFxfU0JfLlBDMDIuUlBBNSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDAxQzAwMDQpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKFNMT1QsIDB4MDUpCiAgICAgICAg ICAgICAgICBOYW1lIChQUlRQLCAweDAyKQogICAgICAgICAgICAgICAgTmFtZSAoTFRFTiwg WmVybykKICAgICAgICAgICAgICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAgICAg ICBOYW1lIChMTlNMLCBaZXJvKQogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIExURU4gPSBMVFI1IC8qIFxMVFI1ICovCiAgICAgICAgICAg ICAgICAgICAgTE1TTCA9IFBNTDUgLyogXF9TQl8uUEMwMi5QTUw1ICovCiAgICAgICAgICAg ICAgICAgICAgTE5TTCA9IFBOTDQgLyogXF9TQl8uUEMwMi5QTkw0ICovCiAgICAgICAgICAg ICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZNUFApICYmIENvbmRSZWZPZiAoVk1ERSkpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoVk1E RSA9PSBPbmUpICYmICgoVk1QUCAmIDB4MTApICE9IFplcm8pKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBDSCBSUDA1 ICgxMjkvMjgvNCkgaXMgbWFwcGVkIHVuZGVyIFZNRCIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UElOSSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBJTkkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAy LlJQMDUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMDUuUFJNVikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmlu ZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQz QyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUg RDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVt TWVtb3J5LCBeXlBDMDAuUEMyTSAoX0FEUiAoKSwgUEJOVSksIDB4MDQ4MCkKICAgICAgICAg ICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAgICAgICAgICAgICAgICAgICAgTDBTRSwgICAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMsIAogICAgICAgICAgICAgICAgICAg IExESVMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgCiAgICAgICAgICAgICAgICAgICAgICAg ICwgICAxMywgCiAgICAgICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAgICAgICAgICAgICAgICAgICBBQlBYLCAgIDEs IAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg UERDWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAg ICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVC KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAgICAgICAgUFNQWCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgICAgICAg ICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgICAgICBMTlJFLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICAgICAgIEQzSFQs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICAgICAgSFBFWCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBQTUVYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHhFMCksIAogICAgICAgICAgICAgICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAgICAgICAgICBOQ0I3LCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAg ICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgTDIzRSwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgzMjgpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAg ICAgICAgICAgICAgTFRTTSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NDA0KSwgCiAgICAgICAgICAgICAgICAgICAgTFNPRSwgICAxLCAKICAgICAgICAgICAgICAg ICAgICBMTlNFLCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBGaWVs ZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4REMpLCAKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAgICBIUFNYLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIFBNU1gsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00g YXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAg ICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhT dHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTDIzUiA9IE9uZQog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBX aGlsZSAoTDIzUikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNS IFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNDQjAgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdo aWxlICgoTEFTWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJp bmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KERMMjMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQg LSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTEFT WCA9PSBPbmUpICYmIChMTlJFID09IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBP bmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTE5SRSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiVG9nZ2xlIExOUkUiKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBM MjNFID0gT25lCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlIChMMjNF KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM b2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQ ICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgU0NCMCA9IE9u ZQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNT TSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBOYW1lIChMVFJWLCBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChQUk1W LCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAgICAgICAgICAg ICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMg TWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8q IERldmljZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMsIEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAw eDA2LCBGVU42KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZp ZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBBLCBGVU5BKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBG VU5CKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZVTjAgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU42ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU44ID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5B ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQ Q0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPUFRTKSAvKiBcX1NCXy5QQzAyLlJQMDUuX0RTTS5P UFRTICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExUUlYgW1plcm9dID0gKChMTVNMID4+IDB4MEEpICYgMHgwNykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYg MHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAy XSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExUUlYgWzB4MDNdID0gKExOU0wgJiAweDAzRkYpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikgLyogXF9TQl8uUEMwMi5SUDA1 LkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAw eDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT25lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBBKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUFJEIChBcmcz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2Ug KFBYU1gpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBPcGVyYXRp b25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcsIFplcm8sIDB4MTApCiAgICAgICAgICAgICAg ICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEVklELCAgIDMyLCAKICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAgICAgICAg ICAgICAgIFBJWFgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQ1gsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NY ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIEFIQ0kiKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUE5W TSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChQSVhYID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgTlZN ZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEVklEID09IDB4RkZGRkZGRkYp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChJ U0dYLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChTVEQzICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFIQyAo KSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQg RW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3Rv cmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAv KiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93 ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KEdQMUUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDZC LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5 LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93 ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiX1BTMCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMwKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3Jt IFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgICAgICBQUFMwICgpCiAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBD SUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBf UFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMzIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcg UGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBQ UzMgKCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxh dGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAi LCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKEFEU0QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhT dHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBRFNEICgp KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1 MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNU b0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjZiNGFkNDIwLThm ZDMtNDM2NC1hY2Y4LWViOTQ4NzZmZDllYiIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAwKXt9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQt ZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAw eEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhTWCwgMHgwMikgLy8gRGV2aWNlIFdh a2UKICAgICAgICAgICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAgICAgICAgICAgICAg ICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElDTSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjA0KSAvKiBc X1NCXy5BUjA0ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEQwNCkgLyogXF9TQl8uUEQw NCAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZp Y2UgKFJQMDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFBCTlUsIFpl cm8pCiAgICAgICAgICAgICAgICBQQk5VID0gUEJTQiAvKiBFeHRlcm5hbCByZWZlcmVuY2Ug Ki8KICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoKFJQQTYgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFJQQTYpIC8qIFxfU0JfLlBDMDIuUlBBNiAqLwogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxQzAwMDUpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE5hbWUgKFNMT1QsIDB4MDYpCiAgICAgICAgICAgICAgICBOYW1lIChQUlRQLCAweDAyKQog ICAgICAgICAgICAgICAgTmFtZSAoTFRFTiwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUg KExNU0wsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChMTlNMLCBaZXJvKQogICAgICAg ICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5p dGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExURU4gPSBM VFI2IC8qIFxMVFI2ICovCiAgICAgICAgICAgICAgICAgICAgTE1TTCA9IFBNTDYgLyogXF9T Ql8uUEMwMi5QTUw2ICovCiAgICAgICAgICAgICAgICAgICAgTE5TTCA9IFBOTDYgLyogXF9T Ql8uUEMwMi5QTkw2ICovCiAgICAgICAgICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZN UFApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCgoVk1ERSA9PSBPbmUpICYmICgoVk1QUCAmIDB4MjAp ICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlBDSCBSUDA2ICgxMjkvMjgvNSkgaXMgbWFwcGVkIHVuZGVy IFZNRCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBJTkkgKCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMDYpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAy LlJQMDYuUFJNVikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50 aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheUFhT WC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChS RDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQz IC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVtTWVtb3J5LCBeXlBDMDAuUEMyTSAoX0FEUiAo KSwgUEJOVSksIDB4MDQ4MCkKICAgICAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAg ICAgICAgICAgICAgICAgICAgTDBTRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAg LCAgIDMsIAogICAgICAgICAgICAgICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUy KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAgICAg ICAgTEFTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAg ICAgICAgICAgICAgICAgICBBQlBYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERDWCwgICAxLCAKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVCKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDYwKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAg ICAgICAgICAgICAgICAgUFNQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NjgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAg ICAgICAgICBMTlJFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBNCks IAogICAgICAgICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAg ICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBQTUVYLCAg IDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMCksIAogICAgICAgICAgICAg ICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAg ICAgICAgICAgICAgICAgICBOQ0I3LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAg ICAgICAgICAgTDIzRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBMMjNSLCAgIDEsIAog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMjgpLCAKICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAgICAgICAgICAgICAgTFRTTSwgICA4LCAKICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDA0KSwgCiAgICAgICAgICAgICAgICAgICAg TFNPRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdy aXRlQXNaZXJvcykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4REMpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAg ICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFBNU1gsICAgMQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3Ry aW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTDIzUiA9IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTDIzUikKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNSIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFNDQjAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g WmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTEFTWCA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4g MHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5n IChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkK ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNT TSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKERMMjMsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQ Q0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAg ICAgICAgICAgICAgICAgICAgSWYgKCgoTEFTWCA9PSBPbmUpICYmIChMTlJFID09IFplcm8p KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo KExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExOUkUgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVG9n Z2xlIExOUkUiKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBMMjNFID0gT25lCiAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAg ICAgICAgICAgICAgICAgIFdoaWxlIChMMjNFKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAg ICAgICAgICAgICAgICAgICAgU0NCMCA9IE9uZQogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJp bmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChM VFJWLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBOYW1lIChQUk1WLCBaZXJvKQogICAgICAgICAgICAgICAgTmFt ZSAoUkQzQywgMHgwMikKICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFZE SUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQp ICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMt NGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZhY2Ug Ki8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3dp dGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMs IEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJp dEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA2LCBGVU42KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5 LCBGVU45KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxk IChPUFRTLCAweDBBLCBGVU5BKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBGVU5CKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjAgPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU42ID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU44ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMSA+PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGVU5BID0gT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5n IChPUFRTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPUFRT KSAvKiBcX1NCXy5QQzAyLlJQMDYuX0RTTS5PUFRTICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW1plcm9dID0g KChMTVNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDNdID0gKExO U0wgJiAweDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTFRSVikgLyogXF9TQl8uUEMwMi5SUDA2LkxUUlYgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQUEJBIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChVUFJEIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFBYU1gpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcs IFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBEVklELCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBJWFgsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFNDQ1gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJD Q1gsICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2 KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFBJWFggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQ U1NEIEFIQ0kiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoUE5WTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IDB4MDIpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlBTU0QgTlZNZSIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChEVklEID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChJU0dYLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4 MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTVEQzICE9IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lm aWMgRGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQgRW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFi NC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJm LTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEdQMUUpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChHUFJXICgweDZCLCAweDA0KSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAw LCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMCBQQ0llIFJQ IiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChQUFMwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAg ICAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMz IFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFBQUzMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIp CiAgICAgICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVj aWZpYyBEYXRhCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEFEU0QpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRl cm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChBRFNEICgpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50 YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRvVVVJRCAoIjZiNGFkNDIwLThmZDMtNDM2NC1hY2Y4LWViOTQ4NzZmZDllYiIp IC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAwKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlE ICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBV VUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmlj ZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAweEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUp KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlm eSAoUFhTWCwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICAgICAg UE1TWCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxl CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UElDTSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoUElDTSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChBUjA1KSAvKiBcX1NCXy5BUjA1ICovCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IFJldHVybiAoUEQwNSkgLyogXF9TQl8uUEQwNSAqLwogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFJQMDcpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKFBCTlUsIFplcm8pCiAgICAgICAgICAgICAgICBQQk5VID0g UEJTQiAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgICAgIE1ldGhvZCAo X0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFJQQTcgIT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJQQTcpIC8q IFxfU0JfLlBDMDIuUlBBNyAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDAxQzAwMDYpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKFNMT1QsIDB4MDcpCiAgICAgICAg ICAgICAgICBOYW1lIChQUlRQLCAweDAyKQogICAgICAgICAgICAgICAgTmFtZSAoTFRFTiwg WmVybykKICAgICAgICAgICAgICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAgICAg ICBOYW1lIChMTlNMLCBaZXJvKQogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIExURU4gPSBMVFI3IC8qIFxMVFI3ICovCiAgICAgICAgICAg ICAgICAgICAgTE1TTCA9IFBNTDcgLyogXF9TQl8uUEMwMi5QTUw3ICovCiAgICAgICAgICAg ICAgICAgICAgTE5TTCA9IFBOTDcgLyogXF9TQl8uUEMwMi5QTkw3ICovCiAgICAgICAgICAg ICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZNUFApICYmIENvbmRSZWZPZiAoVk1ERSkpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoVk1E RSA9PSBPbmUpICYmICgoVk1QUCAmIDB4NDApICE9IFplcm8pKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBDSCBSUDA3 ICgxMjkvMjgvNikgaXMgbWFwcGVkIHVuZGVyIFZNRCIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UElOSSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBJTkkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAy LlJQMDcpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMDcuUFJNVikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmlu ZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQz QyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUg RDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVt TWVtb3J5LCBeXlBDMDAuUEMyTSAoX0FEUiAoKSwgUEJOVSksIDB4MDQ4MCkKICAgICAgICAg ICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAgICAgICAgICAgICAgICAgICAgTDBTRSwgICAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMsIAogICAgICAgICAgICAgICAgICAg IExESVMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgCiAgICAgICAgICAgICAgICAgICAgICAg ICwgICAxMywgCiAgICAgICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAgICAgICAgICAgICAgICAgICBBQlBYLCAgIDEs IAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg UERDWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAg ICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVC KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAgICAgICAgUFNQWCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgICAgICAg ICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgICAgICBMTlJFLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICAgICAgIEQzSFQs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICAgICAgSFBFWCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBQTUVYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHhFMCksIAogICAgICAgICAgICAgICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAgICAgICAgICBOQ0I3LCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAg ICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgTDIzRSwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgzMjgpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAg ICAgICAgICAgICAgTFRTTSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NDA0KSwgCiAgICAgICAgICAgICAgICAgICAgTFNPRSwgICAxLCAKICAgICAgICAgICAgICAg ICAgICBMTlNFLCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBGaWVs ZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4REMpLCAKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAgICBIUFNYLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIFBNU1gsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00g YXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAg ICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhT dHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTDIzUiA9IE9uZQog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBX aGlsZSAoTDIzUikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNS IFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNDQjAgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdo aWxlICgoTEFTWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJp bmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KERMMjMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQg LSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTEFT WCA9PSBPbmUpICYmIChMTlJFID09IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBP bmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTE5SRSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiVG9nZ2xlIExOUkUiKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBM MjNFID0gT25lCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlIChMMjNF KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM b2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQ ICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgU0NCMCA9IE9u ZQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNT TSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBOYW1lIChMVFJWLCBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChQUk1W LCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAgICAgICAgICAg ICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMg TWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8q IERldmljZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMsIEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAw eDA2LCBGVU42KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZp ZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBBLCBGVU5BKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBG VU5CKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZVTjAgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU42ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU44ID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5B ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQ Q0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPUFRTKSAvKiBcX1NCXy5QQzAyLlJQMDcuX0RTTS5P UFRTICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExUUlYgW1plcm9dID0gKChMTVNMID4+IDB4MEEpICYgMHgwNykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYg MHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAy XSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExUUlYgWzB4MDNdID0gKExOU0wgJiAweDAzRkYpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikgLyogXF9TQl8uUEMwMi5SUDA3 LkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAw eDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT25lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBBKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUFJEIChBcmcz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2Ug KFBYU1gpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBPcGVyYXRp b25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcsIFplcm8sIDB4MTApCiAgICAgICAgICAgICAg ICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEVklELCAgIDMyLCAKICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAgICAgICAg ICAgICAgIFBJWFgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQ1gsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NY ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIEFIQ0kiKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUE5W TSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChQSVhYID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgTlZN ZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEVklEID09IDB4RkZGRkZGRkYp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChJ U0dYLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChTVEQzICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFIQyAo KSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQg RW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3Rv cmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAv KiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93 ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KEdQMUUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDZC LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5 LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93 ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiX1BTMCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMwKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3Jt IFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgICAgICBQUFMwICgpCiAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBD SUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBf UFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMzIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcg UGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBQ UzMgKCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxh dGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAi LCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKEFEU0QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhT dHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBRFNEICgp KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1 MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNU b0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjZiNGFkNDIwLThm ZDMtNDM2NC1hY2Y4LWViOTQ4NzZmZDllYiIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAwKXt9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQt ZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAw eEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhTWCwgMHgwMikgLy8gRGV2aWNlIFdh a2UKICAgICAgICAgICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAgICAgICAgICAgICAg ICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElDTSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjA2KSAvKiBc X1NCXy5BUjA2ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEQwNikgLyogXF9TQl8uUEQw NiAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZp Y2UgKFJQMDgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFBCTlUsIFpl cm8pCiAgICAgICAgICAgICAgICBQQk5VID0gUEJTQiAvKiBFeHRlcm5hbCByZWZlcmVuY2Ug Ki8KICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoKFJQQTggIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFJQQTgpIC8qIFxfU0JfLlBDMDIuUlBBOCAqLwogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxQzAwMDcpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE5hbWUgKFNMT1QsIDB4MDgpCiAgICAgICAgICAgICAgICBOYW1lIChQUlRQLCAweDAyKQog ICAgICAgICAgICAgICAgTmFtZSAoTFRFTiwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUg KExNU0wsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChMTlNMLCBaZXJvKQogICAgICAg ICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5p dGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExURU4gPSBM VFI4IC8qIFxMVFI4ICovCiAgICAgICAgICAgICAgICAgICAgTE1TTCA9IFBNTDggLyogXF9T Ql8uUEMwMi5QTUw4ICovCiAgICAgICAgICAgICAgICAgICAgTE5TTCA9IFBOTDggLyogXF9T Ql8uUEMwMi5QTkw4ICovCiAgICAgICAgICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZN UFApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCgoVk1ERSA9PSBPbmUpICYmICgoVk1QUCAmIDB4ODAp ICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlBDSCBSUDA4ICgxMjkvMjgvNykgaXMgbWFwcGVkIHVuZGVy IFZNRCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBJTkkgKCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMDgpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAy LlJQMDguUFJNVikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50 aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheUFhT WC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChS RDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQz IC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVtTWVtb3J5LCBeXlBDMDAuUEMyTSAoX0FEUiAo KSwgUEJOVSksIDB4MDQ4MCkKICAgICAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAg ICAgICAgICAgICAgICAgICAgTDBTRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAg LCAgIDMsIAogICAgICAgICAgICAgICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUy KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAgICAg ICAgTEFTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAg ICAgICAgICAgICAgICAgICBBQlBYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERDWCwgICAxLCAKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVCKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDYwKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAg ICAgICAgICAgICAgICAgUFNQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NjgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAg ICAgICAgICBMTlJFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBNCks IAogICAgICAgICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAg ICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBQTUVYLCAg IDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMCksIAogICAgICAgICAgICAg ICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAg ICAgICAgICAgICAgICAgICBOQ0I3LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAg ICAgICAgICAgTDIzRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBMMjNSLCAgIDEsIAog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMjgpLCAKICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAgICAgICAgICAgICAgTFRTTSwgICA4LCAKICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDA0KSwgCiAgICAgICAgICAgICAgICAgICAg TFNPRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdy aXRlQXNaZXJvcykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4REMpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAg ICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFBNU1gsICAgMQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3Ry aW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTDIzUiA9IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTDIzUikKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNSIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFNDQjAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g WmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTEFTWCA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4g MHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5n IChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkK ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNT TSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKERMMjMsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQ Q0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAg ICAgICAgICAgICAgICAgICAgSWYgKCgoTEFTWCA9PSBPbmUpICYmIChMTlJFID09IFplcm8p KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo KExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExOUkUgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVG9n Z2xlIExOUkUiKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBMMjNFID0gT25lCiAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAg ICAgICAgICAgICAgICAgIFdoaWxlIChMMjNFKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAg ICAgICAgICAgICAgICAgICAgU0NCMCA9IE9uZQogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJp bmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChM VFJWLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBOYW1lIChQUk1WLCBaZXJvKQogICAgICAgICAgICAgICAgTmFt ZSAoUkQzQywgMHgwMikKICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFZE SUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQp ICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMt NGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZhY2Ug Ki8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3dp dGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMs IEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJp dEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA2LCBGVU42KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5 LCBGVU45KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxk IChPUFRTLCAweDBBLCBGVU5BKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBGVU5CKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjAgPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU42ID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU44ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMSA+PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGVU5BID0gT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5n IChPUFRTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPUFRT KSAvKiBcX1NCXy5QQzAyLlJQMDguX0RTTS5PUFRTICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW1plcm9dID0g KChMTVNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDNdID0gKExO U0wgJiAweDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTFRSVikgLyogXF9TQl8uUEMwMi5SUDA4LkxUUlYgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQUEJBIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChVUFJEIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFBYU1gpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcs IFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBEVklELCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBJWFgsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFNDQ1gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJD Q1gsICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2 KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFBJWFggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQ U1NEIEFIQ0kiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoUE5WTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IDB4MDIpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlBTU0QgTlZNZSIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChEVklEID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChJU0dYLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4 MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTVEQzICE9IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lm aWMgRGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQgRW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFi NC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJm LTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEdQMUUpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChHUFJXICgweDZCLCAweDA0KSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAw LCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMCBQQ0llIFJQ IiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChQUFMwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAg ICAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMz IFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFBQUzMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIp CiAgICAgICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVj aWZpYyBEYXRhCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEFEU0QpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRl cm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChBRFNEICgpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50 YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRvVVVJRCAoIjZiNGFkNDIwLThmZDMtNDM2NC1hY2Y4LWViOTQ4NzZmZDllYiIp IC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAwKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlE ICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBV VUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmlj ZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAweEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUp KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlm eSAoUFhTWCwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICAgICAg UE1TWCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxl CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UElDTSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoUElDTSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChBUjA3KSAvKiBcX1NCXy5BUjA3ICovCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IFJldHVybiAoUEQwNykgLyogXF9TQl8uUEQwNyAqLwogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFJQMDkpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKFBCTlUsIFplcm8pCiAgICAgICAgICAgICAgICBQQk5VID0g UEJTQiAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAgICAgIE1ldGhvZCAo X0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFJQQTkgIT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJQQTkpIC8q IFxfU0JfLlBDMDIuUlBBOSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDAxRDAwMDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKFNMT1QsIDB4MDkpCiAgICAgICAg ICAgICAgICBOYW1lIChQUlRQLCAweDAyKQogICAgICAgICAgICAgICAgTmFtZSAoTFRFTiwg WmVybykKICAgICAgICAgICAgICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAgICAg ICBOYW1lIChMTlNMLCBaZXJvKQogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIExURU4gPSBMVFI5IC8qIFxMVFI5ICovCiAgICAgICAgICAg ICAgICAgICAgTE1TTCA9IFBNTDkgLyogXF9TQl8uUEMwMi5QTUw5ICovCiAgICAgICAgICAg ICAgICAgICAgTE5TTCA9IFBOTDkgLyogXF9TQl8uUEMwMi5QTkw5ICovCiAgICAgICAgICAg ICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZNUFApICYmIENvbmRSZWZPZiAoVk1ERSkpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoVk1E RSA9PSBPbmUpICYmICgoVk1QUCAmIDB4MDEwMCkgIT0gWmVybykpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUENIIFJQ MDkgKDEyOS8yOS8wKSBpcyBtYXBwZWQgdW5kZXIgVk1EIikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBSTVYgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKFBSRVMgKCkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChQSU5JKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUElOSSAoKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBD MDIuUlAwOSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFZESUQgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxTVEQzKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDIuUlAwOS5QUk1WKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoUFJNViA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlZNRCBTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3Ry aW5nIChSRDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS RDNDID0gU1REMyAvKiBcU1REMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKF5QWFNYLlBOVk0gKCkgfHwgXlBYU1guUEFIQyAo KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlN0b3JhZ2UgUnVudGlt ZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQWENTLCBTeXN0 ZW1NZW1vcnksIF5eUEMwMC5QQzJNIChfQURSICgpLCBQQk5VKSwgMHgwNDgwKQogICAgICAg ICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4NTApLCAKICAgICAgICAgICAgICAgICAgICBMMFNFLCAg IDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAg ICAgTERJUywgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTEpLCAKICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAgICAg ICAgLCAgIDEzLCAKICAgICAgICAgICAgICAgICAgICBMQVNYLCAgIDEsIAogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg1QSksIAogICAgICAgICAgICAgICAgICAgIEFCUFgsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAg ICBQRENYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAg ICAgICAgICAgICAgUERTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NUIpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjApLCAKICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4NjIpLCAKICAgICAgICAgICAgICAgICAgICBQU1BYLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2OCksIAogICAgICAgICAgICAgICAg ICAgICAgICAsICAgMTAsIAogICAgICAgICAgICAgICAgICAgIExOUkUsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgICAgICAgICAgRDNI VCwgICAyLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAg ICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAgICBIUEVYLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweEUwKSwgCiAgICAgICAgICAgICAgICAgICAgU0NCMCwgICAxLCAKICAgICAg ICAgICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICAgICAgIE5DQjcsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUyKSwgCiAgICAgICAgICAgICAg ICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBMMjNFLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIEwyM1IsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDMyOCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMkIpLCAKICAgICAg ICAgICAgICAgICAgICBMVFNNLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHg0MDQpLCAKICAgICAgICAgICAgICAgICAgICBMU09FLCAgIDEsIAogICAgICAgICAgICAg ICAgICAgIExOU0UsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEZp ZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgV3JpdGVBc1plcm9zKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAogICAgICAgICAgICAg ICAgICAgICAgICAsICAgMzAsIAogICAgICAgICAgICAgICAgICAgIEhQU1gsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgUE1TWCwgICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChMMjNELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNT TSBhdCBMMjNEIFN0YXJ0ICAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAg ICAgICAgICBJZiAoKFNDQjAgIT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9OIFNDQiAiLCBUb0hl eFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMMjNSID0gT25l CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAg IFdoaWxlIChMMjNSKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0lFIEwy M1IgVE8gIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU0NCMCA9IFplcm8K ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg V2hpbGUgKChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA4KSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJQQ0lFIExBU1ggVE8gIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDArKwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgRW5kIC0iLCBUb0hleFN0 cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoREwyMywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBTdGFy dCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKChM QVNYID09IE9uZSkgJiYgKExOUkUgPT0gWmVybykpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTFNPRSA9PSBPbmUpIHx8IChMTlNFID09 IE9uZSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMTlJFID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IFplcm8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUb2dnbGUgTE5SRSIpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IEwyM0UgPSBPbmUKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKEwy M0UpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KExvY2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPRiBMMjNFIFRPIiwgVG9I ZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0Yg UlAgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBTQ0IwID0g T25lCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExU U1NNIGF0IERMMjMgRW5kIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFBS TVYsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChSRDNDLCAweDAyKQogICAgICAgICAg ICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoVkRJRCA9PSAweEZGRkZGRkZGKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZp YyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzAgPT0gVG9VVUlEICgiZTVjOTM3ZDAtMzU1My00ZDdhLTkxMTctZWE0ZDE5YzM0MzRkIikg LyogRGV2aWNlIExhYmVsaW5nIEludGVyZmFjZSAqLykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENh c2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoT1BUUywgQnVmZmVyICgweDAyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIFplcm8sIEZVTjAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMs IDB4MDYsIEZVTjYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0 RmllbGQgKE9QVFMsIDB4MDgsIEZVTjgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDksIEZVTjkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEEsIEZVTkEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEIs IEZVTkIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRlVOMCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKExURU4gIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZVTjYgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNS MSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjggPSBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOOSA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDQpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZV TkEgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZVTkIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNN IFBDSWUgUlAgT1BUUyAtIiwgVG9IZXhTdHJpbmcgKE9QVFMpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9QVFMpIC8qIFxfU0JfLlBDMDIuUlAwOS5fRFNN Lk9QVFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDIpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTFRSViBbWmVyb10gPSAoKExNU0wgPj4gMHgwQSkgJiAweDA3KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFtPbmVdID0gKExNU0wg JiAweDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4 MDJdID0gKChMTlNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMVFJWKSAvKiBcX1NCXy5QQzAyLlJQ MDkuTFRSViAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49 IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ2FzZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT25lcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPbmVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBQQkEgKEFyZzMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQUkQgKEFy ZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmlj ZSAoUFhTWCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChf QURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIE9wZXJh dGlvblJlZ2lvbiAoUENDWCwgUENJX0NvbmZpZywgWmVybywgMHgxMCkKICAgICAgICAgICAg ICAgICAgICBGaWVsZCAoUENDWCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERWSUQsICAgMzIsIAog ICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDkpLCAKICAgICAgICAgICAgICAg ICAgICAgICAgUElYWCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgU0NDWCwgICA4 LCAKICAgICAgICAgICAgICAgICAgICAgICAgQkNDWCwgICA4CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBBSEMsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJD Q1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChTQ0NYID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgQUhDSSIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQ TlZNLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA4KSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKFBJWFggPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBO Vk1lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZGRkZG RikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KElTR1gsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKFNURDMgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQQUhD ICgpIHx8IFBOVk0gKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIk5WTWUgRDMgU3VwcG9y dCBFbmFibGUgZm9yIENoaWxkIERldmljZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyog VW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJT dG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIp IC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQ b3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BSVyBQQ0llIFJQIiwgVG9I ZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoR1AxRSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoR1AxRSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4 NkIsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4 NjksIDB4MDQpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQ b3dlciBTdGF0ZSAwCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJfUFMwIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQog ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzApKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZv cm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBQUzAgKCkK ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxhdGZvcm0g UENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8v IF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzMgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChT TE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiQ2FsbGlu ZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAgICAgICAgICAgICAg UFBTMyAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQ bGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU0QgUENJZSBS UCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoQURTRCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkFsdGVybmF0ZSBfRFNEIFBDSWUgUlAiLCBUb0hl eFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFEU0Qg KCkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChQSU5JKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00 NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25E M1RvRDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNmI0YWQ0MjAt OGZkMy00MzY0LWFjZjgtZWI5NDg3NmZkOWViIikgLyogVW5rbm93biBVVUlEICovLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDApe30KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2 NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIkZ1bmRhbWVudGFsRGV2aWNlUmVzZXRUcmlnZ2VyZWRPbkQzVG9EMCIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoSFBNRSwgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChWRElEICE9 IDB4RkZGRkZGRkYpICYmIChQTVNYID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2Ug V2FrZQogICAgICAgICAgICAgICAgICAgICAgICBQTVNYID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQSUNNKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDQpIC8q IFxfU0JfLkFSMDQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQRDA0KSAvKiBcX1NCXy5Q RDA0ICovCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERl dmljZSAoUlAxMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUEJOVSwg WmVybykKICAgICAgICAgICAgICAgIFBCTlUgPSBQQlNCIC8qIEV4dGVybmFsIHJlZmVyZW5j ZSAqLwogICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmICgoUlBBQSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUlBBQSkgLyogXF9TQl8uUEMwMi5SUEFBICovCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMDFEMDAwMSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTmFtZSAoU0xPVCwgMHgwQSkKICAgICAgICAgICAgICAgIE5hbWUgKFBSVFAsIDB4MDIp CiAgICAgICAgICAgICAgICBOYW1lIChMVEVOLCBaZXJvKQogICAgICAgICAgICAgICAgTmFt ZSAoTE1TTCwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKExOU0wsIFplcm8pCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJ bml0aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTFRFTiA9 IExUUkEgLyogXExUUkEgKi8KICAgICAgICAgICAgICAgICAgICBMTVNMID0gUE1MQSAvKiBc X1NCXy5QQzAyLlBNTEEgKi8KICAgICAgICAgICAgICAgICAgICBMTlNMID0gUE5MQSAvKiBc X1NCXy5QQzAyLlBOTEEgKi8KICAgICAgICAgICAgICAgICAgICBJZiAoKENvbmRSZWZPZiAo Vk1QUCkgJiYgQ29uZFJlZk9mIChWTURFKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKChWTURFID09IE9uZSkgJiYgKChWTVBQICYgMHgw MjAwKSAhPSBaZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJQQ0ggUlAxMCAoMTI5LzI5LzEpIGlzIG1hcHBlZCB1 bmRlciBWTUQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJNViA9IE9uZQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoUFJFUyAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSU5JICgpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMi5SUDEwKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVkRJRCAhPSAweEZGRkZGRkZG KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0Iu UEMwMi5SUDEwLlBSTVYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQUk1WID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVk1EIFN0b3JhZ2Ug UnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo XlBYU1guUE5WTSAoKSB8fCBeUFhTWC5QQUhDICgpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmlu ZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRDNDID0g U1REMyAvKiBcU1REMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBPcGVyYXRpb25SZWdpb24gKFBYQ1MsIFN5c3RlbU1lbW9yeSwgXl5QQzAwLlBDMk0gKF9B RFIgKCksIFBCTlUpLCAweDA0ODApCiAgICAgICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55 QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFZESUQsICAgMzIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MCks IAogICAgICAgICAgICAgICAgICAgIEwwU0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICwgICAzLCAKICAgICAgICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg1MSksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHg1MiksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMTMsIAogICAgICAgICAgICAg ICAgICAgIExBU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVBKSwg CiAgICAgICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAg ICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIFBEQ1gsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQRFNYLCAgIDEsIAog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHg2MCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MiksIAog ICAgICAgICAgICAgICAgICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDY4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMCwgCiAgICAgICAg ICAgICAgICAgICAgTE5SRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 QTQpLCAKICAgICAgICAgICAgICAgICAgICBEM0hULCAgIDIsIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHhEOCksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAog ICAgICAgICAgICAgICAgICAgIEhQRVgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUE1F WCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RTApLCAKICAgICAgICAg ICAgICAgICAgICBTQ0IwLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgNiwg CiAgICAgICAgICAgICAgICAgICAgTkNCNywgICAxLCAKICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4RTIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAg ICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgTDIzUiwgICAx LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzI4KSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDMyQiksIAogICAgICAgICAgICAgICAgICAgIExUU00sICAgOCwg CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQwNCksIAogICAgICAgICAgICAgICAg ICAgIExTT0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgTE5TRSwgICAxCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2Nr LCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweERDKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAg ICAgICAgICAgICAgICAgSFBTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBQTVNYLCAg IDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEwyM0QsIDAs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgU3RhcnQgIC0iLCBUb0hl eFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgICAgIElmICgoU0NCMCAhPSBPbmUp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJQT04gU0NCICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIEwyM1IgPSBPbmUKICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKEwyM1IpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTDIzUiBUTyAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBTQ0IwID0gWmVybwogICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2Fs MCA+IDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTEFTWCBUTyAiLCBUb0hleFN0 cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4 MTApCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAg TFRTU00gYXQgTDIzRCBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChETDIzLCAwLCBTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIFN0YXJ0IC0iLCBUb0hleFN0cmluZyAoTFRTTSkp KQogICAgICAgICAgICAgICAgICAgIElmICgoKExBU1ggPT0gT25lKSAmJiAoTE5SRSA9PSBa ZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKChMU09FID09IE9uZSkgfHwgKExOU0UgPT0gT25lKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMTlJFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IlRvZ2dsZSBMTlJFIikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTDIzRSA9IE9uZQogICAgICAgICAgICAg ICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8K ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTDIzRSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENv bmNhdGVuYXRlICgiUE9GIEwyM0UgVE8iLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPRiBSUCAiLCBUb0hleFN0cmluZyAoU0xPVCkp KQogICAgICAgICAgICAgICAgICAgIFNDQjAgPSBPbmUKICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBFbmQgLSIsIFRvSGV4 U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFt ZSAoTFRSViwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgTmFtZSAoUFJNViwgWmVybykKICAgICAgICAgICAgICAg IE5hbWUgKFJEM0MsIDB4MDIpCiAgICAgICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KChWRElEID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxp emVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNWM5MzdkMC0z NTUzLTRkN2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJm YWNlICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChP UFRTLCBCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVCaXRGaWVsZCAoT1BUUywgWmVybywgRlVOMCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwNiwgRlVONikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOCwgRlVOOCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywg MHgwOSwgRlVOOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRG aWVsZCAoT1BUUywgMHgwQSwgRlVOQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQiwgRlVOQikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU4w ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTFRFTiAh PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVONiA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRlVOOCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGVU45ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzEgPj0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJB KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOQSA9IE9uZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVO QiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU00gUENJZSBSUCBPUFRTIC0iLCBUb0hleFN0 cmluZyAoT1BUUykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T1BUUykgLyogXF9TQl8uUEMwMi5SUDEwLl9EU00uT1BUUyAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFtaZXJv XSA9ICgoTE1TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwMl0gPSAoKExOU0wgPj4gMHgwQSkgJiAw eDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAzXSA9 IChMTlNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDMDIuUlAxMC5MVFJWICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA5KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09 IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Q2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUFBCQSAoQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ2FzZSAoMHgwQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoVVBSRCAoQXJnMykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQWFNYKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRy ZXNzCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0NYLCBQQ0lfQ29u ZmlnLCBaZXJvLCAweDEwKQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChQQ0NYLCBCeXRl QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgRFZJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHgwOSksIAogICAgICAgICAgICAgICAgICAgICAgICBQSVhYLCAgIDgsIAogICAg ICAgICAgICAgICAgICAgICAgICBTQ0NYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAg ICBCQ0NYLCAgIDgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoUEFIQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0g MHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChQSVhYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiUFNTRCBBSENJIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBOVk0sIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChTQ0NYID09IDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSAweDAyKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIE5WTWUiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywg MCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoRFZJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoSVNHWCwgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9 PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxTVEQzKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1REMyAhPSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNw ZWNpZmljIERhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKFBBSEMgKCkgfHwgUE5WTSAoKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiTlZNZSBEMyBTdXBwb3J0IEVuYWJsZSBmb3IgQ2hpbGQgRGV2aWNl IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJm LTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYt ODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJfUFJXIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChHUDFFICE9IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2QiwgMHgwNCkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BT MCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzAgUENJ ZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoUFBTMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAg ICAgICAgICAgICAgICAgICAgICAgUFBTMCAoKQogICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfUFMzLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi X1BTMyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChQUFMzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhv b2siKQogICAgICAgICAgICAgICAgICAgICAgICBQUFMzICgpCiAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2si KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2Ut U3BlY2lmaWMgRGF0YQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkK ICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChBRFNEKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi QWx0ZXJuYXRlIF9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQURTRCAoKSkKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAv KiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmRh bWVudGFsRGV2aWNlUmVzZXRUcmlnZ2VyZWRPbkQzVG9EMCIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUb1VVSUQgKCI2YjRhZDQyMC04ZmQzLTQzNjQtYWNmOC1lYjk0ODc2ZmQ5 ZWIiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMCl7fQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRv VVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVua25v d24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxE ZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChIUE1FLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoKFZESUQgIT0gMHhGRkZGRkZGRikgJiYgKFBNU1ggPT0g T25lKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKFBYU1gsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAgICAgICAg ICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgUFNQWCA9IE9uZQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBU YWJsZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFBJQ00pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQVIwNSkgLyogXF9TQl8uQVIwNSAqLwogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBEMDUpIC8qIFxfU0JfLlBEMDUgKi8KICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChSUDExKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBOYW1lIChQQk5VLCBaZXJvKQogICAgICAgICAgICAgICAgUEJO VSA9IFBCU0IgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChSUEFCICE9IFplcm8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSUEFC KSAvKiBcX1NCXy5QQzAyLlJQQUIgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDAwMUQwMDAyKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChTTE9ULCAweDBCKQogICAg ICAgICAgICAgICAgTmFtZSAoUFJUUCwgMHgwMikKICAgICAgICAgICAgICAgIE5hbWUgKExU RU4sIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChMTVNMLCBaZXJvKQogICAgICAgICAg ICAgICAgTmFtZSAoTE5TTCwgWmVybykKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBMVEVOID0gTFRSQiAvKiBcTFRSQiAqLwogICAgICAg ICAgICAgICAgICAgIExNU0wgPSBQTUxCIC8qIFxfU0JfLlBDMDIuUE1MQiAqLwogICAgICAg ICAgICAgICAgICAgIExOU0wgPSBQTkxCIC8qIFxfU0JfLlBDMDIuUE5MQiAqLwogICAgICAg ICAgICAgICAgICAgIElmICgoQ29uZFJlZk9mIChWTVBQKSAmJiBDb25kUmVmT2YgKFZNREUp KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo KFZNREUgPT0gT25lKSAmJiAoKFZNUFAgJiAweDA0MDApICE9IFplcm8pKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBD SCBSUDExICgxMjkvMjkvMikgaXMgbWFwcGVkIHVuZGVyIFZNRCIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChQUkVTICgpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBJTkkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9T Qi5QQzAyLlJQMTEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMTEuUFJNVikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hl eFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNYLlBB SEMgKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTdG9yYWdlIFJ1 bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywg U3lzdGVtTWVtb3J5LCBeXlBDMDAuUEMyTSAoX0FEUiAoKSwgUEJOVSksIDB4MDQ4MCkKICAg ICAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAgICAgICAgICAgICAgICAgICAgTDBT RSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMsIAogICAgICAgICAgICAg ICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwg CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAgICAgICAgICAgICAgICAgICBBQlBY LCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAg ICAgICAgUERDWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAg ICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDVCKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAgICAgICAgUFNQWCwg ICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAg ICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgICAgICBMTlJFLCAgIDEsIAog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICAgICAg IEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEQ4KSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICAgICAgSFBFWCwg ICAxLCAKICAgICAgICAgICAgICAgICAgICBQTUVYLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHhFMCksIAogICAgICAgICAgICAgICAgICAgIFNDQjAsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAgICAgICAgICBOQ0I3 LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAgICAg ICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgTDIzRSwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHgzMjgpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzJCKSwgCiAg ICAgICAgICAgICAgICAgICAgTFRTTSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4NDA0KSwgCiAgICAgICAgICAgICAgICAgICAgTFNPRSwgICAxLCAKICAgICAgICAg ICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4REMpLCAKICAgICAgICAg ICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAgICBIUFNYLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIFBNU1gsICAgMQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAg TFRTU00gYXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAg ICAgICAgICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPTiBTQ0IgIiwg VG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTDIzUiA9 IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTDIzUikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJ RSBMMjNSIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww KysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNDQjAgPSBa ZXJvCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAg ICAgIFdoaWxlICgoTEFTWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiUENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIEVuZCAtIiwgVG9I ZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKERMMjMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMg U3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYg KCgoTEFTWCA9PSBPbmUpICYmIChMTlJFID09IFplcm8pKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAoTE5T RSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTE5SRSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBaZXJvCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVG9nZ2xlIExOUkUiKQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBMMjNFID0gT25lCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAg ICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxl IChMMjNFKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIs IFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVh awogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBT bGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgU0NC MCA9IE9uZQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBS UCBMVFNTTSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChMVFJWLCBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1l IChQUk1WLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAgICAg ICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25l KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3Bl Y2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcwID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3YS05MTE3LWVhNGQxOWMzNDM0 ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMsIEJ1ZmZlciAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBG VU4wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChP UFRTLCAweDA2LCBGVU42KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZUJpdEZpZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBBLCBGVU5BKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAw eDBCLCBGVU5CKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+ PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjAgPSBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGVU42ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU44ID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjkgPSBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDA0KSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU5BID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi X0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPUFRTKSAvKiBcX1NCXy5QQzAyLlJQMTEu X0RTTS5PUFRTICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExUUlYgW1plcm9dID0gKChMTVNMID4+IDB4MEEpICYgMHgw NykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbT25lXSA9IChM TVNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJW IFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExUUlYgWzB4MDNdID0gKExOU0wgJiAweDAzRkYpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikgLyogXF9TQl8uUEMw Mi5SUDExLkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBD YXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT25lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBBKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUFJE IChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBE ZXZpY2UgKFBYU1gpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBP cGVyYXRpb25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcsIFplcm8sIDB4MTApCiAgICAgICAg ICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEVklELCAgIDMy LCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAg ICAgICAgICAgICAgIFBJWFgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQ1gs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQQUhDLCAwLCBTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFgg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIEFIQ0kiKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoUE5WTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChQSVhYID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBT U0QgTlZNZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEVklEID09IDB4RkZG RkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChJU0dYLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChTVEQzICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo UEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJOVk1lIEQzIFN1 cHBvcnQgRW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIp IC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYy ZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BS VzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBSUCIs IFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKEdQMUUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJX ICgweDZCLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJX ICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BT MDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1Qp KSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMwKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBs YXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgICAgICBQUFMw ICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRm b3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQp ICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMzIFBDSWUgUlAiLCBUb0hleFN0cmlu ZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNh bGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAg ICAgIFBQUzMgKCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZy b20gUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBD SWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKEFEU0QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwg VG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChB RFNEICgpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImZkZjA2ZmFkLWY3 NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJl ZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjZiNGFk NDIwLThmZDMtNDM2NC1hY2Y4LWViOTQ4NzZmZDllYiIpIC8qIFVua25vd24gVVVJRCAqLywg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAwKXt9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUx LWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1Rv RDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoVkRJ RCAhPSAweEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhTWCwgMHgwMikgLy8gRGV2 aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElDTSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjA2 KSAvKiBcX1NCXy5BUjA2ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEQwNikgLyogXF9T Ql8uUEQwNiAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBEZXZpY2UgKFJQMTIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFBC TlUsIFplcm8pCiAgICAgICAgICAgICAgICBQQk5VID0gUEJTQiAvKiBFeHRlcm5hbCByZWZl cmVuY2UgKi8KICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKFJQQUMgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFJQQUMpIC8qIFxfU0JfLlBDMDIuUlBBQyAqLwog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxRDAw MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE5hbWUgKFNMT1QsIDB4MEMpCiAgICAgICAgICAgICAgICBOYW1lIChQUlRQLCAw eDAyKQogICAgICAgICAgICAgICAgTmFtZSAoTFRFTiwgWmVybykKICAgICAgICAgICAgICAg IE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChMTlNMLCBaZXJvKQog ICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lO STogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExU RU4gPSBMVFJDIC8qIFxMVFJDICovCiAgICAgICAgICAgICAgICAgICAgTE1TTCA9IFBNTEMg LyogXF9TQl8uUEMwMi5QTUxDICovCiAgICAgICAgICAgICAgICAgICAgTE5TTCA9IFBOTEMg LyogXF9TQl8uUEMwMi5QTkxDICovCiAgICAgICAgICAgICAgICAgICAgSWYgKChDb25kUmVm T2YgKFZNUFApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoVk1ERSA9PSBPbmUpICYmICgoVk1QUCAm IDB4MDgwMCkgIT0gWmVybykpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiUENIIFJQMTIgKDEyOS8yOS8zKSBpcyBtYXBw ZWQgdW5kZXIgVk1EIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSTVYgPSBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKFBSRVMgKCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQSU5JKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUElOSSAoKQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDIuUlAxMikpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgIT0gMHhGRkZG RkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKFxTVEQzKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChc X1NCLlBDMDIuUlAxMi5QUk1WKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUFJNViA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlZNRCBTdG9y YWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRDNDID0gU1REMyAvKiBcU1REMyAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKF5QWFNYLlBOVk0gKCkgfHwgXlBYU1guUEFIQyAoKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIlN0b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhT dHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQz QyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgT3BlcmF0aW9uUmVnaW9uIChQWENTLCBTeXN0ZW1NZW1vcnksIF5eUEMwMC5QQzJN IChfQURSICgpLCBQQk5VKSwgMHgwNDgwKQogICAgICAgICAgICAgICAgRmllbGQgKFBYQ1Ms IEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NTApLCAKICAgICAgICAgICAgICAgICAgICBMMFNFLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAgICAgTERJUywgICAxLCAKICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4NTEpLCAKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEzLCAKICAgICAgICAg ICAgICAgICAgICBMQVNYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1 QSksIAogICAgICAgICAgICAgICAgICAgIEFCUFgsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERTWCwgICAx LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUIpLCAKICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4NjApLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjIp LCAKICAgICAgICAgICAgICAgICAgICBQU1BYLCAgIDEsIAogICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHg2OCksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMTAsIAogICAg ICAgICAgICAgICAgICAgIExOUkUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweEE0KSwgCiAgICAgICAgICAgICAgICAgICAgRDNIVCwgICAyLCAKICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMw LCAKICAgICAgICAgICAgICAgICAgICBIUEVYLCAgIDEsIAogICAgICAgICAgICAgICAgICAg IFBNRVgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUwKSwgCiAgICAg ICAgICAgICAgICAgICAgU0NCMCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAg IDYsIAogICAgICAgICAgICAgICAgICAgIE5DQjcsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweEUyKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAg ICAgICAgICAgICAgICAgICBMMjNFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEwyM1Is ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyOCksIAogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHgzMkIpLCAKICAgICAgICAgICAgICAgICAgICBMVFNNLCAg IDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0MDQpLCAKICAgICAgICAgICAg ICAgICAgICBMU09FLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIExOU0UsICAgMQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5v TG9jaywgV3JpdGVBc1plcm9zKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHhEQyksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAog ICAgICAgICAgICAgICAgICAgIEhQU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUE1T WCwgICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChMMjNE LCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIFN0YXJ0ICAtIiwg VG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQjAgIT0g T25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiUE9OIFNDQiAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBMMjNSID0gT25lCiAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlIChMMjNSKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAw eDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0lFIEwyM1IgVE8gIiwgVG9IZXhTdHJpbmcg KFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQog ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgU0NCMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChMQVNYID09IFplcm8p KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM b2NhbDAgPiAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0lFIExBU1ggVE8gIiwgVG9I ZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0ll IFJQIExUU1NNIGF0IEwyM0QgRW5kIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoREwyMywgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBTdGFydCAtIiwgVG9IZXhTdHJpbmcgKExU U00pKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMQVNYID09IE9uZSkgJiYgKExOUkUg PT0gWmVybykpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKCgoTFNPRSA9PSBPbmUpIHx8IChMTlNFID09IE9uZSkpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTlJFID0gT25lCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTE5SRSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJUb2dnbGUgTE5SRSIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEwyM0UgPSBPbmUKICAgICAgICAg ICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBa ZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKEwyM0UpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIlBPRiBMMjNFIFRPIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgUlAgIiwgVG9IZXhTdHJpbmcgKFNM T1QpKSkKICAgICAgICAgICAgICAgICAgICBTQ0IwID0gT25lCiAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgRW5kIC0iLCBU b0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFBSTVYsIFplcm8pCiAgICAgICAgICAg ICAgICBOYW1lIChSRDNDLCAweDAyKQogICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmICgoVkRJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2Vy aWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiZTVjOTM3 ZDAtMzU1My00ZDdhLTkxMTctZWE0ZDE5YzM0MzRkIikgLyogRGV2aWNlIExhYmVsaW5nIElu dGVyZmFjZSAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoT1BUUywgQnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlQml0RmllbGQgKE9QVFMsIFplcm8sIEZVTjApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDYsIEZVTjYpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDgsIEZV TjgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9Q VFMsIDB4MDksIEZVTjkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qml0RmllbGQgKE9QVFMsIDB4MEEsIEZVTkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEIsIEZVTkIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDIpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RlVOMCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExU RU4gIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjYgPSBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZVTjggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRlVOOSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcxID49IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTkEgPSBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZVTkIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNNIFBDSWUgUlAgT1BUUyAtIiwgVG9I ZXhTdHJpbmcgKE9QVFMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9QVFMpIC8qIFxfU0JfLlBDMDIuUlAxMi5fRFNNLk9QVFMgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4 MDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBb WmVyb10gPSAoKExNU0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMVFJWIFtPbmVdID0gKExNU0wgJiAweDAzRkYpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDJdID0gKChMTlNMID4+IDB4MEEp ICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgw M10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChMVFJWKSAvKiBcX1NCXy5QQzAyLlJQMTIuTFRSViAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNS MSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA1 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcywgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVz CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENhc2UgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBQQkEgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQUkQgKEFyZzMpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoUFhTWCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUENDWCwgUENJ X0NvbmZpZywgWmVybywgMHgxMCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoUENDWCwg Qnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIERWSUQsICAgMzIsIAogICAgICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MDkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgUElYWCwgICA4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgU0NDWCwgICA4LCAKICAgICAgICAgICAgICAgICAg ICAgICAgQkNDWCwgICA4CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKFBBSEMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0NY ID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoIlBTU0QgQUhDSSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQTlZNLCAwLCBTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NY ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoU0NDWCA9PSAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gMHgw MikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBOVk1lIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBS RVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKElTR1gsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJD Q1ggPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNURDMgIT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmlj ZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQQUhDICgpIHx8IFBOVk0gKCkpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIk5WTWUgRDMgU3VwcG9ydCBFbmFibGUgZm9yIENoaWxkIERl dmljZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYt ODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUwMjUw MzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAqLywg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9Q UlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdh a2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiX1BSVyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoR1AxRSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoR1AxRSAh PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NkIsIDB4MDQpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NjksIDB4MDQpKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMw IFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFBQUzApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIp CiAgICAgICAgICAgICAgICAgICAgICAgIFBQUzAgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIl9QUzMgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBT MyBIb29rIikKICAgICAgICAgICAgICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBI b29rIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2 aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9U KSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoQURTRCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIkFsdGVybmF0ZSBfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFEU0QgKCkpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQSU5JKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEw IikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJG dW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgVG9VVUlEICgiNmI0YWQ0MjAtOGZkMy00MzY0LWFjZjgtZWI5NDg3 NmZkOWViIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDApe30KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBV bmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmRhbWVu dGFsRGV2aWNlUmVzZXRUcmlnZ2VyZWRPbkQzVG9EMCIsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoSFBNRSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKChWRElEICE9IDB4RkZGRkZGRkYpICYmIChQTVNY ID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAg ICAgICAgICBQTVNYID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIFBTUFggPSBPbmUK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVDogUENJIFJvdXRp bmcgVGFibGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChQSUNNKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDcpIC8qIFxfU0JfLkFSMDcgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQRDA3KSAvKiBcX1NCXy5QRDA3ICovCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoUlAxMykKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgTmFtZSAoUEJOVSwgWmVybykKICAgICAgICAgICAgICAg IFBCTlUgPSBQQlNCIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAg TWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoUlBBRCAhPSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UlBBRCkgLyogXF9TQl8uUEMwMi5SUEFEICovCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwMDFEMDAwNCkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoU0xPVCwgMHgwRCkK ICAgICAgICAgICAgICAgIE5hbWUgKFBSVFAsIDB4MDIpCiAgICAgICAgICAgICAgICBOYW1l IChMVEVOLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoTE1TTCwgWmVybykKICAgICAg ICAgICAgICAgIE5hbWUgKExOU0wsIFplcm8pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9J TkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTFRFTiA9IExUUkQgLyogXExUUkQgKi8KICAg ICAgICAgICAgICAgICAgICBMTVNMID0gUE1MRCAvKiBcX1NCXy5QQzAyLlBNTEQgKi8KICAg ICAgICAgICAgICAgICAgICBMTlNMID0gUE5MRCAvKiBcX1NCXy5QQzAyLlBOTEQgKi8KICAg ICAgICAgICAgICAgICAgICBJZiAoKENvbmRSZWZPZiAoVk1QUCkgJiYgQ29uZFJlZk9mIChW TURFKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKChWTURFID09IE9uZSkgJiYgKChWTVBQICYgMHgxMDAwKSAhPSBaZXJvKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJQQ0ggUlAxMyAoMTI5LzI5LzQpIGlzIG1hcHBlZCB1bmRlciBWTUQiKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUFJNViA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoUFJFUyAo KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQSU5JICgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KFxfU0IuUEMwMi5SUDEzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoVkRJRCAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNU RDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMi5SUDEzLlBSTVYpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChQUk1WID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiVk1EIFN0b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6Iiwg VG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXlBYU1guUE5WTSAoKSB8fCBeUFhT WC5QQUhDICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU3RvcmFn ZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSRDNDID0gU1REMyAvKiBcU1REMyAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBY Q1MsIFN5c3RlbU1lbW9yeSwgXl5QQzAwLlBDMk0gKF9BRFIgKCksIFBCTlUpLCAweDA0ODAp CiAgICAgICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZl KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZESUQsICAgMzIsIAog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICAgICAg IEwwU0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAg ICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1 MSksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MiksIAogICAgICAgICAgICAg ICAgICAgICAgICAsICAgMTMsIAogICAgICAgICAgICAgICAgICAgIExBU1gsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVBKSwgCiAgICAgICAgICAgICAgICAgICAg QUJQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAg ICAgICAgICAgIFBEQ1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAK ICAgICAgICAgICAgICAgICAgICBQRFNYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MiksIAogICAgICAgICAgICAgICAgICAgIFBT UFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICwgICAxMCwgCiAgICAgICAgICAgICAgICAgICAgTE5SRSwgICAx LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAgICAgICAgICAgICAg ICAgICBEM0hULCAgIDIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEOCksIAog ICAgICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAgICAgICAgICAgICAgIEhQ RVgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUE1FWCwgICAxLCAKICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4RTApLCAKICAgICAgICAgICAgICAgICAgICBTQ0IwLCAgIDEs IAogICAgICAgICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAgICAgICAgICAgICAg TkNCNywgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RTIpLCAKICAgICAg ICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIEwyM0UsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgTDIzUiwgICAxLCAKICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MzI4KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyQiks IAogICAgICAgICAgICAgICAgICAgIExUU00sICAgOCwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDQwNCksIAogICAgICAgICAgICAgICAgICAgIExTT0UsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgTE5TRSwgICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweERDKSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICAgICAgSFBTWCwg ICAxLCAKICAgICAgICAgICAgICAgICAgICBQTVNYLCAgIDEKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKEwyM0QsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0ll IFJQIExUU1NNIGF0IEwyM0QgU3RhcnQgIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAg ICAgICAgICAgICAgICAgIElmICgoU0NCMCAhPSBPbmUpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT04gU0NC ICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEwy M1IgPSBPbmUKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgV2hpbGUgKEwyM1IpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IlBDSUUgTDIzUiBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTQ0Iw ID0gWmVybwogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAg ICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDgpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlBDSUUgTEFTWCBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBFbmQgLSIs IFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChETDIzLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBE TDIzIFN0YXJ0IC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgICAg IElmICgoKExBU1ggPT0gT25lKSAmJiAoTE5SRSA9PSBaZXJvKSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMU09FID09IE9uZSkgfHwg KExOU0UgPT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExOUkUgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTlJFID0gWmVybwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRvZ2dsZSBMTlJFIikKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTDIzRSA9IE9uZQogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBX aGlsZSAoTDIzRSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIEwyM0Ug VE8iLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg QnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlBPRiBSUCAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAg IFNDQjAgPSBPbmUKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBD SWUgUlAgTFRTU00gYXQgREwyMyBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoTFRSViwgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg TmFtZSAoUFJNViwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKFJEM0MsIDB4MDIpCiAg ICAgICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEID09IDB4RkZGRkZGRkYp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNl LVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1lYTRkMTlj MzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJmYWNlICovKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChB cmcyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChPUFRTLCBCdWZmZXIgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgWmVy bywgRlVOMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVs ZCAoT1BUUywgMHgwNiwgRlVONikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOCwgRlVOOCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOSwgRlVOOSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQSwgRlVO QSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BU UywgMHgwQiwgRlVOQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU4wID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoTFRFTiAhPSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRlVONiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOOCA9IE9uZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU45ID0gT25l CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwNCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRlVOQSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChV UFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOQiA9IE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIl9EU00gUENJZSBSUCBPUFRTIC0iLCBUb0hleFN0cmluZyAoT1BUUykpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT1BUUykgLyogXF9TQl8uUEMwMi5S UDEzLl9EU00uT1BUUyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0g MHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFtaZXJvXSA9ICgoTE1TTCA+PiAweDBBKSAm IDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW09uZV0g PSAoTE1TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TFRSViBbMHgwMl0gPSAoKExOU0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAzXSA9IChMTlNMICYgMHgwM0ZGKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExUUlYpIC8qIFxfU0Jf LlBDMDIuUlAxMy5MVFJWICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDYXNlICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVD UjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT25lcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwQSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFBCQSAoQXJn MykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwQikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo VVBSRCAoQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIg KE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgog ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgRGV2aWNlIChQWFNYKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChQQ0NYLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDEwKQogICAg ICAgICAgICAgICAgICAgIEZpZWxkIChQQ0NYLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZl KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFZJRCwg ICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwOSksIAogICAgICAg ICAgICAgICAgICAgICAgICBQSVhYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBT Q0NYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBCQ0NYLCAgIDgKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUEFIQywgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwNikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQ SVhYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBBSENJIikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKFBOVk0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0NYID09IDB4 MDgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoUElYWCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJQU1NEIE5WTWUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRFZJRCA9PSAw eEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoSVNHWCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSAweDAzKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFxTVEQzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoU1REMyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKFBBSEMgKCkgfHwgUE5WTSAoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiTlZNZSBE MyBTdXBwb3J0IEVuYWJsZSBmb3IgQ2hpbGQgRGV2aWNlIikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYy ZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4 OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFJXIFBDSWUg UlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAo Q29uZFJlZk9mIChHUDFFKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChHUDFFICE9IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo R1BSVyAoMHg2QiwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo R1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8v IF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzAgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChT TE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMCkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiQ2FsbGlu ZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAgICAgICAgICAgICAgICAgICAgICAg UFBTMCAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQ bGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBTZXJpYWxp emVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMyBQQ0llIFJQIiwgVG9IZXhT dHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMz KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAgICAgICAgICAg ICAgICAgICBQUFMzICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5l ZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RT RCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChBRFNEKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQWx0ZXJuYXRlIF9EU0QgUENJZSBS UCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQURTRCAoKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYwNmZh ZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmRhbWVudGFsRGV2aWNlUmVzZXRUcmln Z2VyZWRPbkQzVG9EMCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI2 YjRhZDQyMC04ZmQzLTQzNjQtYWNmOC1lYjk0ODc2ZmQ5ZWIiKSAvKiBVbmtub3duIFVVSUQg Ki8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMCl7fQogICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQt NDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9u RDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChIUE1FLCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgo KFZESUQgIT0gMHhGRkZGRkZGRikgJiYgKFBNU1ggPT0gT25lKSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gsIDB4MDIpIC8v IERldmljZSBXYWtlCiAgICAgICAgICAgICAgICAgICAgICAgIFBNU1ggPSBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgUFNQWCA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJQ00pKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QVIwNCkgLyogXF9TQl8uQVIwNCAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBEMDQpIC8q IFxfU0JfLlBEMDQgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgRGV2aWNlIChSUDE0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1l IChQQk5VLCBaZXJvKQogICAgICAgICAgICAgICAgUEJOVSA9IFBCU0IgLyogRXh0ZXJuYWwg cmVmZXJlbmNlICovCiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKChSUEFFICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSUEFFKSAvKiBcX1NCXy5QQzAyLlJQQUUg Ki8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAw MUQwMDA1KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBOYW1lIChTTE9ULCAweDBFKQogICAgICAgICAgICAgICAgTmFtZSAoUFJU UCwgMHgwMikKICAgICAgICAgICAgICAgIE5hbWUgKExURU4sIFplcm8pCiAgICAgICAgICAg ICAgICBOYW1lIChMTVNMLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoTE5TTCwgWmVy bykKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBMVEVOID0gTFRSRSAvKiBcTFRSRSAqLwogICAgICAgICAgICAgICAgICAgIExNU0wgPSBQ TUxFIC8qIFxfU0JfLlBDMDIuUE1MRSAqLwogICAgICAgICAgICAgICAgICAgIExOU0wgPSBQ TkxFIC8qIFxfU0JfLlBDMDIuUE5MRSAqLwogICAgICAgICAgICAgICAgICAgIElmICgoQ29u ZFJlZk9mIChWTVBQKSAmJiBDb25kUmVmT2YgKFZNREUpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFZNREUgPT0gT25lKSAmJiAoKFZN UFAgJiAweDIwMDApICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBDSCBSUDE0ICgxMjkvMjkvNSkgaXMg bWFwcGVkIHVuZGVyIFZNRCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk1WID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBJTkkgKCkK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMTQpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEICE9IDB4 RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoXF9TQi5QQzAyLlJQMTQuUFJNVikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJWTUQg U3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNU RDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRv SGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVtTWVtb3J5LCBeXlBDMDAu UEMyTSAoX0FEUiAoKSwgUEJOVSksIDB4MDQ4MCkKICAgICAgICAgICAgICAgIEZpZWxkIChQ WENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDUwKSwgCiAgICAgICAgICAgICAgICAgICAgTDBTRSwgICAxLCAKICAgICAgICAgICAg ICAgICAgICAgICAgLCAgIDMsIAogICAgICAgICAgICAgICAgICAgIExESVMsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDUyKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAgICAg ICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NUEpLCAKICAgICAgICAgICAgICAgICAgICBBQlBYLCAgIDEsIAogICAgICAgICAgICAg ICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERDWCwgICAxLCAKICAg ICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIFBEU1gs ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVCKSwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDYyKSwgCiAgICAgICAgICAgICAgICAgICAgUFNQWCwgICAxLCAKICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAK ICAgICAgICAgICAgICAgICAgICBMTlJFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweEQ4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwg ICAzMCwgCiAgICAgICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAgICAgICAgICAgICAg ICAgICBQTUVYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMCksIAog ICAgICAgICAgICAgICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAg ICwgICA2LCAKICAgICAgICAgICAgICAgICAgICBOQ0I3LCAgIDEsIAogICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwg CiAgICAgICAgICAgICAgICAgICAgTDIzRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBM MjNSLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMjgpLCAKICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAgICAgICAgICAgICAgTFRT TSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDA0KSwgCiAgICAgICAg ICAgICAgICAgICAgTFNPRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBMTlNFLCAgIDEK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNj LCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4REMpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMw LCAKICAgICAgICAgICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAgICAgICAg IFBNU1gsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo TDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBTdGFydCAg LSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0Iw ICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTDIzUiA9IE9uZQogICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTDIzUikKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWww ID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNSIFRPICIsIFRvSGV4U3Ry aW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgx MCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIFNDQjAgPSBaZXJvCiAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTEFTWCA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMQVNYIFRPICIs IFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVh awogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBT bGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UENJZSBSUCBMVFNTTSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKERMMjMsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5n IChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTEFTWCA9PSBPbmUpICYmIChM TlJFID09IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBPbmUpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IE9u ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExOUkUgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiVG9nZ2xlIExOUkUiKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMMjNFID0gT25lCiAgICAg ICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlIChMMjNFKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4U3RyaW5nIChTTE9UKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQICIsIFRvSGV4U3RyaW5n IChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgU0NCMCA9IE9uZQogICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIEVuZCAt IiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBOYW1lIChMVFJWLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChQUk1WLCBaZXJvKQogICAgICAg ICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJF UywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQs IFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU1 YzkzN2QwLTM1NTMtNGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGlu ZyBJbnRlcmZhY2UgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKE9QVFMsIEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA2LCBGVU42KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA4 LCBGVU44KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxk IChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBBLCBGVU5BKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBGVU5CKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZVTjAgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU42ID0gT25lCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGVU44ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMSA+PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5BID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQQ0llIFJQIE9QVFMgLSIs IFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPUFRTKSAvKiBcX1NCXy5QQzAyLlJQMTQuX0RTTS5PUFRTICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExU UlYgW1plcm9dID0gKChMTVNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAw eDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYg WzB4MDNdID0gKExOU0wgJiAweDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoTFRSVikgLyogXF9TQl8uUEMwMi5SUDE0LkxUUlYgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4 MDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4 MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo MHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVz LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhD MzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T25lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDYXNlICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQ UkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUFJEIChBcmczKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFBYU1gpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9B RFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDQ1gs IFBDSV9Db25maWcsIFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFBD Q1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBEVklELCAgIDMyLCAKICAgICAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBJWFgsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQ1gsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo U0NDWCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJQU1NEIEFIQ0kiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUE5WTSwgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09 IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgTlZNZSIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChQUkVTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChEVklEID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChJU0dYLCAwLCBTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTVEQz ICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBE ZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQgRW5hYmxlIGZvciBDaGls ZCBEZXZpY2UiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUwMjUw MzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAqLywg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1 MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQg Ki8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJs ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBa ZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZv ciBXYWtlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkp CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEdQMUUpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEdQ MUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDZCLCAweDA0KSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0KSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi X1BTMCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChQUFMwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhv b2siKQogICAgICAgICAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2si KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0 ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJfUFMzIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBS UCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxhdGZvcm0gUENJRSBSUCBQ UzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6 IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAo U0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEFEU0QpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBRFNEICgpKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIx NWIxMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjZiNGFkNDIwLThmZDMtNDM2NC1hY2Y4LWVi OTQ4NzZmZDllYiIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAwKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikg LyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5k YW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAweEZGRkZGRkZGKSAmJiAo UE1TWCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIE5vdGlmeSAoUFhTWCwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAg ICAgICAgICAgICAgUE1TWCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBQU1BYID0g T25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBS b3V0aW5nIFRhYmxlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoUElDTSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjA1KSAvKiBcX1NCXy5BUjA1ICovCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUEQwNSkgLyogXF9TQl8uUEQwNSAqLwogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFJQMTUpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFBCTlUsIFplcm8pCiAgICAgICAgICAg ICAgICBQQk5VID0gUEJTQiAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8KICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFJQQUYgIT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFJQQUYpIC8qIFxfU0JfLlBDMDIuUlBBRiAqLwogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxRDAwMDYpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKFNMT1QsIDB4 MEYpCiAgICAgICAgICAgICAgICBOYW1lIChQUlRQLCAweDAyKQogICAgICAgICAgICAgICAg TmFtZSAoTFRFTiwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKExNU0wsIFplcm8pCiAg ICAgICAgICAgICAgICBOYW1lIChMTlNMLCBaZXJvKQogICAgICAgICAgICAgICAgTWV0aG9k IChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExURU4gPSBMVFJGIC8qIFxMVFJGICov CiAgICAgICAgICAgICAgICAgICAgTE1TTCA9IFBNTEYgLyogXF9TQl8uUEMwMi5QTUxGICov CiAgICAgICAgICAgICAgICAgICAgTE5TTCA9IFBOTEYgLyogXF9TQl8uUEMwMi5QTkxGICov CiAgICAgICAgICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZNUFApICYmIENvbmRSZWZP ZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKCgoVk1ERSA9PSBPbmUpICYmICgoVk1QUCAmIDB4NDAwMCkgIT0gWmVybykpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiUENIIFJQMTUgKDEyOS8yOS82KSBpcyBtYXBwZWQgdW5kZXIgVk1EIikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBSTVYgPSBPbmUKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKFBS RVMgKCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChQSU5JKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUElOSSAoKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChcX1NCLlBDMDIuUlAxNSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKFZESUQgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KFxTVEQzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDIuUlAxNS5QUk1WKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoUFJNViA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlZNRCBTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVz OiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSRDNDID0gU1REMyAvKiBcU1REMyAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKF5QWFNYLlBOVk0gKCkgfHwg XlBYU1guUEFIQyAoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlN0 b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChQWENTLCBTeXN0ZW1NZW1vcnksIF5eUEMwMC5QQzJNIChfQURSICgpLCBQQk5VKSwgMHgw NDgwKQogICAgICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWRElELCAgIDMy LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTApLCAKICAgICAgICAgICAgICAg ICAgICBMMFNFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAg ICAgICAgICAgICAgICAgTERJUywgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NTEpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAg ICAgICAgICAgICAgICAgLCAgIDEzLCAKICAgICAgICAgICAgICAgICAgICBMQVNYLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QSksIAogICAgICAgICAgICAgICAg ICAgIEFCUFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAg ICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAg MiwgCiAgICAgICAgICAgICAgICAgICAgUERTWCwgICAxLCAKICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4NUIpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjApLCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjIpLCAKICAgICAgICAgICAgICAgICAg ICBQU1BYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2OCksIAogICAg ICAgICAgICAgICAgICAgICAgICAsICAgMTAsIAogICAgICAgICAgICAgICAgICAgIExOUkUs ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAg ICAgICAgICAgRDNIVCwgICAyLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RDgp LCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAg ICBIUEVYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweEUwKSwgCiAgICAgICAgICAgICAgICAgICAgU0NCMCwg ICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICAg ICAgIE5DQjcsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUyKSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBMMjNF LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEwyM1IsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDMyOCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgz MkIpLCAKICAgICAgICAgICAgICAgICAgICBMVFNNLCAgIDgsIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHg0MDQpLCAKICAgICAgICAgICAgICAgICAgICBMU09FLCAgIDEsIAog ICAgICAgICAgICAgICAgICAgIExOU0UsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgV3JpdGVBc1plcm9zKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAog ICAgICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAgICAgICAgICAgICAgIEhQ U1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUE1TWCwgICAxCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChMMjNELCAwLCBTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UENJZSBSUCBMVFNTTSBhdCBMMjNEIFN0YXJ0ICAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkK ICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQjAgIT0gT25lKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9O IFNDQiAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBMMjNSID0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAg ICAgICAgICAgICAgIFdoaWxlIChMMjNSKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJQQ0lFIEwyM1IgVE8gIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg U0NCMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgV2hpbGUgKChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA4KSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJQQ0lFIExBU1ggVE8gIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgRW5k IC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoREwyMywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00g YXQgREwyMyBTdGFydCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg ICAgICBJZiAoKChMQVNYID09IE9uZSkgJiYgKExOUkUgPT0gWmVybykpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTFNPRSA9PSBPbmUp IHx8IChMTlNFID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMTlJFID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IFpl cm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUb2dnbGUgTE5SRSIpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIEwyM0UgPSBPbmUKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgx MCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAg ICAgV2hpbGUgKEwyM0UpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPRiBM MjNFIFRPIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJQT0YgUlAgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAg ICAgICBTQ0IwID0gT25lCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJQQ0llIFJQIExUU1NNIGF0IERMMjMgRW5kIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgIE5hbWUgKFBSTVYsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChSRDNDLCAweDAy KQogICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoVkRJRCA9PSAweEZGRkZG RkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERl dmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiZTVjOTM3ZDAtMzU1My00ZDdhLTkxMTctZWE0 ZDE5YzM0MzRkIikgLyogRGV2aWNlIExhYmVsaW5nIEludGVyZmFjZSAqLykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdl ciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoT1BUUywgQnVmZmVyICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMs IFplcm8sIEZVTjApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0 RmllbGQgKE9QVFMsIDB4MDYsIEZVTjYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDgsIEZVTjgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDksIEZVTjkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEEs IEZVTkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQg KE9QVFMsIDB4MEIsIEZVTkIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcxID49IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOMCA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExURU4gIT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZVTjYgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjggPSBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOOSA9 IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDQp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZVTkEgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTkIgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJfRFNNIFBDSWUgUlAgT1BUUyAtIiwgVG9IZXhTdHJpbmcgKE9QVFMpKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9QVFMpIC8qIFxfU0JfLlBD MDIuUlAxNS5fRFNNLk9QVFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDYpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcx ID49IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbWmVyb10gPSAoKExNU0wgPj4gMHgw QSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFtP bmVdID0gKExNU0wgJiAweDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExUUlYgWzB4MDJdID0gKChMTlNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4MDNGRikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMVFJWKSAvKiBc X1NCXy5QQzAyLlJQMTUuTFRSViAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT25lcywgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBQQkEg KEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4 MEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFVQUkQgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVm ZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIERldmljZSAoUFhTWCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAg ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUENDWCwgUENJX0NvbmZpZywgWmVybywgMHgxMCkK ICAgICAgICAgICAgICAgICAgICBGaWVsZCAoUENDWCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERW SUQsICAgMzIsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDkpLCAKICAg ICAgICAgICAgICAgICAgICAgICAgUElYWCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAg ICAgU0NDWCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgQkNDWCwgICA4CiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBBSEMsIDAs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0NYID09IDB4MDYpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoUElYWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgQUhDSSIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChQTlZNLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9 PSAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiUFNTRCBOVk1lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERWSUQg PT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKElTR1gsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gMHgwMykpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKFNURDMgIT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChQQUhDICgpIHx8IFBOVk0gKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIk5W TWUgRDMgU3VwcG9ydCBFbmFibGUgZm9yIENoaWxkIERldmljZSIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4 OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5 YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BSVyBQ Q0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoR1AxRSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoR1AxRSAhPSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEdQUlcgKDB4NkIsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEdQUlcgKDB4NjksIDB4MDQpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIFNlcmlhbGl6ZWQp ICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMwIFBDSWUgUlAiLCBUb0hleFN0cmlu ZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzApKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNh bGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAg ICAgIFBQUzAgKCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZy b20gUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2Vy aWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzMgUENJZSBSUCIsIFRv SGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UFBTMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAg ICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUmV0 dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNE LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo Il9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoQURTRCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkFsdGVybmF0ZSBfRFNEIFBD SWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEFEU0QgKCkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChQSU5JKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRm MDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICov LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0 VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlE ICgiNmI0YWQ0MjAtOGZkMy00MzY0LWFjZjgtZWI5NDg3NmZkOWViIikgLyogVW5rbm93biBV VUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDApe30K ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYwNmZhZC1m NzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmRhbWVudGFsRGV2aWNlUmVzZXRUcmlnZ2Vy ZWRPbkQzVG9EMCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoSFBNRSwg MCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoKChWRElEICE9IDB4RkZGRkZGRkYpICYmIChQTVNYID09IE9uZSkpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAy KSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAgICAgICAgICBQTVNYID0gT25lCiAg ICAgICAgICAgICAgICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQSUNNKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEFSMDYpIC8qIFxfU0JfLkFSMDYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQRDA2 KSAvKiBcX1NCXy5QRDA2ICovCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoUlAxNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoUEJOVSwgWmVybykKICAgICAgICAgICAgICAgIFBCTlUgPSBQQlNCIC8qIEV4dGVy bmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmICgoUlBBRyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlBBRykgLyogXF9TQl8uUEMwMi5S UEFHICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwMDFEMDAwNykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTmFtZSAoU0xPVCwgMHgxMCkKICAgICAgICAgICAgICAgIE5hbWUg KFBSVFAsIDB4MDIpCiAgICAgICAgICAgICAgICBOYW1lIChMVEVOLCBaZXJvKQogICAgICAg ICAgICAgICAgTmFtZSAoTE1TTCwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKExOU0ws IFplcm8pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTFRFTiA9IExUUkcgLyogXExUUkcgKi8KICAgICAgICAgICAgICAgICAgICBMTVNM ID0gUE1MRyAvKiBcX1NCXy5QQzAyLlBNTEcgKi8KICAgICAgICAgICAgICAgICAgICBMTlNM ID0gUE5MRyAvKiBcX1NCXy5QQzAyLlBOTEcgKi8KICAgICAgICAgICAgICAgICAgICBJZiAo KENvbmRSZWZPZiAoVk1QUCkgJiYgQ29uZFJlZk9mIChWTURFKSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChWTURFID09IE9uZSkgJiYg KChWTVBQICYgMHg4MDAwKSAhPSBaZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQQ0ggUlAxNiAoMTI5LzI5Lzcp IGlzIG1hcHBlZCB1bmRlciBWTUQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJN ViA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoUFJFUyAoKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSU5J ICgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMi5SUDE2KSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVkRJRCAh PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFxfU0IuUEMwMi5SUDE2LlBSTVYpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQUk1W ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi Vk1EIFN0b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8q IFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoXlBYU1guUE5WTSAoKSB8fCBeUFhTWC5QQUhDICgpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoi LCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSRDNDID0gU1REMyAvKiBcU1REMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBYQ1MsIFN5c3RlbU1lbW9yeSwgXl5Q QzAwLlBDMk0gKF9BRFIgKCksIFBCTlUpLCAweDA0ODApCiAgICAgICAgICAgICAgICBGaWVs ZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFZESUQsICAgMzIsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICAgICAgIEwwU0UsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgICAgICBMRElTLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MSksIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHg1MiksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMTMsIAog ICAgICAgICAgICAgICAgICAgIExBU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDVBKSwgCiAgICAgICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAgICAgICAg ICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIFBEQ1gsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQ RFNYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg2MiksIAogICAgICAgICAgICAgICAgICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAx MCwgCiAgICAgICAgICAgICAgICAgICAgTE5SRSwgICAxLCAKICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4QTQpLCAKICAgICAgICAgICAgICAgICAgICBEM0hULCAgIDIsIAogICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEOCksIAogICAgICAgICAgICAgICAgICAgICAg ICAsICAgMzAsIAogICAgICAgICAgICAgICAgICAgIEhQRVgsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgUE1FWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RTAp LCAKICAgICAgICAgICAgICAgICAgICBTQ0IwLCAgIDEsIAogICAgICAgICAgICAgICAgICAg ICAgICAsICAgNiwgCiAgICAgICAgICAgICAgICAgICAgTkNCNywgICAxLCAKICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4RTIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAg IDIsIAogICAgICAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgTDIzUiwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzI4KSwgCiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyQiksIAogICAgICAgICAgICAgICAgICAg IExUU00sICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQwNCksIAogICAg ICAgICAgICAgICAgICAgIExTT0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgTE5TRSwg ICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFu eUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweERDKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwg ICAzMCwgCiAgICAgICAgICAgICAgICAgICAgSFBTWCwgICAxLCAKICAgICAgICAgICAgICAg ICAgICBQTVNYLCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKEwyM0QsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgU3Rh cnQgIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgICAgIElmICgo U0NCMCAhPSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT04gU0NCICIsIFRvSGV4U3RyaW5nIChTTE9U KSkpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEwyM1IgPSBPbmUKICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKEwyM1Ip CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExv Y2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTDIzUiBUTyAiLCBUb0hl eFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAg KDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTQ0IwID0gWmVybwogICAgICAgICAgICAg ICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExBU1gg PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKExvY2FsMCA+IDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTEFTWCBU TyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg QnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChETDIzLCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIFN0YXJ0IC0iLCBUb0hleFN0 cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgICAgIElmICgoKExBU1ggPT0gT25lKSAm JiAoTE5SRSA9PSBaZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKChMU09FID09IE9uZSkgfHwgKExOU0UgPT0gT25lKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMTlJFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIlRvZ2dsZSBMTlJFIikKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTDIzRSA9IE9uZQog ICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTDIzRSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgw NCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIEwyM0UgVE8iLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPRiBSUCAiLCBUb0hleFN0 cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIFNDQjAgPSBPbmUKICAgICAgICAg ICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBF bmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTmFtZSAoTFRSViwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoUFJNViwgWmVybykKICAg ICAgICAgICAgICAgIE5hbWUgKFJEM0MsIDB4MDIpCiAgICAgICAgICAgICAgICBNZXRob2Qg KFBSRVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKChWRElEID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNN LCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQg KCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFi ZWxpbmcgSW50ZXJmYWNlICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOYW1lIChPUFRTLCBCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg MHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgWmVybywgRlVOMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwNiwgRlVONikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywg MHgwOCwgRlVOOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRG aWVsZCAoT1BUUywgMHgwOSwgRlVOOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQSwgRlVOQSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQiwgRlVOQikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGVU4wID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoTFRFTiAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVONiA9IE9u ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRlVOOCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGVU45ID0gT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChQUEJBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOQSA9IE9uZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRlVOQiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU00gUENJZSBSUCBPUFRT IC0iLCBUb0hleFN0cmluZyAoT1BUUykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoT1BUUykgLyogXF9TQl8uUEMwMi5SUDE2Ll9EU00uT1BUUyAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Q2FzZSAoMHgwNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMVFJWIFtaZXJvXSA9ICgoTE1TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4MDNGRikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwMl0gPSAoKExOU0wg Pj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM VFJWIFsweDAzXSA9IChMTlNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDMDIuUlAxNi5MVFJWICovCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+ PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2th Z2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMz NTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T25lcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE9uZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoUFBCQSAoQXJnMykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwQikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBSRCAoQXJnMykpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQWFNYKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAv LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQ Q0NYLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDEwKQogICAgICAgICAgICAgICAgICAgIEZpZWxk IChQQ0NYLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgRFZJRCwgICAzMiwgCiAgICAgICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHgwOSksIAogICAgICAgICAgICAgICAgICAgICAgICBQSVhY LCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTQ0NYLCAgIDgsIAogICAgICAgICAg ICAgICAgICAgICAgICBCQ0NYLCAgIDgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoUEFIQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKFNDQ1ggPT0gMHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiUFNTRCBBSENJIikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBOVk0sIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChTQ0NYID09IDB4MDgpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElY WCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIE5WTWUiKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoUFJFUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoRFZJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoSVNHWCwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQkNDWCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxTVEQz KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo U1REMyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RT RDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBBSEMgKCkgfHwgUE5WTSAo KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiTlZNZSBEMyBTdXBwb3J0IEVuYWJsZSBmb3Ig Q2hpbGQgRGV2aWNlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1 MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQg Ki8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJs ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlE ICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBV VUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNF bmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNl cyBmb3IgV2FrZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFJXIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChHUDFFICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2QiwgMHgwNCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIl9QUzAgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBT MCBIb29rIikKICAgICAgICAgICAgICAgICAgICAgICAgUFBTMCAoKQogICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBI b29rIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIg U3RhdGUgMwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENv bmNhdGVuYXRlICgiX1BTMyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMzKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBD SUUgUlAgUFMzIEhvb2siKQogICAgICAgICAgICAgICAgICAgICAgICBQUFMzICgpCiAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUg UlAgUFMzIEhvb2siKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf RFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJp bmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChBRFNEKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENv bmNhdGVuYXRlICgiQWx0ZXJuYXRlIF9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9U KSkpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQURTRCAoKSkKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3 OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkZ1bmRhbWVudGFsRGV2aWNlUmVzZXRUcmlnZ2VyZWRPbkQzVG9EMCIsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI2YjRhZDQyMC04ZmQzLTQzNjQtYWNm OC1lYjk0ODc2ZmQ5ZWIiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMCl7fQogICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIx MCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi RnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChIUE1FLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFZESUQgIT0gMHhGRkZGRkZGRikg JiYgKFBNU1ggPT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBOb3RpZnkgKFBYU1gsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAg ICAgICAgICAgICAgICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgUFNQ WCA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQ Q0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFBJQ00pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIwNykgLyogXF9TQl8uQVIwNyAq LwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBEMDcpIC8qIFxfU0JfLlBEMDcgKi8KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChSUDE3KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChQQk5VLCBaZXJvKQogICAgICAg ICAgICAgICAgUEJOVSA9IFBCU0IgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRy ZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChSUEFIICE9 IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChSUEFIKSAvKiBcX1NCXy5QQzAyLlJQQUggKi8KICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwMUIwMDAwKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChTTE9U LCAweDExKQogICAgICAgICAgICAgICAgTmFtZSAoUFJUUCwgMHgwMikKICAgICAgICAgICAg ICAgIE5hbWUgKExURU4sIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChMTVNMLCBaZXJv KQogICAgICAgICAgICAgICAgTmFtZSAoTE5TTCwgWmVybykKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMVEVOID0gTFRSSCAvKiBcTFRS SCAqLwogICAgICAgICAgICAgICAgICAgIExNU0wgPSBQTUxIIC8qIFxfU0JfLlBDMDIuUE1M SCAqLwogICAgICAgICAgICAgICAgICAgIExOU0wgPSBQTkxIIC8qIFxfU0JfLlBDMDIuUE5M SCAqLwogICAgICAgICAgICAgICAgICAgIElmICgoQ29uZFJlZk9mIChWTVBQKSAmJiBDb25k UmVmT2YgKFZNREUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoKFZNREUgPT0gT25lKSAmJiAoKFZNUFAgJiAweDAwMDEwMDAwKSAhPSBa ZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJQQ0ggUlAxNyAoMTI5LzI3LzApIGlzIG1hcHBlZCB1bmRlciBWTUQi KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJNViA9IE9uZQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBJZiAoUFJFUyAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSU5JICgpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFxfU0IuUEMwMi5SUDE3KSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoVkRJRCAhPSAweEZGRkZGRkZGKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMi5SUDE3 LlBSTVYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQUk1WID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVk1EIFN0b3JhZ2UgUnVudGltZSBE MyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXlBYU1guUE5W TSAoKSB8fCBeUFhTWC5QQUhDICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRDNDID0gU1REMyAvKiBc U1REMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBPcGVyYXRp b25SZWdpb24gKFBYQ1MsIFN5c3RlbU1lbW9yeSwgXl5QQzAwLlBDMk0gKF9BRFIgKCksIFBC TlUpLCAweDA0ODApCiAgICAgICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZE SUQsICAgMzIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MCksIAogICAgICAg ICAgICAgICAgICAgIEwwU0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAz LCAKICAgICAgICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHg1MSksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MiksIAog ICAgICAgICAgICAgICAgICAgICAgICAsICAgMTMsIAogICAgICAgICAgICAgICAgICAgIExB U1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVBKSwgCiAgICAgICAg ICAgICAgICAgICAgQUJQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIs IAogICAgICAgICAgICAgICAgICAgIFBEQ1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQRFNYLCAgIDEsIAogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHg2MCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MiksIAogICAgICAgICAg ICAgICAgICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4 KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMCwgCiAgICAgICAgICAgICAgICAg ICAgTE5SRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAg ICAgICAgICAgICAgICAgICBEM0hULCAgIDIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHhEOCksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAgICAg ICAgICAgICAgIEhQRVgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUE1FWCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RTApLCAKICAgICAgICAgICAgICAgICAg ICBTQ0IwLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAg ICAgICAgICAgICAgTkNCNywgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 RTIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAg ICAgIEwyM0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgTDIzUiwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MzI4KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDMyQiksIAogICAgICAgICAgICAgICAgICAgIExUU00sICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDQwNCksIAogICAgICAgICAgICAgICAgICAgIExTT0Us ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgTE5TRSwgICAxCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFz WmVyb3MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eERDKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAg ICAgICAgSFBTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBQTVNYLCAgIDEKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEwyM0QsIDAsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgU3RhcnQgIC0iLCBUb0hleFN0cmluZyAo TFRTTSkpKQogICAgICAgICAgICAgICAgICAgIElmICgoU0NCMCAhPSBPbmUpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJQT04gU0NCICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIEwyM1IgPSBPbmUKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJv CiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKEwyM1IpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBDSUUgTDIzUiBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBTQ0IwID0gWmVybwogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8K ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDgp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTEFTWCBUTyAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQg TDIzRCBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChETDIzLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBS UCBMVFNTTSBhdCBETDIzIFN0YXJ0IC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAg ICAgICAgICAgICAgIElmICgoKExBU1ggPT0gT25lKSAmJiAoTE5SRSA9PSBaZXJvKSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMU09F ID09IE9uZSkgfHwgKExOU0UgPT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM TlJFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRvZ2dsZSBM TlJFIikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTDIzRSA9IE9uZQogICAgICAgICAgICAgICAgICAgIFNs ZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAg ICAgICAgICAgICBXaGlsZSAoTDIzRSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiUE9GIEwyM0UgVE8iLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIlBPRiBSUCAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAg ICAgICAgICAgICAgIFNDQjAgPSBPbmUKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBFbmQgLSIsIFRvSGV4U3RyaW5nIChM VFNNKSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoTFRSViwg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgTmFtZSAoUFJNViwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKFJE M0MsIDB4MDIpCiAgICAgICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEID09 IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8g X0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNWM5MzdkMC0zNTUzLTRkN2Et OTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJmYWNlICovKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAo VG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChPUFRTLCBCdWZm ZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVs ZCAoT1BUUywgWmVybywgRlVOMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwNiwgRlVONikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOCwgRlVOOCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOSwgRlVO OSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BU UywgMHgwQSwgRlVOQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVC aXRGaWVsZCAoT1BUUywgMHgwQiwgRlVOQikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU4wID0gT25lCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTFRFTiAhPSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRlVONiA9IE9uZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChF Q1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcx ID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVO OCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU45ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEg Pj0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRlVOQSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo Q29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOQiA9IE9uZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIl9EU00gUENJZSBSUCBPUFRTIC0iLCBUb0hleFN0cmluZyAoT1BU UykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT1BUUykgLyog XF9TQl8uUEMwMi5SUDE3Ll9EU00uT1BUUyAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFtaZXJvXSA9ICgoTE1T TCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExUUlYgW09uZV0gPSAoTE1TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTFRSViBbMHgwMl0gPSAoKExOU0wgPj4gMHgwQSkgJiAweDA3KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAzXSA9IChMTlNMICYg MHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExU UlYpIC8qIFxfU0JfLlBDMDIuUlAxNy5MVFJWICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1Ix KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA5KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgw QSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUFBCQSAoQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Q2FzZSAoMHgwQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoVVBSRCAoQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgRGV2aWNlIChQWFNYKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0NYLCBQQ0lfQ29uZmlnLCBaZXJv LCAweDEwKQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChQQ0NYLCBCeXRlQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgRFZJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgw OSksIAogICAgICAgICAgICAgICAgICAgICAgICBQSVhYLCAgIDgsIAogICAgICAgICAgICAg ICAgICAgICAgICBTQ0NYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBCQ0NYLCAg IDgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo UEFIQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwNikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChQSVhYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBB SENJIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFBOVk0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChTQ0NYID09IDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSAweDAyKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJQU1NEIE5WTWUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgU2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoRFZJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoSVNHWCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSAweDAzKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxTVEQzKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1REMyAhPSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERh dGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFBBSEMgKCkgfHwgUE5WTSAoKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiTlZNZSBEMyBTdXBwb3J0IEVuYWJsZSBmb3IgQ2hpbGQgRGV2aWNlIikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2 MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0 LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJfUFJXIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChHUDFFICE9IFplcm8pKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoR1BSVyAoMHg2QiwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2Vy aWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzAgUENJZSBSUCIsIFRv SGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UFBTMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAgICAgICAgICAg ICAgICAgICAgICAgUFBTMCAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUmV0 dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMz LCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMyBQQ0ll IFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChQUFMzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAg ICAgICAgICAgICAgICAgICAgICBQUFMzICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMg RGF0YQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChBRFNEKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQWx0ZXJuYXRl IF9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQURTRCAoKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VV SUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3du IFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmRhbWVudGFsRGV2 aWNlUmVzZXRUcmlnZ2VyZWRPbkQzVG9EMCIsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUb1VVSUQgKCI2YjRhZDQyMC04ZmQzLTQzNjQtYWNmOC1lYjk0ODc2ZmQ5ZWIiKSAvKiBV bmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMCl7fQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImZk ZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVua25vd24gVVVJRCAq LywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNl dFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChIUE1FLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmICgoKFZESUQgIT0gMHhGRkZGRkZGRikgJiYgKFBNU1ggPT0gT25lKSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFBY U1gsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAgICAgICAgICAgIFBNU1gg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgUFNQWCA9IE9uZQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9Q UlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJQ00p KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFBJ Q00pCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQVIwNCkgLyogXF9TQl8uQVIwNCAqLwogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBEMDQpIC8qIFxfU0JfLlBEMDQgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgRGV2aWNlIChSUDE4KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBOYW1lIChQQk5VLCBaZXJvKQogICAgICAgICAgICAgICAgUEJOVSA9IFBCU0Ig LyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKChSUEFJICE9IFplcm8pKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSUEFJKSAvKiBcX1NC Xy5QQzAyLlJQQUkgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAwMUIwMDAxKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChTTE9ULCAweDEyKQogICAgICAgICAgICAg ICAgTmFtZSAoUFJUUCwgMHgwMikKICAgICAgICAgICAgICAgIE5hbWUgKExURU4sIFplcm8p CiAgICAgICAgICAgICAgICBOYW1lIChMTVNMLCBaZXJvKQogICAgICAgICAgICAgICAgTmFt ZSAoTE5TTCwgWmVybykKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBMVEVOID0gTFRSSSAvKiBcTFRSSSAqLwogICAgICAgICAgICAgICAg ICAgIExNU0wgPSBQTUxJIC8qIFxfU0JfLlBDMDIuUE1MSSAqLwogICAgICAgICAgICAgICAg ICAgIExOU0wgPSBQTkxJIC8qIFxfU0JfLlBDMDIuUE5MSSAqLwogICAgICAgICAgICAgICAg ICAgIElmICgoQ29uZFJlZk9mIChWTVBQKSAmJiBDb25kUmVmT2YgKFZNREUpKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFZNREUgPT0g T25lKSAmJiAoKFZNUFAgJiAweDAwMDIwMDAwKSAhPSBaZXJvKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQQ0ggUlAx OCAoMTI5LzI3LzEpIGlzIG1hcHBlZCB1bmRlciBWTUQiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUFJNViA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoUFJFUyAoKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KFBJTkkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQSU5JICgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMw Mi5SUDE4KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoVkRJRCAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMi5SUDE4LlBSTVYpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChQUk1WID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENv bmNhdGVuYXRlICgiVk1EIFN0b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJp bmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJE M0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoXlBYU1guUE5WTSAoKSB8fCBeUFhTWC5QQUhDICgp KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU3RvcmFnZSBSdW50aW1l IEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSRDNDID0gU1REMyAvKiBcU1REMyAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBYQ1MsIFN5c3Rl bU1lbW9yeSwgXl5QQzAwLlBDMk0gKF9BRFIgKCksIFBCTlUpLCAweDA0ODApCiAgICAgICAg ICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZESUQsICAgMzIsIAogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICAgICAgIEwwU0UsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgICAg ICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MSksIAogICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MiksIAogICAgICAgICAgICAgICAgICAgICAg ICAsICAgMTMsIAogICAgICAgICAgICAgICAgICAgIExBU1gsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDVBKSwgCiAgICAgICAgICAgICAgICAgICAgQUJQWCwgICAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAg IFBEQ1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAg ICAgICAgICAgICBQRFNYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1 QiksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHg2MiksIAogICAgICAgICAgICAgICAgICAgIFBTUFgsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICwgICAxMCwgCiAgICAgICAgICAgICAgICAgICAgTE5SRSwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAgICAgICAgICAgICAgICAgICBEM0hU LCAgIDIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEOCksIAogICAgICAgICAg ICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAgICAgICAgICAgICAgIEhQRVgsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgUE1FWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4RTApLCAKICAgICAgICAgICAgICAgICAgICBTQ0IwLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAgICAgICAgICAgICAgTkNCNywgICAx LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RTIpLCAKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgTDIzUiwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4MzI4KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyQiksIAogICAgICAg ICAgICAgICAgICAgIExUU00sICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDQwNCksIAogICAgICAgICAgICAgICAgICAgIExTT0UsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgTE5TRSwgICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRmll bGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweERDKSwgCiAgICAgICAgICAgICAg ICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICAgICAgSFBTWCwgICAxLCAKICAg ICAgICAgICAgICAgICAgICBQTVNYLCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKEwyM0QsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NN IGF0IEwyM0QgU3RhcnQgIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAg ICAgICAgIElmICgoU0NCMCAhPSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT04gU0NCICIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEwyM1IgPSBPbmUK ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg V2hpbGUgKEwyM1IpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTDIz UiBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTQ0IwID0gWmVybwog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBX aGlsZSAoKExBU1ggPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDgpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IlBDSUUgTEFTWCBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBFbmQgLSIsIFRvSGV4U3Ry aW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChETDIzLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIFN0YXJ0 IC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgICAgIElmICgoKExB U1ggPT0gT25lKSAmJiAoTE5SRSA9PSBaZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMU09FID09IE9uZSkgfHwgKExOU0UgPT0g T25lKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExOUkUgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChP bmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTlJFID0gWmVybwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIlRvZ2dsZSBMTlJFIikKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TDIzRSA9IE9uZQogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAg ICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTDIz RSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo TG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIEwyM0UgVE8iLCBUb0hl eFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAg KDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPRiBS UCAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIFNDQjAgPSBP bmUKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRT U00gYXQgREwyMyBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTmFtZSAoTFRSViwgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoUFJN ViwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKFJEM0MsIDB4MDIpCiAgICAgICAgICAg ICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEID09IDB4RkZGRkZGRkYpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmlj IE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJn MCA9PSBUb1VVSUQgKCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1lYTRkMTljMzQzNGQiKSAv KiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJmYWNlICovKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChPUFRTLCBCdWZmZXIgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgWmVybywgRlVOMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywg MHgwNiwgRlVONikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRG aWVsZCAoT1BUUywgMHgwOCwgRlVOOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOSwgRlVOOSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQSwgRlVOQSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQiwg RlVOQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgw MikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGVU4wID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoTFRFTiAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRlVONiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1Ix KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOOCA9IE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU45ID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVO QSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRlVOQiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU00g UENJZSBSUCBPUFRTIC0iLCBUb0hleFN0cmluZyAoT1BUUykpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT1BUUykgLyogXF9TQl8uUEMwMi5SUDE4Ll9EU00u T1BUUyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgwNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMVFJWIFtaZXJvXSA9ICgoTE1TTCA+PiAweDBBKSAmIDB4MDcpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAm IDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgw Ml0gPSAoKExOU0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMVFJWIFsweDAzXSA9IChMTlNMICYgMHgwM0ZGKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDMDIuUlAx OC5MVFJWICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAo MHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0g MHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDYXNlICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT25lcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9uZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChQUEJBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFBCQSAoQXJnMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwQikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBSRCAoQXJn MykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNl IChQWFNYKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9B RFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChQQ0NYLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDEwKQogICAgICAgICAgICAg ICAgICAgIEZpZWxkIChQQ0NYLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRFZJRCwgICAzMiwgCiAg ICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwOSksIAogICAgICAgICAgICAgICAg ICAgICAgICBQSVhYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTQ0NYLCAgIDgs IAogICAgICAgICAgICAgICAgICAgICAgICBCQ0NYLCAgIDgKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUEFIQywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkND WCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBBSENJIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBO Vk0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0NYID09IDB4MDgpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoUElYWCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIE5W TWUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRFZJRCA9PSAweEZGRkZGRkZG KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo SVNHWCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQkNDWCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFxTVEQzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoU1REMyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBBSEMg KCkgfHwgUE5WTSAoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiTlZNZSBEMyBTdXBwb3J0 IEVuYWJsZSBmb3IgQ2hpbGQgRGV2aWNlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBV bmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0 b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikg LyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBv d2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFJXIFBDSWUgUlAiLCBUb0hl eFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChHUDFFKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChHUDFFICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2 QiwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2 OSwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBv d2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIl9QUzAgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMCkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiQ2FsbGluZyBQbGF0Zm9y bSBQQ0lFIFJQIFBTMCBIb29rIikKICAgICAgICAgICAgICAgICAgICAgICAgUFBTMCAoKQog ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQ Q0lFIFJQIFBTMCBIb29rIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBTZXJpYWxpemVkKSAgLy8g X1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNM T1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMzKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5n IFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAgICAgICAgICAgICAgICAgICBQ UFMzICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBs YXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RTRCBQQ0llIFJQ IiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChBRFNEKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQWx0ZXJuYXRlIF9EU0QgUENJZSBSUCIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQURTRCAo KSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0 NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkZ1bmRhbWVudGFsRGV2aWNlUmVzZXRUcmlnZ2VyZWRPbkQz VG9EMCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI2YjRhZDQyMC04 ZmQzLTQzNjQtYWNmOC1lYjk0ODc2ZmQ5ZWIiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMCl7fQogICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0 LWVjZDc5MjIxNWIxMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChIUE1FLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFZESUQgIT0g MHhGRkZGRkZGRikgJiYgKFBNU1ggPT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gsIDB4MDIpIC8vIERldmljZSBX YWtlCiAgICAgICAgICAgICAgICAgICAgICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgUFNQWCA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJQ00pKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIwNSkgLyog XF9TQl8uQVIwNSAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBEMDUpIC8qIFxfU0JfLlBE MDUgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2 aWNlIChSUDE5KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChQQk5VLCBa ZXJvKQogICAgICAgICAgICAgICAgUEJOVSA9IFBCU0IgLyogRXh0ZXJuYWwgcmVmZXJlbmNl ICovCiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChSUEFKICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChSUEFKKSAvKiBcX1NCXy5QQzAyLlJQQUogKi8KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwMUIwMDAyKQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBOYW1lIChTTE9ULCAweDEzKQogICAgICAgICAgICAgICAgTmFtZSAoUFJUUCwgMHgwMikK ICAgICAgICAgICAgICAgIE5hbWUgKExURU4sIFplcm8pCiAgICAgICAgICAgICAgICBOYW1l IChMTVNMLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoTE5TTCwgWmVybykKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IElu aXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMVEVOID0g TFRSSiAvKiBcTFRSSiAqLwogICAgICAgICAgICAgICAgICAgIExNU0wgPSBQTUxKIC8qIFxf U0JfLlBDMDIuUE1MSiAqLwogICAgICAgICAgICAgICAgICAgIExOU0wgPSBQTkxKIC8qIFxf U0JfLlBDMDIuUE5MSiAqLwogICAgICAgICAgICAgICAgICAgIElmICgoQ29uZFJlZk9mIChW TVBQKSAmJiBDb25kUmVmT2YgKFZNREUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoKFZNREUgPT0gT25lKSAmJiAoKFZNUFAgJiAweDAw MDQwMDAwKSAhPSBaZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQQ0ggUlAxOSAoMTI5LzI3LzIpIGlzIG1hcHBl ZCB1bmRlciBWTUQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJNViA9IE9uZQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBJZiAoUFJFUyAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSU5JICgpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMi5SUDE5KSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVkRJRCAhPSAweEZGRkZG RkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxf U0IuUEMwMi5SUDE5LlBSTVYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQUk1WID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVk1EIFN0b3Jh Z2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICov CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoXlBYU1guUE5WTSAoKSB8fCBeUFhTWC5QQUhDICgpKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0 cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRDND ID0gU1REMyAvKiBcU1REMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKFBYQ1MsIFN5c3RlbU1lbW9yeSwgXl5QQzAwLlBDMk0g KF9BRFIgKCksIFBCTlUpLCAweDA0ODApCiAgICAgICAgICAgICAgICBGaWVsZCAoUFhDUywg QW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFZESUQsICAgMzIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1 MCksIAogICAgICAgICAgICAgICAgICAgIEwwU0UsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg1MSksIAogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg1MiksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMTMsIAogICAgICAgICAg ICAgICAgICAgIExBU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVB KSwgCiAgICAgICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAgICAgICAgICAgICAgICAg ICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIFBEQ1gsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQRFNYLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHg2MCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2Miks IAogICAgICAgICAgICAgICAgICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMCwgCiAgICAg ICAgICAgICAgICAgICAgTE5SRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4QTQpLCAKICAgICAgICAgICAgICAgICAgICBEM0hULCAgIDIsIAogICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHhEOCksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMzAs IAogICAgICAgICAgICAgICAgICAgIEhQRVgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg UE1FWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RTApLCAKICAgICAg ICAgICAgICAgICAgICBTQ0IwLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAg NiwgCiAgICAgICAgICAgICAgICAgICAgTkNCNywgICAxLCAKICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4RTIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAg ICAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgTDIzUiwg ICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzI4KSwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDMyQiksIAogICAgICAgICAgICAgICAgICAgIExUU00sICAg OCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQwNCksIAogICAgICAgICAgICAg ICAgICAgIExTT0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgTE5TRSwgICAxCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9M b2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweERDKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAg ICAgICAgICAgICAgICAgICAgSFBTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBQTVNY LCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEwyM0Qs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgU3RhcnQgIC0iLCBU b0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgICAgIElmICgoU0NCMCAhPSBP bmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJQT04gU0NCICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIEwyM1IgPSBPbmUKICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKEwyM1IpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4 MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTDIzUiBUTyAiLCBUb0hleFN0cmluZyAo U0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBTQ0IwID0gWmVybwogICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExv Y2FsMCA+IDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTEFTWCBUTyAiLCBUb0hl eFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAg KDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUg UlAgTFRTU00gYXQgTDIzRCBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChETDIzLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIFN0YXJ0IC0iLCBUb0hleFN0cmluZyAoTFRT TSkpKQogICAgICAgICAgICAgICAgICAgIElmICgoKExBU1ggPT0gT25lKSAmJiAoTE5SRSA9 PSBaZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKChMU09FID09IE9uZSkgfHwgKExOU0UgPT0gT25lKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMTlJFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlRvZ2dsZSBMTlJFIikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTDIzRSA9IE9uZQogICAgICAgICAg ICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFpl cm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTDIzRSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUE9GIEwyM0UgVE8iLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPRiBSUCAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgIFNDQjAgPSBPbmUKICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBFbmQgLSIsIFRv SGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TmFtZSAoTFRSViwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoUFJNViwgWmVybykKICAgICAgICAgICAg ICAgIE5hbWUgKFJEM0MsIDB4MDIpCiAgICAgICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChWRElEID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJp YWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNWM5Mzdk MC0zNTUzLTRkN2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50 ZXJmYWNlICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1l IChPUFRTLCBCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVCaXRGaWVsZCAoT1BUUywgWmVybywgRlVOMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwNiwgRlVONikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOCwgRlVO OCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BU UywgMHgwOSwgRlVOOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVC aXRGaWVsZCAoT1BUUywgMHgwQSwgRlVOQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQiwgRlVOQikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG VU4wID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTFRF TiAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVONiA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRlVOOCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGVU45ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzEgPj0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQ UEJBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOQSA9IE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RlVOQiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU00gUENJZSBSUCBPUFRTIC0iLCBUb0hl eFN0cmluZyAoT1BUUykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoT1BUUykgLyogXF9TQl8uUEMwMi5SUDE5Ll9EU00uT1BUUyAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgw NikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFta ZXJvXSA9ICgoTE1TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4MDNGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwMl0gPSAoKExOU0wgPj4gMHgwQSkg JiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAz XSA9IChMTlNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDMDIuUlAxOS5MVFJWICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA5KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1Ix ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcywgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUFBCQSAoQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgwQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoVVBSRCAoQXJnMykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQWFNYKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBB ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0NYLCBQQ0lf Q29uZmlnLCBaZXJvLCAweDEwKQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChQQ0NYLCBC eXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgRFZJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHgwOSksIAogICAgICAgICAgICAgICAgICAgICAgICBQSVhYLCAgIDgsIAog ICAgICAgICAgICAgICAgICAgICAgICBTQ0NYLCAgIDgsIAogICAgICAgICAgICAgICAgICAg ICAgICBCQ0NYLCAgIDgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoUEFIQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1gg PT0gMHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiUFNTRCBBSENJIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBOVk0sIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1gg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChTQ0NYID09IDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIE5WTWUiKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJF UywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoRFZJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoSVNHWCwgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkND WCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxTVEQzKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1REMyAhPSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNl LVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBBSEMgKCkgfHwgUE5WTSAoKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiTlZNZSBEMyBTdXBwb3J0IEVuYWJsZSBmb3IgQ2hpbGQgRGV2 aWNlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04 NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAz MGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BS VywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2Fr ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJfUFJXIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChHUDFFICE9 IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2QiwgMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo X1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzAg UENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoUFBTMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikK ICAgICAgICAgICAgICAgICAgICAgICAgUFBTMCAoKQogICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfUFMzLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiX1BTMyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChQUFMzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMz IEhvb2siKQogICAgICAgICAgICAgICAgICAgICAgICBQUFMzICgpCiAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhv b2siKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZp Y2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1Qp KSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChBRFNEKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiQWx0ZXJuYXRlIF9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQURTRCAoKSkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAi KSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1 bmRhbWVudGFsRGV2aWNlUmVzZXRUcmlnZ2VyZWRPbkQzVG9EMCIsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUb1VVSUQgKCI2YjRhZDQyMC04ZmQzLTQzNjQtYWNmOC1lYjk0ODc2 ZmQ5ZWIiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMCl7fQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoImZkZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50 YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChIUE1FLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmICgoKFZESUQgIT0gMHhGRkZGRkZGRikgJiYgKFBNU1gg PT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBOb3RpZnkgKFBYU1gsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAgICAg ICAgICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgUFNQWCA9IE9uZQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGlu ZyBUYWJsZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFBJQ00pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQVIwNikgLyogXF9TQl8uQVIwNiAqLwogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBEMDYpIC8qIFxfU0JfLlBEMDYgKi8KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChSUDIwKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBOYW1lIChQQk5VLCBaZXJvKQogICAgICAgICAgICAgICAg UEJOVSA9IFBCU0IgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChSUEFLICE9IFplcm8pKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChS UEFLKSAvKiBcX1NCXy5QQzAyLlJQQUsgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDAwMUIwMDAzKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChTTE9ULCAweDE0KQog ICAgICAgICAgICAgICAgTmFtZSAoUFJUUCwgMHgwMikKICAgICAgICAgICAgICAgIE5hbWUg KExURU4sIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChMTVNMLCBaZXJvKQogICAgICAg ICAgICAgICAgTmFtZSAoTE5TTCwgWmVybykKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lO SSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBMVEVOID0gTFRSSyAvKiBcTFRSSyAqLwogICAg ICAgICAgICAgICAgICAgIExNU0wgPSBQTUxLIC8qIFxfU0JfLlBDMDIuUE1MSyAqLwogICAg ICAgICAgICAgICAgICAgIExOU0wgPSBQTkxLIC8qIFxfU0JfLlBDMDIuUE5MSyAqLwogICAg ICAgICAgICAgICAgICAgIElmICgoQ29uZFJlZk9mIChWTVBQKSAmJiBDb25kUmVmT2YgKFZN REUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoKFZNREUgPT0gT25lKSAmJiAoKFZNUFAgJiAweDAwMDgwMDAwKSAhPSBaZXJvKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJSUDIwICgxMjkvMjkvMykgaXMgbWFwcGVkIHVuZGVyIFZNRCIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChQUkVTICgp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBJTkkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo XF9TQi5QQzAyLlJQMjApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1RE MykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAyLlJQMjAuUFJNVikpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBU b0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNY LlBBSEMgKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTdG9yYWdl IFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhD UywgU3lzdGVtTWVtb3J5LCBeXlBDMDAuUEMyTSAoX0FEUiAoKSwgUEJOVSksIDB4MDQ4MCkK ICAgICAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAgICAgICAgICAgICAgICAgICAg TDBTRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMsIAogICAgICAgICAg ICAgICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUx KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgCiAgICAgICAgICAgICAg ICAgICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUEpLCAKICAgICAgICAgICAgICAgICAgICBB QlBYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAg ICAgICAgICAgUERDWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAog ICAgICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDVCKSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAgICAgICAgUFNQ WCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAg ICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgICAgICBMTlJFLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICAg ICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEQ4KSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICAgICAgSFBF WCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBQTUVYLCAgIDEsIAogICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHhFMCksIAogICAgICAgICAgICAgICAgICAgIFNDQjAsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAgICAgICAgICBO Q0I3LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAg ICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgTDIzRSwgICAx LCAKICAgICAgICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHgzMjgpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzJCKSwg CiAgICAgICAgICAgICAgICAgICAgTFRTTSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4NDA0KSwgCiAgICAgICAgICAgICAgICAgICAgTFNPRSwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4REMpLCAKICAgICAg ICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAgICBIUFNYLCAg IDEsIAogICAgICAgICAgICAgICAgICAgIFBNU1gsICAgMQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUg UlAgTFRTU00gYXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAg ICAgICAgICAgICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPTiBTQ0Ig IiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTDIz UiA9IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAg ICAgICAgICBXaGlsZSAoTDIzUikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UENJRSBMMjNSIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNDQjAg PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAg ICAgICAgIFdoaWxlICgoTEFTWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiUENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIEVuZCAtIiwg VG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKERMMjMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERM MjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICAgICAg SWYgKCgoTEFTWCA9PSBPbmUpICYmIChMTlJFID09IFplcm8pKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAo TE5TRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTE5SRSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVG9nZ2xlIExOUkUiKQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBMMjNFID0gT25lCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdo aWxlIChMMjNFKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBU TyIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBC cmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiUE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAg U0NCMCA9IE9uZQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJ ZSBSUCBMVFNTTSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChMVFJWLCBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBO YW1lIChQUk1WLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAg ICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2Ut U3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcwID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3YS05MTE3LWVhNGQxOWMz NDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFy ZzIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMsIEJ1ZmZlciAoMHgwMikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJv LCBGVU4wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxk IChPUFRTLCAweDA2LCBGVU42KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBBLCBGVU5B KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRT LCAweDBCLCBGVU5CKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjAgPSBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGVU42ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU44ID0gT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjkgPSBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDA0KSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGVU5BID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQ UkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiX0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPUFRTKSAvKiBcX1NCXy5QQzAyLlJQ MjAuX0RTTS5PUFRTICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAw eDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExUUlYgW1plcm9dID0gKChMTVNMID4+IDB4MEEpICYg MHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbT25lXSA9 IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM VFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDNdID0gKExOU0wgJiAweDAzRkYpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikgLyogXF9TQl8u UEMwMi5SUDIwLkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDYXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNS MSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT25lcwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBBKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmcz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChV UFJEIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBEZXZpY2UgKFBYU1gpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAg ICBPcGVyYXRpb25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcsIFplcm8sIDB4MTApCiAgICAg ICAgICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEVklELCAg IDMyLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFBJWFgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFND Q1gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQQUhDLCAwLCBTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJ WFggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIEFIQ0kiKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoUE5WTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgw OCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChQSVhYID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IlBTU0QgTlZNZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEVklEID09IDB4 RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChJU0dYLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChTVEQzICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJOVk1lIEQz IFN1cHBvcnQgRW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJk MCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5 NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBS UCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKEdQMUUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChH UFJXICgweDZCLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChH UFJXICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8g X1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNM T1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMwKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5n IFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgICAgICBQ UFMwICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBs YXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6 ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMzIFBDSWUgUlAiLCBUb0hleFN0 cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAg ICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVk IGZyb20gUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNE IFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKEFEU0QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQ IiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChBRFNEICgpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImZkZjA2ZmFk LWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdn ZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9u ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjZi NGFkNDIwLThmZDMtNDM2NC1hY2Y4LWViOTQ4NzZmZDllYiIpIC8qIFVua25vd24gVVVJRCAq LywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAwKXt9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00 NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25E M1RvRDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgo VkRJRCAhPSAweEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUpKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhTWCwgMHgwMikgLy8g RGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElDTSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChB UjA3KSAvKiBcX1NCXy5BUjA3ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEQwNykgLyog XF9TQl8uUEQwNyAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBEZXZpY2UgKFJQMjEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUg KFBCTlUsIFplcm8pCiAgICAgICAgICAgICAgICBQQk5VID0gUEJTQiAvKiBFeHRlcm5hbCBy ZWZlcmVuY2UgKi8KICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKFJQQUwgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJQQUwpIC8qIFxfU0JfLlBDMDIuUlBBTCAq LwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAx QjAwMDQpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE5hbWUgKFNMT1QsIDB4MTUpCiAgICAgICAgICAgICAgICBOYW1lIChQUlRQ LCAweDAyKQogICAgICAgICAgICAgICAgTmFtZSAoTFRFTiwgWmVybykKICAgICAgICAgICAg ICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChMTlNMLCBaZXJv KQogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IExURU4gPSBMVFJMIC8qIFxMVFJMICovCiAgICAgICAgICAgICAgICAgICAgTE1TTCA9IFBN TEwgLyogXF9TQl8uUEMwMi5QTUxMICovCiAgICAgICAgICAgICAgICAgICAgTE5TTCA9IFBO TEwgLyogXF9TQl8uUEMwMi5QTkxMICovCiAgICAgICAgICAgICAgICAgICAgSWYgKChDb25k UmVmT2YgKFZNUFApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoVk1ERSA9PSBPbmUpICYmICgoVk1Q UCAmIDB4MDAxMDAwMDApICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJQMjEgKDEyOS8yNy80KSBpcyBt YXBwZWQgdW5kZXIgVk1EIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSTVYgPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKFBSRVMgKCkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQSU5JKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUElOSSAoKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDIuUlAyMSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgIT0gMHhG RkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFxTVEQzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChcX1NCLlBDMDIuUlAyMS5QUk1WKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUFJNViA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlZNRCBT dG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRDNDID0gU1REMyAvKiBcU1RE MyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKF5QWFNYLlBOVk0gKCkgfHwgXlBYU1guUEFIQyAoKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlN0b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9I ZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQWENTLCBTeXN0ZW1NZW1vcnksIF5eUEMwMC5Q QzJNIChfQURSICgpLCBQQk5VKSwgMHgwNDgwKQogICAgICAgICAgICAgICAgRmllbGQgKFBY Q1MsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NTApLCAKICAgICAgICAgICAgICAgICAgICBMMFNFLCAgIDEsIAogICAgICAgICAgICAg ICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAgICAgTERJUywgICAxLCAKICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTEpLCAKICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEzLCAKICAgICAg ICAgICAgICAgICAgICBMQVNYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHg1QSksIAogICAgICAgICAgICAgICAgICAgIEFCUFgsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERTWCwg ICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUIpLCAKICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4NjApLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NjIpLCAKICAgICAgICAgICAgICAgICAgICBQU1BYLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHg2OCksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMTAsIAog ICAgICAgICAgICAgICAgICAgIExOUkUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweEE0KSwgCiAgICAgICAgICAgICAgICAgICAgRDNIVCwgICAyLCAKICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAg IDMwLCAKICAgICAgICAgICAgICAgICAgICBIUEVYLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIFBNRVgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUwKSwgCiAg ICAgICAgICAgICAgICAgICAgU0NCMCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAg LCAgIDYsIAogICAgICAgICAgICAgICAgICAgIE5DQjcsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweEUyKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAK ICAgICAgICAgICAgICAgICAgICBMMjNFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEwy M1IsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyOCksIAogICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHgzMkIpLCAKICAgICAgICAgICAgICAgICAgICBMVFNN LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0MDQpLCAKICAgICAgICAg ICAgICAgICAgICBMU09FLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIExOU0UsICAgMQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2Ms IE5vTG9jaywgV3JpdGVBc1plcm9zKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHhEQyksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMzAs IAogICAgICAgICAgICAgICAgICAgIEhQU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg UE1TWCwgICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChM MjNELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIFN0YXJ0ICAt IiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQjAg IT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiUE9OIFNDQiAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBMMjNSID0gT25lCiAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlIChMMjNSKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAg PiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0lFIEwyM1IgVE8gIiwgVG9IZXhTdHJp bmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEw KQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgU0NCMCA9IFplcm8KICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChMQVNYID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChMb2NhbDAgPiAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0lFIExBU1ggVE8gIiwg VG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFr CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNs ZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQ Q0llIFJQIExUU1NNIGF0IEwyM0QgRW5kIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoREwyMywgMCwgU2VyaWFs aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBTdGFydCAtIiwgVG9IZXhTdHJpbmcg KExUU00pKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMQVNYID09IE9uZSkgJiYgKExO UkUgPT0gWmVybykpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKCgoTFNPRSA9PSBPbmUpIHx8IChMTlNFID09IE9uZSkpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTlJFID0gT25l CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTE5SRSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJUb2dnbGUgTE5SRSIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEwyM0UgPSBPbmUKICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKEwyM0UpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIlBPRiBMMjNFIFRPIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgUlAgIiwgVG9IZXhTdHJpbmcg KFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBTQ0IwID0gT25lCiAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgRW5kIC0i LCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFBSTVYsIFplcm8pCiAgICAgICAg ICAgICAgICBOYW1lIChSRDNDLCAweDAyKQogICAgICAgICAgICAgICAgTWV0aG9kIChQUkVT LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoVkRJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiZTVj OTM3ZDAtMzU1My00ZDdhLTkxMTctZWE0ZDE5YzM0MzRkIikgLyogRGV2aWNlIExhYmVsaW5n IEludGVyZmFjZSAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoT1BUUywgQnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIFplcm8sIEZVTjApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDYsIEZVTjYpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDgs IEZVTjgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQg KE9QVFMsIDB4MDksIEZVTjkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlQml0RmllbGQgKE9QVFMsIDB4MEEsIEZVTkEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEIsIEZVTkIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDIpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRlVOMCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KExURU4gIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjYgPSBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEZVTjggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRlVOOSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcxID49IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTkEgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZVTkIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNNIFBDSWUgUlAgT1BUUyAtIiwg VG9IZXhTdHJpbmcgKE9QVFMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKE9QVFMpIC8qIFxfU0JfLlBDMDIuUlAyMS5fRFNNLk9QVFMgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRS ViBbWmVyb10gPSAoKExNU0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMVFJWIFtPbmVdID0gKExNU0wgJiAweDAzRkYpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDJdID0gKChMTlNMID4+IDB4 MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBb MHgwM10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMVFJWKSAvKiBcX1NCXy5QQzAyLlJQMjEuTFRSViAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgw OSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo RUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgw MykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgw eDA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcywg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMz NTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBQQkEgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBS RCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQUkQgKEFyZzMpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoUFhTWCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FE UjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUENDWCwg UENJX0NvbmZpZywgWmVybywgMHgxMCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoUEND WCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIERWSUQsICAgMzIsIAogICAgICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MDkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgUElYWCwgICA4 LCAKICAgICAgICAgICAgICAgICAgICAgICAgU0NDWCwgICA4LCAKICAgICAgICAgICAgICAg ICAgICAgICAgQkNDWCwgICA4CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKFBBSEMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChT Q0NYID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSBPbmUpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlBTU0QgQUhDSSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQTlZNLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChC Q0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA4KSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0g MHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBOVk1lIikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KFBSRVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKElTR1gsIDAsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEJDQ1ggPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNURDMg IT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERl dmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQQUhDICgpIHx8IFBOVk0gKCkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIk5WTWUgRDMgU3VwcG9ydCBFbmFibGUgZm9yIENoaWxk IERldmljZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAz MGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUw MjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAq LywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxl IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9y IFdha2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiX1BSVyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoR1AxRSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoR1Ax RSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NkIsIDB4MDQpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NjksIDB4MDQpKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9QUzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJf UFMwIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFBQUzApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9v ayIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBQUzAgKCkKICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRl IDMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIl9QUzMgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQ IFBTMyBIb29rIikKICAgICAgICAgICAgICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAg ICAgICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBT MyBIb29rIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDog RGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChT TE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoQURTRCkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIkFsdGVybmF0ZSBfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFEU0QgKCkpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQSU5JKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1 YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNmI0YWQ0MjAtOGZkMy00MzY0LWFjZjgtZWI5 NDg3NmZkOWViIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDApe30KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAv KiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmRh bWVudGFsRGV2aWNlUmVzZXRUcmlnZ2VyZWRPbkQzVG9EMCIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoSFBNRSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChWRElEICE9IDB4RkZGRkZGRkYpICYmIChQ TVNYID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAg ICAgICAgICAgICBQTVNYID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIFBTUFggPSBP bmUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVDogUENJIFJv dXRpbmcgVGFibGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo Q29uZFJlZk9mIChQSUNNKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDQpIC8qIFxfU0JfLkFSMDQgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQRDA0KSAvKiBcX1NCXy5QRDA0ICovCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoUlAyMikKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUEJOVSwgWmVybykKICAgICAgICAgICAg ICAgIFBCTlUgPSBQQlNCIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAg ICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoUlBBTSAhPSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUlBBTSkgLyogXF9TQl8uUEMwMi5SUEFNICovCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMDFCMDAwNSkKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoU0xPVCwgMHgx NikKICAgICAgICAgICAgICAgIE5hbWUgKFBSVFAsIDB4MDIpCiAgICAgICAgICAgICAgICBO YW1lIChMVEVOLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoTE1TTCwgWmVybykKICAg ICAgICAgICAgICAgIE5hbWUgKExOU0wsIFplcm8pCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTFRFTiA9IExUUk0gLyogXExUUk0gKi8K ICAgICAgICAgICAgICAgICAgICBMTVNMID0gUE1MTSAvKiBcX1NCXy5QQzAyLlBNTE0gKi8K ICAgICAgICAgICAgICAgICAgICBMTlNMID0gUE5MTSAvKiBcX1NCXy5QQzAyLlBOTE0gKi8K ICAgICAgICAgICAgICAgICAgICBJZiAoKENvbmRSZWZPZiAoVk1QUCkgJiYgQ29uZFJlZk9m IChWTURFKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKChWTURFID09IE9uZSkgJiYgKChWTVBQICYgMHgwMDIwMDAwMCkgIT0gWmVybykp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiUENIIFJQMjIgKDEyOS8yNy81KSBpcyBtYXBwZWQgdW5kZXIgVk1EIikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBSTVYgPSBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KFBSRVMgKCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChQSU5JKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUElOSSAoKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChcX1NCLlBDMDIuUlAyMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKFZESUQgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFxTVEQzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDIuUlAyMi5QUk1W KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoUFJNViA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlZNRCBTdG9yYWdlIFJ1bnRpbWUgRDMgc3Rh dHVzOiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSRDNDID0gU1REMyAvKiBcU1REMyAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKF5QWFNYLlBOVk0gKCkg fHwgXlBYU1guUEFIQyAoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IlN0b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChQWENTLCBTeXN0ZW1NZW1vcnksIF5eUEMwMC5QQzJNIChfQURSICgpLCBQQk5VKSwg MHgwNDgwKQogICAgICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBQ cmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBWRElELCAg IDMyLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTApLCAKICAgICAgICAgICAg ICAgICAgICBMMFNFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAg ICAgICAgICAgICAgICAgICAgTERJUywgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4NTEpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAg ICAgICAgICAgICAgICAgICAgLCAgIDEzLCAKICAgICAgICAgICAgICAgICAgICBMQVNYLCAg IDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QSksIAogICAgICAgICAgICAg ICAgICAgIEFCUFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAg ICAgICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERTWCwgICAxLCAKICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4NUIpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjAp LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjIpLCAKICAgICAgICAgICAgICAg ICAgICBQU1BYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2OCksIAog ICAgICAgICAgICAgICAgICAgICAgICAsICAgMTAsIAogICAgICAgICAgICAgICAgICAgIExO UkUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAg ICAgICAgICAgICAgRDNIVCwgICAyLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 RDgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAg ICAgICBIUEVYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUwKSwgCiAgICAgICAgICAgICAgICAgICAgU0NC MCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAg ICAgICAgIE5DQjcsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUyKSwg CiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBM MjNFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEwyM1IsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDMyOCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgzMkIpLCAKICAgICAgICAgICAgICAgICAgICBMVFNNLCAgIDgsIAogICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHg0MDQpLCAKICAgICAgICAgICAgICAgICAgICBMU09FLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIExOU0UsICAgMQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgV3JpdGVBc1plcm9z KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyks IAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAgICAgICAgICAgICAg IEhQU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUE1TWCwgICAxCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChMMjNELCAwLCBTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIFN0YXJ0ICAtIiwgVG9IZXhTdHJpbmcgKExUU00p KSkKICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQjAgIT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UE9OIFNDQiAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBMMjNSID0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAg ICAgICAgICAgICAgICAgIFdoaWxlIChMMjNSKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJQQ0lFIEwyM1IgVE8gIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgU0NCMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAg ICAgICAgICAgICAgICAgV2hpbGUgKChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA4KSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJQQ0lFIExBU1ggVE8gIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0Qg RW5kIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoREwyMywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRT U00gYXQgREwyMyBTdGFydCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAg ICAgICAgICBJZiAoKChMQVNYID09IE9uZSkgJiYgKExOUkUgPT0gWmVybykpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTFNPRSA9PSBP bmUpIHx8IChMTlNFID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMTlJFID0gT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9 IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUb2dnbGUgTE5SRSIp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIEwyM0UgPSBPbmUKICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgV2hpbGUgKEwyM0UpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBP RiBMMjNFIFRPIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAr KwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJQT0YgUlAgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICBTQ0IwID0gT25lCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgRW5kIC0iLCBUb0hleFN0cmluZyAoTFRTTSkp KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgIE5hbWUgKFBSTVYsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChSRDNDLCAw eDAyKQogICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoVkRJRCA9PSAweEZG RkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006 IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiZTVjOTM3ZDAtMzU1My00ZDdhLTkxMTct ZWE0ZDE5YzM0MzRkIikgLyogRGV2aWNlIExhYmVsaW5nIEludGVyZmFjZSAqLykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50 ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoT1BUUywgQnVmZmVyICgw eDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9Q VFMsIFplcm8sIEZVTjApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qml0RmllbGQgKE9QVFMsIDB4MDYsIEZVTjYpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDgsIEZVTjgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDksIEZVTjkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4 MEEsIEZVTkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0Rmll bGQgKE9QVFMsIDB4MEIsIEZVTkIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcxID49IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOMCA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExURU4gIT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZVTjYgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAw eDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjggPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVO OSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4 MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEZVTkEgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTkIgPSBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJfRFNNIFBDSWUgUlAgT1BUUyAtIiwgVG9IZXhTdHJpbmcgKE9QVFMpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9QVFMpIC8qIFxfU0Jf LlBDMDIuUlAyMi5fRFNNLk9QVFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDYpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcxID49IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbWmVyb10gPSAoKExNU0wgPj4g MHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJW IFtPbmVdID0gKExNU0wgJiAweDAzRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExUUlYgWzB4MDJdID0gKChMTlNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4MDNG RikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMVFJWKSAv KiBcX1NCXy5QQzAyLlJQMjIuTFRSViAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENhc2UgKDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBQ QkEgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFVQUkQgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIERldmljZSAoUFhTWCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUENDWCwgUENJX0NvbmZpZywgWmVybywgMHgx MCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoUENDWCwgQnl0ZUFjYywgTm9Mb2NrLCBQ cmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IERWSUQsICAgMzIsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDkpLCAK ICAgICAgICAgICAgICAgICAgICAgICAgUElYWCwgICA4LCAKICAgICAgICAgICAgICAgICAg ICAgICAgU0NDWCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgQkNDWCwgICA4CiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBBSEMs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0NYID09IDB4MDYpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoUElYWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgQUhDSSIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChQTlZNLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0ND WCA9PSAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gMHgwMikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiUFNTRCBOVk1lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERW SUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKElTR1gsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gMHgwMykpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNURDMgIT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RT RCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChQQUhDICgpIHx8IFBOVk0gKCkpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo Ik5WTWUgRDMgU3VwcG9ydCBFbmFibGUgZm9yIENoaWxkIERldmljZSIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlh NTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYx LTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BS VyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoR1AxRSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoR1AxRSAhPSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEdQUlcgKDB4NkIsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEdQUlcgKDB4NjksIDB4MDQpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIFNlcmlhbGl6 ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMwIFBDSWUgUlAiLCBUb0hleFN0 cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzAp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAg ICAgICAgIFBQUzAgKCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVk IGZyb20gUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwg U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzMgUENJZSBSUCIs IFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoUFBTMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAg ICAgICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgi UmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChf RFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIl9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoQURTRCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkFsdGVybmF0ZSBfRFNE IFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEFEU0QgKCkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChQSU5JKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgi ZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlE ICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJl c2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9V VUlEICgiNmI0YWQ0MjAtOGZkMy00MzY0LWFjZjgtZWI5NDg3NmZkOWViIikgLyogVW5rbm93 biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDAp e30KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYwNmZh ZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmRhbWVudGFsRGV2aWNlUmVzZXRUcmln Z2VyZWRPbkQzVG9EMCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoSFBN RSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBJZiAoKChWRElEICE9IDB4RkZGRkZGRkYpICYmIChQTVNYID09IE9uZSkpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAw eDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAgICAgICAgICBQTVNYID0gT25l CiAgICAgICAgICAgICAgICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJULCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQSUNNKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEFSMDUpIC8qIFxfU0JfLkFSMDUgKi8KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ RDA1KSAvKiBcX1NCXy5QRDA1ICovCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIERldmljZSAoUlAyMykKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgTmFtZSAoUEJOVSwgWmVybykKICAgICAgICAgICAgICAgIFBCTlUgPSBQQlNCIC8qIEV4 dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoUlBBTiAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlBBTikgLyogXF9TQl8uUEMw Mi5SUEFOICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwMDFCMDAwNikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTmFtZSAoU0xPVCwgMHgxNykKICAgICAgICAgICAgICAgIE5h bWUgKFBSVFAsIDB4MDIpCiAgICAgICAgICAgICAgICBOYW1lIChMVEVOLCBaZXJvKQogICAg ICAgICAgICAgICAgTmFtZSAoTE1TTCwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKExO U0wsIFplcm8pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTFRFTiA9IExUUk4gLyogXExUUk4gKi8KICAgICAgICAgICAgICAgICAgICBM TVNMID0gUE1MTiAvKiBcX1NCXy5QQzAyLlBNTE4gKi8KICAgICAgICAgICAgICAgICAgICBM TlNMID0gUE5MTiAvKiBcX1NCXy5QQzAyLlBOTE4gKi8KICAgICAgICAgICAgICAgICAgICBJ ZiAoKENvbmRSZWZPZiAoVk1QUCkgJiYgQ29uZFJlZk9mIChWTURFKSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChWTURFID09IE9uZSkg JiYgKChWTVBQICYgMHgwMDQwMDAwMCkgIT0gWmVybykpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUENIIFJQMjMgKDEy OS8yNy82KSBpcyBtYXBwZWQgdW5kZXIgVk1EIikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBSTVYgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKFBSRVMgKCkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQSU5J KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUElOSSAoKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDIuUlAy MykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KFZESUQgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxTVEQzKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChcX1NCLlBDMDIuUlAyMy5QUk1WKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoUFJNViA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIlZNRCBTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChS RDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRDNDID0g U1REMyAvKiBcU1REMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKF5QWFNYLlBOVk0gKCkgfHwgXlBYU1guUEFIQyAoKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlN0b3JhZ2UgUnVudGltZSBEMyBz dGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQWENTLCBTeXN0ZW1NZW1v cnksIF5eUEMwMC5QQzJNIChfQURSICgpLCBQQk5VKSwgMHgwNDgwKQogICAgICAgICAgICAg ICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4NTApLCAKICAgICAgICAgICAgICAgICAgICBMMFNFLCAgIDEsIAog ICAgICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAgICAgTERJ UywgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTEpLCAKICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAg IDEzLCAKICAgICAgICAgICAgICAgICAgICBMQVNYLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHg1QSksIAogICAgICAgICAgICAgICAgICAgIEFCUFgsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQRENY LCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAg ICAgICAgUERTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUIpLCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjApLCAKICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4NjIpLCAKICAgICAgICAgICAgICAgICAgICBQU1BYLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2OCksIAogICAgICAgICAgICAgICAgICAgICAg ICAsICAgMTAsIAogICAgICAgICAgICAgICAgICAgIExOUkUsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweEE0KSwgCiAgICAgICAgICAgICAgICAgICAgRDNIVCwgICAy LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAgICBIUEVYLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweEUwKSwgCiAgICAgICAgICAgICAgICAgICAgU0NCMCwgICAxLCAKICAgICAgICAgICAg ICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICAgICAgIE5DQjcsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUyKSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBMMjNFLCAgIDEsIAogICAgICAgICAg ICAgICAgICAgIEwyM1IsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMy OCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzMkIpLCAKICAgICAgICAgICAg ICAgICAgICBMVFNNLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0MDQp LCAKICAgICAgICAgICAgICAgICAgICBMU09FLCAgIDEsIAogICAgICAgICAgICAgICAgICAg IExOU0UsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEZpZWxkIChQ WENTLCBBbnlBY2MsIE5vTG9jaywgV3JpdGVBc1plcm9zKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAogICAgICAgICAgICAgICAgICAg ICAgICAsICAgMzAsIAogICAgICAgICAgICAgICAgICAgIEhQU1gsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgUE1TWCwgICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChMMjNELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBM MjNEIFN0YXJ0ICAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAgICAg ICBJZiAoKFNDQjAgIT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9OIFNDQiAiLCBUb0hleFN0cmlu ZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBMMjNSID0gT25lCiAgICAg ICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxl IChMMjNSKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0lFIEwyM1IgVE8g IiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJy ZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU0NCMCA9IFplcm8KICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUg KChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0lF IExBU1ggVE8gIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAr KwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgRW5kIC0iLCBUb0hleFN0cmluZyAo TFRTTSkpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoREwy MywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBTdGFydCAtIiwg VG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKChMQVNYID09 IE9uZSkgJiYgKExOUkUgPT0gWmVybykpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCgoTFNPRSA9PSBPbmUpIHx8IChMTlNFID09IE9uZSkp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMTlJFID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJUb2dnbGUgTE5SRSIpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEwyM0Ug PSBPbmUKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKEwyM0UpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2Fs MCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPRiBMMjNFIFRPIiwgVG9IZXhTdHJp bmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEw KQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgUlAgIiwg VG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBTQ0IwID0gT25lCiAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0 IERMMjMgRW5kIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg WmVybwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFBSTVYsIFpl cm8pCiAgICAgICAgICAgICAgICBOYW1lIChSRDNDLCAweDAyKQogICAgICAgICAgICAgICAg TWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoVkRJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRo b2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0g VG9VVUlEICgiZTVjOTM3ZDAtMzU1My00ZDdhLTkxMTctZWE0ZDE5YzM0MzRkIikgLyogRGV2 aWNlIExhYmVsaW5nIEludGVyZmFjZSAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTmFtZSAoT1BUUywgQnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIFplcm8sIEZVTjApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDYs IEZVTjYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQg KE9QVFMsIDB4MDgsIEZVTjgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlQml0RmllbGQgKE9QVFMsIDB4MDksIEZVTjkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEEsIEZVTkEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEIsIEZVTkIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDIpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRlVOMCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKExURU4gIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZV TjYgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjggPSBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOOSA9IE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDQpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTkEgPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZVTkIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNNIFBDSWUg UlAgT1BUUyAtIiwgVG9IZXhTdHJpbmcgKE9QVFMpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9QVFMpIC8qIFxfU0JfLlBDMDIuUlAyMy5fRFNNLk9QVFMg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTFRSViBbWmVyb10gPSAoKExNU0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFtPbmVdID0gKExNU0wgJiAweDAz RkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDJdID0g KChMTlNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChMVFJWKSAvKiBcX1NCXy5QQzAyLlJQMjMuTFRS ViAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVD UjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgT25lcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBQQkEgKEFyZzMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQUkQgKEFyZzMpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoUFhT WCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBa ZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoUENDWCwgUENJX0NvbmZpZywgWmVybywgMHgxMCkKICAgICAgICAgICAgICAgICAg ICBGaWVsZCAoUENDWCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERWSUQsICAgMzIsIAogICAgICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDkpLCAKICAgICAgICAgICAgICAgICAgICAg ICAgUElYWCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgU0NDWCwgICA4LCAKICAg ICAgICAgICAgICAgICAgICAgICAgQkNDWCwgICA4CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBBSEMsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChTQ0NYID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgQUhDSSIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQTlZNLCAw LCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA4KSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKFBJWFggPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBOVk1lIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKFBSRVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZGRkZGRikpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKElTR1gs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEJDQ1ggPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChcU1REMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFNURDMgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQQUhDICgpIHx8 IFBOVk0gKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIk5WTWUgRDMgU3VwcG9ydCBFbmFi bGUgZm9yIENoaWxkIERldmljZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9V VUlEICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93 biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdl RDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVu a25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3Rv cmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBS ZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BSVyBQQ0llIFJQIiwgVG9IZXhTdHJp bmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoR1Ax RSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoR1AxRSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NkIsIDB4 MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4NjksIDB4 MDQpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9QUzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBT dGF0ZSAwCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJfUFMwIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzApKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJ RSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBQUzAgKCkKICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxhdGZvcm0gUENJRSBS UCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6 IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIl9QUzMgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkp CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiQ2FsbGluZyBQbGF0 Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAgICAgICAgICAgICAgUFBTMyAo KQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9y bSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU0QgUENJZSBSUCIsIFRv SGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo QURTRCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIkFsdGVybmF0ZSBfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmlu ZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFEU0QgKCkpCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChQSU5JKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJi NjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAi LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNmI0YWQ0MjAtOGZkMy00 MzY0LWFjZjgtZWI5NDg3NmZkOWViIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDApe30KICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3 OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkZ1bmRhbWVudGFsRGV2aWNlUmVzZXRUcmlnZ2VyZWRPbkQzVG9EMCIsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoSFBNRSwgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChWRElEICE9IDB4RkZG RkZGRkYpICYmIChQTVNYID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2UgV2FrZQog ICAgICAgICAgICAgICAgICAgICAgICBQTVNYID0gT25lCiAgICAgICAgICAgICAgICAgICAg ICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1BSVDogUENJIFJvdXRpbmcgVGFibGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChQSUNNKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDYpIC8qIFxfU0Jf LkFSMDYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQRDA2KSAvKiBcX1NCXy5QRDA2ICov CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAo UlAyNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUEJOVSwgWmVybykK ICAgICAgICAgICAgICAgIFBCTlUgPSBQQlNCIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwog ICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FE UjogQWRkcmVzcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgo UlBBTyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUlBBTykgLyogXF9TQl8uUEMwMi5SUEFPICovCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMDFCMDAwNykKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFt ZSAoU0xPVCwgMHgxOCkKICAgICAgICAgICAgICAgIE5hbWUgKFBSVFAsIDB4MDIpCiAgICAg ICAgICAgICAgICBOYW1lIChMVEVOLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoTE1T TCwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKExOU0wsIFplcm8pCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFs aXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTFRFTiA9IExUUk8g LyogXExUUk8gKi8KICAgICAgICAgICAgICAgICAgICBMTVNMID0gUE1MTyAvKiBcX1NCXy5Q QzAyLlBNTE8gKi8KICAgICAgICAgICAgICAgICAgICBMTlNMID0gUE5MTyAvKiBcX1NCXy5Q QzAyLlBOTE8gKi8KICAgICAgICAgICAgICAgICAgICBJZiAoKENvbmRSZWZPZiAoVk1QUCkg JiYgQ29uZFJlZk9mIChWTURFKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKChWTURFID09IE9uZSkgJiYgKChWTVBQICYgMHgwMDgwMDAw MCkgIT0gWmVybykpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHICgiUlAyNCAoMTI5LzI3LzcpIGlzIG1hcHBlZCB1bmRlciBW TUQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJNViA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoUFJFUyAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSU5JICgpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFxfU0IuUEMwMi5SUDI0KSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVkRJRCAhPSAweEZGRkZGRkZGKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMi5S UDI0LlBSTVYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQUk1WID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVk1EIFN0b3JhZ2UgUnVudGlt ZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXlBYU1gu UE5WTSAoKSB8fCBeUFhTWC5QQUhDICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQz QykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRDNDID0gU1REMyAv KiBcU1REMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBPcGVy YXRpb25SZWdpb24gKFBYQ1MsIFN5c3RlbU1lbW9yeSwgXl5QQzAwLlBDMk0gKF9BRFIgKCks IFBCTlUpLCAweDA0ODApCiAgICAgICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBO b0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFZESUQsICAgMzIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MCksIAogICAg ICAgICAgICAgICAgICAgIEwwU0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwg ICAzLCAKICAgICAgICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHg1MSksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1Miks IAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMTMsIAogICAgICAgICAgICAgICAgICAg IExBU1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVBKSwgCiAgICAg ICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAg IDIsIAogICAgICAgICAgICAgICAgICAgIFBEQ1gsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQRFNYLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg2MCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MiksIAogICAgICAg ICAgICAgICAgICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDY4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAxMCwgCiAgICAgICAgICAgICAg ICAgICAgTE5SRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAK ICAgICAgICAgICAgICAgICAgICBEM0hULCAgIDIsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHhEOCksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAg ICAgICAgICAgICAgIEhQRVgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUE1FWCwgICAx LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RTApLCAKICAgICAgICAgICAgICAg ICAgICBTQ0IwLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAg ICAgICAgICAgICAgICAgTkNCNywgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4RTIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAg ICAgICAgIEwyM0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgTDIzUiwgICAxLCAKICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzI4KSwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDMyQiksIAogICAgICAgICAgICAgICAgICAgIExUU00sICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQwNCksIAogICAgICAgICAgICAgICAgICAgIExT T0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgTE5TRSwgICAxCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0 ZUFzWmVyb3MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweERDKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAg ICAgICAgICAgSFBTWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBQTVNYLCAgIDEKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEwyM0QsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgU3RhcnQgIC0iLCBUb0hleFN0cmlu ZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgICAgIElmICgoU0NCMCAhPSBPbmUpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJQT04gU0NCICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIEwyM1IgPSBPbmUKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBa ZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKEwyM1IpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIlBDSUUgTDIzUiBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBTQ0IwID0gWmVybwogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFpl cm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4 MDgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTEFTWCBUTyAiLCBUb0hleFN0cmluZyAo U0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00g YXQgTDIzRCBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChETDIzLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJ ZSBSUCBMVFNTTSBhdCBETDIzIFN0YXJ0IC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAg ICAgICAgICAgICAgICAgIElmICgoKExBU1ggPT0gT25lKSAmJiAoTE5SRSA9PSBaZXJvKSkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChM U09FID09IE9uZSkgfHwgKExOU0UgPT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMTlJFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRvZ2ds ZSBMTlJFIikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTDIzRSA9IE9uZQogICAgICAgICAgICAgICAgICAg IFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAg ICAgICAgICAgICAgICBXaGlsZSAoTDIzRSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiUE9GIEwyM0UgVE8iLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIlBPRiBSUCAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgIFNDQjAgPSBPbmUKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBFbmQgLSIsIFRvSGV4U3RyaW5n IChMVFNNKSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoTFRS ViwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgTmFtZSAoUFJNViwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUg KFJEM0MsIDB4MDIpCiAgICAgICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChWRElE ID09IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAg Ly8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNWM5MzdkMC0zNTUzLTRk N2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJmYWNlICov KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRj aCAoVG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChPUFRTLCBC dWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRG aWVsZCAoT1BUUywgWmVybywgRlVOMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwNiwgRlVONikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOCwgRlVOOCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOSwg RlVOOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAo T1BUUywgMHgwQSwgRlVOQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVCaXRGaWVsZCAoT1BUUywgMHgwQiwgRlVOQikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU4wID0gT25l CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTFRFTiAhPSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVONiA9IE9uZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RlVOOCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGVU45ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzEgPj0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRlVOQSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOQiA9IE9u ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIl9EU00gUENJZSBSUCBPUFRTIC0iLCBUb0hleFN0cmluZyAo T1BUUykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT1BUUykg LyogXF9TQl8uUEMwMi5SUDI0Ll9EU00uT1BUUyAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFtaZXJvXSA9ICgo TE1TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTFRSViBbMHgwMl0gPSAoKExOU0wgPj4gMHgwQSkgJiAweDA3KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAzXSA9IChMTlNM ICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KExUUlYpIC8qIFxfU0JfLlBDMDIuUlAyNC5MVFJWICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChF Q1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA5KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAo MHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUFBCQSAoQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHgwQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoVVBSRCAoQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgRGV2aWNlIChQWFNYKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAg ICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0NYLCBQQ0lfQ29uZmlnLCBa ZXJvLCAweDEwKQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChQQ0NYLCBCeXRlQWNjLCBO b0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgRFZJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgwOSksIAogICAgICAgICAgICAgICAgICAgICAgICBQSVhYLCAgIDgsIAogICAgICAgICAg ICAgICAgICAgICAgICBTQ0NYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBCQ0NY LCAgIDgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoUEFIQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwNikp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChQSVhYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNT RCBBSENJIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChP bmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKFBOVk0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChTQ0NYID09IDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSAweDAyKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJQU1NEIE5WTWUiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoRFZJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoSVNHWCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSAweDAz KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxTVEQzKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1REMyAhPSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmlj IERhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKFBBSEMgKCkgfHwgUE5WTSAoKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiTlZNZSBEMyBTdXBwb3J0IEVuYWJsZSBmb3IgQ2hpbGQgRGV2aWNlIikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQt YTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00 YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJfUFJXIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChHUDFFICE9IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoR1BSVyAoMHg2QiwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwg U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzAgUENJZSBSUCIs IFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoUFBTMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAgICAgICAg ICAgICAgICAgICAgICAgUFBTMCAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgi UmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChf UFMzLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMyBQ Q0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAo Q29uZFJlZk9mIChQUFMzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQog ICAgICAgICAgICAgICAgICAgICAgICBQUFMzICgpCiAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lm aWMgRGF0YQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENv bmNhdGVuYXRlICgiX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChBRFNEKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQWx0ZXJu YXRlIF9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQURTRCAoKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBU b1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtu b3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmRhbWVudGFs RGV2aWNlUmVzZXRUcmlnZ2VyZWRPbkQzVG9EMCIsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUb1VVSUQgKCI2YjRhZDQyMC04ZmQzLTQzNjQtYWNmOC1lYjk0ODc2ZmQ5ZWIiKSAv KiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMCl7fQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAo ImZkZjA2ZmFkLWY3NDQtNDQ1MS1iYjY0LWVjZDc5MjIxNWIxMCIpIC8qIFVua25vd24gVVVJ RCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VS ZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChIUE1FLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmICgoKFZESUQgIT0gMHhGRkZGRkZGRikgJiYgKFBNU1ggPT0gT25lKSkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkg KFBYU1gsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAgICAgICAgICAgIFBN U1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgUFNQWCA9IE9uZQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJ Q00pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KFBJQ00pCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQVIwNykgLyogXF9TQl8uQVIwNyAqLwogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBEMDcpIC8qIFxfU0JfLlBEMDcgKi8KICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChYRENJKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTQwMDAxKSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChPVEdELCBQQ0lfQ29uZmlnLCBaZXJv LCAweDAxMDApCiAgICAgICAgICAgICAgICBGaWVsZCAoT1RHRCwgRFdvcmRBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFZJ RCwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwgCiAgICAgICAg ICAgICAgICAgICAgWERDQiwgICA2NAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIEZpZWxkIChPVEdELCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NCksIAogICAgICAgICAg ICAgICAgICAgIEQwSTMsICAgMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoWERCQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKChYRENCICYgMHhGRkZGRkZGRkZGRkZGRjAwKSkK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNl cmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcw LCBBcmcxLCBBcmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJYRENJIERTTSIpCiAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcwID09IFRvVVVJRCAoIjczMmI4NWQ1LWI3YTctNGExYi05YmEwLTRiYmQwMGZmZDUxMSIp IC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChTUFBTLCAyLCBTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoWERCVywgU3lzdGVtTWVtb3J5LCBY REJBICgpLCAweDAwMTEwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZp ZWxkIChYREJXLCBXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDEwRjgxMCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MTBGODExKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFUyQ1AsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUz Q1AsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgxMEY4MTgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFVQUywg ICAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFVSQywgICAxLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwRjgxQSksIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTBGODFDKSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVYUEUsICAgMiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMEY4MUUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDEgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0g QXJnMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBNVSBEMCIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFVYUEUgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgV2hpbGUgKChMb2NhbDAgPCAweDBBKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RhbGwgKDB4NjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQVVBTID0gWmVybwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwIDwgMHgwN0QwKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RhbGwgKDB4NjQpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKChVMkNQID09IFplcm8pICYmIChVM0NQID09IFplcm8p KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVTJD UCAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlUyIG5vdCBpbiBE MCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVTNDUCAhPSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlUzIG5vdCBpbiBEMCIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwxID09IDB4MDMpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlBNVSBEMyIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoVTJDUCAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlUyIG5vdCBpbiBEMCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVTND UCAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlUzIG5vdCBpbiBE MCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBVUFMgPSAweDAzCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDAgPCAweDA3RDApKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdGFsbCAoMHg2NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoKFUyQ1AgPT0gMHgwMykgJiYgKFUzQ1AgPT0gMHgwMykpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChVMkNQICE9IDB4 MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVTIgbm90IGluIEQzIikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChVM0NQICE9IDB4MDMpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiVTMgbm90IGluIEQzIikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVhQ RSA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVn ZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgi WERDSSBGbjAiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QjMsIDB4MDMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiWERDSSBGbjEiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJYRENJIEZuNCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMSA9IERlcmVmT2YgKEFyZzMgW1plcm9dKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHIChMb2NhbDEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNQUFMgKExvY2FsMSwgWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJYRENJIEZuNSIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJYRENJIEZuNyIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoWEQyMiwgU3lzdGVt TWVtb3J5LCBYREJBICgpLCAweDAwMTEwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGaWVsZCAoWEQyMiwgV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwRjgxOCksIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUDJQUywgICAyLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMEY4MUEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMCA9IFAyUFMgLyogXF9TQl8uUEMwMi5YRENJLl9EU00uUDJQUyAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJYRENJIEZu OCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlhEQ0kgRm45 IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChYR0NULCBTeXN0ZW1NZW1vcnksIFhEQkEgKCksIDB4MDAxMTAwMDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkIChYR0NULCBXb3JkQWNjLCBOb0xvY2ss IFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QzExMCksIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NUTCwgICAzMgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoUFBEUyAmIDB4RkZGODAwMDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA+Pj0gMHgxMwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSCBYRENJ OiBGdW5jOSBSZXR1cm4gVmFsID0gIiwgVG9IZXhTdHJpbmcgKExvY2FsMSkpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiUENIIFhE Q0kgY29udHJvbGxlciIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAg ICAgIE5hbWUgKF9TVFIsIFVuaWNvZGUgKCJQQ0ggWERDSSBjb250cm9sbGVyIikpICAvLyBf U1RSOiBEZXNjcmlwdGlvbiBTdHJpbmcKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1MwVywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEdQMUUpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChHUDFFICE9IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEdQUlcgKDB4OEMsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEdQUlcgKDB4NkQsIDB4MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RTVywgMywgTm90U2VyaWFsaXplZCkgIC8vIF9EU1c6IERldmljZSBTbGVl cCBXYWtlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIERldmljZSAoSEVDSSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgTmFtZSAoX0FEUiwgMHgwMDE2MDAwMCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERl dmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBBREJHICgiSEVDSSBfRFNNIikKICAgICAgICAgICAgICAgICAgICBJZiAoUENJQyAo QXJnMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBDSUQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoSElXQykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoSElXQyAoQXJn MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKEhJRFcpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSElEVyAoQXJnMCwg QXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEhFQzMpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNjAwMDQpICAv LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlh bGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBB cmcxLCBBcmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFNPRDMsIDMsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lv biAoSUNCMSwgU3lzdGVtTWVtb3J5LCAoXl5QQzAwLkdQQ0IgKCkgKyBBcmcwKSwgMHg4OCkK ICAgICAgICAgICAgICAgIElmIChBcmcxKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIEZpZWxkIChJQ0IxLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg0 KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBNRUMsICAgOAogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUE1FQyA9IDB4MDMKICAgICAgICAgICAgICAg ICAgICBQTUVDIHw9IFplcm8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ ZiAoKEFyZzEgJiYgQXJnMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgRmllbGQgKElDQjEsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMCksIAogICAg ICAgICAgICAgICAgICAgICAgICBCQVIwLCAgIDY0CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBCQVIwID0gWmVybwogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEkyQzApCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIElmICgoSU0wMCA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006 IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChQQ0lDIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBB cmcxLCBBcmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAz CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTT0QzIChJ QzAwLCBPbmUsIE9uZSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0 YXRlIDAKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDAxNTAwMDApCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoSTJDMSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgSWYgKChJTTAxID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTog RGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBDSUQgKEFyZzAsIEFy ZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNPRDMgKElD MDEsIE9uZSwgT25lKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3Rh dGUgMAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMDE1MDAwMSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChJMkMyKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBJZiAoKElNMDIgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBE ZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJn MSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU09EMyAoSUMw MiwgT25lLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0 ZSAwCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDAwMTUwMDAyKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEkyQzMpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmICgoSU0wMyA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERl dmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChQQ0lDIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBBcmcx LCBBcmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTT0QzIChJQzAz LCBPbmUsIE9uZSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRl IDAKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MDAxNTAwMDMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIERldmljZSAoSTJDNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSWYgKChJTTA0ID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2 aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBDSUQgKEFyZzAsIEFyZzEs IEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNPRDMgKElDMDQs IE9uZSwgT25lKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUg MAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMDE5MDAwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgRGV2aWNlIChJMkM1KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBJZiAoKElNMDUgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZp Y2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJnMSwg QXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU09EMyAoSUMwNSwg T25lLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAw CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDAwMTkwMDAxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9CgogICAgICAgICAgICBEZXZpY2UgKEkzQzApCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNTAwMDQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9TMFcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUzBXOiBT MCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJj ZXMgZm9yIFdha2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEdQUlcgKDB4NkIsIDB4MDQpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CgogICAgICAgICAgICBEZXZpY2UgKFNQSTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmICgoU00wMCA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1T cGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmIChQQ0lDIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBBcmcxLCBBcmcy LCBBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9Q UzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTT0QzIChTQzAwLCBPbmUs IE9uZSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDAxRTAwMDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIERldmljZSAoU1BJMSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKChTTTAxID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNw ZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBDSUQgKEFyZzAsIEFyZzEsIEFyZzIs IEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BT MywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNPRDMgKFNDMDEsIE9uZSwg T25lKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwMDFFMDAwMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChTUEkyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoKFNNMDIgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3Bl Y2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwg QXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMz LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU09EMyAoU0MwMiwgT25lLCBP bmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAwMTIwMDA2KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBEZXZpY2UgKFNQSTMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IElmICgoU00wMyA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVj aWZpYyBNZXRob2QKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmIChQQ0lDIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBBcmcxLCBBcmcyLCBB cmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTT0QzIChTQzAzLCBPbmUsIE9u ZSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDAxMzAwMDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoVURTTSwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImY3YWY4MzQ3LWE5NjYtNDlm ZS05MDIyLTdhOWRlZWViZGIyNyIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKFVETUEsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcwKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDgpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAz LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4u Li4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb0ludGVnZXIgKEFyZzEpKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAv LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRGV2aWNlIChJU0hEKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf QURSLCAweDAwMTIwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICB9CiAgICAg ICAgfQoKICAgICAgICBJZiAoKFxfU0IuUEMwMi5VTTAwID09IE9uZSkpCiAgICAgICAgewog ICAgICAgICAgICBTY29wZSAoX1NCLlBDMDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIERldmljZSAoVUEwMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lm aWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJn MykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmIChVRFNNIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChVRE1BIChBcmcyLCBVRDAwKSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxRTAwMDApCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBTT0QzIChVQzAwLCBPbmUsIE9uZSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg ICAgICAgfQoKICAgICAgICBTY29wZSAoX1NCKQogICAgICAgIHsKICAgICAgICAgICAgSWYg KCgoUEMwMi5VTTAwID09IDB4MDIpIHx8IChQQzAyLlVNMDAgPT0gMHgwMykpKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBEZXZpY2UgKFBVQTApCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RETiwgIk10bFBjaFNlcmlhbElvVWFydDAi KSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X1VJRCwgIk10bFBjaFNlcmlhbElvVWFydDAiKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfSElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hJ RDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoVUhJRCAoXl5QQzAyLlVNMDApKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChVSElELCAxLCBTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDEwNUQwNDEpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMjBDRDA0MSkKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVUFS SCAoXl5QQzAyLlVDMDAsIF5eUEMwMi5VSTAwKSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoVUFSSCwgMiwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lv biAoVUFDRiwgU3lzdGVtTWVtb3J5LCBBcmcwLCAweDE4KQogICAgICAgICAgICAgICAgICAg ICAgICBGaWVsZCAoVUFDRiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 MTApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBUjAsICAgNjQKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGMCwg UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNz IEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4LCAgICAg ICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg X1kzQykKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgTmFtZSAoSUJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNl Q29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgLCwgX1kzRCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDE0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChCVUYwLCBcX1NCLlBVQTAuVUFSSC5fWTNDLl9CQVMsIEFEUjApICAvLyBfQkFTOiBCYXNl IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoSUJV RiwgXF9TQi5QVUEwLlVBUkguX1kzRC5fSU5ULCBJUlFOKSAgLy8gX0lOVDogSW50ZXJydXB0 cwogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQkFSMCAmIDB4RkZGRkZGRkZG RkZGRjAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgQURSMCA9IExvY2FsMAogICAgICAg ICAgICAgICAgICAgICAgICBJUlFOID0gQXJnMQogICAgICAgICAgICAgICAgICAgICAgICBD b25jYXRlbmF0ZVJlc1RlbXBsYXRlIChCVUYwLCBJQlVGLCBMb2NhbDEpCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKF5eUEMwMi5VTTAwID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw OCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo VVBTMywgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIE5hbWUgKFJFR1MsIFBhY2thZ2UgKDB4MDgpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChV QUNGLCBTeXN0ZW1NZW1vcnksIEFyZzEsIDB4ODgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGaWVsZCAoVUFDRiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHgxMCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBUjAsICAg NjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGaWVsZCAoVUFDRiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4ODQpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTUVD LCAgIDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFVBQjAsIFN5c3RlbU1lbW9yeSwgKEJBUjAg JiAweEZGRkZGRkZGRkZGRkYwMDApLCAweDg1KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRmllbGQgKFVBQjAsIEJ5dGVBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERMTCwg ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRExILCAgICA4LCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQ1IsICAgIDgsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExDUiwgICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTUNSLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4ODEpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUFJSLCAg IDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGaWVsZCAoVUFCMCwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENM SywgICAzMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMSA9IExDUiAvKiBcX1NCXy5QVUEwLlVQUzMuTENSXyAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTENSIHw9IDB4ODAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJFR1MgW1plcm9dID0gRExMIC8qIFxfU0JfLlBVQTAuVVBTMy5ETExf ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdTIFtPbmVdID0gRExIIC8qIFxf U0JfLlBVQTAuVVBTMy5ETEhfICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMQ1Ig PSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR1MgWzB4MDJdID0gRkNS IC8qIFxfU0JfLlBVQTAuVVBTMy5GQ1JfICovCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSRUdTIFsweDAzXSA9IExvY2FsMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVH UyBbMHgwNF0gPSBNQ1IgLyogXF9TQl8uUFVBMC5VUFMzLk1DUl8gKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJFR1MgWzB4MDVdID0gUENMSyAvKiBcX1NCXy5QVUEwLlVQUzMu UENMSyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoRGVyZWZPZiAoUkVH UyBbMHgwNV0pICE9IFplcm8pICYmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEZXJlZk9mIChSRUdTIFsweDA1XSkgIT0gMHhGRkZGRkZGRikpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSU0Eg KChCQVIwICYgMHhGRkZGRkZGRkZGRkZGMDAwKSwgUkVHUykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUFJSID0gWmVybwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFBSUiB8PSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTUVDID0gMHgwMwogICAgICAgICAgICAgICAgICAgICAgICAgICAg UE1FQyB8PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoVVBTMCwgMiwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFVBQ0YsIFN5c3RlbU1lbW9yeSwgQXJn MSwgMHg4OCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkIChVQUNGLCBBbnlB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQkFSMCwgICA2NAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkIChVQUNGLCBC eXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NCksIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNRUMsICAgOAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoVUFCMCwgU3lzdGVtTWVtb3J5LCAoQkFSMCAmIDB4RkZGRkZGRkZGRkZGRjAwMCks IDB4ODUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZCAoVUFCMCwgQnl0ZUFj YywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRExMLCAgICA4LCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBETEgsICAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZDUiwgICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTENS LCAgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ1IsICAgIDgsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MSksIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBQUlIsICAgOAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkIChVQUIwLCBE V29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODApLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0xLLCAgIDMyCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1FQyA9IFpl cm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNRUMgfD0gWmVybwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUFBSUiA9IDB4MDcKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IFVSUlMgKChCQVIwICYgMHhGRkZGRkZGRkZGRkZGMDAwKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoKERlcmVmT2YgKExvY2FsMCBbMHgwNV0pICE9 IFplcm8pICYmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChM b2NhbDAgWzB4MDVdKSAhPSAweEZGRkZGRkZGKSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTENSIHw9IDB4ODAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETEwgPSBEZXJlZk9mIChMb2NhbDAgW1pl cm9dKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERMSCA9IERlcmVmT2YgKExv Y2FsMCBbT25lXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMQ1IgPSBEZXJl Zk9mIChMb2NhbDAgWzB4MDNdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZD UiA9IERlcmVmT2YgKExvY2FsMCBbMHgwMl0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTUNSID0gRGVyZWZPZiAoTG9jYWwwIFsweDA0XSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDIgPSAoRGVyZWZPZiAoTG9jYWwwIFsweDA1XSkgfCAweDgw MDAwMDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDTEsgPSBMb2NhbDIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoRGVyZWZPZiAoTG9j YWwwIFsweDA1XSkgfCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENM SyA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKFVQU0MsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFVBQ0YsIFN5c3RlbU1l bW9yeSwgKEFyZzAgKyAweDg0KSwgMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgRmll bGQgKFVBQ0YsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNRUMsICAgOAogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKChQ TUVDICYgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBJZiAoKF5QQzAyLlVNMDAgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QU0MsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfUFNDOiBQb3dlciBTdGF0ZSBDdXJyZW50CiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBTQyAoXl5QQzAyLlVDMDAp KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAz CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFVQUzMgKF5eUEMwMi5VUDAwLCBeXlBDMDIuVUMwMCkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUFMwICheXlBDMDIuVVAwMCwgXl5Q QzAyLlVDMDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAg IElmICgoXF9TQi5QQzAyLlVNMDEgPT0gT25lKSkKICAgICAgICB7CiAgICAgICAgICAgIFNj b3BlIChfU0IuUEMwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGV2aWNlIChV QTAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RT TSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQQ0lDIChB cmcwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczKSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFVEU00gKEFy ZzApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFVETUEgKEFyZzIsIFVEMDEpKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6 IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwMDFFMDAwMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBv d2VyIFN0YXRlIDMKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFNPRDMgKFVDMDEsIE9uZSwgT25lKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BT MDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAg ICAgIFNjb3BlIChfU0IpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKChQQzAyLlVNMDEg PT0gMHgwMikgfHwgKFBDMDIuVU0wMSA9PSAweDAzKSkpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIERldmljZSAoUFVBMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfREROLCAiTXRsUGNoU2VyaWFsSW9VYXJ0MSIpICAvLyBfREROOiBE T1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAiTXRsUGNo U2VyaWFsSW9VYXJ0MSIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9ISUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJ RAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChVSElEICheXlBDMDIuVU0wMSkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFVISUQsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMykpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwMTA1RDA0MSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAyMENEMDQxKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVQVJIICheXlBDMDIuVUMw MSwgXl5QQzAyLlVJMDEpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChVQVJILCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChVQUNGLCBTeXN0 ZW1NZW1vcnksIEFyZzAsIDB4MTgpCiAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkIChV QUNGLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMCksIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQkFSMCwgICA2NAogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgsICAgICAgICAgLy8gQWRkcmVz cyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTNFKQogICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChJQlVG LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2 ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCAsLCBfWTNGKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0Iu UFVBMS5VQVJILl9ZM0UuX0JBUywgQURSMCkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAg ICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChJQlVGLCBcX1NCLlBVQTEu VUFSSC5fWTNGLl9JTlQsIElSUU4pICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IChCQVIwICYgMHhGRkZGRkZGRkZGRkZGMDAwKQogICAg ICAgICAgICAgICAgICAgICAgICBBRFIwID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAg ICAgIElSUU4gPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVz VGVtcGxhdGUgKEJVRjAsIElCVUYsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXl5Q QzAyLlVNMDEgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA4KQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChVUFMzLCAyLCBTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoUkVHUywgUGFja2FnZSAoMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFVBQ0YsIFN5c3RlbU1l bW9yeSwgQXJnMSwgMHg4OCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkIChV QUNGLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFSMCwgICA2NAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxk IChVQUNGLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4 NCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNRUMsICAgOAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoVUFCMCwgU3lzdGVtTWVtb3J5LCAoQkFSMCAmIDB4RkZGRkZGRkZG RkZGRjAwMCksIDB4ODUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZCAoVUFC MCwgQnl0ZUFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRExMLCAgICA4LCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBETEgsICAgIDgsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZDUiwgICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTENSLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ1Is ICAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MSks IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBQUlIsICAgOAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxk IChVQUIwLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 ODApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0xLLCAgIDMyCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwxID0gTENSIC8qIFxfU0JfLlBVQTEuVVBTMy5MQ1JfICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMQ1IgfD0gMHg4MAogICAgICAgICAgICAgICAgICAgICAgICAgICAg UkVHUyBbWmVyb10gPSBETEwgLyogXF9TQl8uUFVBMS5VUFMzLkRMTF8gKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJFR1MgW09uZV0gPSBETEggLyogXF9TQl8uUFVBMS5VUFMz LkRMSF8gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExDUiA9IExvY2FsMQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUkVHUyBbMHgwMl0gPSBGQ1IgLyogXF9TQl8uUFVB MS5VUFMzLkZDUl8gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR1MgWzB4MDNd ID0gTG9jYWwxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdTIFsweDA0XSA9IE1D UiAvKiBcX1NCXy5QVUExLlVQUzMuTUNSXyAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUkVHUyBbMHgwNV0gPSBQQ0xLIC8qIFxfU0JfLlBVQTEuVVBTMy5QQ0xLICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChEZXJlZk9mIChSRUdTIFsweDA1XSkgIT0g WmVybykgJiYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFJF R1MgWzB4MDVdKSAhPSAweEZGRkZGRkZGKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJTQSAoKEJBUjAgJiAweEZG RkZGRkZGRkZGRkYwMDApLCBSRUdTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBQUlIgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQUFJSIHw9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBNRUMgPSAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTUVDIHw9IFplcm8K ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChVUFMwLCAyLCBTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IE9wZXJhdGlvblJlZ2lvbiAoVUFDRiwgU3lzdGVtTWVtb3J5LCBBcmcxLCAweDg4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQgKFVBQ0YsIEFueUFjYywgTm9Mb2NrLCBQ cmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTApLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCQVIwLCAgIDY0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQgKFVBQ0YsIEJ5dGVBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUE1FQywgICA4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChVQUIwLCBT eXN0ZW1NZW1vcnksIChCQVIwICYgMHhGRkZGRkZGRkZGRkZGMDAwKSwgMHg4NSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZpZWxkIChVQUIwLCBCeXRlQWNjLCBMb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBETEwsICAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERMSCwgICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkNSLCAg ICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMQ1IsICAgIDgsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1DUiwgICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgxKSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUFBSUiwgICA4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQgKFVBQjAsIERXb3JkQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MCksIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBDTEssICAgMzIKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTUVDID0gWmVybwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUE1FQyB8PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQUFJSID0gMHgwNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g VVJSUyAoKEJBUjAgJiAweEZGRkZGRkZGRkZGRkYwMDApKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKCgoRGVyZWZPZiAoTG9jYWwwIFsweDA1XSkgIT0gWmVybykgJiYgKAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKExvY2FsMCBbMHgwNV0p ICE9IDB4RkZGRkZGRkYpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMQ1IgfD0gMHg4MAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERMTCA9IERlcmVmT2YgKExvY2FsMCBbWmVyb10pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRExIID0gRGVyZWZPZiAoTG9jYWwwIFtPbmVdKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExDUiA9IERlcmVmT2YgKExvY2FsMCBb MHgwM10pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkNSID0gRGVyZWZPZiAo TG9jYWwwIFsweDAyXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ1IgPSBE ZXJlZk9mIChMb2NhbDAgWzB4MDRdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMiA9IChEZXJlZk9mIChMb2NhbDAgWzB4MDVdKSB8IDB4ODAwMDAwMDEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUENMSyA9IExvY2FsMgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IChEZXJlZk9mIChMb2NhbDAgWzB4MDVdKSB8 IE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0xLID0gTG9jYWwyCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoVVBT QywgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVUFDRiwgU3lzdGVtTWVtb3J5LCAoQXJnMCAr IDB4ODQpLCAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICBGaWVsZCAoVUFDRiwgQnl0 ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUE1FQywgICA4CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoKFBNRUMgJiAweDAzKSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoXlBDMDIu VU0wMSA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BTQywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QU0M6IFBvd2Vy IFN0YXRlIEN1cnJlbnQKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChVUFNDICheXlBDMDIuVUMwMSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBTMyAoXl5QQzAy LlVQMDEsIF5eUEMwMi5VQzAxKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf UFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFVQUzAgKF5eUEMwMi5VUDAxLCBeXlBDMDIuVUMwMSkKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKChcX1NCLlBD MDIuVU0wMiA9PSBPbmUpKQogICAgICAgIHsKICAgICAgICAgICAgU2NvcGUgKF9TQi5QQzAy KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXZpY2UgKFVBMDIpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxp emVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFBDSUMgKEFyZzApKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBDSUQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoVURTTSAoQXJnMCkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo VURNQSAoQXJnMiwgVUQwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAw MTkwMDAyKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU09EMyAoVUMw MiwgT25lLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0 ZSAwCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKF9T QikKICAgICAgICB7CiAgICAgICAgICAgIElmICgoKFBDMDIuVU0wMiA9PSAweDAyKSB8fCAo UEMwMi5VTTAyID09IDB4MDMpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGV2 aWNlIChQVUEyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9ERE4sICJNdGxQY2hTZXJpYWxJb1VhcnQyIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFt ZQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsICJNdGxQY2hTZXJpYWxJb1VhcnQy IikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0hJ RCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVISUQgKF5eUEMw Mi5VTTAyKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoVUhJRCwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxMDVE MDQxKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDIwQ0QwNDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBD dXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFVBUkggKF5eUEMwMi5VQzAyLCBeXlBDMDIuVUkw MikpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KFVBUkgsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFVBQ0YsIFN5c3RlbU1lbW9yeSwgQXJn MCwgMHgxOCkKICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQgKFVBQ0YsIEFueUFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCQVIwLCAgIDY0CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5 MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMDAwOCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ZNDApCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElCVUYsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93 LCBTaGFyZWQsICwsIF9ZNDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxNCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QVUEyLlVBUkguX1k0 MC5fQkFTLCBBRFIwKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElCVUYsIFxfU0IuUFVBMi5VQVJILl9ZNDEuX0lO VCwgSVJRTikgIC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gKEJBUjAgJiAweEZGRkZGRkZGRkZGRkYwMDApCiAgICAgICAgICAgICAgICAg ICAgICAgIEFEUjAgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTiA9IEFy ZzEKICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQlVG MCwgSUJVRiwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2Fs MSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheXlBDMDIuVU0wMiA9PSAw eDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDgpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFVQUzMsIDIsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSRUdTLCBQ YWNrYWdlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVUFDRiwgU3lzdGVtTWVtb3J5LCBBcmcxLCAw eDg4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQgKFVBQ0YsIEFueUFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTApLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCQVIwLCAgIDY0CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQgKFVBQ0YsIEJ5dGVB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg0KSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUE1FQywgICA4CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChVQUIwLCBTeXN0ZW1NZW1vcnksIChCQVIwICYgMHhGRkZGRkZGRkZGRkZGMDAwKSwgMHg4 NSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkIChVQUIwLCBCeXRlQWNjLCBM b2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBETEwsICAgIDgsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERMSCwgICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRkNSLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMQ1IsICAg IDgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1DUiwgICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgxKSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUFBSUiwgICA4CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGQgKFVBQjAsIERXb3Jk QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MCksIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBDTEssICAgMzIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBMQ1Ig LyogXF9TQl8uUFVBMi5VUFMzLkxDUl8gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IExDUiB8PSAweDgwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdTIFtaZXJvXSA9 IERMTCAvKiBcX1NCXy5QVUEyLlVQUzMuRExMXyAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUkVHUyBbT25lXSA9IERMSCAvKiBcX1NCXy5QVUEyLlVQUzMuRExIXyAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTENSID0gTG9jYWwxCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSRUdTIFsweDAyXSA9IEZDUiAvKiBcX1NCXy5QVUEyLlVQUzMuRkNSXyAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVHUyBbMHgwM10gPSBMb2NhbDEKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJFR1MgWzB4MDRdID0gTUNSIC8qIFxfU0JfLlBV QTIuVVBTMy5NQ1JfICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdTIFsweDA1 XSA9IFBDTEsgLyogXF9TQl8uUFVBMi5VUFMzLlBDTEsgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoKERlcmVmT2YgKFJFR1MgWzB4MDVdKSAhPSBaZXJvKSAmJiAoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoUkVHUyBbMHgwNV0pICE9 IDB4RkZGRkZGRkYpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBVUlNBICgoQkFSMCAmIDB4RkZGRkZGRkZGRkZGRjAw MCksIFJFR1MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUFBSUiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBQUlIgfD0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1FQyA9IDB4MDMK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNRUMgfD0gWmVybwogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKFVQUzAsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChVQUNGLCBTeXN0ZW1NZW1vcnksIEFyZzEsIDB4ODgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGaWVsZCAoVUFDRiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgxMCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJB UjAsICAgNjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGaWVsZCAoVUFDRiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4ODQpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQTUVDLCAgIDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFVBQjAsIFN5c3RlbU1lbW9yeSwg KEJBUjAgJiAweEZGRkZGRkZGRkZGRkYwMDApLCAweDg1KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRmllbGQgKFVBQjAsIEJ5dGVBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IERMTCwgICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRExILCAgICA4 LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQ1IsICAgIDgsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExDUiwgICAgOCwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTUNSLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4ODEpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ UFJSLCAgIDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGaWVsZCAoVUFCMCwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUENMSywgICAzMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBNRUMgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQTUVDIHw9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBQUlIgPSAw eDA3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBVUlJTICgoQkFSMCAm IDB4RkZGRkZGRkZGRkZGRjAwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KChEZXJlZk9mIChMb2NhbDAgWzB4MDVdKSAhPSBaZXJvKSAmJiAoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoTG9jYWwwIFsweDA1XSkgIT0gMHhGRkZGRkZG RikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExDUiB8PSAweDgwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRExMID0gRGVyZWZPZiAoTG9jYWwwIFtaZXJvXSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBETEggPSBEZXJlZk9mIChMb2NhbDAgW09uZV0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTENSID0gRGVyZWZPZiAoTG9jYWwwIFsweDAzXSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGQ1IgPSBEZXJlZk9mIChMb2NhbDAgWzB4MDJd KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1DUiA9IERlcmVmT2YgKExvY2Fs MCBbMHgwNF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gKERl cmVmT2YgKExvY2FsMCBbMHgwNV0pIHwgMHg4MDAwMDAwMSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQ0xLID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwyID0gKERlcmVmT2YgKExvY2FsMCBbMHgwNV0pIHwgT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBDTEsgPSBMb2NhbDIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChVUFNDLCAxLCBTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT3Bl cmF0aW9uUmVnaW9uIChVQUNGLCBTeXN0ZW1NZW1vcnksIChBcmcwICsgMHg4NCksIDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkIChVQUNGLCBCeXRlQWNjLCBOb0xvY2ss IFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTUVDLCAgIDgKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgoUE1FQyAmIDB4MDMpKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCheUEMwMi5VTTAyID09IDB4MDMp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUFNDLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTQzogUG93ZXIgU3RhdGUgQ3VycmVu dAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFVQU0MgKF5eUEMwMi5VQzAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUFMzICheXlBDMDIuVVAwMiwgXl5QQzAy LlVDMDIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0 YXRlIDAKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgVVBTMCAoXl5QQzAyLlVQMDIsIF5eUEMwMi5VQzAyKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKFxfU0IuUEMwMi5VTTAzID09IE9u ZSkpCiAgICAgICAgewogICAgICAgICAgICBTY29wZSAoX1NCLlBDMDIpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIERldmljZSAoVUEwMykKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNN OiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJnMCwg QXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChVRFNNIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVRE1BIChBcmcyLCBV RDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxMzAwMDEpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTT0QzIChVQzAzLCBPbmUsIE9uZSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BT MCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoX1NCKQogICAgICAgIHsK ICAgICAgICAgICAgSWYgKCgoUEMwMi5VTTAzID09IDB4MDIpIHx8IChQQzAyLlVNMDMgPT0g MHgwMykpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXZpY2UgKFBVQTMpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RETiwgIk10bFBj aFNlcmlhbElvVWFydDMiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX1VJRCwgIk10bFBjaFNlcmlhbElvVWFydDMiKSAgLy8gX1VJRDog VW5pcXVlIElECiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfSElELCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVUhJRCAoXl5QQzAyLlVNMDMpKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChVSElELCAx LCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcwID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEwNUQwNDEpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw MjBDRDA0MSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoVUFSSCAoXl5QQzAyLlVDMDMsIF5eUEMwMi5VSTAzKSkKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoVUFSSCwgMiwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IE9wZXJhdGlvblJlZ2lvbiAoVUFDRiwgU3lzdGVtTWVtb3J5LCBBcmcwLCAweDE4KQogICAg ICAgICAgICAgICAgICAgICAgICBGaWVsZCAoVUFDRiwgQW55QWNjLCBOb0xvY2ssIFByZXNl cnZlKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MTApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJBUjAs ICAgNjQKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFk V3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAg ICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDA4LCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgX1k0MikKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoSUJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRl cnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgLCwg X1k0MykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDE0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBVQTMuVUFSSC5fWTQyLl9CQVMsIEFEUjAp ICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoSUJVRiwgXF9TQi5QVUEzLlVBUkguX1k0My5fSU5ULCBJUlFOKSAgLy8g X0lOVDogSW50ZXJydXB0cwogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQkFS MCAmIDB4RkZGRkZGRkZGRkZGRjAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgQURSMCA9 IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICBJUlFOID0gQXJnMQogICAgICAgICAg ICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChCVUYwLCBJQlVGLCBMb2Nh bDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKF5eUEMwMi5VTTAzID09IDB4MDMpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwOCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoVVBTMywgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJFR1MsIFBhY2thZ2UgKDB4MDgp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3Bl cmF0aW9uUmVnaW9uIChVQUNGLCBTeXN0ZW1NZW1vcnksIEFyZzEsIDB4ODgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGaWVsZCAoVUFDRiwgQW55QWNjLCBOb0xvY2ssIFByZXNl cnZlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHgxMCksIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJBUjAsICAgNjQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGaWVsZCAoVUFDRiwgQnl0ZUFjYywgTm9Mb2NrLCBQ cmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODQpLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTUVDLCAgIDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFVBQjAsIFN5c3Rl bU1lbW9yeSwgKEJBUjAgJiAweEZGRkZGRkZGRkZGRkYwMDApLCAweDg1KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRmllbGQgKFVBQjAsIEJ5dGVBY2MsIExvY2ssIFByZXNlcnZl KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERMTCwgICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RExILCAgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQ1IsICAgIDgs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExDUiwgICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTUNSLCAgICA4LCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4ODEpLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQUFJSLCAgIDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGaWVsZCAoVUFCMCwgRFdvcmRBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUENMSywgICAzMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IExDUiAvKiBcX1NCXy5QVUEz LlVQUzMuTENSXyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTENSIHw9IDB4ODAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR1MgW1plcm9dID0gRExMIC8qIFxfU0Jf LlBVQTMuVVBTMy5ETExfICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdTIFtP bmVdID0gRExIIC8qIFxfU0JfLlBVQTMuVVBTMy5ETEhfICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMQ1IgPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R1MgWzB4MDJdID0gRkNSIC8qIFxfU0JfLlBVQTMuVVBTMy5GQ1JfICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSRUdTIFsweDAzXSA9IExvY2FsMQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHUyBbMHgwNF0gPSBNQ1IgLyogXF9TQl8uUFVBMy5VUFMzLk1DUl8g Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR1MgWzB4MDVdID0gUENMSyAvKiBc X1NCXy5QVUEzLlVQUzMuUENMSyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KCgoRGVyZWZPZiAoUkVHUyBbMHgwNV0pICE9IFplcm8pICYmICgKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEZXJlZk9mIChSRUdTIFsweDA1XSkgIT0gMHhGRkZGRkZGRikp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFVSU0EgKChCQVIwICYgMHhGRkZGRkZGRkZGRkZGMDAwKSwgUkVHUykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQUFJSID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFBSUiB8PSBaZXJv CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTUVDID0gMHgwMwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUE1FQyB8PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoVVBT MCwgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFVBQ0YsIFN5 c3RlbU1lbW9yeSwgQXJnMSwgMHg4OCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZp ZWxkIChVQUNGLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDEwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkFSMCwgICA2NAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZpZWxkIChVQUNGLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg4NCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNRUMsICAgOAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoVUFCMCwgU3lzdGVtTWVtb3J5LCAoQkFSMCAmIDB4RkZG RkZGRkZGRkZGRjAwMCksIDB4ODUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVs ZCAoVUFCMCwgQnl0ZUFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRExMLCAgICA4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETEgsICAgIDgsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZDUiwgICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTENSLCAgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBNQ1IsICAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHg4MSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBQUlIsICAgOAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZpZWxkIChVQUIwLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4ODApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0xLLCAgIDMy CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUE1FQyA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNRUMgfD0g WmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFBSUiA9IDB4MDcKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFVSUlMgKChCQVIwICYgMHhGRkZGRkZGRkZG RkZGMDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKERlcmVmT2YgKExv Y2FsMCBbMHgwNV0pICE9IFplcm8pICYmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBEZXJlZk9mIChMb2NhbDAgWzB4MDVdKSAhPSAweEZGRkZGRkZGKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TENSIHw9IDB4ODAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETEwgPSBEZXJl Zk9mIChMb2NhbDAgW1plcm9dKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERM SCA9IERlcmVmT2YgKExvY2FsMCBbT25lXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMQ1IgPSBEZXJlZk9mIChMb2NhbDAgWzB4MDNdKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEZDUiA9IERlcmVmT2YgKExvY2FsMCBbMHgwMl0pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTUNSID0gRGVyZWZPZiAoTG9jYWwwIFsweDA0XSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoRGVyZWZPZiAoTG9jYWww IFsweDA1XSkgfCAweDgwMDAwMDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBDTEsgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIg PSAoRGVyZWZPZiAoTG9jYWwwIFsweDA1XSkgfCBPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUENMSyA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKFVQU0MsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24g KFVBQ0YsIFN5c3RlbU1lbW9yeSwgKEFyZzAgKyAweDg0KSwgMHgwNCkKICAgICAgICAgICAg ICAgICAgICAgICAgRmllbGQgKFVBQ0YsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBN RUMsICAgOAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKChQTUVDICYgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKF5QQzAyLlVNMDMgPT0gMHgwMykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QU0MsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfUFNDOiBQb3dlciBTdGF0ZSBDdXJyZW50CiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBT QyAoXl5QQzAyLlVDMDMpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMz OiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFVQUzMgKF5eUEMwMi5VUDAzLCBeXlBDMDIuVUMwMykKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUFMwIChe XlBDMDIuVVAwMywgXl5QQzAyLlVDMDMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIFNjb3BlIChfU0IuUEMwMikKICAgICAgICB7CiAgICAgICAgICAg IElmICgoQ1JGUCA9PSBPbmUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo KENXRkMgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBE ZXZpY2UgKENOVlcpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBOYW1lIChfQURSLCAweDAwMTQwMDAzKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChQVTJDLCBaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICBQVTJDID0gXlBVMkMgLyogXF9TQl8uUEMwMi5QVTJDICovCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoQkFTRSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gXl5e UEMwMC5QQzJNIChfQURSLCBQQlNCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2Vy IFN0YXRlIDAKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoIkNOVlcgQ3RybHIgRDAiKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6 ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDTlZXIEN0cmxyIEQzIikKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZv ciBXYWtlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoR1BSVyAoMHg2QiwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEFERUwsIFplcm8pCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQVJMTSA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREVMID0gMHgzMgogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURF TCA9IDB4MEEKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoUlNUVCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo UFJSUywgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChD V0FSLCBTeXN0ZW1NZW1vcnksIEJBU0UgKCksIDB4MDEwMCkKICAgICAgICAgICAgICAgICAg ICAgICAgRmllbGQgKENXQVIsIFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZESUQsICAg MzIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQ0KSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDI4LCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFdGTFIsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4NDgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMTUsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgV0lGUiwgICAxCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1MwVywgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw MykKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfRFNXLCAzLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTVzogRGV2aWNlIFNsZWVw IFdha2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBQb3dlclJlc291cmNlIChXUlNULCAweDA1 LCAweDAwMDApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0 YXR1cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9PRkYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dl ciBPZmYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9SU1Qs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVzZXQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPSBBY3F1aXJlIChDTk1ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDRkxSICgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSUlMgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFJTVFQpICYmIChS U1RUID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV2lGaSBQcm9k dWN0IFJlc2V0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiUElEIG9mIENOVmkgPSAiLCBUb0hleFN0cmluZyAoUENOVikp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gXl5e U0JQQy5QQ1JSIChQQ05WLCAweDQ0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJSZWdpc3RlciBQTERCIFZhbHVlID0gIiwg VG9IZXhTdHJpbmcgKExvY2FsNSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKCgoXl5eU0JQQy5QQ1JSIChQQ05WLCAweDQ0KSAmIDB4MDIpID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJBQk9SVF9SRVFV RVNUID0gMCwgcHJldmlvdXMgUExEUiBjb21wbGV0ZWQiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoR0JUUiAoKSA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRSSyAoWmVybykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4QTApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9 IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eU0JQQy5QQ1JP IChQQ05WLCAweDQ0LCAweDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiV2lGaSBQTERSIFRpbWVvdXQgd2FpdCht cykgPSAiLCBUb0hleFN0cmluZyAoQURFTCkpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNsZWVwIChBREVMKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IF5eXlNCUEMuUENSUiAoUENOViwgMHg0 NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIkNOVklfUExEUl9BQk9SVCA9ICIsIFRvSGV4U3RyaW5nIChMb2NhbDEp KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKCgo TG9jYWwxICYgMHgwMikgPT0gWmVybykgJiYgKExvY2FsMSAmIDB4MDQpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaUZpIFByb2R1Y3QgUmVz ZXQgQ29tcGxldGVkIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUFJSUyA9IDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRSSyAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4QTApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUFJSUyA9IDB4MDQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRSSyAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUlJTID0gMHgwMwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIldpRmkgUFJSUyA9ICIsIFBSUlMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChDTk1UKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoX1BSUiwgUGFja2FnZSAoMHgwMSkgIC8vIF9QUlI6IFBvd2VyIFJlc291cmNlIGZv ciBSZXNldAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBXUlNUCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoQ0ZMUiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJXaUZpIENvcmUgUmVzZXQsIFdGTFIgPSAiLCBXRkxSKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoV0ZMUiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdJRlIgPSBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKF9TQi5QQzAyKQogICAgICAgIHsKICAgICAg ICAgICAgTWV0aG9kIChUSU5ULCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBOYW1lIChUSU5SLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUxvdywg RXhjbHVzaXZlQW5kV2FrZSwgUHVsbFVwLCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICJcXF9TQi5QR1BJIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlz dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKFRJTlIsIDB4MTcsIElOVDEpCiAgICAgICAgICAgICAgICBJTlQxID0gXl5QR1BJ LkdOVU0gKEFyZzApCiAgICAgICAgICAgICAgICBSZXR1cm4gKFRJTlIpIC8qIFxfU0JfLlBD MDIuVElOVC5USU5SICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoVEhD MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDEwMDAw MCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIE5hbWUgKFJTVEwsIFplcm8p CiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFRIQ1IsIFBDSV9Db25maWcsIFpl cm8sIDB4MDEwMCkKICAgICAgICAgICAgICAgIEZpZWxkIChUSENSLCBCeXRlQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFZE SUQsICAgMzIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKFZESUQg IT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg TmFtZSAoSUNSUywgQnVmZmVyICgweDBDKXt9KQogICAgICAgICAgICAgICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoSUNSUywgWmVybywgREFEUikKICAgICAgICAgICAgICAgICAgICBDcmVh dGVRV29yZEZpZWxkIChJQ1JTLCAweDAyLCBEU1BEKQogICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJ5dGVGaWVsZCAoSUNSUywgMHgwQSwgREFETSkKICAgICAgICAgICAgICAgICAgICBO YW1lIChJU1VCLCBCdWZmZXIgKDB4OTEpe30pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl UVdvcmRGaWVsZCAoSVNVQiwgWmVybywgU01IWCkKICAgICAgICAgICAgICAgICAgICBDcmVh dGVRV29yZEZpZWxkIChJU1VCLCAweDA4LCBTTUxYKQogICAgICAgICAgICAgICAgICAgIENy ZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4MTAsIFNNVEQpCiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHgxOCwgU01SRCkKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDIwLCBGTUhYKQogICAgICAgICAgICAgICAg ICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4MjgsIEZNTFgpCiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHgzMCwgRk1URCkKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDM4LCBGTVJEKQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4NDAsIEZNU0wpCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHg0OCwgRlBIWCkKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDUwLCBGUExYKQogICAg ICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4NTgsIEZQVEQpCiAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHg2MCwgRlBSRCkK ICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDY4LCBITUhY KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4NzAsIEhN TFgpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHg3OCwg SE1URCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDgw LCBITVJEKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4 ODgsIEhNU0wpCiAgICAgICAgICAgICAgICAgICAgREFEUiA9IFplcm8KICAgICAgICAgICAg ICAgICAgICBEU1BEID0gWmVybwogICAgICAgICAgICAgICAgICAgIERBRE0gPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgU01IWCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBTTUxY ID0gWmVybwogICAgICAgICAgICAgICAgICAgIFNNVEQgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgU01SRCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBGTUhYID0gWmVybwogICAg ICAgICAgICAgICAgICAgIEZNTFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgRk1URCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICBGTVJEID0gWmVybwogICAgICAgICAgICAgICAg ICAgIEZNU0wgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgRlBIWCA9IFplcm8KICAgICAg ICAgICAgICAgICAgICBGUExYID0gWmVybwogICAgICAgICAgICAgICAgICAgIEZQVEQgPSBa ZXJvCiAgICAgICAgICAgICAgICAgICAgRlBSRCA9IFplcm8KICAgICAgICAgICAgICAgICAg ICBITUhYID0gWmVybwogICAgICAgICAgICAgICAgICAgIEhNTFggPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgSE1URCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBITVJEID0gWmVy bwogICAgICAgICAgICAgICAgICAgIEhNU0wgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmlj IE1ldGhvZAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKFBDSUMgKEFyZzApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBDSUQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMp KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKFRNRDAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjZlMmFjNDM2LTBmY2Yt NDFhZi1hMjY1LWIzMmEyMjBkY2ZhYiIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzEpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3RiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJUSEMgVEhDX0lOUFVUX1JFUE9SVF9IRUFERVJfQUREUkVTUyIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRvSW50 ZWdlciAoVDA0MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlRIQyBUSENfSU5QVVRfUkVQT1JUX0JPRFlfQUREUkVT UyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRv SW50ZWdlciAoVDA1MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIlRIQyBUSENfT1VUUFVUX1JFUE9SVF9BRERSRVNT IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVG9J bnRlZ2VyIChUMDYwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19SRUFEX09QQ09ERSIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUY0LCBCdWZmZXIgKE9u ZSl7fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IFRvQnVmZmVyIChUMDcwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQlVGNCBbWmVyb10gPSBEZXJlZk9mIChMb2NhbDAgW1plcm9dKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCVUY0KSAvKiBcX1NCXy5QQzAy LlRIQzAuX0RTTS5CVUY0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRIQyBUSENfV1JJVEVfT1BDT0RFIikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRjUsIEJ1ZmZl ciAoT25lKXt9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwxID0gVG9CdWZmZXIgKFQwODApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCVUY1IFtaZXJvXSA9IERlcmVmT2YgKExvY2FsMSBbWmVyb10pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjUpIC8qIFxfU0Jf LlBDMDIuVEhDMC5fRFNNLkJVRjUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19GTEFHUyIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRvSW50ZWdlciAo VDA5MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIzMDBkMzViNy1hYzIwLTQx M2UtOGU5Yy05MmU0ZGFmZDBhZmUiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3 aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDcgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlRIQyBUSENfQ09OTkVDVElPTl9TUEVFRCIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRvSW50ZWdlciAoVDAz MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIlRIQyBUSENfTElNSVRfUEFDS0VUX1NJWkUiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb0ludGVnZXIgKFQwQzApKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJUSEMgVEhDX1BFUkZPUk1BTkNFX0xJTUlUQVRJT04iKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb0ludGVnZXIgKFQwRDApKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgi ODQwMDU2ODItNWI3MS00MWE0LThkNjYtODEzMGY3ODdhMTM4IikgLyogVW5rbm93biBVVUlE ICovKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRIQyBUSENfQUNUSVZFX0xU UiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVG9JbnRl Z2VyIChUMEEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJUSEMgVEhDX0lETEVfTFRSIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChUb0ludGVnZXIgKFQwQjApKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzAgPT0gVG9VVUlEICgiOWIxZTc3YzQtNTNkYi00M2JkLWEyNzYtZjcyODc2MDRk MWJkIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlRIQyBUSENfRElTUExBWV9GUkFNRV9TWU5DX1BFUklPRCIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVG9JbnRlZ2VyIChUMEUwKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjNjZGZmNmY3LTQyNjctNDU1 NS1hZDA1LWIzMGEzZDg5MzhkZSIpIC8qIEhJRCBJMkMgRGV2aWNlICovKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChU b0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlRIQyBUSENfSElESTJDX0RFVklDRV9BRERSRVNTIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoWmVybyl7fSkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVElOMCAhPSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9TMFcs IDB4MDMpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50 IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoVElOVCAoVElOMCkpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmICgoVE1EMCAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6 IEluaXRpYWxpemUKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlRIQyBfSU5JIikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5eXlBHUEkuU0hQTyAoVDAxMCwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXl5eUEdQSS5TUE1WIChUMDEwLCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXl5eUEdQSS5TUEMwIChUMDEwLCAoMHg0MjAwMDIwMCB8ICh+KFQwMjAgJiBPbmUpICYg T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mICheQ0lOSSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0lOSSAoVDAx MCwgVDBGMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUlNULCAwLCBT ZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUSEMgX1JTVCIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKFJTVEwgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSU1RMID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeXl5QR1BJLlNHT1YgKFQwMTAsIChUMDIwICYgT25lKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNsZWVwIChUMEYwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Xl5eUEdQSS5TR09WIChUMDEwLCAofihUMDIwICYgT25lKSAmIE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSU1RMID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfRFNELCBQYWNrYWdlICgweDA0KSAg Ly8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZGFmZmQ4MTQtNmViYS00 ZDhjLThhOTEtYmM5YmJmNGFhMzAxIikgLyogRGV2aWNlIFByb3BlcnRpZXMgZm9yIF9EU0Qg Ki8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSUNSUywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUb1VVSUQgKCJkYmI4ZTNlNi01ODg2LTRiYTYtODc5NS0xMzE5ZjUy YTk2NmIiKSAvKiBIaWVyYXJjaGljYWwgRGF0YSBFeHRlbnNpb24gKi8sIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSVNVQgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgRGV2aWNlIChUSEMxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMTAwMDAxKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAg ICAgTmFtZSAoUlNUTCwgWmVybykKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo VEhDUiwgUENJX0NvbmZpZywgWmVybywgMHgwMTAwKQogICAgICAgICAgICAgICAgRmllbGQg KFRIQ1IsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgVkRJRCwgICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmICgoVkRJRCAhPSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBOYW1lIChJQ1JTLCBCdWZmZXIgKDB4MEMpe30pCiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJQ1JTLCBaZXJvLCBEQURSKQogICAg ICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElDUlMsIDB4MDIsIERTUEQpCiAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChJQ1JTLCAweDBBLCBEQURNKQog ICAgICAgICAgICAgICAgICAgIE5hbWUgKElTVUIsIEJ1ZmZlciAoMHg5MSl7fSkKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCBaZXJvLCBTTUhYKQogICAg ICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4MDgsIFNNTFgpCiAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHgxMCwgU01URCkK ICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDE4LCBTTVJE KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4MjAsIEZN SFgpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwgMHgyOCwg Rk1MWCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VCLCAweDMw LCBGTVREKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElTVUIsIDB4 MzgsIEZNUkQpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoSVNVQiwg MHg0MCwgRk1TTCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChJU1VC LCAweDQ4LCBGUEhYKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKElT VUIsIDB4NTAsIEZQTFgpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAo SVNVQiwgMHg1OCwgRlBURCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxk IChJU1VCLCAweDYwLCBGUFJEKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmll bGQgKElTVUIsIDB4NjgsIEhNSFgpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRG aWVsZCAoSVNVQiwgMHg3MCwgSE1MWCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29y ZEZpZWxkIChJU1VCLCAweDc4LCBITVREKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFX b3JkRmllbGQgKElTVUIsIDB4ODAsIEhNUkQpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl UVdvcmRGaWVsZCAoSVNVQiwgMHg4OCwgSE1TTCkKICAgICAgICAgICAgICAgICAgICBEQURS ID0gWmVybwogICAgICAgICAgICAgICAgICAgIERTUEQgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgREFETSA9IFplcm8KICAgICAgICAgICAgICAgICAgICBTTUhYID0gWmVybwogICAg ICAgICAgICAgICAgICAgIFNNTFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgU01URCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICBTTVJEID0gWmVybwogICAgICAgICAgICAgICAg ICAgIEZNSFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgRk1MWCA9IFplcm8KICAgICAg ICAgICAgICAgICAgICBGTVREID0gWmVybwogICAgICAgICAgICAgICAgICAgIEZNUkQgPSBa ZXJvCiAgICAgICAgICAgICAgICAgICAgRk1TTCA9IFplcm8KICAgICAgICAgICAgICAgICAg ICBGUEhYID0gWmVybwogICAgICAgICAgICAgICAgICAgIEZQTFggPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgRlBURCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBGUFJEID0gWmVy bwogICAgICAgICAgICAgICAgICAgIEhNSFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg SE1MWCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBITVREID0gWmVybwogICAgICAgICAg ICAgICAgICAgIEhNUkQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgSE1TTCA9IFplcm8K ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBf RFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUENJRCAoQXJn MCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoVE1EMSA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9V VUlEICgiNmUyYWM0MzYtMGZjZi00MWFmLWEyNjUtYjMyYTIyMGRjZmFiIikgLyogVW5rbm93 biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRv SW50ZWdlciAoQXJnMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDdGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRIQyBUSENfSU5QVVRfUkVQ T1JUX0hFQURFUl9BRERSRVNTIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoVG9JbnRlZ2VyIChUMDQxKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD YXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19JTlBV VF9SRVBPUlRfQk9EWV9BRERSRVNTIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoVG9JbnRlZ2VyIChUMDUxKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDYXNlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19P VVRQVVRfUkVQT1JUX0FERFJFU1MiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChUb0ludGVnZXIgKFQwNjEpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENhc2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUSEMgVEhDX1JF QURfT1BDT0RFIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKEJVRjQsIEJ1ZmZlciAoT25lKXt9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gVG9CdWZmZXIgKFQwNzEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCVUY0IFtaZXJvXSA9IERlcmVmT2YgKExvY2FsMCBb WmVyb10pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEJVRjQpIC8qIFxfU0JfLlBDMDIuVEhDMS5fRFNNLkJVRjQgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRI Q19XUklURV9PUENPREUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTmFtZSAoQlVGNSwgQnVmZmVyIChPbmUpe30pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgPSBUb0J1ZmZlciAoVDA4MSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRjUgW1plcm9dID0gRGVyZWZPZiAoTG9j YWwxIFtaZXJvXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQlVGNSkgLyogXF9TQl8uUEMwMi5USEMxLl9EU00uQlVGNSAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENhc2UgKDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJU SEMgVEhDX0ZMQUdTIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoVG9JbnRlZ2VyIChUMDkxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoIjMwMGQzNWI3LWFjMjAtNDEzZS04ZTljLTkyZTRkYWZkMGFmZSIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19DT05ORUNU SU9OX1NQRUVEIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoVG9JbnRlZ2VyIChUMDMxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19MSU1JVF9QQUNLRVRf U0laRSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFRvSW50ZWdlciAoVDBDMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRIQyBUSENfUEVSRk9STUFOQ0VfTElNSVRB VElPTiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFRvSW50ZWdlciAoVDBEMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMCA9PSBUb1VVSUQgKCI4NDAwNTY4Mi01YjcxLTQxYTQtOGQ2Ni04MTMwZjc4N2Ex MzgiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiVEhDIFRIQ19BQ1RJVkVfTFRSIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChUb0ludGVnZXIgKFQwQTEpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIlRIQyBUSENfSURMRV9MVFIiKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRvSW50ZWdlciAoVDBCMSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI5YjFlNzdjNC01M2Ri LTQzYmQtYTI3Ni1mNzI4NzYwNGQxYmQiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2gg KFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19ESVNQTEFZX0ZSQU1FX1NZTkNfUEVS SU9EIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb0lu dGVnZXIgKFQwRTEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlE ICgiM2NkZmY2ZjctNDI2Ny00NTU1LWFkMDUtYjMwYTNkODkzOGRlIikgLyogSElEIEkyQyBE ZXZpY2UgKi8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVy bykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIFRIQ19ISURJ MkNfREVWSUNFX0FERFJFU1MiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICha ZXJvKXt9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KChUSU4xICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX1MwVywgMHgwMykgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0 YXRlCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXpl ZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUSU5UIChU SU4xKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChUTUQxICE9IFplcm8pKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVEhDIF9JTkkiKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgXl5eUEdQSS5TSFBPIChUMDExLCBPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeXl5QR1BJLlNQTVYgKFQwMTEsIFplcm8pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeXl5QR1BJLlNQQzAgKFQwMTEsICgweDQyMDAwMjAw IHwgKH4oVDAyMSAmIE9uZSkgJiBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKF5DSU5J KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDSU5JIChUMDExLCBUMEYxKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9SU1QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVzZXQK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoIlRIQyBfUlNUIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlICgo UlNUTCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDBBKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJTVEwgPSBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5eXlBHUEkuU0dPViAoVDAxMSwgKFQwMjEgJiBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFQwRjEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeXl5QR1BJLlNHT1YgKFQwMTEsICh+KFQwMjEgJiBPbmUp ICYgT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJTVEwgPSBaZXJvCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9E U0QsIFBhY2thZ2UgKDB4MDQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VV SUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEiKSAvKiBEZXZpY2Ug UHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ Q1JTLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoImRiYjhlM2U2LTU4 ODYtNGJhNi04Nzk1LTEzMTlmNTJhOTY2YiIpIC8qIEhpZXJhcmNoaWNhbCBEYXRhIEV4dGVu c2lvbiAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU1VCCiAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoX1NCKQogICAgICAg IHsKICAgICAgICAgICAgRGV2aWNlIChQR1BJKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBNZXRob2QgKF9ISUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2Fy ZSBJRAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoR1BIRCA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgiUE5QMEMwMiIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKCJJTlRDMTA4NCIpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTmFtZSAoU0JSRywgWmVybykKICAgICAgICAgICAgICAgIFNCUkcgPSBeUEMw Mi5TQlJHIC8qIFxfU0JfLlBDMDIuU0JSRyAqLwogICAgICAgICAgICAgICAgTmFtZSAoR0VJ MCwgWmVybykKICAgICAgICAgICAgICAgIEdFSTAgPSBeUEMwMi5HRUkwIC8qIFxfU0JfLlBD MDIuR0VJMCAqLwogICAgICAgICAgICAgICAgTmFtZSAoR0VJMSwgWmVybykKICAgICAgICAg ICAgICAgIEdFSTEgPSBeUEMwMi5HRUkxIC8qIFxfU0JfLlBDMDIuR0VJMSAqLwogICAgICAg ICAgICAgICAgTmFtZSAoR0VJMiwgWmVybykKICAgICAgICAgICAgICAgIEdFSTIgPSBeUEMw Mi5HRUkyIC8qIFxfU0JfLlBDMDIuR0VJMiAqLwogICAgICAgICAgICAgICAgTmFtZSAoR0VE MCwgWmVybykKICAgICAgICAgICAgICAgIEdFRDAgPSBeUEMwMi5HRUQwIC8qIFxfU0JfLlBD MDIuR0VEMCAqLwogICAgICAgICAgICAgICAgTmFtZSAoR0VEMSwgWmVybykKICAgICAgICAg ICAgICAgIEdFRDEgPSBeUEMwMi5HRUQxIC8qIFxfU0JfLlBDMDIuR0VEMSAqLwogICAgICAg ICAgICAgICAgTmFtZSAoR0VEMiwgWmVybykKICAgICAgICAgICAgICAgIEdFRDIgPSBeUEMw Mi5HRUQyIC8qIFxfU0JfLlBDMDIuR0VEMiAqLwogICAgICAgICAgICAgICAgTWV0aG9kIChf Q1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0 aW5ncwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKFJCRlMs IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2 ZUxvdywgU2hhcmVkLCAsLCBfWTQ0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBFLAogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIFFXb3JkTWVtb3J5IChSZXNvdXJjZUNv bnN1bWVyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBS ZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAw MDAsIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw MDAwMDAwMDAwMDAsIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAwMDAwRkZGRiwgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBUcmFuc2xhdGlvbiBPZmZz ZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAxMDAwMCwgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLCBfWTQ1LCBBZGRyZXNzUmFu Z2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICAgICAgICAgIFFXb3JkTWVt b3J5IChSZXNvdXJjZUNvbnN1bWVyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwg Tm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDAwMDAwMDAwMDAsIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwRkZGRiwgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBU cmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAwMDAxMDAwMCwgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLCBf WTQ2LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICAg ICAgICAgIFFXb3JkTWVtb3J5IChSZXNvdXJjZUNvbnN1bWVyLCBQb3NEZWNvZGUsIE1pbkZp eGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEdyYW51bGFyaXR5CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwRkZGRiwg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAw MDAwMDAwMDAwLCAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAwMDAxMDAwMCwgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAsLCBfWTQ3LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAg ICAgICAgICAgICAgICAgICAgICAgIFFXb3JkTWVtb3J5IChSZXNvdXJjZUNvbnN1bWVyLCBQ b3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVhYmxlLCBSZWFkV3JpdGUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEdy YW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAw MDAsIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw MDAwMDAwMDAwRkZGRiwgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAxMDAwMCwgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAsLCBfWTQ4LCBBZGRyZXNzUmFuZ2VNZW1vcnks IFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICAgICAgICAgIFFXb3JkTWVtb3J5IChSZXNv dXJjZUNvbnN1bWVyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgTm9uQ2FjaGVh YmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw MDAwMDAwMDAsIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDAwMDAwMDAwMDAsIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAwMDAwMDAwMDAwRkZGRiwgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBUcmFuc2xhdGlv biBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAxMDAw MCwgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLCBfWTQ5LCBBZGRy ZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSQkZTLCBcX1NCLlBHUEkuX0NS Uy5fWTQ0Ll9JTlQsIElOVEgpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAg ICAgICAgSU5USCA9IFNHSVIgLyogXFNHSVIgKi8KICAgICAgICAgICAgICAgICAgICBDcmVh dGVRV29yZEZpZWxkIChSQkZTLCBcX1NCLlBHUEkuX0NSUy5fWTQ1Ll9NSU4sIENNTjApICAv LyBfTUlOOiBNaW5pbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIENyZWF0 ZVFXb3JkRmllbGQgKFJCRlMsIFxfU0IuUEdQSS5fQ1JTLl9ZNDUuX01BWCwgQ01YMCkgIC8v IF9NQVg6IE1heGltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgQ01OMCA9 IChTQlJHICsgMHgwMDZFMDAwMCkKICAgICAgICAgICAgICAgICAgICBDTVgwID0gKENNTjAg KyAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoUkJGUywg XF9TQi5QR1BJLl9DUlMuX1k0Ni5fTUlOLCBDTU4xKSAgLy8gX01JTjogTWluaW11bSBCYXNl IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChSQkZTLCBc X1NCLlBHUEkuX0NSUy5fWTQ2Ll9NQVgsIENNWDEpICAvLyBfTUFYOiBNYXhpbXVtIEJhc2Ug QWRkcmVzcwogICAgICAgICAgICAgICAgICAgIENNTjEgPSAoU0JSRyArIDB4MDA2RDAwMDAp CiAgICAgICAgICAgICAgICAgICAgQ01YMSA9IChDTU4xICsgMHhGRkZGKQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKFJCRlMsIFxfU0IuUEdQSS5fQ1JTLl9ZNDcu X01JTiwgQ01OMykgIC8vIF9NSU46IE1pbmltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoUkJGUywgXF9TQi5QR1BJLl9DUlMuX1k0Ny5f TUFYLCBDTVgzKSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAg ICAgICAgICBDTU4zID0gKFNCUkcgKyAweDAwNkIwMDAwKQogICAgICAgICAgICAgICAgICAg IENNWDMgPSAoQ01OMyArIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29y ZEZpZWxkIChSQkZTLCBcX1NCLlBHUEkuX0NSUy5fWTQ4Ll9NSU4sIENNTjQpICAvLyBfTUlO OiBNaW5pbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3Jk RmllbGQgKFJCRlMsIFxfU0IuUEdQSS5fQ1JTLl9ZNDguX01BWCwgQ01YNCkgIC8vIF9NQVg6 IE1heGltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgQ01ONCA9IChTQlJH ICsgMHgwMDZBMDAwMCkKICAgICAgICAgICAgICAgICAgICBDTVg0ID0gKENNTjQgKyAweEZG RkYpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoUkJGUywgXF9TQi5Q R1BJLl9DUlMuX1k0OS5fTUlOLCBDTU41KSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFkZHJl c3MKICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChSQkZTLCBcX1NCLlBH UEkuX0NSUy5fWTQ5Ll9NQVgsIENNWDUpICAvLyBfTUFYOiBNYXhpbXVtIEJhc2UgQWRkcmVz cwogICAgICAgICAgICAgICAgICAgIENNTjUgPSAoU0JSRyArIDB4MDA2OTAwMDApCiAgICAg ICAgICAgICAgICAgICAgQ01YNSA9IChDTU41ICsgMHhGRkZGKQogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUkJGUykgLyogXF9TQl8uUEdQSS5fQ1JTLlJCRlMgKi8KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKEdQSEQgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOCkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBOYW1lIChHUENTLCBQYWNrYWdlICgweDA2KQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwNkUwMDAwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwOSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDE5LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2MDAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1MCwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhCMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MjQwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExNCwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDA3OTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDE1NCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMCwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ0LCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAxMTgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDExQywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMCwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA5 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDg3 MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU4LCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEM4LCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAyNDgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEy MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTI0LCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDQwLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA5KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDk5MCwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMTVDLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEQ0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNEMsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEyOCwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMTJDLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDYwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2RDAw MDAsIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDA5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MEYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDYwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTUwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweEIwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyNDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDExMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTE0LCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA5KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcyMCwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMTU0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEI4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDQsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMTFDLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEEwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDdCMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MTU4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAyNDgsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEyMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MTI0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDA2CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2QzAwMDAsIAogICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA5KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYwMCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMTUwLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEIwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExMCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMTE0LCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG RgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAweDAwNkIwMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNikK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDA5LCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDA2MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1 MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhCMCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMjQwLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAxMTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEx NCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhFMCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwOAogICAgICAgICAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwOSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDE4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2OTAsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE1NCwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHhCOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMjQ0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTgsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDExQywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMTAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDA5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDgxMCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMTU4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEM0 LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNDgsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDEyMCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMTI0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx MjAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEEKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwOTUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNUMsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RDAsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDI0QywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMTI4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMkMsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE0MCwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwQgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwOSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5OTAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE2MCwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhENCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MjUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMzAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEzNCwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMTYwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDBDCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MEExMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMTY0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEQ4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNTQsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDEzOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMTNDLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxODAs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDZBMDAwMCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjAwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNTAsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4QjAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDI0MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTEwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTQsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDFBMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3LCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ODAsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDE1NCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhCNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQ0LCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMTgsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDExQywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMUMwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBGCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDdGMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU4 LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAyNDgsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDEyMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTI0 LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxRTAsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgxOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOEQwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxNUMsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4QzgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDI0QywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTI4LCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMkMsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDIwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgxMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAweDAwNjkwMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1LCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDA2MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDE1MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhCMCwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjQwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAxMTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDExNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjIwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA5 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc1 MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTU0LCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEJDLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAyNDQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEx OCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTFDLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAyNDAsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKEdEU0MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUENTKSAvKiBc X1NCXy5QR1BJLkdQQ1MgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKEdNWEcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDE0KQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoR0NNUCwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBHRFNDICgpCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChEZXJlZk9mIChEZXJlZk9mIChMb2NhbDAgW0FyZzBdKSBbWmVy b10pKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoR0lORiwg MywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBHRFNDICgpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEZXJlZk9m IChEZXJlZk9mIChEZXJlZk9mIChEZXJlZk9mIChMb2NhbDAgW0FyZzBdKSBbCiAgICAgICAg ICAgICAgICAgICAgICAgIE9uZV0pIFtBcmcxXSkgW0FyZzJdKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEdDT00sIDEsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKChBcmcwID4+IDB4 MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEdHUlAsIDEsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKChB cmcwID4+IDB4MDcpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2Fs MCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEdOTUIsIDEs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgoQXJnMCAmIDB4N0YpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoR0FEUiwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBMb2NhbDIgPSBHR1JQIChBcmcwKQogICAgICAgICAgICAgICAg ICAgIExvY2FsMyA9IEdDT00gKEFyZzApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g KEdDTVAgKExvY2FsMykgKyBTQlJHKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEdJ TkYgKExvY2FsMywgTG9jYWwyLCBBcmcxKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAo KExvY2FsMCArIExvY2FsMSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChHTlVNLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIExvY2FsMCA9IEdOTUIgKEFyZzApCiAgICAgICAgICAgICAgICAg ICAgTG9jYWwxID0gR0dSUCAoQXJnMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBH Q09NIChBcmcwKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoKEdJTkYgKExvY2FsMiwg TG9jYWwxLCAweDA3KSArIExvY2FsMCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChHR0dQLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEdHUlAgKEFyZzApCiAgICAgICAgICAg ICAgICAgICAgTG9jYWwxID0gR0NPTSAoQXJnMCkKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEdJTkYgKExvY2FsMSwgTG9jYWwwLCAweDA4KSkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKElOVU0sIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoR1BDMSAoQXJnMCkgJiAw eDdGKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEdHUEUs IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gR0dHUCAoQXJnMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBH Tk1CIChBcmcwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IChMb2NhbDEgPj4gMHgw NSkKICAgICAgICAgICAgICAgICAgICBJZiAoISgoKChHRUkwID09IExvY2FsMCkgJiYgKEdF RDAgPT0gTG9jYWwyKSkgfCAoCiAgICAgICAgICAgICAgICAgICAgICAgIChHRUkxID09IExv Y2FsMCkgJiYgKEdFRDEgPT0gTG9jYWwyKSkpIHwgKChHRUkyID09IExvY2FsMCkgJiYgKEdF RDIgPT0gCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMikpKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHg2RikKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoR0VJMCA9PSBMb2NhbDAp ICYmIChHRUQwID09IExvY2FsMikpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSBaZXJvCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKEdFSTEgPT0gTG9j YWwwKSAmJiAoR0VEMSA9PSBMb2NhbDIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKEdFSTIgPT0g TG9jYWwwKSAmJiAoR0VEMiA9PSBMb2NhbDIpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gMHgwMgogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWtQb2lu dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCgoKExv Y2FsMyAtIExvY2FsMikgKiAweDIwKSArIExvY2FsMSkpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoR1BDMCwgMSwg U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2Nh bDIgPSAoR0FEUiAoQXJnMCwgT25lKSArIChHTk1CIChBcmcwKSAqIDB4MTApKQogICAgICAg ICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2Nh bDIsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFBEVzAsIEFueUFjYywgTm9M b2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFRFTVAsICAgMzIKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoVEVNUCkgLyogXF9TQl8uUEdQSS5HUEMwLlRFTVAgKi8KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFNQQzAsIDIsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gKEdB RFIgKEFyZzAsIE9uZSkgKyAoR05NQiAoQXJnMCkgKiAweDEwKSkKICAgICAgICAgICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKFBEVzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0 KQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChQRFcwLCBBbnlBY2MsIE5vTG9jaywgUHJl c2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBU RU1QLCAgIDMyCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBU RU1QID0gQXJnMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo R1BDMSwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBMb2NhbDIgPSAoKEdBRFIgKEFyZzAsIE9uZSkgKyAoR05NQiAoQXJnMCkgKiAweDEw KQogICAgICAgICAgICAgICAgICAgICAgICApICsgMHgwNCkKICAgICAgICAgICAgICAgICAg ICBPcGVyYXRpb25SZWdpb24gKFBEVzEsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQog ICAgICAgICAgICAgICAgICAgIEZpZWxkIChQRFcxLCBBbnlBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBURU1Q LCAgIDMyCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFRFTVApIC8qIFxfU0JfLlBHUEkuR1BDMS5URU1QICovCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChTUEMxLCAyLCBTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9ICgoR0FEUiAoQXJnMCwg T25lKSArIChHTk1CIChBcmcwKSAqIDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAgICkg KyAweDA0KQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMSwgU3lz dGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFBE VzEsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFRFTVAsICAgMzIKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIFRFTVAgPSBBcmcxCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChTUlhPLCAyLCBTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IChHQURSIChBcmcwLCBPbmUp ICsgKEdOTUIgKEFyZzApICogMHgxMCkpCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChQRFcwLCBTeXN0ZW1NZW1vcnksIExvY2FsMiwgMHgwNCkKICAgICAgICAgICAg ICAgICAgICBGaWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAyOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFRFTVAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIFRFTVAgPSBBcmcxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChHR0lWLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIExvY2FsMiA9IChHQURSIChBcmcwLCBPbmUpICsgKEdOTUIgKEFyZzAp ICogMHgxMCkpCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRFcwLCBT eXN0ZW1NZW1vcnksIExvY2FsMiwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAo UERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICAg ICAgICAgVEVNUCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0 KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChU RU1QKSAvKiBcX1NCXy5QR1BJLkdHSVYuVEVNUCAqLwogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoR0dPViwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAoQXJnMCwgT25lKSAr IChHTk1CIChBcmcwKSAqIDB4MTApKQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpCiAgICAgICAgICAgICAg ICAgICAgRmllbGQgKFBEVzAsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFRFTVAsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoVEVNUCkgLyogXF9TQl8uUEdQSS5HR09W LlRFTVAgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFNH T1YsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgTG9jYWwyID0gKEdBRFIgKEFyZzAsIE9uZSkgKyAoR05NQiAoQXJnMCkgKiAweDEwKSkK ICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBEVzAsIFN5c3RlbU1lbW9y eSwgTG9jYWwyLCAweDA0KQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChQRFcwLCBBbnlB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBURU1QLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBU RU1QID0gQXJnMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo R0dJSSwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBMb2NhbDIgPSAoR0FEUiAoQXJnMCwgT25lKSArIChHTk1CIChBcmcwKSAqIDB4MTAp KQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVt b3J5LCBMb2NhbDIsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFBEVzAsIEFu eUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAsICAgMjMsIAogICAgICAgICAgICAgICAgICAgICAgICBU RU1QLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRFTVApIC8q IFxfU0JfLlBHUEkuR0dJSS5URU1QICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChTR0lJLCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IChHQURSIChBcmcwLCBPbmUpICsgKEdOTUIg KEFyZzApICogMHgxMCkpCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQ RFcwLCBTeXN0ZW1NZW1vcnksIExvY2FsMiwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBG aWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAyMywgCiAgICAgICAgICAg ICAgICAgICAgICAgIFRFTVAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFRF TVAgPSBBcmcxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChH UE1WLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIExvY2FsMiA9IChHQURSIChBcmcwLCBPbmUpICsgKEdOTUIgKEFyZzApICogMHgxMCkp CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRFcwLCBTeXN0ZW1NZW1v cnksIExvY2FsMiwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoUERXMCwgQW55 QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICwgICAxMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRF TVAsICAgMywgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCkKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoVEVNUCkgLyog XF9TQl8uUEdQSS5HUE1WLlRFTVAgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKFNQTVYsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgTG9jYWwyID0gKEdBRFIgKEFyZzAsIE9uZSkgKyAoR05NQiAo QXJnMCkgKiAweDEwKSkKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBE VzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQogICAgICAgICAgICAgICAgICAgIEZp ZWxkIChQRFcwLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgVEVNUCwgICAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDA0KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgVEVN UCA9IEFyZzEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEdI UE8sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgTG9jYWwxID0gR05NQiAoQXJnMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDMgPSAo R0FEUiAoQXJnMCwgMHgwMikgKyAoKExvY2FsMSA+PiAweDA1KSAqIDB4MDQpKQogICAgICAg ICAgICAgICAgICAgIExvY2FsNCA9IChMb2NhbDEgJiAweDFGKQogICAgICAgICAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoUFJFRywgU3lzdGVtTWVtb3J5LCBMb2NhbDMsIDB4MDQp CiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFBSRUcsIEFueUFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFRF TVAsICAgMzIKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoKChURU1QID4+IExvY2FsNCkgJiBPbmUpKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoU0hQTywgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBHTk1CIChBcmcwKQogICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJQYWQgbnVtYmVyIikKICAgICAgICAgICAgICAgICAgICBB REJHIChUb0hleFN0cmluZyAoTG9jYWwxKSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDMg PSAoR0FEUiAoQXJnMCwgMHgwMikgKyAoKExvY2FsMSA+PiAweDA1KSAqIDB4MDQpKQogICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJIT1NUIG93bmVyIG9mZnNldCIpCiAgICAgICAgICAg ICAgICAgICAgQURCRyAoVG9IZXhTdHJpbmcgKExvY2FsMykpCiAgICAgICAgICAgICAgICAg ICAgTG9jYWw0ID0gKExvY2FsMSAmIDB4MUYpCiAgICAgICAgICAgICAgICAgICAgQURCRyAo IlBhZCBwb3NpdGlvbiIpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoVG9IZXhTdHJpbmcg KExvY2FsNCkpCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQUkVHLCBT eXN0ZW1NZW1vcnksIExvY2FsMywgMHgwNCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAo UFJFRywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgVEVNUCwgICAzMgogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkhPU1Qgb3duIGJlZm9yZSIpCiAgICAg ICAgICAgICAgICAgICAgQURCRyAoVG9IZXhTdHJpbmcgKFRFTVApKQogICAgICAgICAgICAg ICAgICAgIElmIChBcmcxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgVEVNUCB8PSAoT25lIDw8IExvY2FsNCkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgVEVNUCAmPSB+KE9uZSA8PCBMb2NhbDQpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBREJHICgiSE9TVCBvd24gYWZ0ZXIi KQogICAgICAgICAgICAgICAgICAgIEFEQkcgKFRvSGV4U3RyaW5nIChURU1QKSkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEdHUE8sIDEsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gR05N QiAoQXJnMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAoQXJnMCwgMHgw MykgKyAoKExvY2FsMSA+PiAweDAzKSAqIDB4MDQKICAgICAgICAgICAgICAgICAgICAgICAg KSkKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBSRUcsIFN5c3RlbU1l bW9yeSwgTG9jYWwyLCAweDA0KQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChQUkVHLCBB bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBURU1QLCAgIDMyCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKCgoVEVNUCA+PiAoKExvY2FsMSAmIDB4MDcpICog MHgwNCkpICYgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMpKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoU0dSQSwgMiwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAoQXJn MCwgT25lKSArIChHTk1CIChBcmcwKSAqIDB4MTApKQogICAgICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpCiAgICAg ICAgICAgICAgICAgICAgRmllbGQgKFBEVzAsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAg MjAsIAogICAgICAgICAgICAgICAgICAgICAgICBURU1QLCAgIDEsIAogICAgICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBURU1QID0gQXJnMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoU0dXUCwgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoKEdBRFIgKEFyZzAsIE9uZSkgKyAoR05N QiAoQXJnMCkgKiAweDEwKQogICAgICAgICAgICAgICAgICAgICAgICApICsgMHgwNCkKICAg ICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBEVzAsIFN5c3RlbU1lbW9yeSwg TG9jYWwyLCAweDA0KQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChQRFcwLCBBbnlBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgICAgICAgICAgVEVNUCwg ICA0LCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgVEVNUCA9IEFyZzEKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKENHUEksIDEsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gR05NQiAo QXJnMCkKICAgICAgICAgICAgICAgICAgICBBREJHICgiUGFkIG51bWJlciIpCiAgICAgICAg ICAgICAgICAgICAgQURCRyAoVG9IZXhTdHJpbmcgKExvY2FsMSkpCiAgICAgICAgICAgICAg ICAgICAgTG9jYWw0ID0gKExvY2FsMSA+PiAweDA1KQogICAgICAgICAgICAgICAgICAgIEFE QkcgKCJHcm91cCBEVyIpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoVG9IZXhTdHJpbmcg KExvY2FsNCkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gR0FEUiAoQXJnMCwgMHgw NCkKICAgICAgICAgICAgICAgICAgICBBREJHICgiUmVnIG9mZnNldCIpCiAgICAgICAgICAg ICAgICAgICAgQURCRyAoVG9IZXhTdHJpbmcgKExvY2FsMykpCiAgICAgICAgICAgICAgICAg ICAgSWYgKCgoTG9jYWwzICYgMHhGRkZGKSAhPSAweEZGRkYpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNsZWFyaW5nIEdQSSIpCiAg ICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoR1BQWCwgU3lzdGVtTWVt b3J5LCAoTG9jYWwzICsgKExvY2FsNCAqIDB4MDQpKSwgMHgwNCkKICAgICAgICAgICAgICAg ICAgICAgICAgRmllbGQgKEdQUFgsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RTWCwg ICAzMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDIgPSAoT25lIDw8IChMb2NhbDEgJSAweDIwKSkKICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIlNUU1ggYmVmb3JlIikKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoVG9IZXhTdHJpbmcgKFNUU1gpKQogICAgICAgICAgICAgICAgICAgICAgICBTVFNYID0g TG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJTVFNYIGFmdGVyIikKICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoVG9IZXhTdHJpbmcgKFNUU1gpKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKENBR1MsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gR0dHUCAoQXJnMCkKICAgICAgICAgICAgICAgICAgICBMb2Nh bDEgPSBHTk1CIChBcmcwKQogICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IChMb2NhbDEg Pj4gMHgwNSkKICAgICAgICAgICAgICAgICAgICBJZiAoISgoKChHRUkwID09IExvY2FsMCkg JiYgKEdFRDAgPT0gTG9jYWw0KSkgfCAoCiAgICAgICAgICAgICAgICAgICAgICAgIChHRUkx ID09IExvY2FsMCkgJiYgKEdFRDEgPT0gTG9jYWw0KSkpIHwgKChHRUkyID09IExvY2FsMCkg JiYgKEdFRDIgPT0gCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNCkpKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IEdBRFIg KEFyZzAsIDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMyAmIDB4 RkZGRikgIT0gMHhGRkZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChHUFBYLCBTeXN0ZW1NZW1vcnks IChMb2NhbDMgKyAoTG9jYWw0ICogMHgwNCkpLCAweDA0KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRmllbGQgKEdQUFgsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTVFNYLCAgIDMyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwyID0gKE9uZSA8PCAoTG9jYWwxICUgMHgyMCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTVFNYID0gTG9jYWwyCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChJR1BJLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApCiAgICAg ICAgICAgICAgICAgICAgTG9jYWw0ID0gKExvY2FsMSA+PiAweDA1KQogICAgICAgICAgICAg ICAgICAgIElmICgoKEdBRFIgKEFyZzAsIDB4MDQpICYgMHhGRkZGKSA9PSAweEZGRkYpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwy ID0gKEdBRFIgKEFyZzAsIDB4MDQpICsgKExvY2FsNCAqIDB4MDQpKQogICAgICAgICAgICAg ICAgICAgIExvY2FsMyA9IChMb2NhbDEgJiAweDFGKQogICAgICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoR1BQWCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MjQpCiAgICAg ICAgICAgICAgICAgICAgRmllbGQgKEdQUFgsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNUU1gsICAg MzIsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjApLCAKICAgICAgICAg ICAgICAgICAgICAgICAgR0VOWCwgICAzMgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgoKChTVFNYICYgR0VOWCkgPj4gTG9jYWwzKSAmIE9u ZSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChJU01FLCAx LCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IEdHR1AgKEFyZzApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gR05NQiAo QXJnMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDQgPSAoTG9jYWwxID4+IDB4MDUpCiAg ICAgICAgICAgICAgICAgICAgSWYgKCEhKCgoKEdFSTAgPT0gTG9jYWwwKSAmJiAoR0VEMCA9 PSBMb2NhbDQpKSB8IAogICAgICAgICAgICAgICAgICAgICAgICAoKEdFSTEgPT0gTG9jYWww KSAmJiAoR0VEMSA9PSBMb2NhbDQpKSkgfCAoKEdFSTIgPT0gTG9jYWwwKSAmJiAoCiAgICAg ICAgICAgICAgICAgICAgICAgIEdFRDIgPT0gTG9jYWw0KSkpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoR0FEUiAoQXJnMCwgMHgw NCkgJiAweEZGRkYpID09IDB4RkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAoQXJnMCwgMHgwNCkgKyAoTG9j YWw0ICogMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gKExvY2FsMSAmIDB4 MUYpCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChHUFBYLCBTeXN0ZW1N ZW1vcnksIExvY2FsMiwgMHgyNCkKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoR1BQWCwg QW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgU1RTWCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHgyMCksIAogICAgICAgICAgICAgICAgICAgICAgICBHRU5YLCAgIDMyCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCgoKFNU U1ggJiBHRU5YKSA+PiBMb2NhbDMpICYgT25lKSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKEdSWEUsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gKEdBRFIgKEFyZzAsIE9uZSkgKyAo R05NQiAoQXJnMCkgKiAweDEwKSkKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKFBEVzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQogICAgICAgICAgICAgICAg ICAgIEZpZWxkIChQRFcwLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDI1LCAKICAgICAg ICAgICAgICAgICAgICAgICAgUkNGRywgICAyLCAKICAgICAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDA0KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgUkNGRyA9IEFyZzEKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKEdMT0MsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTG9jYWwxID0gR05NQiAoQXJnMCkKICAgICAgICAgICAgICAgICAgICBMb2Nh bDIgPSBHQURSIChBcmcwLCAweDA1KQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoUFJFRywgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpCiAgICAgICAgICAgICAg ICAgICAgRmllbGQgKFBSRUcsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFRFTVAsICAgMzIKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoKChURU1QID4+ IExvY2FsMSkgJiBPbmUpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoR0xPVCwgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBMb2NhbDEgPSBHTk1CIChBcmcwKQogICAgICAgICAgICAgICAgICAgIExv Y2FsMiA9IEdBRFIgKEFyZzAsIDB4MDYpCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChQUkVHLCBTeXN0ZW1NZW1vcnksIExvY2FsMiwgMHgwNCkKICAgICAgICAgICAg ICAgICAgICBGaWVsZCAoUFJFRywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVEVNUCwgICAzMgogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoKFRFTVAg Pj4gTG9jYWwxKSAmIE9uZSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIFNjb3BlIChfU0IpCiAgICAgICAgewogICAgICAgICAgICBEZXZp Y2UgKFBDTEspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBDMDIiKSAvKiBQTlAgTW90aGVyYm9hcmQgUmVzb3VyY2VzICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsICJQQ0hDTEsi KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBOYW1lIChQSUQsIDB4QUQp CiAgICAgICAgICAgICAgICBNZXRob2QgKENMS0QsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID4gMHgwNikpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAo QXJnMCArIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxIC09IDB4MDcKICAg ICAgICAgICAgICAgICAgICAgICAgXl5QQzAyLlNCUEMuUENSQSAoUElELCAweDgwODQsIH4o T25lIDw8IExvY2FsMSkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMSA9IChBcmcwICsgMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgXl5QQzAy LlNCUEMuUENSQSAoUElELCAweDgwODAsIH4oT25lIDw8IExvY2FsMSkpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo Q0xLRSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzAgPiAweDA2KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IChBcmcwICsgT25lKQogICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDEgLT0gMHgwNwogICAgICAgICAgICAgICAgICAgICAgICBeXlBD MDIuU0JQQy5QQ1JPIChQSUQsIDB4ODA4NCwgKE9uZSA8PCBMb2NhbDEpKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoQXJnMCArIDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgIF5eUEMwMi5TQlBDLlBDUk8gKFBJRCwgMHg4MDgwLCAo T25lIDw8IExvY2FsMSkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoU1BDTywgMiwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiQ2FsbGluZyBTUENP IG1ldGhvZCB0byBjb25maWd1cmUgUENIIFBDSWUgQ2xrUmVxIE92ZXJyaWRlIikKICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIENMS0UgKEFyZzApCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIENMS0QgKEFyZzApCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAg IFNjb3BlIChfU0IuUEMwMCkKICAgIHsKICAgICAgICBEZXZpY2UgKFJQMDEpCiAgICAgICAg ewogICAgICAgICAgICBOYW1lIChQQk5VLCBaZXJvKQogICAgICAgICAgICBNZXRob2QgKF9B RFIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmICgoUlBBMSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJQQTEpIC8qIFxSUEExICovCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwMUMwMDAwKQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChTTE9ULCBPbmUpCiAgICAgICAgICAg IE5hbWUgKFBSVFAsIDB4MDIpCiAgICAgICAgICAgIE5hbWUgKExURU4sIFplcm8pCiAgICAg ICAgICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKExOU0wsIFplcm8p CiAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6 IEluaXRpYWxpemUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTFRFTiA9IExUUjEg LyogXExUUjEgKi8KICAgICAgICAgICAgICAgIExNU0wgPSBQTUwxIC8qIFxQTUwxICovCiAg ICAgICAgICAgICAgICBMTlNMID0gUE5MMSAvKiBcUE5MMSAqLwogICAgICAgICAgICAgICAg SWYgKChDb25kUmVmT2YgKFZNU1ApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFZNREUgPT0gT25lKSAmJiAoKFZN U1AgJiAweDAxMDApICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJSUDAxICgwLzI4LzApIGlzIG1hcHBlZCB1bmRlciBW TUQiKQogICAgICAgICAgICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChQUkVTICgp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KFBJTkkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UElOSSAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwMSkpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwMS5QUk1WKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiVk1EIFN0b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJE M0MpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMg LyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KCheUFhTWC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQz QykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxT VEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVtTWVt b3J5LCBQQzJNIChfQURSICgpLCBQQk5VKSwgMHgwNDgwKQogICAgICAgICAgICBGaWVsZCAo UFhDUywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MCksIAog ICAgICAgICAgICAgICAgTDBTRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAsICAgMywg CiAgICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDUxKSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAg ICAgICAsICAgMTMsIAogICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAgICAgICAgICAg ICAgIE9mZnNldCAoMHg1QSksIAogICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAgICAg ICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4NUIpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAo MHg2MCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAg ICBQU1BYLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAg ICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgIExOUkUsICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAgICAgICAgICAgICAgIEQzSFQsICAgMiwg CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAgICAgICAgICAs ICAgMzAsIAogICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAgICAgICAgICAgICAgIFBN RVgsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RTApLCAKICAgICAgICAgICAg ICAgIFNDQjAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAg ICAgICAgTkNCNywgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAg ICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAg ICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMy OCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyQiksIAogICAgICAgICAgICAgICAg TFRTTSwgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0MDQpLCAKICAgICAgICAg ICAgICAgIExTT0UsICAgMSwgCiAgICAgICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFz WmVyb3MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAog ICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICBIUFNYLCAgIDEs IAogICAgICAgICAgICAgICAgUE1TWCwgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgU3RhcnQg IC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgSWYgKChTQ0IwICE9 IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJQT04gU0NCICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIEwyM1IgPSBPbmUKICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAg ICAgICAgIFdoaWxlIChMMjNSKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTDIzUiBUTyAiLCBU b0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBTQ0IwID0gWmVybwogICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAg ICAgICAgICAgICAgV2hpbGUgKChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBD SUUgTEFTWCBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAg ICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg U2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRT U00gYXQgTDIzRCBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoREwyMywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0 IERMMjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICBJ ZiAoKChMQVNYID09IE9uZSkgJiYgKExOUkUgPT0gWmVybykpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBP bmUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExO UkUgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgTE5SRSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlRvZ2dsZSBMTlJFIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTDIzRSA9IE9uZQogICAgICAgICAgICAgICAgU2xlZXAg KDB4MTApCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICBX aGlsZSAoTDIzRSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo KExvY2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4U3RyaW5n IChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAg ICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiUE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAg ICAgICAgICAgICBTQ0IwID0gT25lCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkp CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8KICAg ICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoUFJNViwgWmVybykKICAgICAgICAgICAg TmFtZSAoUkQzQywgMHgwMikKICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhG RkZGRkZGRikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNl cmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNWM5MzdkMC0zNTUz LTRkN2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJmYWNl ICovKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRv SW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChPUFRTLCBCdWZmZXIgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDYsIEZVTjYpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOCwgRlVO OCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAw eDA5LCBGVU45KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQg KE9QVFMsIDB4MEEsIEZVTkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVC aXRGaWVsZCAoT1BUUywgMHgwQiwgRlVOQikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU4wID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RlVONiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjgg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU45 ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDQpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOQSA9IE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi X0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9QVFMpIC8qIFxfU0JfLlBDMDAuUlAwMS5fRFNN Lk9QVFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbWmVy b10gPSAoKExNU0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4 MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExUUlYpIC8q IFxfU0JfLlBDMDAuUlAwMS5MVFJWICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9uZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ UEJBIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo Q29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQUkQgKEFyZzMpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBS ZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2 aWNlIChQWFNYKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBa ZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChQQ0NYLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDEwKQogICAgICAgICAgICAgICAgRmllbGQg KFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgRFZJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgUElYWCwgICA4LCAKICAgICAgICAg ICAgICAgICAgICBTQ0NYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUEFIQywgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEJD Q1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlBTU0QgQUhDSSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KFBOVk0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiUFNTRCBOVk1lIikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoUFJFUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKElTR1gsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoU1REMyAhPSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo UEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiTlZNZSBEMyBTdXBwb3J0IEVu YWJsZSBmb3IgQ2hpbGQgRGV2aWNlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1 MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8s IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAz MGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoR1AxRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAo MHhDMCwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo X1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMwIFBDSWUgUlAi LCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UFBTMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNh bGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAg UFBTMCAoKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRm b3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQ b3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiX1BTMyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2si KQogICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgICAgICAgICBBREJH ICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAi LCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo QURTRCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1Qp KSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFEU0QgKCkpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRm MDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICov LCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICAgICAgVG9VVUlEICgiNmI0YWQ0MjAtOGZkMy00MzY0LWFjZjgtZWI5NDg3NmZk OWViIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMCl7fQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQt ZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50 YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKFZESUQgIT0gMHhG RkZGRkZGRikgJiYgKFBNU1ggPT0gT25lKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAg ICAgICAgICAgICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25l CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo X1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJQ00pKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjA0ICgpKQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBSZXR1cm4gKFBEMDQgKCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERl dmljZSAoUlAwMikKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFBCTlUsIFplcm8pCiAg ICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFk ZHJlc3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChSUEEyICE9IFplcm8p KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlBBMikg LyogXFJQQTIgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxQzAwMDEp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFNM T1QsIDB4MDIpCiAgICAgICAgICAgIE5hbWUgKFBSVFAsIDB4MDIpCiAgICAgICAgICAgIE5h bWUgKExURU4sIFplcm8pCiAgICAgICAgICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAg ICAgIE5hbWUgKExOU0wsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgTFRFTiA9IExUUjIgLyogXExUUjIgKi8KICAgICAgICAgICAgICAgIExNU0wg PSBQTUwyIC8qIFxQTUwyICovCiAgICAgICAgICAgICAgICBMTlNMID0gUE5MMiAvKiBcUE5M MiAqLwogICAgICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZNU1ApICYmIENvbmRSZWZP ZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgo KFZNREUgPT0gT25lKSAmJiAoKFZNU1AgJiAweDAyMDApICE9IFplcm8pKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSUDAyICgwLzI4 LzEpIGlzIG1hcHBlZCB1bmRlciBWTUQiKQogICAgICAgICAgICAgICAgICAgICAgICBQUk1W ID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUElOSSAoKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBD MDAuUlAwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChW RElEICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NC LlBDMDAuUlAwMi5QUk1WKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVk1EIFN0b3JhZ2UgUnVudGltZSBEMyBzdGF0 dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1 czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoUFhDUywgU3lzdGVtTWVtb3J5LCBQQzJNIChfQURSICgpLCBQQk5VKSwgMHgwNDgw KQogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAg ICAgIE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICAgTDBTRSwgICAxLCAKICAgICAg ICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NTIpLCAKICAgICAgICAgICAgICAgICAgICAsICAgMTMsIAogICAgICAgICAgICAgICAgTEFT WCwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QSksIAogICAgICAgICAgICAg ICAgQUJQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAg ICAgICBQRENYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAg ICAgICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUIpLCAKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDYyKSwgCiAgICAgICAgICAgICAgICBQU1BYLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zm c2V0ICgweDY4KSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAg ICAgIExOUkUsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAgICAg ICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RDgpLCAK ICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAgICAgICAgICAgSFBFWCwgICAx LCAKICAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQg KDB4RTApLCAKICAgICAgICAgICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgLCAgIDYsIAogICAgICAgICAgICAgICAgTkNCNywgICAxLCAKICAgICAgICAgICAgICAg IE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAg ICAgICAgIEwyM0UsICAgMSwgCiAgICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDMyOCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMy QiksIAogICAgICAgICAgICAgICAgTFRTTSwgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg0MDQpLCAKICAgICAgICAgICAgICAgIExTT0UsICAgMSwgCiAgICAgICAgICAgICAg ICBMTlNFLCAgIDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFu eUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIE9mZnNldCAoMHhEQyksIAogICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAg ICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAgICAgUE1TWCwgICAxCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQ IExUU1NNIGF0IEwyM0QgU3RhcnQgIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAg ICAgICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT04gU0NCICIsIFRvSGV4U3RyaW5n IChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIEwyM1IgPSBPbmUKICAgICAgICAgICAgICAgIExv Y2FsMCA9IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlIChMMjNSKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlBDSUUgTDIzUiBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAg ICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTQ0IwID0gWmVybwogICAgICAgICAgICAg ICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgV2hpbGUgKChMQVNYID09IFplcm8p KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4g MHgwOCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTEFTWCBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkp KQogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAg TG9jYWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBFbmQgLSIsIFRvSGV4U3RyaW5nIChM VFNNKSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoREwyMywgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNN KSkpCiAgICAgICAgICAgICAgICBJZiAoKChMQVNYID09IE9uZSkgJiYgKExOUkUgPT0gWmVy bykpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKExTT0Ug PT0gT25lKSB8fCAoTE5TRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIExOUkUgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg U2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IFplcm8KICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIlRvZ2dsZSBMTlJFIikKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTDIzRSA9IE9uZQog ICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBa ZXJvCiAgICAgICAgICAgICAgICBXaGlsZSAoTDIzRSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0Yg TDIzRSBUTyIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAg IEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTbGVl cCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQICIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICBTQ0IwID0gT25lCiAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBFbmQgLSIs IFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUg KExUUlYsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoUFJN ViwgWmVybykKICAgICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAgICAgICAgICAgTWV0 aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lm aWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBU b1VVSUQgKCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZp Y2UgTGFiZWxpbmcgSW50ZXJmYWNlICovKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChPUFRTLCBC dWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJv LCBGVU4wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9Q VFMsIDB4MDYsIEZVTjYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRG aWVsZCAoT1BUUywgMHgwOCwgRlVOOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEEsIEZVTkEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQiwgRlVOQikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU4w ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRlVONiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZVTjggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGVU45ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4 MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVO QSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5n IChPUFRTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9QVFMpIC8q IFxfU0JfLlBDMDAuUlAwMi5fRFNNLk9QVFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgw MikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTFRSViBbWmVyb10gPSAoKExNU0wgPj4gMHgwQSkgJiAweDA3KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4MDNG RikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5T TCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRS ViBbMHgwM10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDMDAuUlAwMi5MVFJWICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0g MHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUw LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBC QSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFVQUkQgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgRGV2aWNlIChQWFNYKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0NYLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDEwKQog ICAgICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFZJRCwgICAzMiwgCiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAg UElYWCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBTQ0NYLCAgIDgsIAogICAgICAgICAg ICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoUEFIQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhY ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgQUhDSSIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKFBOVk0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgw OCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoUElYWCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBOVk1lIikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKERWSUQgPT0g MHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKElTR1gsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChP bmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoXFNURDMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgo U1REMyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmlj ZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiTlZNZSBEMyBTdXBwb3J0IEVuYWJsZSBmb3IgQ2hpbGQgRGV2aWNlIikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAi KSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUi LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikg LyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dl ciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChT TE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoR1AxRSkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoR1BSVyAoMHhDMCwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy biAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBv d2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJfUFMwIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIp CiAgICAgICAgICAgICAgICAgICAgUFBTMCAoKQogICAgICAgICAgICAgICAgICAgIEFEQkcg KCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNl cmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMyBQQ0llIFJQIiwgVG9IZXhTdHJp bmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRm b3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAg ICAgICAgICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQ IFBTMyBIb29rIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNw ZWNpZmljIERhdGEKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoQURTRCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQ IiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFE U0QgKCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoUElOSSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEw IikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNl dFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNmI0YWQ0MjAtOGZk My00MzY0LWFjZjgtZWI5NDg3NmZkOWViIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMCl7fQogICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRm MDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICov LCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmICgoKFZESUQgIT0gMHhGRkZGRkZGRikgJiYgKFBNU1ggPT0gT25lKSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAv LyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAgICAgIFBNU1ggPSBPbmUKICAgICAgICAg ICAgICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6 IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFBJQ00pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChBUjA1ICgpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBEMDUgKCkpCiAgICAgICAgICAgIH0K ICAgICAgICB9CgogICAgICAgIERldmljZSAoUlAwMykKICAgICAgICB7CiAgICAgICAgICAg IE5hbWUgKFBCTlUsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKChSUEEzICE9IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUlBBMykgLyogXFJQQTMgKi8KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDAxQzAwMDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE5hbWUgKFNMT1QsIDB4MDMpCiAgICAgICAgICAgIE5hbWUgKFBSVFAs IDB4MDIpCiAgICAgICAgICAgIE5hbWUgKExURU4sIFplcm8pCiAgICAgICAgICAgIE5hbWUg KExNU0wsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKExOU0wsIFplcm8pCiAgICAgICAgICAg IE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTFRFTiA9IExUUjMgLyogXExUUjMgKi8K ICAgICAgICAgICAgICAgIExNU0wgPSBQTUwzIC8qIFxQTUwzICovCiAgICAgICAgICAgICAg ICBMTlNMID0gUE5MMyAvKiBcUE5MMyAqLwogICAgICAgICAgICAgICAgSWYgKChDb25kUmVm T2YgKFZNU1ApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoKFZNREUgPT0gT25lKSAmJiAoKFZNU1AgJiAweDA0MDAp ICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJSUDAzICgwLzI4LzIpIGlzIG1hcHBlZCB1bmRlciBWTUQiKQogICAgICAg ICAgICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUElOSSAoKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwMykpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwMy5QUk1WKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBS TVYgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVk1EIFN0 b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZN ICgpIHx8IF5QWFNYLlBBSEMgKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU3Rv cmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVtTWVtb3J5LCBQQzJNIChf QURSICgpLCBQQk5VKSwgMHgwNDgwKQogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNj LCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWRElE LCAgIDMyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAg ICAgTDBTRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAg ICAgICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAgICAsICAgMTMs IAogICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAo MHg1QSksIAogICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAgICAgICAgICAgICAgICAg ICAsICAgMiwgCiAgICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgICwgICAyLCAKICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4NUIpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAgICBQU1BYLCAgIDEs IAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAgICAgICAg LCAgIDEwLCAKICAgICAgICAgICAgICAgIExOUkUsICAgMSwgCiAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4QTQpLCAKICAgICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAg ICAgICAgICAgICAgSFBFWCwgICAxLCAKICAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4RTApLCAKICAgICAgICAgICAgICAgIFNDQjAsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICAgTkNCNywg ICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAg ICAgICwgICAyLCAKICAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAgICAgICAgICAg ICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyOCksIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDMyQiksIAogICAgICAgICAgICAgICAgTFRTTSwgICA4LCAK ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0MDQpLCAKICAgICAgICAgICAgICAgIExTT0Us ICAgMSwgCiAgICAgICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAogICAgICAgICAgICAg ICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAg ICAgICAgUE1TWCwgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTDIz RCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgU3RhcnQgIC0iLCBUb0hleFN0 cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQ T04gU0NCICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEwyM1IgPSBP bmUKICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgIFdoaWxl IChMMjNSKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9j YWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTDIzUiBUTyAiLCBUb0hleFN0cmluZyAo U0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAg ICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTQ0Iw ID0gWmVybwogICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAg V2hpbGUgKChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTEFTWCBUTyAi LCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTAp CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBF bmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoREwyMywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQg LSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICBJZiAoKChMQVNYID09 IE9uZSkgJiYgKExOUkUgPT0gWmVybykpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBPbmUpKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgTE5SRSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRvZ2dsZSBM TlJFIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTDIzRSA9IE9uZQogICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAg ICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICBXaGlsZSAoTDIzRSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4 MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2Nh bDArKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiUE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICBT Q0IwID0gT25lCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAg TFRTU00gYXQgREwyMyBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSkK ICAgICAgICAgICAgTmFtZSAoUFJNViwgWmVybykKICAgICAgICAgICAgTmFtZSAoUkQzQywg MHgwMikKICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAv LyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1l YTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJmYWNlICovKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJn MikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDYXNl IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOYW1lIChPUFRTLCBCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDYsIEZVTjYpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOCwgRlVOOCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEEs IEZVTkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BU UywgMHgwQiwgRlVOQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+ PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGVU4wID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVONiA9IE9uZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4 MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjggPSBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU45ID0gT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcxID49IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRlVOQSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQQ0llIFJQ IE9QVFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9QVFMpIC8qIFxfU0JfLlBDMDAuUlAwMy5fRFNNLk9QVFMgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDA2KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbWmVyb10gPSAoKExNU0wg Pj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYg W09uZV0gPSAoTE1TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDMDAu UlAwMy5MVFJWICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IENhc2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9uZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgw QSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChV UFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFVQUkQgKEFyZzMpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl ciAoT25lKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChQWFNYKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FE UjogQWRkcmVzcwogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0NYLCBQQ0lf Q29uZmlnLCBaZXJvLCAweDEwKQogICAgICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgRFZJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwg CiAgICAgICAgICAgICAgICAgICAgUElYWCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBT Q0NYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUEFIQywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0ND WCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChQSVhYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgQUhD SSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFBOVk0sIDAsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChC Q0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSAweDAyKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiUFNTRCBOVk1lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoUFJFUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKElTR1gs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoU1REMyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQ TlZNICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiTlZNZSBEMyBTdXBwb3J0IEVuYWJsZSBmb3IgQ2hp bGQgRGV2aWNlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRh YjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0 LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJ ZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoR1AxRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHhDMCwgMHgwNCkp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2Vy aWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMwIFBDSWUgUlAiLCBUb0hleFN0cmlu ZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMCkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZv cm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgUFBTMCAoKQogICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAg UFMwIEhvb2siKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAz CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BT MyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFBQUzMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAgICAg ICAgICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgICAgICAgICBBREJHICgiUmV0dXJuZWQg ZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmlu ZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoQURTRCkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJB bHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEFEU0QgKCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00 NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi RnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAg VG9VVUlEICgiNmI0YWQ0MjAtOGZkMy00MzY0LWFjZjgtZWI5NDg3NmZkOWViIikgLyogVW5r bm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMCl7 fQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEw IikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNl dFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKFZESUQgIT0gMHhGRkZGRkZGRikgJiYg KFBNU1ggPT0gT25lKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg Tm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAgICAg IFBNU1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJQ00pKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjA2ICgpKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBE MDYgKCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoUlAwNCkK ICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFBCTlUsIFplcm8pCiAgICAgICAgICAgIE1l dGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKChSUEE0ICE9IFplcm8pKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlBBNCkgLyogXFJQQTQgKi8K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxQzAwMDMpCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFNMT1QsIDB4MDQpCiAg ICAgICAgICAgIE5hbWUgKFBSVFAsIDB4MDIpCiAgICAgICAgICAgIE5hbWUgKExURU4sIFpl cm8pCiAgICAgICAgICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKExO U0wsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTFRF TiA9IExUUjQgLyogXExUUjQgKi8KICAgICAgICAgICAgICAgIExNU0wgPSBQTUw0IC8qIFxQ TUw0ICovCiAgICAgICAgICAgICAgICBMTlNMID0gUE5MNCAvKiBcUE5MNCAqLwogICAgICAg ICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZNU1ApICYmIENvbmRSZWZPZiAoVk1ERSkpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFZNREUgPT0gT25l KSAmJiAoKFZNU1AgJiAweDA4MDApICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSUDA0ICgwLzI4LzMpIGlzIG1hcHBl ZCB1bmRlciBWTUQiKQogICAgICAgICAgICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm IChQUkVTICgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUElOSSAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwNCkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEICE9IDB4RkZG RkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwNC5Q Uk1WKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiVk1EIFN0b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhT dHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQz QyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0 cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBT VEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywg U3lzdGVtTWVtb3J5LCBQQzJNIChfQURSICgpLCBQQk5VKSwgMHgwNDgwKQogICAgICAgICAg ICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAo MHg1MCksIAogICAgICAgICAgICAgICAgTDBTRSwgICAxLCAKICAgICAgICAgICAgICAgICAg ICAsICAgMywgCiAgICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAg ICAgICAgICAgICAgICAsICAgMTMsIAogICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg1QSksIAogICAgICAgICAgICAgICAgQUJQWCwgICAx LCAKICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICBQRENYLCAg IDEsIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgIFBEU1gs ICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUIpLCAKICAgICAgICAgICAgICAg IE9mZnNldCAoMHg2MCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAg ICAgICAgICAgICBQU1BYLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwg CiAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgIExOUkUsICAg MSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAgICAgICAgICAgICAgIEQz SFQsICAgMiwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAg ICAgICAgICAsICAgMzAsIAogICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAgICAgICAg ICAgICAgIFBNRVgsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RTApLCAKICAg ICAgICAgICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDYsIAog ICAgICAgICAgICAgICAgTkNCNywgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhF MiksIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgIEwyM0Us ICAgMSwgCiAgICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zm c2V0ICgweDMyOCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyQiksIAogICAgICAg ICAgICAgICAgTFRTTSwgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0MDQpLCAK ICAgICAgICAgICAgICAgIExTT0UsICAgMSwgCiAgICAgICAgICAgICAgICBMTlNFLCAgIDEK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2Nr LCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9mZnNldCAo MHhEQyksIAogICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICBI UFNYLCAgIDEsIAogICAgICAgICAgICAgICAgUE1TWCwgICAxCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwy M0QgU3RhcnQgIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgSWYg KChTQ0IwICE9IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJQT04gU0NCICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIEwyM1IgPSBPbmUKICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8K ICAgICAgICAgICAgICAgIFdoaWxlIChMMjNSKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTDIz UiBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBC cmVhawogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAg KDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBTQ0IwID0gWmVybwogICAgICAgICAgICAgICAgTG9jYWwwID0g WmVybwogICAgICAgICAgICAgICAgV2hpbGUgKChMQVNYID09IFplcm8pKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIlBDSUUgTEFTWCBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAg ICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBD SWUgUlAgTFRTU00gYXQgTDIzRCBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoREwyMywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQ IExUU1NNIGF0IERMMjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAg ICAgICAgICBJZiAoKChMQVNYID09IE9uZSkgJiYgKExOUkUgPT0gWmVybykpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAo TE5TRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIExOUkUgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IFplcm8KICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIlRvZ2dsZSBMTlJFIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTDIzRSA9IE9uZQogICAgICAgICAgICAg ICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAg ICAgICAgICBXaGlsZSAoTDIzRSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRv SGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAg ICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9U KSkpCiAgICAgICAgICAgICAgICBTQ0IwID0gT25lCiAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBFbmQgLSIsIFRvSGV4U3RyaW5n IChMVFNNKSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoUFJNViwgWmVybykKICAg ICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFZE SUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9E U00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNWM5 MzdkMC0zNTUzLTRkN2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcg SW50ZXJmYWNlICovKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBT d2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChPUFRTLCBCdWZmZXIgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDYsIEZV TjYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywg MHgwOCwgRlVOOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxk IChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qml0RmllbGQgKE9QVFMsIDB4MEEsIEZVTkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQiwgRlVOQikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU4wID0gT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRlVONiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZVTjggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGVU45ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDQpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOQSA9IE9uZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiX0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9QVFMpIC8qIFxfU0JfLlBDMDAu UlAwNC5fRFNNLk9QVFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TFRSViBbWmVyb10gPSAoKExNU0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4MDNGRikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAm IDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwM10gPSAo TE5TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KExUUlYpIC8qIFxfU0JfLlBDMDAuUlAwNC5MVFJWICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgQ2FzZSAoMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChF Q1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcx ID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4 MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQUEJBIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDBCKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQUkQgKEFyZzMp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgRGV2aWNlIChQWFNYKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1l IChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChQQ0NYLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDEwKQogICAgICAgICAgICAg ICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFZJRCwgICAzMiwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgUElYWCwgICA4LCAK ICAgICAgICAgICAgICAgICAgICBTQ0NYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIEJD Q1gsICAgOAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUEFI QywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIlBTU0QgQUhDSSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKFBOVk0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElY WCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBOVk1lIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZGRkZGRikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKElTR1gsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoU1REMyAhPSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBE YXRhCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiTlZNZSBEMyBT dXBwb3J0IEVuYWJsZSBmb3IgQ2hpbGQgRGV2aWNlIikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VV SUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3du IFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlE ICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBV VUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMg Zm9yIFdha2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAg ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoR1AxRSkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoR1BSVyAoMHhDMCwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2 OSwgMHgwNCkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMw IFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoUFBTMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg QURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAg ICAgICAgICAgUFBTMCAoKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBm cm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAv LyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiX1BTMyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkK ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAg UFMzIEhvb2siKQogICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgICAg ICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf RFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNE IFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoQURTRCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJp bmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFEU0QgKCkpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9V VUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93 biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9u RDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNmI0YWQ0MjAtOGZkMy00MzY0LWFjZjgt ZWI5NDg3NmZkOWViIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMCl7fQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00 NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi RnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEhQTUUs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKFZE SUQgIT0gMHhGRkZGRkZGRikgJiYgKFBNU1ggPT0gT25lKSkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2UgV2Fr ZQogICAgICAgICAgICAgICAgICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICBQ U1BYID0gT25lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5n IFRhYmxlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJ Q00pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChB UjA3ICgpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBSZXR1cm4gKFBEMDcgKCkpCiAgICAgICAgICAgIH0KICAgICAgICB9Cgog ICAgICAgIERldmljZSAoUlAwNSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFBCTlUs IFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChSUEE1 ICE9IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUlBBNSkgLyogXFJQQTUgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MDAxQzAwMDQpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE5hbWUgKFNMT1QsIDB4MDUpCiAgICAgICAgICAgIE5hbWUgKFBSVFAsIDB4MDIpCiAgICAg ICAgICAgIE5hbWUgKExURU4sIFplcm8pCiAgICAgICAgICAgIE5hbWUgKExNU0wsIFplcm8p CiAgICAgICAgICAgIE5hbWUgKExOU0wsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0lO SSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgTFRFTiA9IExUUjUgLyogXExUUjUgKi8KICAgICAgICAgICAg ICAgIExNU0wgPSBQTUw1IC8qIFxQTUw1ICovCiAgICAgICAgICAgICAgICBMTlNMID0gUE5M NSAvKiBcUE5MNSAqLwogICAgICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZNU1ApICYm IENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoKFZNREUgPT0gT25lKSAmJiAoKFZNU1AgJiAweDEwMDApICE9IFplcm8pKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJS UDA1ICgwLzI4LzQpIGlzIG1hcHBlZCB1bmRlciBWTUQiKQogICAgICAgICAgICAgICAgICAg ICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUElOSSAoKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChcX1NCLlBDMDAuUlAwNSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChcX1NCLlBDMDAuUlAwNS5QUk1WKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVk1EIFN0b3JhZ2UgUnVudGlt ZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNY LlBBSEMgKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU3RvcmFnZSBSdW50aW1l IEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVtTWVtb3J5LCBQQzJNIChfQURSICgpLCBQQk5V KSwgMHgwNDgwKQogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWRElELCAgIDMyLCAKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICAgTDBTRSwgICAx LCAKICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICBMRElTLCAg IDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAgICAsICAgMTMsIAogICAgICAgICAg ICAgICAgTEFTWCwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QSksIAogICAg ICAgICAgICAgICAgQUJQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAg ICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAK ICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NUIpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAgICBQU1BYLCAgIDEsIAogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAKICAg ICAgICAgICAgICAgIExOUkUsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQp LCAKICAgICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgICBPZmZzZXQg KDB4RDgpLCAKICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAgICAgICAgICAg SFBFWCwgICAxLCAKICAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4RTApLCAKICAgICAgICAgICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICAgTkNCNywgICAxLCAKICAgICAg ICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAK ICAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAgICAgICAgICAgICBMMjNSLCAgIDEs IAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyOCksIAogICAgICAgICAgICAgICAgT2Zm c2V0ICgweDMyQiksIAogICAgICAgICAgICAgICAgTFRTTSwgICA4LCAKICAgICAgICAgICAg ICAgIE9mZnNldCAoMHg0MDQpLCAKICAgICAgICAgICAgICAgIExTT0UsICAgMSwgCiAgICAg ICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRmllbGQg KFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAogICAgICAgICAgICAgICAgICAgICwgICAz MCwgCiAgICAgICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAgICAgUE1TWCwg ICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgU3RhcnQgIC0iLCBUb0hleFN0cmluZyAoTFRTTSkp KQogICAgICAgICAgICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT04gU0NCICIsIFRv SGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEwyM1IgPSBPbmUKICAgICAgICAg ICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlIChMMjNSKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBDSUUgTDIzUiBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAg ICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWww KysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTQ0IwID0gWmVybwogICAg ICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgV2hpbGUgKChMQVNY ID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgo TG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTEFTWCBUTyAiLCBUb0hleFN0cmlu ZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAg ICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBFbmQgLSIsIFRvSGV4 U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoREwy MywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQgLSIsIFRvSGV4U3Ry aW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICBJZiAoKChMQVNYID09IE9uZSkgJiYgKExO UkUgPT0gWmVybykpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoKExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IFpl cm8KICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRvZ2dsZSBMTlJFIikKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTDIz RSA9IE9uZQogICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICBM b2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICBXaGlsZSAoTDIzRSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQ ICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICBTQ0IwID0gT25lCiAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwy MyBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSkKICAgICAgICAgICAg TmFtZSAoUFJNViwgWmVybykKICAgICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAgICAg ICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZp Y2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBUb1VVSUQgKCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1lYTRkMTljMzQzNGQi KSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJmYWNlICovKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1l IChPUFRTLCBCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChP UFRTLCBaZXJvLCBGVU4wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0 RmllbGQgKE9QVFMsIDB4MDYsIEZVTjYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOCwgRlVOOCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEEsIEZVTkEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQiwgRlVO QikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGVU4wID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM VEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVONiA9IE9uZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjggPSBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGVU45ID0gT25lCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcxID49IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRlVOQSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRv SGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9QVFMpIC8qIFxfU0JfLlBDMDAuUlAwNS5fRFNNLk9QVFMgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTFRSViBbWmVyb10gPSAoKExNU0wgPj4gMHgwQSkgJiAw eDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1T TCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAy XSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDMDAuUlAwNS5MVFJWICov CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo RUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMz NTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwQSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFVQUkQgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChQWFNYKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0NYLCBQQ0lfQ29uZmlnLCBaZXJv LCAweDEwKQogICAgICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFZJRCwg ICAzMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAg ICAgICAgICAgUElYWCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBTQ0NYLCAgIDgsIAog ICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoUEFIQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2KSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChQSVhYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgQUhDSSIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFBOVk0sIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFND Q1ggPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoUElYWCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBO Vk1lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwg U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo KERWSUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKElTR1gsIDAsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09 IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoU1REMyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9E U0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBREJHICgiTlZNZSBEMyBTdXBwb3J0IEVuYWJsZSBmb3IgQ2hpbGQgRGV2aWNlIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1 MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdl RDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4 OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQz RW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg WmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf UFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4 U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoR1Ax RSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHhDMSwgMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8v IF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJfUFMwIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQog ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMCkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQ UzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgUFBTMCAoKQogICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9Q UzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMyBQQ0llIFJQIiwg VG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQ UzMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxs aW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAgICAgICAgICAgICAgIFBQ UzMgKCkKICAgICAgICAgICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9y bSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDog RGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQog ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoQURTRCkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RT RCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEFEU0QgKCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNk NzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxE ZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNmI0 YWQ0MjAtOGZkMy00MzY0LWFjZjgtZWI5NDg3NmZkOWViIikgLyogVW5rbm93biBVVUlEICov LCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMCl7fQogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9V VUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93 biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9u RDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIElmICgoKFZESUQgIT0gMHhGRkZGRkZGRikgJiYgKFBNU1ggPT0gT25l KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNY LCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAgICAgIFBNU1ggPSBPbmUK ICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFBJQ00pKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChBUjA0ICgpKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBEMDQgKCkpCiAgICAg ICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoUlAwNikKICAgICAgICB7CiAg ICAgICAgICAgIE5hbWUgKFBCTlUsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgSWYgKChSUEE2ICE9IFplcm8pKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoUlBBNikgLyogXFJQQTYgKi8KICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDAxQzAwMDUpCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFNMT1QsIDB4MDYpCiAgICAgICAgICAgIE5h bWUgKFBSVFAsIDB4MDIpCiAgICAgICAgICAgIE5hbWUgKExURU4sIFplcm8pCiAgICAgICAg ICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKExOU0wsIFplcm8pCiAg ICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IElu aXRpYWxpemUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTFRFTiA9IExUUjYgLyog XExUUjYgKi8KICAgICAgICAgICAgICAgIExNU0wgPSBQTUw2IC8qIFxQTUw2ICovCiAgICAg ICAgICAgICAgICBMTlNMID0gUE5MNiAvKiBcUE5MNiAqLwogICAgICAgICAgICAgICAgSWYg KChDb25kUmVmT2YgKFZNU1ApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFZNREUgPT0gT25lKSAmJiAoKFZNU1Ag JiAweDIwMDApICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJSUDA2ICgwLzI4LzUpIGlzIG1hcHBlZCB1bmRlciBWTUQi KQogICAgICAgICAgICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChQUkVTICgpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJ TkkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUElO SSAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwNikpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwNi5QUk1WKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiVk1EIFN0b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0Mp KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyog XFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChe UFhTWC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQz ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVtTWVtb3J5 LCBQQzJNIChfQURSICgpLCBQQk5VKSwgMHgwNDgwKQogICAgICAgICAgICBGaWVsZCAoUFhD UywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MCksIAogICAg ICAgICAgICAgICAgTDBTRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAg ICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUx KSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAg ICAsICAgMTMsIAogICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAgICAgICAgICAgICAg IE9mZnNldCAoMHg1QSksIAogICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAgICAgICAg ICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4NUIpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2 MCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAgICBQ U1BYLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAg ICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAgIExOUkUsICAgMSwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAgICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAgICAgICAgICAsICAg MzAsIAogICAgICAgICAgICAgICAgSFBFWCwgICAxLCAKICAgICAgICAgICAgICAgIFBNRVgs ICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RTApLCAKICAgICAgICAgICAgICAg IFNDQjAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAg ICAgTkNCNywgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAg ICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAg ICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyOCks IAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyQiksIAogICAgICAgICAgICAgICAgTFRT TSwgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0MDQpLCAKICAgICAgICAgICAg ICAgIExTT0UsICAgMSwgCiAgICAgICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAgICAg fQoKICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVy b3MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAogICAg ICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICBIUFNYLCAgIDEsIAog ICAgICAgICAgICAgICAgUE1TWCwgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgU3RhcnQgIC0i LCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgSWYgKChTQ0IwICE9IE9u ZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJQT04gU0NCICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IEwyM1IgPSBPbmUKICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAg ICAgIFdoaWxlIChMMjNSKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTDIzUiBUTyAiLCBUb0hl eFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAg ICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBTQ0IwID0gWmVybwogICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAg ICAgICAgICAgV2hpbGUgKChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUg TEFTWCBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAg ICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00g YXQgTDIzRCBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoREwyMywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERM MjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICBJZiAo KChMQVNYID09IE9uZSkgJiYgKExOUkUgPT0gWmVybykpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBPbmUp KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExOUkUg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgTE5SRSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IlRvZ2dsZSBMTlJFIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTDIzRSA9IE9uZQogICAgICAgICAgICAgICAgU2xlZXAgKDB4 MTApCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICBXaGls ZSAoTDIzRSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKExv Y2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4U3RyaW5nIChT TE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAg ICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAg ICAgICAgICBTQ0IwID0gT25lCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IlBDSWUgUlAgTFRTU00gYXQgREwyMyBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAg ICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoUFJNViwgWmVybykKICAgICAgICAgICAgTmFt ZSAoUkQzQywgMHgwMikKICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZG RkZGRikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlh bGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNWM5MzdkMC0zNTUzLTRk N2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJmYWNlICov KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50 ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChPUFRTLCBCdWZmZXIgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDYsIEZVTjYpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOCwgRlVOOCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5 LCBGVU45KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9Q VFMsIDB4MEEsIEZVTkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRG aWVsZCAoT1BUUywgMHgwQiwgRlVOQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGVU4wID0gT25lCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVO NiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjggPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU45ID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDQpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOQSA9IE9uZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RT TSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKE9QVFMpIC8qIFxfU0JfLlBDMDAuUlAwNi5fRFNNLk9Q VFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbWmVyb10g PSAoKExNU0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4MDNG RikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExUUlYpIC8qIFxf U0JfLlBDMDAuUlAwNi5MVFJWICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAo MHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9uZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg Q2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUEJB IChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQUkQgKEFyZzMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g LgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNl IChQWFNYKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBaZXJv KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQ Q0NYLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDEwKQogICAgICAgICAgICAgICAgRmllbGQgKFBD Q1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgRFZJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgUElYWCwgICA4LCAKICAgICAgICAgICAg ICAgICAgICBTQ0NYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUEFIQywgMCwgU2VyaWFs aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1gg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IlBTU0QgQUhDSSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChP bmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFBO Vk0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSAweDAyKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiUFNTRCBOVk1lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoUFJFUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKElTR1gsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmICgoU1REMyAhPSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFI QyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiTlZNZSBEMyBTdXBwb3J0IEVuYWJs ZSBmb3IgQ2hpbGQgRGV2aWNlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMw Zi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYt ODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo Il9QUlcgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoR1AxRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHhD MSwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BT MCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMwIFBDSWUgUlAiLCBU b0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBT MCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxp bmcgUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgUFBT MCAoKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3Jt IFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dl ciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiX1BTMyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQog ICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgICAgICAgICBBREJHICgi UmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAiLCBU b0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoQURT RCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFEU0QgKCkpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZm YWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAK ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg ICAgICAgICAgVG9VVUlEICgiNmI0YWQ0MjAtOGZkMy00MzY0LWFjZjgtZWI5NDg3NmZkOWVi IikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMCl7fQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNk NzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxE ZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKFZESUQgIT0gMHhGRkZG RkZGRikgJiYgKFBNU1ggPT0gT25lKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAg ICAgICAgICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BS VCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJQ00pKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjA1ICgpKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBS ZXR1cm4gKFBEMDUgKCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmlj ZSAoUlAwNykKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFBCTlUsIFplcm8pCiAgICAg ICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJl c3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChSUEE3ICE9IFplcm8pKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlBBNykgLyog XFJQQTcgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAxQzAwMDYpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFNMT1Qs IDB4MDcpCiAgICAgICAgICAgIE5hbWUgKFBSVFAsIDB4MDIpCiAgICAgICAgICAgIE5hbWUg KExURU4sIFplcm8pCiAgICAgICAgICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAg IE5hbWUgKExOU0wsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgTFRFTiA9IExUUjcgLyogXExUUjcgKi8KICAgICAgICAgICAgICAgIExNU0wgPSBQ TUw3IC8qIFxQTUw3ICovCiAgICAgICAgICAgICAgICBMTlNMID0gUE5MNyAvKiBcUE5MNyAq LwogICAgICAgICAgICAgICAgSWYgKChDb25kUmVmT2YgKFZNU1ApICYmIENvbmRSZWZPZiAo Vk1ERSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFZN REUgPT0gT25lKSAmJiAoKFZNU1AgJiAweDQwMDApICE9IFplcm8pKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSUDA3ICgwLzI4LzYp IGlzIG1hcHBlZCB1bmRlciBWTUQiKQogICAgICAgICAgICAgICAgICAgICAgICBQUk1WID0g T25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUElOSSAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAu UlAwNykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChWRElE ICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBD MDAuUlAwNy5QUk1WKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVk1EIFN0b3JhZ2UgUnVudGltZSBEMyBzdGF0dXM6 IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZNICgpIHx8IF5QWFNYLlBBSEMgKCkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoi LCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lv biAoUFhDUywgU3lzdGVtTWVtb3J5LCBQQzJNIChfQURSICgpLCBQQk5VKSwgMHgwNDgwKQog ICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgICAg IE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICAgTDBTRSwgICAxLCAKICAgICAgICAg ICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICBMRElTLCAgIDEsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTIp LCAKICAgICAgICAgICAgICAgICAgICAsICAgMTMsIAogICAgICAgICAgICAgICAgTEFTWCwg ICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QSksIAogICAgICAgICAgICAgICAg QUJQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAg ICBQRENYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAg ICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUIpLCAKICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYy KSwgCiAgICAgICAgICAgICAgICBQU1BYLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDY4KSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDEwLCAKICAgICAgICAgICAgICAg IExOUkUsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAgICAgICAg ICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RDgpLCAKICAg ICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAgICAgICAgICAgSFBFWCwgICAxLCAK ICAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 RTApLCAKICAgICAgICAgICAgICAgIFNDQjAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg LCAgIDYsIAogICAgICAgICAgICAgICAgTkNCNywgICAxLCAKICAgICAgICAgICAgICAgIE9m ZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAg ICAgIEwyM0UsICAgMSwgCiAgICAgICAgICAgICAgICBMMjNSLCAgIDEsIAogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDMyOCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyQiks IAogICAgICAgICAgICAgICAgTFRTTSwgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNldCAo MHg0MDQpLCAKICAgICAgICAgICAgICAgIExTT0UsICAgMSwgCiAgICAgICAgICAgICAgICBM TlNFLCAgIDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRmllbGQgKFBYQ1MsIEFueUFj YywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IE9mZnNldCAoMHhEQyksIAogICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAg ICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAgICAgUE1TWCwgICAxCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTDIzRCwgMCwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExU U1NNIGF0IEwyM0QgU3RhcnQgIC0iLCBUb0hleFN0cmluZyAoTFRTTSkpKQogICAgICAgICAg ICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT04gU0NCICIsIFRvSGV4U3RyaW5nIChT TE9UKSkpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIEwyM1IgPSBPbmUKICAgICAgICAgICAgICAgIExvY2Fs MCA9IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlIChMMjNSKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IlBDSUUgTDIzUiBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAg ICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBTQ0IwID0gWmVybwogICAgICAgICAgICAgICAg TG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgV2hpbGUgKChMQVNYID09IFplcm8pKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgw OCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIlBDSUUgTEFTWCBUTyAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQog ICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgTG9j YWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNN KSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoREwyMywgMCwgU2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJQQ0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkp CiAgICAgICAgICAgICAgICBJZiAoKChMQVNYID09IE9uZSkgJiYgKExOUkUgPT0gWmVybykp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKExTT0UgPT0g T25lKSB8fCAoTE5TRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIExOUkUgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IFplcm8KICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlRvZ2dsZSBMTlJFIikKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTDIzRSA9IE9uZQogICAg ICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJv CiAgICAgICAgICAgICAgICBXaGlsZSAoTDIzRSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgTDIz RSBUTyIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEJy ZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUE9GIFJQICIsIFRvSGV4U3Ry aW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICBTQ0IwID0gT25lCiAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBFbmQgLSIsIFRv SGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKExU UlYsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoUFJNViwg WmVybykKICAgICAgICAgICAgTmFtZSAoUkQzQywgMHgwMikKICAgICAgICAgICAgTWV0aG9k IChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMg TWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VV SUQgKCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1lYTRkMTljMzQzNGQiKSAvKiBEZXZpY2Ug TGFiZWxpbmcgSW50ZXJmYWNlICovKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChPUFRTLCBCdWZm ZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCBaZXJvLCBG VU4wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMs IDB4MDYsIEZVTjYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVs ZCAoT1BUUywgMHgwOCwgRlVOOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEEsIEZVTkEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQiwgRlVOQikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU4wID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMVEVOICE9IFplcm8p KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRlVONiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEZVTjggPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGVU45ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDQp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOQSA9 IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVVBSRCkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiX0RTTSBQQ0llIFJQIE9QVFMgLSIsIFRvSGV4U3RyaW5nIChP UFRTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9QVFMpIC8qIFxf U0JfLlBDMDAuUlAwNy5fRFNNLk9QVFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMikp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTFRSViBbWmVyb10gPSAoKExNU0wgPj4gMHgwQSkgJiAweDA3KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW09uZV0gPSAoTE1TTCAmIDB4MDNGRikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAyXSA9ICgoTE5TTCA+ PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBb MHgwM10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDMDAuUlAwNy5MVFJWICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgw MykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBh Y2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDMzUwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVzLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwQSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICBDYXNlICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQ UkQgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg fQoKICAgICAgICAgICAgRGV2aWNlIChQWFNYKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChQQ0NYLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDEwKQogICAg ICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRFZJRCwgICAzMiwgCiAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgUElY WCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBTQ0NYLCAgIDgsIAogICAgICAgICAgICAg ICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoUEFIQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA2KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09 IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgQUhDSSIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKFBOVk0sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gMHgwOCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoUElYWCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBOVk1lIikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUFJFUywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKERWSUQgPT0gMHhG RkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKElTR1gsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDMpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo XFNURDMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoU1RE MyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU0Q6IERldmljZS1T cGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgi TlZNZSBEMyBTdXBwb3J0IEVuYWJsZSBmb3IgQ2hpbGQgRGV2aWNlIikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAv KiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0LWE1NjEtOTlhNTE4OTc2MmQwIikgLyog VW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3RvcmFnZUQzRW5hYmxlIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBS ZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9U KSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoR1AxRSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEdQMUUgIT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoR1BSVyAoMHhDMSwgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo R1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2Vy IFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJfUFMwIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoUFBTMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAg ICAgICAgICAgICAgICAgICAgUFBTMCAoKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJS ZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMwIEhvb2siKQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIFNlcmlh bGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcg KFNMT1QpKSkKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQUzMpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDYWxsaW5nIFBsYXRmb3Jt IFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAgICAgICAgICAgICAgIFBQUzMgKCkKICAgICAg ICAgICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJvbSBQbGF0Zm9ybSBQQ0lFIFJQIFBT MyBIb29rIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNp ZmljIERhdGEKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoQURTRCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRlcm5hdGUgX0RTRCBQQ0llIFJQIiwg VG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFEU0Qg KCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo UElOSSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikg LyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRy aWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25l CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNmI0YWQ0MjAtOGZkMy00 MzY0LWFjZjgtZWI5NDg3NmZkOWViIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMCl7fQogICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZm YWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAK ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo b2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IElmICgoKFZESUQgIT0gMHhGRkZGRkZGRikgJiYgKFBNU1ggPT0gT25lKSkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCAweDAyKSAvLyBE ZXZpY2UgV2FrZQogICAgICAgICAgICAgICAgICAgIFBNU1ggPSBPbmUKICAgICAgICAgICAg ICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBD SSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFBJQ00pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChBUjA2ICgpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBEMDYgKCkpCiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIERldmljZSAoUlAwOCkKICAgICAgICB7CiAgICAgICAgICAgIE5h bWUgKFBCTlUsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKChSUEE4ICE9IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUlBBOCkgLyogXFJQQTggKi8KICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDAxQzAwMDcpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE5hbWUgKFNMT1QsIDB4MDgpCiAgICAgICAgICAgIE5hbWUgKFBSVFAsIDB4 MDIpCiAgICAgICAgICAgIE5hbWUgKExURU4sIFplcm8pCiAgICAgICAgICAgIE5hbWUgKExN U0wsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKExOU0wsIFplcm8pCiAgICAgICAgICAgIE1l dGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTFRFTiA9IExUUjggLyogXExUUjggKi8KICAg ICAgICAgICAgICAgIExNU0wgPSBQTUw4IC8qIFxQTUw4ICovCiAgICAgICAgICAgICAgICBM TlNMID0gUE5MOCAvKiBcUE5MOCAqLwogICAgICAgICAgICAgICAgSWYgKChDb25kUmVmT2Yg KFZNU1ApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmICgoKFZNREUgPT0gT25lKSAmJiAoKFZNU1AgJiAweDgwMDApICE9 IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJSUDA4ICgwLzI4LzcpIGlzIG1hcHBlZCB1bmRlciBWTUQiKQogICAgICAgICAg ICAgICAgICAgICAgICBQUk1WID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJTkkpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUElOSSAoKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo Q29uZFJlZk9mIChcX1NCLlBDMDAuUlAwOCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKChWRElEICE9IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwOC5QUk1WKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBSTVYg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVk1EIFN0b3Jh Z2UgUnVudGltZSBEMyBzdGF0dXM6IiwgVG9IZXhTdHJpbmcgKFJEM0MpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCheUFhTWC5QTlZNICgp IHx8IF5QWFNYLlBBSEMgKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU3RvcmFn ZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJEM0MgPSBTVEQzIC8qIFxTVEQzICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFhDUywgU3lzdGVtTWVtb3J5LCBQQzJNIChfQURS ICgpLCBQQk5VKSwgMHgwNDgwKQogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBO b0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWRElELCAg IDMyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAgICAg TDBTRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAg ICBMRElTLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUxKSwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgICAgICAsICAgMTMsIAog ICAgICAgICAgICAgICAgTEFTWCwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1 QSksIAogICAgICAgICAgICAgICAgQUJQWCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAs ICAgMiwgCiAgICAgICAgICAgICAgICBQRENYLCAgIDEsIAogICAgICAgICAgICAgICAgICAg ICwgICAyLCAKICAgICAgICAgICAgICAgIFBEU1gsICAgMSwgCiAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4NUIpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MCksIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDYyKSwgCiAgICAgICAgICAgICAgICBQU1BYLCAgIDEsIAog ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAgICAgICAgLCAg IDEwLCAKICAgICAgICAgICAgICAgIExOUkUsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4QTQpLCAKICAgICAgICAgICAgICAgIEQzSFQsICAgMiwgCiAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4RDgpLCAKICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAg ICAgICAgICAgSFBFWCwgICAxLCAKICAgICAgICAgICAgICAgIFBNRVgsICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4RTApLCAKICAgICAgICAgICAgICAgIFNDQjAsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICAgTkNCNywgICAx LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMiksIAogICAgICAgICAgICAgICAgICAg ICwgICAyLCAKICAgICAgICAgICAgICAgIEwyM0UsICAgMSwgCiAgICAgICAgICAgICAgICBM MjNSLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMyOCksIAogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDMyQiksIAogICAgICAgICAgICAgICAgTFRTTSwgICA4LCAKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg0MDQpLCAKICAgICAgICAgICAgICAgIExTT0UsICAg MSwgCiAgICAgICAgICAgICAgICBMTlNFLCAgIDEKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRmllbGQgKFBYQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEQyksIAogICAgICAgICAgICAgICAg ICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICBIUFNYLCAgIDEsIAogICAgICAgICAgICAg ICAgUE1TWCwgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTDIzRCwg MCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IEwyM0QgU3RhcnQgIC0iLCBUb0hleFN0cmlu ZyAoTFRTTSkpKQogICAgICAgICAgICAgICAgSWYgKChTQ0IwICE9IE9uZSkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT04g U0NCICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEwyM1IgPSBPbmUK ICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlIChM MjNSKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWww ID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTDIzUiBUTyAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAg ICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTQ0IwID0g WmVybwogICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgV2hp bGUgKChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoTG9jYWwwID4gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSUUgTEFTWCBUTyAiLCBU b0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBFbmQg LSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoREwyMywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQQ0llIFJQIExUU1NNIGF0IERMMjMgU3RhcnQgLSIs IFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICBJZiAoKChMQVNYID09IE9u ZSkgJiYgKExOUkUgPT0gWmVybykpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmICgoKExTT0UgPT0gT25lKSB8fCAoTE5TRSA9PSBPbmUpKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExOUkUgPSBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TE5SRSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRvZ2dsZSBMTlJF IikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTDIzRSA9IE9uZQogICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICBXaGlsZSAoTDIzRSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJQT0YgTDIzRSBUTyIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAr KwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiUE9GIFJQICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICBTQ0Iw ID0gT25lCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRT U00gYXQgREwyMyBFbmQgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE5hbWUgKExUUlYsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSkKICAg ICAgICAgICAgTmFtZSAoUFJNViwgWmVybykKICAgICAgICAgICAgTmFtZSAoUkQzQywgMHgw MikKICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFZESUQgPT0gMHhGRkZGRkZGRikpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBf RFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJlNWM5MzdkMC0zNTUzLTRkN2EtOTExNy1lYTRk MTljMzQzNGQiKSAvKiBEZXZpY2UgTGFiZWxpbmcgSW50ZXJmYWNlICovKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICha ZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOYW1lIChPUFRTLCBCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJp dEZpZWxkIChPUFRTLCBaZXJvLCBGVU4wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDYsIEZVTjYpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwOCwgRlVOOCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA5LCBGVU45KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MEEsIEZV TkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywg MHgwQiwgRlVOQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAw eDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGVU4wID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChMVEVOICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVONiA9IE9uZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVD UjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjggPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU45ID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcxID49IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBQQkEpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRlVOQSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo VVBSRCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGVU5CID0gT25lCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX0RTTSBQQ0llIFJQIE9Q VFMgLSIsIFRvSGV4U3RyaW5nIChPUFRTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9QVFMpIC8qIFxfU0JfLlBDMDAuUlAwOC5fRFNNLk9QVFMgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2 KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzEgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbWmVyb10gPSAoKExNU0wgPj4g MHgwQSkgJiAweDA3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgW09u ZV0gPSAoTE1TTCAmIDB4MDNGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM VFJWIFsweDAyXSA9ICgoTE5TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTFRSViBbMHgwM10gPSAoTE5TTCAmIDB4MDNGRikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExUUlYpIC8qIFxfU0JfLlBDMDAuUlAw OC5MVFJWICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENh c2UgKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKEVDUjEpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDMpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhDMzUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPbmVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE9uZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwQSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUEJBIChBcmczKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBCKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJE KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFVQUkQgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChQWFNYKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0NYLCBQQ0lfQ29u ZmlnLCBaZXJvLCAweDEwKQogICAgICAgICAgICAgICAgRmllbGQgKFBDQ1gsIEJ5dGVBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgRFZJRCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA5KSwgCiAg ICAgICAgICAgICAgICAgICAgUElYWCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBTQ0NY LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIEJDQ1gsICAgOAogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUEFIQywgMCwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9 PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChQSVhYID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBTU0QgQUhDSSIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFBOVk0sIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NY ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFNDQ1ggPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSAweDAyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiUFNTRCBOVk1lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo UFJFUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKERWSUQgPT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKElTR1gsIDAs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KChCQ0NYID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoXFNURDMpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmICgoU1REMyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTRCwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZN ICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHICgiTlZNZSBEMyBTdXBwb3J0IEVuYWJsZSBmb3IgQ2hpbGQg RGV2aWNlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQt YTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiNTAyNTAzMGYtODQyZi00YWI0LWE1 NjEtOTlhNTE4OTc2MmQwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi U3RvcmFnZUQzRW5hYmxlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUlcgUENJZSBS UCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoR1AxRSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEdQMUUgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHhDMSwgMHgwNCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHg2OSwgMHgwNCkpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFs aXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMwIFBDSWUgUlAiLCBUb0hleFN0cmluZyAo U0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMCkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0g UENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgUFBTMCAoKQogICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMw IEhvb2siKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BTMyBQ Q0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFBQUzMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFE QkcgKCJDYWxsaW5nIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAgICAgICAg ICAgICAgIFBQUzMgKCkKICAgICAgICAgICAgICAgICAgICBBREJHICgiUmV0dXJuZWQgZnJv bSBQbGF0Zm9ybSBQQ0lFIFJQIFBTMyBIb29rIikKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAo U0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoQURTRCkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBbHRl cm5hdGUgX0RTRCBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEFEU0QgKCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUx LWJiNjQtZWNkNzkyMjE1YjEwIikgLyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVu ZGFtZW50YWxEZXZpY2VSZXNldFRyaWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgVG9V VUlEICgiNmI0YWQ0MjAtOGZkMy00MzY0LWFjZjgtZWI5NDg3NmZkOWViIikgLyogVW5rbm93 biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMCl7fQog ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgVG9VVUlEICgiZmRmMDZmYWQtZjc0NC00NDUxLWJiNjQtZWNkNzkyMjE1YjEwIikg LyogVW5rbm93biBVVUlEICovLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVuZGFtZW50YWxEZXZpY2VSZXNldFRy aWdnZXJlZE9uRDNUb0QwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25l CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKEhQTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIElmICgoKFZESUQgIT0gMHhGRkZGRkZGRikgJiYgKFBN U1ggPT0gT25lKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm90 aWZ5IChQWFNYLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAgICAgIFBN U1ggPSBPbmUKICAgICAgICAgICAgICAgICAgICBQU1BYID0gT25lCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFBJQ00pKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmIChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjA3ICgpKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBEMDcg KCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoUlAwOSkKICAg ICAgICB7CiAgICAgICAgICAgIE5hbWUgKFBCTlUsIFplcm8pCiAgICAgICAgICAgIE1ldGhv ZCAoX0FEUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKChSUEE5ICE9IFplcm8pKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlBBOSkgLyogXFJQQTkgKi8KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDAwNjAwMDApCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFNMT1QsIDB4MDkpCiAgICAg ICAgICAgIE5hbWUgKFBSVFAsIDB4MDQpCiAgICAgICAgICAgIE5hbWUgKExURU4sIFplcm8p CiAgICAgICAgICAgIE5hbWUgKExNU0wsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKExOU0ws IFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTFRFTiA9 IExUUjkgLyogXExUUjkgKi8KICAgICAgICAgICAgICAgIExNU0wgPSBQTUw5IC8qIFxQTUw5 ICovCiAgICAgICAgICAgICAgICBMTlNMID0gUE5MOSAvKiBcUE5MOSAqLwogICAgICAgICAg ICAgICAgSWYgKChDb25kUmVmT2YgKFZNU1ApICYmIENvbmRSZWZPZiAoVk1ERSkpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFZNREUgPT0gT25lKSAm JiAoKFZNU1AgJiBPbmUpICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSUDA5ICgwLzYvMCkgaXMgbWFwcGVkIHVuZGVy IFZNRCIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBSTVYgPSBPbmUKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFBSRVMg KCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBQSU5JICgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDA5KSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgIT0gMHhGRkZGRkZGRikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDA5LlBSTVYpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoUFJNViA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAo UkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRDNDID0gU1RE MyAvKiBcU1REMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKF5QWFNYLlBOVk0gKCkgfHwgXlBYU1guUEFIQyAoKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChS RDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyog XFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQWENTLCBTeXN0ZW1N ZW1vcnksIFBDMk0gKF9BRFIgKCksIFBCTlUpLCAweDA0ODApCiAgICAgICAgICAgIEZpZWxk IChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFZESUQsICAgMzIsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwg CiAgICAgICAgICAgICAgICBMMFNFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwgICAz LCAKICAgICAgICAgICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NTEpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MiksIAogICAgICAgICAgICAg ICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAgICBMQVNYLCAgIDEsIAogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDVBKSwgCiAgICAgICAgICAgICAgICBBQlBYLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgIFBEQ1gsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgUERTWCwgICAxLCAK ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDYwKSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjIpLCAKICAgICAgICAgICAg ICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAg ICAgICAgICAgICAgICAsICAgMTAsIAogICAgICAgICAgICAgICAgTE5SRSwgICAxLCAKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICAgRDNIVCwgICAy LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEOCksIAogICAgICAgICAgICAgICAgICAg ICwgICAzMCwgCiAgICAgICAgICAgICAgICBIUEVYLCAgIDEsIAogICAgICAgICAgICAgICAg UE1FWCwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMCksIAogICAgICAgICAg ICAgICAgU0NCMCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAg ICAgICAgICBOQ0I3LCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUyKSwgCiAg ICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgTDIzRSwgICAxLCAK ICAgICAgICAgICAgICAgIEwyM1IsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 MzI4KSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAgICAgICAg ICBMVFNNLCAgIDgsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQwNCksIAogICAgICAg ICAgICAgICAgTFNPRSwgICAxLCAKICAgICAgICAgICAgICAgIExOU0UsICAgMQogICAgICAg ICAgICB9CgogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdyaXRl QXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweERDKSwg CiAgICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgIEhQU1gsICAg MSwgCiAgICAgICAgICAgICAgICBQTVNYLCAgIDEKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChMMjNELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBTdGFy dCAgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICBJZiAoKFNDQjAg IT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTDIzUiA9IE9uZQogICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAg ICAgICAgICAgV2hpbGUgKEwyM1IpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNSIFRPICIs IFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkK ICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIFNDQjAgPSBaZXJvCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAg ICAgICAgICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA4KSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBM VFNTTSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChETDIzLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00g YXQgREwyMyBTdGFydCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg IElmICgoKExBU1ggPT0gT25lKSAmJiAoTE5SRSA9PSBaZXJvKSkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTFNPRSA9PSBPbmUpIHx8IChMTlNFID09 IE9uZSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TE5SRSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICBMTlJFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiVG9nZ2xlIExOUkUiKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBMMjNFID0gT25lCiAgICAgICAgICAgICAgICBTbGVl cCAoMHgxMCkKICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAg IFdoaWxlIChMMjNFKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPRiBMMjNFIFRPIiwgVG9IZXhTdHJp bmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAg ICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgUlAgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAg ICAgICAgICAgICAgIFNDQjAgPSBPbmUKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00p KSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoTFRSViwgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChQUk1WLCBaZXJvKQogICAgICAgICAg ICBOYW1lIChSRDNDLCAweDAyKQogICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoVkRJRCA9PSAw eEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU1YzkzN2QwLTM1 NTMtNGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZh Y2UgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN3aXRjaCAo VG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMsIEJ1ZmZlciAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IC4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIFplcm8sIEZVTjApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwNiwgRlVONikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA4LCBG VU44KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMs IDB4MDksIEZVTjkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVs ZCAoT1BUUywgMHgwQSwgRlVOQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBGVU5CKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcxID49IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjAgPSBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKExURU4gIT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU42ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVO OCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZV TjkgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwNCkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5BID0gT25lCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTkIgPSBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJfRFNNIFBDSWUgUlAgT1BUUyAtIiwgVG9IZXhTdHJpbmcgKE9QVFMpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT1BUUykgLyogXF9TQl8uUEMwMC5SUDA5Ll9E U00uT1BUUyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFta ZXJvXSA9ICgoTE1TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExUUlYgWzB4MDJdID0gKChMTlNMID4+IDB4MEEpICYgMHgwNykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAzXSA9IChMTlNMICYg MHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikg LyogXF9TQl8uUEMwMC5SUDA5LkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBD YXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgQ2FzZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgw MykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT25lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBQQkEgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBSRCAoQXJnMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKFBYU1gpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKFBDQ1gsIFBDSV9Db25maWcsIFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICBGaWVs ZCAoUENDWCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBEVklELCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4MDkpLCAKICAgICAgICAgICAgICAgICAgICBQSVhYLCAgIDgsIAogICAgICAg ICAgICAgICAgICAgIFNDQ1gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgQkNDWCwgICA4 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChQQUhDLCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgo QkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChTQ0NYID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiUFNTRCBBSENJIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoUE5WTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA4KSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJQU1NEIE5WTWUiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoRFZJRCA9PSAweEZGRkZGRkZGKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoSVNHWCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChTVEQzICE9IFplcm8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNE LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChQQUhDICgpIHx8IFBOVk0gKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQg RW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUw MjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAq LywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1 MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8s IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BS VywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2Fr ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiX1BSVyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoR1AxRSAhPSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJX ICgweEMyLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0 KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzAgUENJZSBS UCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChQUFMwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgi Q2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAgICAgICAgICAgICAgICAg ICBQUFMwICgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxh dGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6 IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJfUFMzIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMykpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9v ayIpCiAgICAgICAgICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAgICAgICAgICAgIEFE QkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU0QgUENJZSBS UCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChBRFNEKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIkFsdGVybmF0ZSBfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQURTRCAoKSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQSU5JKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJm ZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQg Ki8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAi LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICBUb1VVSUQgKCI2YjRhZDQyMC04ZmQzLTQzNjQtYWNmOC1lYjk0ODc2 ZmQ5ZWIiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAwKXt9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2 NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5kYW1l bnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoSFBNRSwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAw eEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAg ICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAgICAgICAgICAgICAgICAgIFBTUFggPSBP bmUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChfUFJULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElDTSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDQgKCkp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIFJldHVybiAoUEQwNCAoKSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg RGV2aWNlIChSUDEwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoUEJOVSwgWmVybykK ICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFJQQUEgIT0gWmVy bykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSUEFB KSAvKiBcUlBBQSAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMDA2MDAw MSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAo U0xPVCwgMHgwQSkKICAgICAgICAgICAgTmFtZSAoUFJUUCwgMHgwNCkKICAgICAgICAgICAg TmFtZSAoTFRFTiwgWmVybykKICAgICAgICAgICAgTmFtZSAoTE1TTCwgWmVybykKICAgICAg ICAgICAgTmFtZSAoTE5TTCwgWmVybykKICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBMVEVOID0gTFRSQSAvKiBcTFRSQSAqLwogICAgICAgICAgICAgICAgTE1T TCA9IFBNTEEgLyogXFBNTEEgKi8KICAgICAgICAgICAgICAgIExOU0wgPSBQTkxBIC8qIFxQ TkxBICovCiAgICAgICAgICAgICAgICBJZiAoKENvbmRSZWZPZiAoVk1TUCkgJiYgQ29uZFJl Zk9mIChWTURFKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KCgoVk1ERSA9PSBPbmUpICYmICgoVk1TUCAmIDB4MDIpICE9IFplcm8pKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSUDEwICgwLzYv MSkgaXMgbWFwcGVkIHVuZGVyIFZNRCIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBSTVYg PSBPbmUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgSWYgKFBSRVMgKCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBQSU5JICgpCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMw MC5SUDEwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFZE SUQgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0Iu UEMwMC5SUDEwLlBSTVYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUFJNViA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1 czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSRDNDID0gU1REMyAvKiBcU1REMyAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKF5QWFNYLlBOVk0gKCkgfHwgXlBYU1guUEFIQyAoKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVz OiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChQWENTLCBTeXN0ZW1NZW1vcnksIFBDMk0gKF9BRFIgKCksIFBCTlUpLCAweDA0ODAp CiAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZESUQsICAgMzIsIAogICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDUwKSwgCiAgICAgICAgICAgICAgICBMMFNFLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgIExESVMsICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4NTEpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1 MiksIAogICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAgICBMQVNY LCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVBKSwgCiAgICAgICAgICAgICAg ICBBQlBYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAg ICAgIFBEQ1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAg ICAgICAgUERTWCwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NjIpLCAKICAgICAgICAgICAgICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4NjgpLCAKICAgICAgICAgICAgICAgICAgICAsICAgMTAsIAogICAgICAgICAgICAg ICAgTE5SRSwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBNCksIAogICAgICAg ICAgICAgICAgRDNIVCwgICAyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEOCksIAog ICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAgICAgICAgICBIUEVYLCAgIDEs IAogICAgICAgICAgICAgICAgUE1FWCwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAo MHhFMCksIAogICAgICAgICAgICAgICAgU0NCMCwgICAxLCAKICAgICAgICAgICAgICAgICAg ICAsICAgNiwgCiAgICAgICAgICAgICAgICBOQ0I3LCAgIDEsIAogICAgICAgICAgICAgICAg T2Zmc2V0ICgweEUyKSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAg ICAgICAgTDIzRSwgICAxLCAKICAgICAgICAgICAgICAgIEwyM1IsICAgMSwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4MzI4KSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzJC KSwgCiAgICAgICAgICAgICAgICBMVFNNLCAgIDgsIAogICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDQwNCksIAogICAgICAgICAgICAgICAgTFNPRSwgICAxLCAKICAgICAgICAgICAgICAg IExOU0UsICAgMQogICAgICAgICAgICB9CgogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55 QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgT2Zmc2V0ICgweERDKSwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAg ICAgICAgICAgIEhQU1gsICAgMSwgCiAgICAgICAgICAgICAgICBQTVNYLCAgIDEKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChMMjNELCAwLCBTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAg TFRTU00gYXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAg ICAgICAgICBJZiAoKFNDQjAgIT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhTdHJpbmcg KFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTDIzUiA9IE9uZQogICAgICAgICAgICAgICAgTG9j YWwwID0gWmVybwogICAgICAgICAgICAgICAgV2hpbGUgKEwyM1IpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiUENJRSBMMjNSIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFNDQjAgPSBaZXJvCiAgICAgICAgICAgICAg ICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAw eDA4KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiUENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkp CiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICBM b2NhbDArKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExU U00pKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChETDIzLCAwLCBTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBTdGFydCAtIiwgVG9IZXhTdHJpbmcgKExUU00p KSkKICAgICAgICAgICAgICAgIElmICgoKExBU1ggPT0gT25lKSAmJiAoTE5SRSA9PSBaZXJv KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTFNPRSA9 PSBPbmUpIHx8IChMTlNFID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTE5SRSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBT bGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICBMTlJFID0gWmVybwogICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiVG9nZ2xlIExOUkUiKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMMjNFID0gT25lCiAg ICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgIExvY2FsMCA9IFpl cm8KICAgICAgICAgICAgICAgIFdoaWxlIChMMjNFKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPRiBM MjNFIFRPIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAg QnJlYWsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweDEwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgUlAgIiwgVG9IZXhT dHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgIFNDQjAgPSBPbmUKICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIEVuZCAtIiwg VG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAo TFRSViwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChQUk1W LCBaZXJvKQogICAgICAgICAgICBOYW1lIChSRDNDLCAweDAyKQogICAgICAgICAgICBNZXRo b2QgKFBSRVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmICgoVkRJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZp YyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRv VVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmlj ZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMsIEJ1 ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIFplcm8s IEZVTjApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BU UywgMHgwNiwgRlVONikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZp ZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlQml0RmllbGQgKE9QVFMsIDB4MDksIEZVTjkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQSwgRlVOQSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBGVU5CKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4MDIpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjAg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExURU4gIT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGVU42ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRlVOOCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgw NCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5B ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZVTkIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNNIFBDSWUgUlAgT1BUUyAtIiwgVG9IZXhTdHJpbmcg KE9QVFMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT1BUUykgLyog XF9TQl8uUEMwMC5SUDEwLl9EU00uT1BUUyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDYpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMVFJWIFtaZXJvXSA9ICgoTE1TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZG KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExUUlYgWzB4MDJdID0gKChMTlNM ID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJW IFsweDAzXSA9IChMTlNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoTFRSVikgLyogXF9TQl8uUEMwMC5SUDEwLkxUUlYgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBDYXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAw eDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwOSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lcwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBBKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJB KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBQQkEgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIENhc2UgKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo VVBSRCAoQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICB9CgogICAgICAgICAgICBEZXZpY2UgKFBYU1gpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKFBDQ1gsIFBDSV9Db25maWcsIFplcm8sIDB4MTApCiAg ICAgICAgICAgICAgICBGaWVsZCAoUENDWCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEVklELCAgIDMyLCAKICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDkpLCAKICAgICAgICAgICAgICAgICAgICBQ SVhYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFNDQ1gsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgQkNDWCwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0NYID09IDB4MDYpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFgg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBBSENJIikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoUE5WTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA4 KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChQSVhYID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQU1NEIE5WTWUiKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoRFZJRCA9PSAw eEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoSVNHWCwgMCwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gMHgwMykpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChcU1REMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChT VEQzICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNl LVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChQQUhDICgpIHx8IFBOVk0gKCkpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJOVk1lIEQzIFN1cHBvcnQgRW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIp IC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAv KiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2Vy IFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BSVyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNM T1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoR1AxRSAhPSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChHUFJXICgweEM3LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChHUFJXICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93 ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIl9QUzAgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChQUFMwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBBREJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikK ICAgICAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAo IlJldHVybmVkIGZyb20gUGxhdGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2Vy aWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMzIFBDSWUgUlAiLCBUb0hleFN0cmlu ZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMykpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZv cm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAgICAgICAgUFBTMyAoKQogICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAg UFMzIEhvb2siKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3Bl Y2lmaWMgRGF0YQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIl9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChBRFNEKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkFsdGVybmF0ZSBfRFNEIFBDSWUgUlAi LCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQURT RCAoKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChQSU5JKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAi KSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0 VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI2YjRhZDQyMC04ZmQz LTQzNjQtYWNmOC1lYjk0ODc2ZmQ5ZWIiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAwKXt9CiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYw NmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8s IAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoSFBNRSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKCgoVkRJRCAhPSAweEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUpKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gsIDB4MDIpIC8v IERldmljZSBXYWtlCiAgICAgICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAgICAgICAg ICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVDog UENJIFJvdXRpbmcgVGFibGUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoUElDTSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEFSMDQgKCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoUEQwNCAoKSkKICAgICAgICAgICAgfQog ICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChSUDExKQogICAgICAgIHsKICAgICAgICAgICAg TmFtZSAoUEJOVSwgWmVybykKICAgICAgICAgICAgTWV0aG9kIChfQURSLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoKFJQQUIgIT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChSUEFCKSAvKiBcUlBBQiAqLwogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwMDA2MDAwMikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTmFtZSAoU0xPVCwgMHgwQikKICAgICAgICAgICAgTmFtZSAoUFJUUCwg MHgwNCkKICAgICAgICAgICAgTmFtZSAoTFRFTiwgWmVybykKICAgICAgICAgICAgTmFtZSAo TE1TTCwgWmVybykKICAgICAgICAgICAgTmFtZSAoTE5TTCwgWmVybykKICAgICAgICAgICAg TWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMVEVOID0gTFRSQiAvKiBcTFRSQiAqLwog ICAgICAgICAgICAgICAgTE1TTCA9IFBNTEIgLyogXFBNTEIgKi8KICAgICAgICAgICAgICAg IExOU0wgPSBQTkxCIC8qIFxQTkxCICovCiAgICAgICAgICAgICAgICBJZiAoKENvbmRSZWZP ZiAoVk1TUCkgJiYgQ29uZFJlZk9mIChWTURFKSkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKCgoVk1ERSA9PSBPbmUpICYmICgoVk1TUCAmIDB4MDQpICE9 IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJSUDExICgwLzYvMikgaXMgbWFwcGVkIHVuZGVyIFZNRCIpCiAgICAgICAgICAg ICAgICAgICAgICAgIFBSTVYgPSBPbmUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFBSRVMgKCkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElOSSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBQSU5JICgpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFxfU0IuUEMwMC5SUDExKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoKFZESUQgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDExLlBSTVYpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUFJNViA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJWTUQgU3RvcmFn ZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAoUkQzQykpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSRDNDID0gU1REMyAvKiBcU1REMyAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKF5QWFNYLlBOVk0gKCkg fHwgXlBYU1guUEFIQyAoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTdG9yYWdl IFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChSRDNDKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyogXFNURDMgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgT3BlcmF0aW9uUmVnaW9uIChQWENTLCBTeXN0ZW1NZW1vcnksIFBDMk0gKF9BRFIg KCksIFBCTlUpLCAweDA0ODApCiAgICAgICAgICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5v TG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZESUQsICAg MzIsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAgICAgICAgICAgICAgICBM MFNFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAg IExESVMsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTEpLCAKICAgICAgICAg ICAgICAgIE9mZnNldCAoMHg1MiksIAogICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAg ICAgICAgICAgICAgICBMQVNYLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDVB KSwgCiAgICAgICAgICAgICAgICBBQlBYLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwg ICAyLCAKICAgICAgICAgICAgICAgIFBEQ1gsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg LCAgIDIsIAogICAgICAgICAgICAgICAgUERTWCwgICAxLCAKICAgICAgICAgICAgICAgIE9m ZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4NjIpLCAKICAgICAgICAgICAgICAgIFBTUFgsICAgMSwgCiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgICAgICAgICAsICAg MTAsIAogICAgICAgICAgICAgICAgTE5SRSwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNl dCAoMHhBNCksIAogICAgICAgICAgICAgICAgRDNIVCwgICAyLCAKICAgICAgICAgICAgICAg IE9mZnNldCAoMHhEOCksIAogICAgICAgICAgICAgICAgICAgICwgICAzMCwgCiAgICAgICAg ICAgICAgICBIUEVYLCAgIDEsIAogICAgICAgICAgICAgICAgUE1FWCwgICAxLCAKICAgICAg ICAgICAgICAgIE9mZnNldCAoMHhFMCksIAogICAgICAgICAgICAgICAgU0NCMCwgICAxLCAK ICAgICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAgICAgICAgICBOQ0I3LCAgIDEs IAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUyKSwgCiAgICAgICAgICAgICAgICAgICAg LCAgIDIsIAogICAgICAgICAgICAgICAgTDIzRSwgICAxLCAKICAgICAgICAgICAgICAgIEwy M1IsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzI4KSwgCiAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAgICAgICAgICBMVFNNLCAgIDgsIAogICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDQwNCksIAogICAgICAgICAgICAgICAgTFNPRSwgICAx LCAKICAgICAgICAgICAgICAgIExOU0UsICAgMQogICAgICAgICAgICB9CgogICAgICAgICAg ICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweERDKSwgCiAgICAgICAgICAgICAgICAg ICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgIEhQU1gsICAgMSwgCiAgICAgICAgICAgICAg ICBQTVNYLCAgIDEKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChMMjNELCAw LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBTdGFydCAgLSIsIFRvSGV4U3RyaW5n IChMVFNNKSkpCiAgICAgICAgICAgICAgICBJZiAoKFNDQjAgIT0gT25lKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPTiBT Q0IgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTDIzUiA9IE9uZQog ICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgV2hpbGUgKEwy M1IpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAg PiAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNSIFRPICIsIFRvSGV4U3RyaW5nIChTTE9U KSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAg ICBMb2NhbDArKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFNDQjAgPSBa ZXJvCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICBXaGls ZSAoKExBU1ggPT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKChMb2NhbDAgPiAweDA4KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMQVNYIFRPICIsIFRv SGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAg ICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNTTSBhdCBMMjNEIEVuZCAt IiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChETDIzLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgREwyMyBTdGFydCAtIiwg VG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAgIElmICgoKExBU1ggPT0gT25l KSAmJiAoTE5SRSA9PSBaZXJvKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKCgoTFNPRSA9PSBPbmUpIHx8IChMTlNFID09IE9uZSkpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTE5SRSA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICBM TlJFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVG9nZ2xlIExOUkUi KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBMMjNFID0gT25lCiAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAgICAgICAg ICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlIChMMjNFKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBPRiBMMjNFIFRPIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAg ICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCsr CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJQT0YgUlAgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgIFNDQjAg PSBPbmUKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBMVFNT TSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTmFtZSAoTFRSViwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9KQogICAg ICAgICAgICBOYW1lIChQUk1WLCBaZXJvKQogICAgICAgICAgICBOYW1lIChSRDNDLCAweDAy KQogICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIElmICgoVkRJRCA9PSAweEZGRkZGRkZGKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9E U006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU1YzkzN2QwLTM1NTMtNGQ3YS05MTE3LWVhNGQx OWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZhY2UgKi8pKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcyKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKE9QVFMsIEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0 RmllbGQgKE9QVFMsIFplcm8sIEZVTjApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwNiwgRlVONikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA4LCBGVU44KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIDB4MDksIEZVTjkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwQSwgRlVO QSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAw eDBCLCBGVU5CKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID49IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEZVTjAgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKExURU4gIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU42ID0gT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNS MSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVOOCA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjkgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzEgPj0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBCQSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGVU5BID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChV UFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZVTkIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfRFNNIFBDSWUgUlAgT1BU UyAtIiwgVG9IZXhTdHJpbmcgKE9QVFMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoT1BUUykgLyogXF9TQl8uUEMwMC5SUDExLl9EU00uT1BUUyAqLwogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDYp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFtaZXJvXSA9ICgoTE1TTCA+PiAw eDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRSViBbT25l XSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExU UlYgWzB4MDJdID0gKChMTlNMID4+IDB4MEEpICYgMHgwNykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMVFJWIFsweDAzXSA9IChMTlNMICYgMHgwM0ZGKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikgLyogXF9TQl8uUEMwMC5SUDEx LkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA4KQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ1IxID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT25lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBBKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBQQkEgKEFyZzMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFVQUkQp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoVVBSRCAoQXJnMykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChP bmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBYU1gpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBB ZGRyZXNzCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDQ1gsIFBDSV9Db25m aWcsIFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICBGaWVsZCAoUENDWCwgQnl0ZUFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBEVklELCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDkpLCAKICAg ICAgICAgICAgICAgICAgICBQSVhYLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFNDQ1gs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgQkNDWCwgICA4CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChQQUhDLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQkNDWCA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTQ0NYID09 IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKFBJWFggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUFNTRCBBSENJIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUE5WTSwgMCwgU2VyaWFs aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEJDQ1gg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoU0NDWCA9PSAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IDB4MDIpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJQU1NEIE5WTWUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChQ UkVTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoRFZJRCA9PSAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoSVNHWCwgMCwg U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo KEJDQ1ggPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKChTVEQzICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQQUhDICgpIHx8IFBOVk0g KCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQgRW5hYmxlIGZvciBDaGlsZCBE ZXZpY2UiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUwMjUwMzBmLTg0MmYtNGFiNC1h NTYxLTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1MDMwZi04NDJmLTRhYjQtYTU2 MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJT dG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BSVyBQQ0llIFJQ IiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChHUDFFKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoR1AxRSAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweEM3LCAweDA0KSkKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0KSkKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxp emVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzAgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChT TE9UKSkpCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUFMwKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiQ2FsbGluZyBQbGF0Zm9ybSBQ Q0lFIFJQIFBTMCBIb29rIikKICAgICAgICAgICAgICAgICAgICBQUFMwICgpCiAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxhdGZvcm0gUENJRSBSUCBQUzAg SG9vayIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJfUFMzIFBD SWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoUFBTMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURC RyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9vayIpCiAgICAgICAgICAgICAg ICAgICAgUFBTMyAoKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSZXR1cm5lZCBmcm9t IFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU0QgUENJZSBSUCIsIFRvSGV4U3RyaW5nIChT TE9UKSkpCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChBRFNEKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkFsdGVy bmF0ZSBfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQURTRCAoKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChQSU5JKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEt YmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5k YW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBUb1VV SUQgKCI2YjRhZDQyMC04ZmQzLTQzNjQtYWNmOC1lYjk0ODc2ZmQ5ZWIiKSAvKiBVbmtub3du IFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAwKXt9CiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAv KiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJp Z2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoSFBNRSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAweEZGRkZGRkZGKSAmJiAoUE1T WCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOb3Rp ZnkgKFBYU1gsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAgICAgICAgUE1T WCA9IE9uZQogICAgICAgICAgICAgICAgICAgIFBTUFggPSBPbmUKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElDTSkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDQgKCkpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoUEQwNCAo KSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChSUDEyKQogICAg ICAgIHsKICAgICAgICAgICAgTmFtZSAoUEJOVSwgWmVybykKICAgICAgICAgICAgTWV0aG9k IChfQURSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJZiAoKFJQQUMgIT0gWmVybykpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSUEFDKSAvKiBcUlBBQyAqLwogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMDAxMDAwMCkKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoU0xPVCwgMHgwQykKICAgICAg ICAgICAgTmFtZSAoUFJUUCwgMHgwNCkKICAgICAgICAgICAgTmFtZSAoTFRFTiwgWmVybykK ICAgICAgICAgICAgTmFtZSAoTE1TTCwgWmVybykKICAgICAgICAgICAgTmFtZSAoTE5TTCwg WmVybykKICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMVEVOID0g TFRSQyAvKiBcTFRSQyAqLwogICAgICAgICAgICAgICAgTE1TTCA9IFBNTEMgLyogXFBNTEMg Ki8KICAgICAgICAgICAgICAgIExOU0wgPSBQTkxDIC8qIFxQTkxDICovCiAgICAgICAgICAg ICAgICBJZiAoKENvbmRSZWZPZiAoVk1TUCkgJiYgQ29uZFJlZk9mIChWTURFKSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoVk1ERSA9PSBPbmUpICYm ICgoVk1TUCAmIDB4MjApICE9IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJSUDEyICgwLzEvMCkgaXMgbWFwcGVkIHVuZGVy IFZNRCIpCiAgICAgICAgICAgICAgICAgICAgICAgIFBSTVYgPSBPbmUKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFBSRVMg KCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoUElOSSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBQSU5JICgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDEyKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFZESUQgIT0gMHhGRkZGRkZGRikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChcU1REMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDEyLlBSTVYpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoUFJNViA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJWTUQgU3RvcmFnZSBSdW50aW1lIEQzIHN0YXR1czoiLCBUb0hleFN0cmluZyAo UkQzQykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRDNDID0gU1RE MyAvKiBcU1REMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKF5QWFNYLlBOVk0gKCkgfHwgXlBYU1guUEFIQyAoKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJTdG9yYWdlIFJ1bnRpbWUgRDMgc3RhdHVzOiIsIFRvSGV4U3RyaW5nIChS RDNDKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkQzQyA9IFNURDMgLyog XFNURDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQWENTLCBTeXN0ZW1N ZW1vcnksIFBDMk0gKF9BRFIgKCksIFBCTlUpLCAweDA0ODApCiAgICAgICAgICAgIEZpZWxk IChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFZESUQsICAgMzIsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwg CiAgICAgICAgICAgICAgICBMMFNFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwgICAz LCAKICAgICAgICAgICAgICAgIExESVMsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NTEpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MiksIAogICAgICAgICAgICAg ICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAgICBMQVNYLCAgIDEsIAogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDVBKSwgCiAgICAgICAgICAgICAgICBBQlBYLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgIFBEQ1gsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgUERTWCwgICAxLCAK ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1QiksIAogICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDYwKSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjIpLCAKICAgICAgICAgICAg ICAgIFBTUFgsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAg ICAgICAgICAgICAgICAsICAgMTAsIAogICAgICAgICAgICAgICAgTE5SRSwgICAxLCAKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHhBNCksIAogICAgICAgICAgICAgICAgRDNIVCwgICAy LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhEOCksIAogICAgICAgICAgICAgICAgICAg ICwgICAzMCwgCiAgICAgICAgICAgICAgICBIUEVYLCAgIDEsIAogICAgICAgICAgICAgICAg UE1FWCwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMCksIAogICAgICAgICAg ICAgICAgU0NCMCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAg ICAgICAgICBOQ0I3LCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUyKSwgCiAg ICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgTDIzRSwgICAxLCAK ICAgICAgICAgICAgICAgIEwyM1IsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 MzI4KSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzJCKSwgCiAgICAgICAgICAgICAg ICBMVFNNLCAgIDgsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQwNCksIAogICAgICAg ICAgICAgICAgTFNPRSwgICAxLCAKICAgICAgICAgICAgICAgIExOU0UsICAgMQogICAgICAg ICAgICB9CgogICAgICAgICAgICBGaWVsZCAoUFhDUywgQW55QWNjLCBOb0xvY2ssIFdyaXRl QXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweERDKSwg CiAgICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgIEhQU1gsICAg MSwgCiAgICAgICAgICAgICAgICBQTVNYLCAgIDEKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChMMjNELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00gYXQgTDIzRCBTdGFy dCAgLSIsIFRvSGV4U3RyaW5nIChMVFNNKSkpCiAgICAgICAgICAgICAgICBJZiAoKFNDQjAg IT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIlBPTiBTQ0IgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTDIzUiA9IE9uZQogICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAg ICAgICAgICAgV2hpbGUgKEwyM1IpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKChMb2NhbDAgPiAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJRSBMMjNSIFRPICIs IFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkK ICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIFNDQjAgPSBaZXJvCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAg ICAgICAgICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA4KSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UENJRSBMQVNYIFRPICIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUENJZSBSUCBM VFNTTSBhdCBMMjNEIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChETDIzLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBDSWUgUlAgTFRTU00g YXQgREwyMyBTdGFydCAtIiwgVG9IZXhTdHJpbmcgKExUU00pKSkKICAgICAgICAgICAgICAg IElmICgoKExBU1ggPT0gT25lKSAmJiAoTE5SRSA9PSBaZXJvKSkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoTFNPRSA9PSBPbmUpIHx8IChMTlNFID09 IE9uZSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TE5SRSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICBMTlJFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiVG9nZ2xlIExOUkUiKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBMMjNFID0gT25lCiAgICAgICAgICAgICAgICBTbGVl cCAoMHgxMCkKICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAg IFdoaWxlIChMMjNFKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoTG9jYWwwID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlBPRiBMMjNFIFRPIiwgVG9IZXhTdHJp bmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAg ICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJQT0YgUlAgIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAg ICAgICAgICAgICAgIFNDQjAgPSBPbmUKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiUENJZSBSUCBMVFNTTSBhdCBETDIzIEVuZCAtIiwgVG9IZXhTdHJpbmcgKExUU00p KSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoTFRSViwgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChQUk1WLCBaZXJvKQogICAgICAgICAg ICBOYW1lIChSRDNDLCAweDAyKQogICAgICAgICAgICBNZXRob2QgKFBSRVMsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoVkRJRCA9PSAw eEZGRkZGRkZGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU1YzkzN2QwLTM1 NTMtNGQ3YS05MTE3LWVhNGQxOWMzNDM0ZCIpIC8qIERldmljZSBMYWJlbGluZyBJbnRlcmZh Y2UgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN3aXRjaCAo VG9JbnRlZ2VyIChBcmcyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKE9QVFMsIEJ1ZmZlciAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IC4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMsIFplcm8sIEZVTjApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoT1BUUywgMHgwNiwgRlVONikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChPUFRTLCAweDA4LCBG VU44KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKE9QVFMs IDB4MDksIEZVTjkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVs ZCAoT1BUUywgMHgwQSwgRlVOQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZUJpdEZpZWxkIChPUFRTLCAweDBCLCBGVU5CKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcxID49IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTjAgPSBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKExURU4gIT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGVU42ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoRUNSMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzEgPj0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlVO OCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZV TjkgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgwNCkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoUFBCQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVU5BID0gT25lCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChVUFJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZVTkIgPSBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJfRFNNIFBDSWUgUlAgT1BUUyAtIiwgVG9IZXhTdHJpbmcgKE9QVFMpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT1BUUykgLyogXF9TQl8uUEMwMC5SUDEyLl9E U00uT1BUUyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAyKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFta ZXJvXSA9ICgoTE1TTCA+PiAweDBBKSAmIDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTFRSViBbT25lXSA9IChMTVNMICYgMHgwM0ZGKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExUUlYgWzB4MDJdID0gKChMTlNMID4+IDB4MEEpICYgMHgwNykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVFJWIFsweDAzXSA9IChMTlNMICYg MHgwM0ZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTFRSVikg LyogXF9TQl8uUEMwMC5SUDEyLkxUUlYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBD YXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChFQ1IxKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDUjEgPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA+PSAweDAzKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgQ2FzZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNSMSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChFQ1IxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPj0gMHgw MykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMzNTAsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9uZXMsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4QzM1MCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT25lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQUEJBKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBQQkEgKEFyZzMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFVQUkQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVVBSRCAoQXJnMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKFBYU1gpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKFBDQ1gsIFBDSV9Db25maWcsIFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICBGaWVs ZCAoUENDWCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBEVklELCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4MDkpLCAKICAgICAgICAgICAgICAgICAgICBQSVhYLCAgIDgsIAogICAgICAg ICAgICAgICAgICAgIFNDQ1gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgQkNDWCwgICA4 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChQQUhDLCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgo QkNDWCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChTQ0NYID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiUFNTRCBBSENJIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoUE5WTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKEJDQ1ggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSAweDA4KSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJQU1NEIE5WTWUiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChQUkVTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoRFZJRCA9PSAweEZGRkZGRkZGKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoSVNHWCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKEJDQ1ggPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcU1REMykpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChTVEQzICE9IFplcm8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNE LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChQQUhDICgpIHx8IFBOVk0gKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJOVk1lIEQzIFN1cHBvcnQg RW5hYmxlIGZvciBDaGlsZCBEZXZpY2UiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvVVVJRCAoIjUw MjUwMzBmLTg0MmYtNGFiNC1hNTYxLTk5YTUxODk3NjJkMCIpIC8qIFVua25vd24gVVVJRCAq LywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlN0b3JhZ2VEM0VuYWJsZSIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCI1MDI1 MDMwZi04NDJmLTRhYjQtYTU2MS05OWE1MTg5NzYyZDAiKSAvKiBVbmtub3duIFVVSUQgKi8s IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJTdG9yYWdlRDNFbmFibGUiLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BS VywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2Fr ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiX1BSVyBQQ0llIFJQIiwgVG9IZXhTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoR1AxRSAhPSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJX ICgweEM3LCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDY5LCAweDA0 KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9QUzAgUENJZSBS UCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChQUFMwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgi Q2FsbGluZyBQbGF0Zm9ybSBQQ0lFIFJQIFBTMCBIb29rIikKICAgICAgICAgICAgICAgICAg ICBQUFMwICgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIlJldHVybmVkIGZyb20gUGxh dGZvcm0gUENJRSBSUCBQUzAgSG9vayIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6 IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJfUFMzIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xPVCkpKQogICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFBTMykpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQURCRyAoIkNhbGxpbmcgUGxhdGZvcm0gUENJRSBSUCBQUzMgSG9v ayIpCiAgICAgICAgICAgICAgICAgICAgUFBTMyAoKQogICAgICAgICAgICAgICAgICAgIEFE QkcgKCJSZXR1cm5lZCBmcm9tIFBsYXRmb3JtIFBDSUUgUlAgUFMzIEhvb2siKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU0QsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9EU0QgUENJZSBS UCIsIFRvSGV4U3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChBRFNEKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIkFsdGVybmF0ZSBfRFNEIFBDSWUgUlAiLCBUb0hleFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQURTRCAoKSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChQSU5JKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJm ZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQg Ki8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJGdW5kYW1lbnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAi LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICBUb1VVSUQgKCI2YjRhZDQyMC04ZmQzLTQzNjQtYWNmOC1lYjk0ODc2 ZmQ5ZWIiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAwKXt9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBUb1VVSUQgKCJmZGYwNmZhZC1mNzQ0LTQ0NTEtYmI2 NC1lY2Q3OTIyMTViMTAiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdW5kYW1l bnRhbERldmljZVJlc2V0VHJpZ2dlcmVkT25EM1RvRDAiLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoSFBNRSwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoVkRJRCAhPSAw eEZGRkZGRkZGKSAmJiAoUE1TWCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAg ICAgICAgICAgICAgICAgUE1TWCA9IE9uZQogICAgICAgICAgICAgICAgICAgIFBTUFggPSBP bmUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChfUFJULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUElDTSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDQgKCkp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIFJldHVybiAoUEQwNCAoKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU2NvcGUg KFBYU1gpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoREdCQSAhPSBaZXJv KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFBFR0Ip CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChf QURSLCAweDAwMDEwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAg ICAgICBEZXZpY2UgKFBFR0UpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNz CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6 ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IFRvVVVJRCAoImVkYmY1NzNkLWUzNTItNGNlNy1iZjIzLTM3Y2U5Zjg0MDJiOCIpIC8q IFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAo QXJnMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEZWJ1ZyA9ICJERyBTdXBwb3J0ZWQgRnVuY3Rp b25zIEJpdG1hcCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJERyBfRFNNIEZ1bjAiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFRE1YICE9IFplcm8pKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRGlz cGxheSBNdXggU3VwcG9ydGVkIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAweDAwMjAwMDAwCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAweDAwNDAwMDAwCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENv bmNhdGVuYXRlICgiSUdGWCBEU00gRnVuY3Rpb24gU3VwcG9ydCA9ICIsIFRvSGV4U3RyaW5n IChMb2NhbDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgxNSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChER0RCLCBCdWZmZXIgKDB4 MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4uCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChER0RC LCBaZXJvLCBER0RGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZUJ5dGVGaWVsZCAoREdEQiwgMHgwNCwgREdTRikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiREcgZURQIF9EU00gKDIx KSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgo RGVyZWZPZiAoQXJnMyBbWmVyb10pICYgT25lKSA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJHZXQgQ3VycmVudCBEaXNwIE11eCBT dGF0dXMiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHR09WIChFRE1YKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJTZXQgRGlzcCBNdXggU3RhdHVzIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCgoRGVyZWZPZiAoQXJnMyBbWmVyb10pICYgMHgwMikg PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJTZXQgRGlzcCBNdXggdG8gaUdmeCIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTR09WIChFRE1YLCBaZXJvKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlNldCBEaXNwIE11eCB0byBkR2Z4IikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNHT1YgKEVETVgsIE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREdERiA9IChHR09WIChFRE1YKSA8 PCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREdT RiA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiRXhpdFJlc3VsdCA6OiAiLCBUb0hleFN0cmluZyAoREdT RikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiQ3VycmVudCBNdXggOjogIiwgVG9IZXhTdHJpbmcgKERHREYpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERH REIpIC8qIFxfU0JfLlBDMDAuUlAxMi5QWFNYLlBFR0IuUEVHRS5fRFNNLkRHREIgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTYpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFyZzMpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5Q QzAwLkxQQ0IuSF9FQy5MU1RFKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeXl5eXkxQQ0IuSF9FQy5FQ1dUIChaZXJvLCBSZWZP ZiAoXl5eXl5MUENCLkhfRUMuTFNURSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTElEUyA9IFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTElEID0gWmVybwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJOb3RpZnkgTElEMCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5ICheXl5eXkxQQ0IuSF9FQy5MSUQwLCAw eDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIk9TIE5vdGlmaWVkIikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIkxpZCBjbG9zZSBmYWlsZWQiKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5Q QzAwLkxQQ0IuSF9FQy5MU1RFKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeXl5eXkxQQ0IuSF9FQy5FQ1dUIChPbmUsIFJlZk9m ICheXl5eXkxQQ0IuSF9FQy5MU1RFKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMSURTID0gT25lCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xJRCA9IDB4MDMKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiTm90aWZ5IExJRDAiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5eXl5MUENCLkhfRUMuTElEMCwgMHg4 MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJPUyBOb3RpZmllZCIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJMaWQgb3BlbiBmYWlsZWQiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRE9TLCAx LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RPUzogRGlzYWJsZSBPdXRwdXQgU3dpdGNoaW5nCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgREdEUyA9IChBcmcwICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ET0QsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfRE9EOiBEaXNwbGF5IE91dHB1dCBEZXZpY2VzCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRE5J RCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRElETCAhPSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERHRDEgPSBER0RMIChESURMKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChEREwyICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREdEMiA9IERHREwgKERETDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKERETDMgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBER0Qz ID0gREdETCAoRERMMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRERMNCAhPSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERHRDQgPSBER0RMIChEREw0KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEREw1ICE9 IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgREdENSA9IERHREwgKERETDUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKERETDYgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBER0Q2ID0gREdETCAoRERM NikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoRERMNyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERH RDcgPSBER0RMIChEREw3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEREw4ICE9IFplcm8pKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgREdEOCA9IERHREwgKERETDgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERETDkg IT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBER0Q5ID0gREdETCAoRERMOSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoREQxMCAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERHREEgPSBER0RMIChE RDEwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChERDExICE9IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg REdEQiA9IERHREwgKEREMTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEREMTIgIT0gWmVybykpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBER0RDID0gREdETCAoREQxMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoREQx MyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERHREQgPSBER0RMIChERDEzKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChERDE0ICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREdERSA9IERHREwg KEREMTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEREMTUgIT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBER0RGID0gREdETCAoREQxNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRE5JRCA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoVE1QMSwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRkZGRkZGRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVAxIFtaZXJv XSA9ICgweDAwMDEwMDAwIHwgREdEMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChUTVAxKSAvKiBcX1NCXy5QQzAwLlJQMTIuUFhTWC5QRUdCLlBFR0Uu X0RPRC5UTVAxICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEROSUQgPT0gMHgwMikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOYW1lIChUTVAyLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QMiBbWmVyb10gPSAoMHgw MDAxMDAwMCB8IERHRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRN UDIgW09uZV0gPSAoMHgwMDAxMDAwMCB8IERHRDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoVE1QMikgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1guUEVH Qi5QRUdFLl9ET0QuVE1QMiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChETklEID09IDB4MDMpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoVE1QMywgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QMyBbWmVyb10g PSAoMHgwMDAxMDAwMCB8IERHRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRNUDMgW09uZV0gPSAoMHgwMDAxMDAwMCB8IERHRDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRNUDMgWzB4MDJdID0gKDB4MDAwMTAwMDAgfCBER0QzKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRNUDMpIC8qIFxf U0JfLlBDMDAuUlAxMi5QWFNYLlBFR0IuUEVHRS5fRE9ELlRNUDMgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoRE5JRCA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFRNUDQsIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVE1QNCBbWmVyb10gPSAoMHgwMDAxMDAwMCB8IERHRDEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRNUDQgW09uZV0gPSAoMHgwMDAxMDAwMCB8IERH RDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUDQgWzB4MDJdID0g KDB4MDAwMTAwMDAgfCBER0QzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUTVA0IFsweDAzXSA9ICgweDAwMDEwMDAwIHwgREdENCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChUTVA0KSAvKiBcX1NCXy5QQzAwLlJQMTIuUFhT WC5QRUdCLlBFR0UuX0RPRC5UTVA0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEROSUQgPT0gMHgw NSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChUTVA1LCBQYWNrYWdlICgweDA1KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QNSBbWmVy b10gPSAoMHgwMDAxMDAwMCB8IERHRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRNUDUgW09uZV0gPSAoMHgwMDAxMDAwMCB8IERHRDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRNUDUgWzB4MDJdID0gKDB4MDAwMTAwMDAgfCBER0Qz KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVA1IFsweDAzXSA9ICgw eDAwMDEwMDAwIHwgREdENCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VE1QNSBbMHgwNF0gPSAoMHgwMDAxMDAwMCB8IERHRDUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoVE1QNSkgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1gu UEVHQi5QRUdFLl9ET0QuVE1QNSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChETklEID09IDB4MDYp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoVE1QNiwgUGFja2FnZSAoMHgwNikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QNiBbWmVyb10g PSAoMHgwMDAxMDAwMCB8IERHRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRNUDYgW09uZV0gPSAoMHgwMDAxMDAwMCB8IERHRDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRNUDYgWzB4MDJdID0gKDB4MDAwMTAwMDAgfCBER0QzKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVA2IFsweDAzXSA9ICgweDAw MDEwMDAwIHwgREdENCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1Q NiBbMHgwNF0gPSAoMHgwMDAxMDAwMCB8IERHRDUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRNUDYgWzB4MDVdID0gKDB4MDAwMTAwMDAgfCBER0Q2KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRNUDYpIC8qIFxfU0JfLlBD MDAuUlAxMi5QWFNYLlBFR0IuUEVHRS5fRE9ELlRNUDYgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo RE5JRCA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFRNUDcsIFBhY2thZ2UgKDB4 MDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VE1QNyBbWmVyb10gPSAoMHgwMDAxMDAwMCB8IERHRDEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRNUDcgW09uZV0gPSAoMHgwMDAxMDAwMCB8IERHRDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUDcgWzB4MDJdID0gKDB4MDAwMTAw MDAgfCBER0QzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVA3IFsw eDAzXSA9ICgweDAwMDEwMDAwIHwgREdENCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVE1QNyBbMHgwNF0gPSAoMHgwMDAxMDAwMCB8IERHRDUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRNUDcgWzB4MDVdID0gKDB4MDAwMTAwMDAgfCBE R0Q2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVA3IFsweDA2XSA9 ICgweDAwMDEwMDAwIHwgREdENykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChUTVA3KSAvKiBcX1NCXy5QQzAwLlJQMTIuUFhTWC5QRUdCLlBFR0UuX0RP RC5UTVA3ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEROSUQgPT0gMHgwOCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOYW1lIChUTVA4LCBQYWNrYWdlICgweDA4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG RkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG RkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QOCBbWmVyb10gPSAoMHgwMDAxMDAwMCB8 IERHRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUDggW09uZV0g PSAoMHgwMDAxMDAwMCB8IERHRDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRNUDggWzB4MDJdID0gKDB4MDAwMTAwMDAgfCBER0QzKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUTVA4IFsweDAzXSA9ICgweDAwMDEwMDAwIHwgREdENCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QOCBbMHgwNF0gPSAoMHgw MDAxMDAwMCB8IERHRDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRN UDggWzB4MDVdID0gKDB4MDAwMTAwMDAgfCBER0Q2KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUTVA4IFsweDA2XSA9ICgweDAwMDEwMDAwIHwgREdENykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QOCBbMHgwN10gPSAoMHgwMDAxMDAw MCB8IERHRDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo VE1QOCkgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1guUEVHQi5QRUdFLl9ET0QuVE1QOCAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChETklEID09IDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo VE1QOSwgUGFja2FnZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVE1QOSBbWmVyb10gPSAoMHgwMDAxMDAwMCB8IERHRDEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUDkgW09uZV0gPSAoMHgwMDAxMDAw MCB8IERHRDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUDkgWzB4 MDJdID0gKDB4MDAwMTAwMDAgfCBER0QzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUTVA5IFsweDAzXSA9ICgweDAwMDEwMDAwIHwgREdENCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVE1QOSBbMHgwNF0gPSAoMHgwMDAxMDAwMCB8IERH RDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUDkgWzB4MDVdID0g KDB4MDAwMTAwMDAgfCBER0Q2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUTVA5IFsweDA2XSA9ICgweDAwMDEwMDAwIHwgREdENykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVE1QOSBbMHgwN10gPSAoMHgwMDAxMDAwMCB8IERHRDgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUDkgWzB4MDhdID0gKDB4MDAw MTAwMDAgfCBER0Q5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFRNUDkpIC8qIFxfU0JfLlBDMDAuUlAxMi5QWFNYLlBFR0IuUEVHRS5fRE9ELlRNUDkg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoRE5JRCA9PSAweDBBKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKFRNUEEsIFBhY2thZ2UgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG RkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZG RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZG RkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZG RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVE1QQSBbWmVyb10gPSAoMHgwMDAxMDAwMCB8IERHRDEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEEgW09uZV0gPSAoMHgwMDAx MDAwMCB8IERHRDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEEg WzB4MDJdID0gKDB4MDAwMTAwMDAgfCBER0QzKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUTVBBIFsweDAzXSA9ICgweDAwMDEwMDAwIHwgREdENCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QQSBbMHgwNF0gPSAoMHgwMDAxMDAwMCB8 IERHRDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEEgWzB4MDVd ID0gKDB4MDAwMTAwMDAgfCBER0Q2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUTVBBIFsweDA2XSA9ICgweDAwMDEwMDAwIHwgREdENykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVE1QQSBbMHgwN10gPSAoMHgwMDAxMDAwMCB8IERHRDgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEEgWzB4MDhdID0gKDB4 MDAwMTAwMDAgfCBER0Q5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU TVBBIFsweDA5XSA9ICgweDAwMDEwMDAwIHwgREdEQSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChUTVBBKSAvKiBcX1NCXy5QQzAwLlJQMTIuUFhTWC5Q RUdCLlBFR0UuX0RPRC5UTVBBICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEROSUQgPT0gMHgwQikp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChUTVBCLCBQYWNrYWdlICgweDBCKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QQiBbWmVyb10gPSAoMHgw MDAxMDAwMCB8IERHRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRN UEIgW09uZV0gPSAoMHgwMDAxMDAwMCB8IERHRDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRNUEIgWzB4MDJdID0gKDB4MDAwMTAwMDAgfCBER0QzKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVBCIFsweDAzXSA9ICgweDAwMDEwMDAw IHwgREdENCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QQiBbMHgw NF0gPSAoMHgwMDAxMDAwMCB8IERHRDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRNUEIgWzB4MDVdID0gKDB4MDAwMTAwMDAgfCBER0Q2KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUTVBCIFsweDA2XSA9ICgweDAwMDEwMDAwIHwgREdE NykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QQiBbMHgwN10gPSAo MHgwMDAxMDAwMCB8IERHRDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRNUEIgWzB4MDhdID0gKDB4MDAwMTAwMDAgfCBER0Q5KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUTVBCIFsweDA5XSA9ICgweDAwMDEwMDAwIHwgREdEQSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QQiBbMHgwQV0gPSAoMHgwMDAx MDAwMCB8IERHREIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoVE1QQikgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1guUEVHQi5QRUdFLl9ET0QuVE1QQiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChETklEID09IDB4MEMpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoVE1QQywgUGFja2FnZSAoMHgwQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZG RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZG RkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZG RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVE1QQyBbWmVyb10gPSAoMHgwMDAxMDAwMCB8IERHRDEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEMgW09uZV0gPSAoMHgwMDAxMDAw MCB8IERHRDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEMgWzB4 MDJdID0gKDB4MDAwMTAwMDAgfCBER0QzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUTVBDIFsweDAzXSA9ICgweDAwMDEwMDAwIHwgREdENCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVE1QQyBbMHgwNF0gPSAoMHgwMDAxMDAwMCB8IERH RDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEMgWzB4MDVdID0g KDB4MDAwMTAwMDAgfCBER0Q2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUTVBDIFsweDA2XSA9ICgweDAwMDEwMDAwIHwgREdENykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVE1QQyBbMHgwN10gPSAoMHgwMDAxMDAwMCB8IERHRDgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEMgWzB4MDhdID0gKDB4MDAw MTAwMDAgfCBER0Q5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVBD IFsweDA5XSA9ICgweDAwMDEwMDAwIHwgREdEQSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVE1QQyBbMHgwQV0gPSAoMHgwMDAxMDAwMCB8IERHREIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEMgWzB4MEJdID0gKDB4MDAwMTAwMDAg fCBER0RDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRN UEMpIC8qIFxfU0JfLlBDMDAuUlAxMi5QWFNYLlBFR0IuUEVHRS5fRE9ELlRNUEMgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoRE5JRCA9PSAweDBEKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFRN UEQsIFBhY2thZ2UgKDB4MEQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVE1QRCBbWmVyb10gPSAoMHgwMDAxMDAwMCB8IERHRDEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEQgW09uZV0gPSAoMHgwMDAxMDAwMCB8IERH RDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEQgWzB4MDJdID0g KDB4MDAwMTAwMDAgfCBER0QzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUTVBEIFsweDAzXSA9ICgweDAwMDEwMDAwIHwgREdENCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVE1QRCBbMHgwNF0gPSAoMHgwMDAxMDAwMCB8IERHRDUpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEQgWzB4MDVdID0gKDB4MDAw MTAwMDAgfCBER0Q2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVBE IFsweDA2XSA9ICgweDAwMDEwMDAwIHwgREdENykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVE1QRCBbMHgwN10gPSAoMHgwMDAxMDAwMCB8IERHRDgpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEQgWzB4MDhdID0gKDB4MDAwMTAwMDAg fCBER0Q5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVBEIFsweDA5 XSA9ICgweDAwMDEwMDAwIHwgREdEQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVE1QRCBbMHgwQV0gPSAoMHgwMDAxMDAwMCB8IERHREIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRNUEQgWzB4MEJdID0gKDB4MDAwMTAwMDAgfCBER0RD KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVBEIFsweDBDXSA9ICgw eDAwMDEwMDAwIHwgREdERCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChUTVBEKSAvKiBcX1NCXy5QQzAwLlJQMTIuUFhTWC5QRUdCLlBFR0UuX0RPRC5U TVBEICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEROSUQgPT0gMHgwRSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChUTVBFLCBQYWNrYWdlICgweDBFKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG RkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG RkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZG RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZG RkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZG RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVE1QRSBbWmVyb10gPSAoMHgwMDAxMDAwMCB8IERHRDEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEUgW09uZV0gPSAoMHgwMDAx MDAwMCB8IERHRDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEUg WzB4MDJdID0gKDB4MDAwMTAwMDAgfCBER0QzKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUTVBFIFsweDAzXSA9ICgweDAwMDEwMDAwIHwgREdENCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QRSBbMHgwNF0gPSAoMHgwMDAxMDAwMCB8 IERHRDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEUgWzB4MDVd ID0gKDB4MDAwMTAwMDAgfCBER0Q2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUTVBFIFsweDA2XSA9ICgweDAwMDEwMDAwIHwgREdENykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVE1QRSBbMHgwN10gPSAoMHgwMDAxMDAwMCB8IERHRDgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEUgWzB4MDhdID0gKDB4 MDAwMTAwMDAgfCBER0Q5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU TVBFIFsweDA5XSA9ICgweDAwMDEwMDAwIHwgREdEQSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVE1QRSBbMHgwQV0gPSAoMHgwMDAxMDAwMCB8IERHREIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEUgWzB4MEJdID0gKDB4MDAwMTAw MDAgfCBER0RDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVBFIFsw eDBDXSA9ICgweDAwMDEwMDAwIHwgREdERCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVE1QRSBbMHgwRF0gPSAoMHgwMDAxMDAwMCB8IERHREUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVE1QRSkgLyogXF9TQl8uUEMwMC5S UDEyLlBYU1guUEVHQi5QRUdFLl9ET0QuVE1QRSAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChETklE ID09IDB4MEYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoVE1QRiwgUGFja2FnZSAoMHgwRikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QRiBbWmVyb10g PSAoMHgwMDAxMDAwMCB8IERHRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRNUEYgW09uZV0gPSAoMHgwMDAxMDAwMCB8IERHRDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRNUEYgWzB4MDJdID0gKDB4MDAwMTAwMDAgfCBER0QzKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVBGIFsweDAzXSA9ICgweDAw MDEwMDAwIHwgREdENCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1Q RiBbMHgwNF0gPSAoMHgwMDAxMDAwMCB8IERHRDUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRNUEYgWzB4MDVdID0gKDB4MDAwMTAwMDAgfCBER0Q2KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTVBGIFsweDA2XSA9ICgweDAwMDEwMDAw IHwgREdENykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QRiBbMHgw N10gPSAoMHgwMDAxMDAwMCB8IERHRDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRNUEYgWzB4MDhdID0gKDB4MDAwMTAwMDAgfCBER0Q5KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUTVBGIFsweDA5XSA9ICgweDAwMDEwMDAwIHwgREdE QSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QRiBbMHgwQV0gPSAo MHgwMDAxMDAwMCB8IERHREIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRNUEYgWzB4MEJdID0gKDB4MDAwMTAwMDAgfCBER0RDKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUTVBGIFsweDBDXSA9ICgweDAwMDEwMDAwIHwgREdERCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QRiBbMHgwRF0gPSAoMHgwMDAx MDAwMCB8IERHREUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEYg WzB4MEVdID0gKDB4MDAwMTAwMDAgfCBER0RGKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFRNUEYpIC8qIFxfU0JfLlBDMDAuUlAxMi5QWFNYLlBFR0Iu UEVHRS5fRE9ELlRNUEYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRE5JRCA9PSAweDEwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5hbWUgKFRNUEcsIFBhY2thZ2UgKDB4MTApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG RkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG RkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QRyBbWmVyb10gPSAoMHgwMDAxMDAwMCB8 IERHRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEcgW09uZV0g PSAoMHgwMDAxMDAwMCB8IERHRDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRNUEcgWzB4MDJdID0gKDB4MDAwMTAwMDAgfCBER0QzKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUTVBHIFsweDAzXSA9ICgweDAwMDEwMDAwIHwgREdENCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QRyBbMHgwNF0gPSAoMHgw MDAxMDAwMCB8IERHRDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRN UEcgWzB4MDVdID0gKDB4MDAwMTAwMDAgfCBER0Q2KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUTVBHIFsweDA2XSA9ICgweDAwMDEwMDAwIHwgREdENykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE1QRyBbMHgwN10gPSAoMHgwMDAxMDAw MCB8IERHRDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEcgWzB4 MDhdID0gKDB4MDAwMTAwMDAgfCBER0Q5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUTVBHIFsweDA5XSA9ICgweDAwMDEwMDAwIHwgREdEQSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVE1QRyBbMHgwQV0gPSAoMHgwMDAxMDAwMCB8IERH REIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEcgWzB4MEJdID0g KDB4MDAwMTAwMDAgfCBER0RDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUTVBHIFsweDBDXSA9ICgweDAwMDEwMDAwIHwgREdERCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVE1QRyBbMHgwRF0gPSAoMHgwMDAxMDAwMCB8IERHREUpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRNUEcgWzB4MEVdID0gKDB4MDAw MTAwMDAgfCBER0RGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFRNUEcpIC8qIFxfU0JfLlBDMDAuUlAxMi5QWFNYLlBFR0IuUEVHRS5fRE9ELlRNUEcg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDQwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNl IChERURQKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgU2VyaWFsaXplZCkgIC8vIF9BRFI6 IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKDB4MEYwMCAmIERHRDEpID09IDB4MDQw MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERHRFggPSBER0QxIC8qIEV4dGVybmFsIHJl ZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgoMHhGRkZGICYgREdEWCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKDB4 MEYwMCAmIERHRDIpID09IDB4MDQwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERHRFgg PSBER0QyIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgREdEWCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZUlmICgoKDB4MEYwMCAmIERHRDMpID09IDB4MDQwMCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERHRFggPSBER0QzIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZG ICYgREdEWCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKDB4MEYwMCAmIERHRDQp ID09IDB4MDQwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERHRFggPSBER0Q0IC8qIEV4 dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgoMHhGRkZGICYgREdEWCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZUlmICgoKDB4MEYwMCAmIERHRDUpID09IDB4MDQwMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERHRFggPSBER0Q1IC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgREdEWCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKDB4MEYwMCAmIERHRDYpID09IDB4MDQwMCkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERHRFggPSBER0Q2IC8qIEV4dGVybmFsIHJlZmVy ZW5jZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgoMHhGRkZGICYgREdEWCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKDB4MEYw MCAmIERHRDcpID09IDB4MDQwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERHRFggPSBE R0Q3IC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgREdEWCkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZUlmICgoKDB4MEYwMCAmIERHRDgpID09IDB4MDQwMCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERHRFggPSBER0Q4IC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYg REdEWCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKDB4MEYwMCAmIERHRDkpID09 IDB4MDQwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERHRFggPSBER0Q5IC8qIEV4dGVy bmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgoMHhGRkZGICYgREdEWCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlm ICgoKDB4MEYwMCAmIERHREEpID09IDB4MDQwMCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IERHRFggPSBER0RBIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgREdEWCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZUlmICgoKDB4MEYwMCAmIERHREIpID09IDB4MDQwMCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERHRFggPSBER0RCIC8qIEV4dGVybmFsIHJlZmVyZW5j ZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgo MHhGRkZGICYgREdEWCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKDB4MEYwMCAm IERHREMpID09IDB4MDQwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERHRFggPSBER0RD IC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgREdEWCkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZUlmICgoKDB4MEYwMCAmIERHREQpID09IDB4MDQwMCkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERHRFggPSBER0REIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgREdE WCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKDB4MEYwMCAmIERHREUpID09IDB4 MDQwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERHRFggPSBER0RFIC8qIEV4dGVybmFs IHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgoMHhGRkZGICYgREdEWCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgo KDB4MEYwMCAmIERHREYpID09IDB4MDQwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERH RFggPSBER0RGIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgREdEWCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiREc6IGVE UCBpcyBub3QgcHJlc2VudCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MUYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0JDTCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9C Q0w6IEJyaWdodG5lc3MgQ29udHJvbCBMZXZlbHMKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHg2NykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1MCwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0 LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDgsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwOSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MEIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQywg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBELCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDEwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDEzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2LCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgxOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDE5LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgx QiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUQsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDFGLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MjAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgyMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDIyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyNCwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1LCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjYsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgyNywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MjksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgyQSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJCLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MkMsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyRCwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDJFLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgzMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDMxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MzIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMywgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDM0LCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzUsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgzNiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDM3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MzgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgzOSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNB LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0IsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzQywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNELCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4M0UsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgzRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDQwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4NDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0Miwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQzLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDQsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0NSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDQ2LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4NDcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHg0OCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDQ5LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NEEsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0QiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDRDLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4NEQsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHg0RSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDRGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4NTAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1 MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUyLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTMsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1NCwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDU1LCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4NTYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHg1NywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDU4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTks IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1QSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDVCLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NUMsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHg1RCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDVFLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4NUYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg2MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDYxLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2MywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDY0CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9CQ00sIDEsIE5vdFNlcmlh bGl6ZWQpICAvLyBfQkNNOiBCcmlnaHRuZXNzIENvbnRyb2wgTWV0aG9kCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKChBcmcwID49IFplcm8pICYmIChBcmcwIDw9IDB4NjQpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQkNMUCA9ICgoQXJnMCAqIDB4RkYpIC8gMHg2NCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJDTFAgfD0gMHg4MDAwMDAwMAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNMQyA9IDB4MDIKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCUkwgPSBBcmcwCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0JR QywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9CUUM6IEJyaWdodG5lc3MgUXVlcnkgQ3VycmVu dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChEQlJMKSAvKiBFeHRlcm5hbCByZWZlcmVuY2Ug Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChER0RM LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEROSUQrKwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IChBcmcwICYgMHgwRjBGKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMSA9ICgweDgwMDAwMDAwIHwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRElETCA9PSBMb2NhbDApKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERETDIgPT0gTG9j YWwwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChEREwzID09IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoRERMNCA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERETDUgPT0gTG9jYWwwKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEREw2ID09IExvY2Fs MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo RERMNyA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKERETDggPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo TG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChEREw5ID09IExvY2FsMCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoREQxMCA9PSBMb2NhbDAp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERE MTEgPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChERDEyID09IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoREQxMyA9PSBMb2NhbDApKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEREMTQgPT0gTG9jYWwwKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChERDE1 ID09IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLlBD MDAuTFBDQikKICAgIHsKICAgICAgICBEZXZpY2UgKEhQRVQpCiAgICAgICAgewogICAgICAg ICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwMTAzIikgLyogSFBFVCBTeXN0ZW0gVGlt ZXIgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCBa ZXJvKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWVtb3J5MzJG aXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4RkVEMDAwMDAsICAgICAg ICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMCwgICAg ICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgIF9ZNEEpCiAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoSFBU RSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAv LyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmIChIUFRFKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUEMwMC5MUENCLkhQRVQuX1k0QS5f QkFTLCBIUFQwKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAg SFBUMCA9IEhQVEIgLyogXEhQVEIgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLlBDMDAuTFBDQi5IUEVULkJVRjAgKi8KICAg ICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChJUElDKQogICAgICAgIHsK ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDAwMCIpIC8qIDgyNTktY29t cGF0aWJsZSBQcm9ncmFtbWFibGUgSW50ZXJydXB0IENvbnRyb2xsZXIgKi8pICAvLyBfSElE OiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRl ICgpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAw MjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAw eDAwMjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAg ICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg IDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDAy NCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4 MDAyNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg IDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAg MHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDI4 LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw MDI4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAg MHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAw eDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAwMkMs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAw MkMsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAw eDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4 MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDAzMCwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAz MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4 MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgw MiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDM0LCAg ICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDM0 LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw MSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDAy LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAwMzgsICAg ICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMzgs ICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MDIs ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDAzQywgICAg ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAzQywg ICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDEs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwMiwg ICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMEEwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMEEwLCAg ICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMSwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDAyLCAg ICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAwQTQsICAgICAg ICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwQTQsICAg ICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAxLCAg ICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MDIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDBBOCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDBBOCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDEsICAg ICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAg ICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMEFDLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMEFDLCAgICAg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAg ICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAwQjAsICAgICAgICAg ICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwQjAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAg ICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDBCNCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDBCNCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAg ICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMEI4LCAgICAgICAgICAg ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMEI4LCAgICAgICAg ICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAg ICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg IElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAwQkMsICAgICAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwQkMsICAgICAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAg ICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg SU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDREMCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDREMCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAg ICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJ UlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAgICAgezJ9CiAgICAgICAgICAgIH0pCiAg ICAgICAgfQoKICAgICAgICBEZXZpY2UgKE1BVEgpCiAgICAgICAgewogICAgICAgICAgICBO YW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzA0IikgLyogeDg3LWNvbXBhdGlibGUgRmxvYXRp bmcgUG9pbnQgUHJvY2Vzc2luZyBVbml0ICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAg ICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3Vy cmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMEYwLCAgICAgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMEYwLCAgICAgICAgICAg ICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAg ICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElS UU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAgICAgICB7MTN9CiAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0 YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBDSFMgPT0gUENISCkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFGKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMRFJDKQogICAgICAg IHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpIC8qIFBOUCBN b3RoZXJib2FyZCBSZXNvdXJjZXMgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAg ICAgICBOYW1lIChfVUlELCAweDAyKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAg IE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVz b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDAyRSwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAyRSwgICAgICAgICAgICAgLy8gUmFu Z2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8g QWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDRFLCAgICAgICAgICAgICAvLyBSYW5nZSBN aW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDRFLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBB bGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExl bmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUx NiwKICAgICAgICAgICAgICAgICAgICAweDAwNjEsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwNjEsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFs aWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2 LAogICAgICAgICAgICAgICAgICAgIDB4MDA2MywgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDA2MywgICAgICAgICAgICAgLy8gUmFuZ2Ug TWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxp Z25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgMHgwMDY1LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDY1LCAgICAgICAgICAgICAvLyBSYW5nZSBN YXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwK ICAgICAgICAgICAgICAgICAgICAweDAwNjcsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0KICAgICAgICAgICAgICAgICAgICAweDAwNjcsICAgICAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdu bWVudAogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAog ICAgICAgICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25t ZW50CiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAg ICAgICAgICAgICAgICAgICAgMHgwMDgwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgICAgICAgMHgwMDgwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhp bXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1l bnQKICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAg ICAgICAgICAgICAgICAgICAweDAwOTIsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0K ICAgICAgICAgICAgICAgICAgICAweDAwOTIsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVu dAogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAg ICAgICAgICAgICAgICAgIDB4MDBCMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQog ICAgICAgICAgICAgICAgICAgIDB4MDBCMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 CiAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAg ICAgICAgICAgICAgICAgMHgwNjgwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgMHgwNjgwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQK ICAgICAgICAgICAgICAgICAgICAweDIwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAweDE2NEUsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAg ICAgICAgICAgICAgICAgICAweDE2NEUsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0K ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAg ICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChSVEMpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQjAwIikgLyogQVQgUmVhbC1UaW1lIENsb2NrICovKSAgLy8gX0hJRDogSGFyZHdhcmUg SUQKICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NS UzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDcwLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDcwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg ICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAgICAgICB7OH0KICAgICAgICAgICAg fSkKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU QTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoU1RBUyA9PSBP bmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw RikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoVElNUikKICAg ICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAxMDAiKSAvKiBQ Qy1jbGFzcyBTeXN0ZW0gVGltZXIgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAg ICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpICAvLyBfQ1JTOiBDdXJyZW50 IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAwNDAsICAgICAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwNDAsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAg Ly8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDA1MCwgICAgICAgICAgICAgLy8gUmFu Z2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDA1MCwgICAgICAgICAgICAgLy8g UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAg Ly8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAv LyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJUlFOb0Zs YWdzICgpCiAgICAgICAgICAgICAgICAgICAgezB9CiAgICAgICAgICAgIH0pCiAgICAgICAg fQoKICAgICAgICBEZXZpY2UgKENXRFQpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2Qg KF9ISUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKCgoQ1BJRCAmIDB4MEZGRjBGRjApID09IDB4 MDAwQzA2NTApIHx8ICgoQ1BJRCAmIDB4MEZGRjBGRjAKICAgICAgICAgICAgICAgICAgICAp ID09IDB4MDAwQjA2NTApKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKCJJTlRDMTA5RiIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICBFbHNlSWYgKCgoKENQSUQgJiAweDBGRkYwRkYwKSA9PSAweDAwMEMwNjYwKSB8fCAoKENQ SUQgJiAKICAgICAgICAgICAgICAgICAgICAweDBGRkYwRkYwKSA9PSAweDAwMEMwNkEwKSkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiSU5UQzEw OUYiKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoIklOVEMxMDlEIikKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX0NJRCwgRWlz YUlkICgiUE5QMEMwMiIpIC8qIFBOUCBNb3RoZXJib2FyZCBSZXNvdXJjZXMgKi8pICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFs aXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElPIChEZWNv ZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAg ICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAweDA0LCAg ICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICBfWTRCKQog ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUkJV RiwgXF9TQi5QQzAwLkxQQ0IuQ1dEVC5fQ1JTLl9ZNEIuX01JTiwgT01JTikgIC8vIF9NSU46 IE1pbmltdW0gQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KFJCVUYsIFxfU0IuUEMwMC5MUENCLkNXRFQuX0NSUy5fWTRCLl9NQVgsIE9NQVgpICAvLyBf TUFYOiBNYXhpbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgT01JTiA9IChQTUJT ICsgMHg1NCkKICAgICAgICAgICAgICAgIE9NQVggPSAoUE1CUyArIDB4NTQpCiAgICAgICAg ICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLlBDMDAuTFBDQi5DV0RULl9DUlMuUkJV RiAqLwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEFDQ0YsIDEs IFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NC LlBDMDAuTFBDQi5IX0VDKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCha ZXJvID09IEFyZzApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIF5I X0VDLlVQQ0YgKFplcm8pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg ICB9CgogICAgICAgIE1ldGhvZCAoTkJJWCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5MUENCLkhfRUMpKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBOb3RpZnkgKF5IX0VDLkJBVDAsIDB4ODEpIC8vIElu Zm9ybWF0aW9uIENoYW5nZQogICAgICAgICAgICAgICAgTm90aWZ5ICheSF9FQy5CQVQxLCAw eDgxKSAvLyBJbmZvcm1hdGlvbiBDaGFuZ2UKICAgICAgICAgICAgfQogICAgICAgIH0KCiAg ICAgICAgTWV0aG9kIChOQlNULCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkxQQ0IuSF9FQykpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIE5vdGlmeSAoXkhfRUMuQkFUMCwgMHg4MCkgLy8gU3RhdHVzIENo YW5nZQogICAgICAgICAgICAgICAgTm90aWZ5ICheSF9FQy5CQVQxLCAweDgwKSAvLyBTdGF0 dXMgQ2hhbmdlCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoU1dV QiwgNCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KFxfU0IuUEMwMC5MUENCLkhfRUMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ ZiAoKChBcmcwID09IDB4MDMpIHx8IChBcmcwID09IDB4MDQpKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgJiAweDQwKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiAmIDB4MDgpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBe SF9FQy5VUEJUICgweDA2LCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeSF9FQy5VUEJUICgweDA2LCBaZXJvKQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgJiAweDgwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiAmIDB4MTApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeSF9FQy5VUEJUICgweDA3 LCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeSF9FQy5VUEJUICgweDA3LCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBeSF9FQy5P TlRNID0gT25lCiAgICAgICAgICAgICAgICAgICAgTElEUyA9IF5IX0VDLkVSTEQgKCkKICAg ICAgICAgICAgICAgICAgICBJZiAoQXJnMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoTElEUyA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5HRlgwLkNMSUQgPSAw eDgwMDAwMDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoTElEUyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeXkdGWDAuQ0xJRCA9IDB4ODAwMDAwMDMKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgTm90aWZ5ICheSF9FQy5MSUQwLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdl CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gXkhfRUMuRVJCMSAoKQogICAgICAgICAg ICAgICAgICAgIF5IX0VDLkJOVU0gPSAoKExvY2FsMCAmIDB4MDgpID4+IDB4MDMpCiAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJCTlVNIHJlc3VtZSBmcm9tIFN4 OiAiLCBUb0hleFN0cmluZyAoXkhfRUMuQk5VTSkpKQogICAgICAgICAgICAgICAgICAgIElm ICgoXkhfRUMuQk5VTSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoXkhfRUMuRVJWUCAoKSAhPSBQV1JTKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFdSUyA9IF5I X0VDLkVSVlAgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQTlQgKCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJQTlQgKCkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChe SF9FQy5FUkFQICgpICE9IFBXUlMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUFdSUyA9IF5IX0VDLkVSQVAgKCkKICAgICAgICAgICAgICAgICAg ICAgICAgU1BOVCAoKQogICAgICAgICAgICAgICAgICAgICAgICBCUE5UICgpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKF5eXlBXUkIuUEJTVCA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKFBCU1MpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5vdGlmeSAoUFdSQiwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBCU1MgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQR1dELCA0LCBTZXJpYWxpemVkKQogICAg ICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkxQQ0IuSF9FQykp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF5IX0VDLlVURUMgKFplcm8sIEFyZzAp CiAgICAgICAgICAgICAgICBeSF9FQy5VVEVDIChPbmUsIEFyZzEpCiAgICAgICAgICAgICAg ICBeSF9FQy5VVEVDICgweDAyLCBBcmcyKQogICAgICAgICAgICAgICAgXkhfRUMuVVRFQyAo MHgwMywgQXJnMykKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChQ R0NMLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoXF9TQi5QQzAwLkxQQ0IuSF9FQykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IF5IX0VDLlBHRVIgKCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9k IChNWFRQLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXF9TQi5QQzAwLkxQQ0IuSF9FQykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIExvY2FsMCA9IF5IX0VDLkVSTVQgKCkKICAgICAgICAgICAgICAgIExvY2FsMCA9ICgw eDBBQUMgKyAoTG9jYWwwICogMHgwQSkpCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2Fs MCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuICgweDBCQzIpCiAgICAgICAg fQoKICAgICAgICBNZXRob2QgKFVQRlMsIDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg ICAgICAgICBJZiAoKENvbmRSZWZPZiAoXF9TQi5QQzAwLkxQQ0IuSF9FQykgJiYgQXJnMCkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKEFyZzEgIT0gWmVybykgJiYg KEFyZzIgIT0gWmVybykpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IF5IX0VDLlVQRlMgKE9uZSwgQUMwRikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIEVsc2VJZiAoKChBcmcxID09IFplcm8pICYmIChBcmcyICE9IFplcm8pKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBeSF9FQy5VUEZTIChPbmUsIEFDMUYp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgXkhfRUMuVVBGUyAoT25lLCBaZXJvKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFRT REQsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChcX1NCLlBDMDAuTFBDQi5IX0VDKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TG9jYWwwID0gKCheSF9FQy5FUlBIICgpICogMHgwQSkgKyAweDBBQUMpCiAgICAgICAgICAg ICAgICBMb2NhbDEgPSBeSF9FQy5FUlNQICgpCiAgICAgICAgICAgICAgICBMb2NhbDIgPSBe SF9FQy5FUlBNICgpCiAgICAgICAgICAgICAgICBMb2NhbDMgPSBeSF9FQy5FUlBEICgpCiAg ICAgICAgICAgICAgICBMb2NhbDQgPSBeSF9FQy5FUlBIICgpCiAgICAgICAgICAgICAgICBJ ZiAoKEFyZzAgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBBcmcxIFtaZXJvXSA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgIEFyZzEgW09uZV0g PSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICBBcmcxIFsweDAyXSA9IExvY2FsMAogICAg ICAgICAgICAgICAgICAgIEFyZzEgWzB4MDNdID0gTG9jYWwwCiAgICAgICAgICAgICAgICAg ICAgQXJnMSBbMHgwNF0gPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICBBcmcxIFsweDA2 XSA9IChEZXJlZk9mIChMb2NhbDEgW09uZV0pICsgMHgwQUFDCiAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICBBcmcxIFsweDA3XSA9IChEZXJlZk9mIChM b2NhbDEgWzB4MDJdKSArIDB4MEFBQwogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgQXJnMSBbMHgwOF0gPSAoRGVyZWZPZiAoTG9jYWwxIFsweDAzXSkg KyAweDBBQUMKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg IEFyZzEgWzB4MDldID0gKERlcmVmT2YgKExvY2FsMSBbMHgwNF0pICsgMHgwQUFDCiAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBBcmcxIFsweDA5XSA9 ICgoTG9jYWwyICogMHgwQSkgKyAweDBBQUMpCiAgICAgICAgICAgICAgICAgICAgQXJnMSBb MHgwQV0gPSAoKExvY2FsMyAqIDB4MEEpICsgMHgwQUFDKQogICAgICAgICAgICAgICAgICAg IEFyZzEgWzB4MEJdID0gKChMb2NhbDQgKiAweDBBKSArIDB4MEFBQykKICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBBcmcxIFtaZXJvXSA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgIEFy ZzEgW09uZV0gPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICBBcmcxIFsweDAyXSA9IExv Y2FsMAogICAgICAgICAgICAgICAgICAgIEFyZzEgWzB4MDNdID0gTG9jYWwwCiAgICAgICAg ICAgICAgICAgICAgQXJnMSBbMHgwNF0gPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICBB cmcxIFsweDA1XSA9IChEZXJlZk9mIChMb2NhbDEgW1plcm9dKSArIDB4MEFBQwogICAgICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgQXJnMSBbMHgwNl0gPSAo RGVyZWZPZiAoTG9jYWwxIFtPbmVdKSArIDB4MEFBQwogICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgQXJnMSBbMHgwN10gPSAoRGVyZWZPZiAoTG9jYWwx IFsweDAyXSkgKyAweDBBQUMKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgIEFyZzEgWzB4MDhdID0gKERlcmVmT2YgKExvY2FsMSBbMHgwM10pICsgMHgw QUFDCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBBcmcx IFsweDA5XSA9IChEZXJlZk9mIChMb2NhbDEgWzB4MDRdKSArIDB4MEFBQwogICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgQXJnMSBbMHgwQV0gPSAoKExv Y2FsMiAqIDB4MEEpICsgMHgwQUFDKQogICAgICAgICAgICAgICAgICAgIEFyZzEgWzB4MEJd ID0gKChMb2NhbDMgKiAweDBBKSArIDB4MEFBQykKICAgICAgICAgICAgICAgICAgICBBcmcx IFsweDBDXSA9ICgoTG9jYWw0ICogMHgwQSkgKyAweDBBQUMpCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSBPbmUpKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBBcmcxIFsweDBEXSA9IFxfVFouVFowMC5fVE1QICgp CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBBcmcxIFsweDBFXSA9IFxfVFouVFowMC5fVE1QICgpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIFJldHVybiAoQXJnMSkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo UFNERCwgMSwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFxfU0IuUEMwMC5MUENCLkhfRUMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBBcmcwIFtaZXJvXSA9IFplcm8KICAgICAgICAgICAgICAgIEFyZzAgW09uZV0gPSBaZXJv CiAgICAgICAgICAgICAgICBBcmcwIFsweDAyXSA9IFplcm8KICAgICAgICAgICAgICAgIExv Y2FsMCA9IF5IX0VDLkVSQlAgKCkKICAgICAgICAgICAgICAgIEFyZzAgWzB4MDZdID0gRGVy ZWZPZiAoTG9jYWwwIFtaZXJvXSkKICAgICAgICAgICAgICAgIEFyZzAgWzB4MDddID0gRGVy ZWZPZiAoTG9jYWwwIFtPbmVdKQogICAgICAgICAgICAgICAgQXJnMCBbMHgwOF0gPSBEZXJl Zk9mIChMb2NhbDAgWzB4MDJdKQogICAgICAgICAgICAgICAgQXJnMCBbMHgwOV0gPSBEZXJl Zk9mIChMb2NhbDAgWzB4MDNdKQogICAgICAgICAgICAgICAgQXJnMCBbMHgwQV0gPSBEZXJl Zk9mIChMb2NhbDAgWzB4MDRdKQogICAgICAgICAgICAgICAgQXJnMCBbMHgwQl0gPSBEZXJl Zk9mIChMb2NhbDAgWzB4MDVdKQogICAgICAgICAgICAgICAgQXJnMCBbMHgwQ10gPSBEZXJl Zk9mIChMb2NhbDAgWzB4MDZdKQogICAgICAgICAgICAgICAgQXJnMCBbMHgwRF0gPSBEZXJl Zk9mIChMb2NhbDAgWzB4MDddKQogICAgICAgICAgICAgICAgQXJnMCBbMHgwRV0gPSBEZXJl Zk9mIChMb2NhbDAgWzB4MDhdKQogICAgICAgICAgICAgICAgQXJnMCBbMHgwRl0gPSBEZXJl Zk9mIChMb2NhbDAgWzB4MDldKQogICAgICAgICAgICAgICAgQXJnMCBbMHgxMF0gPSBEZXJl Zk9mIChMb2NhbDAgWzB4MEFdKQogICAgICAgICAgICAgICAgTG9jYWwwID0gXkhfRUMuRVJC QSAoKQogICAgICAgICAgICAgICAgSWYgKExvY2FsMCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBMb2NhbDAgPSB+TG9jYWwwIHw9IDB4RkZGRjAwMDAKICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgPSAoTG9jYWwwICs9IE9uZSAqIDB4MEEpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgQXJnMCBbMHgxMV0gPSBMb2NhbDAKICAgICAg ICAgICAgICAgIEFyZzAgWzB4MTJdID0gWmVybwogICAgICAgICAgICB9CgogICAgICAgICAg ICBSZXR1cm4gKEFyZzApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKE9TREQsIDIsIFNl cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBD MDAuTFBDQi5IX0VDKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQXJnMSBb WmVyb10gPSBeSF9FQy5FUlBOICgpCiAgICAgICAgICAgICAgICAgICAgQXJnMSBbT25lXSA9 IF5IX0VDLkVSQ0YgKCkKICAgICAgICAgICAgICAgICAgICBBcmcxIFsweDAyXSA9IERlcmVm T2YgKF5IX0VDLkVSU1AgKCkgWzB4MDJdKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFyZzEg W1plcm9dID0gXkhfRUMuRVJQTiAoKQogICAgICAgICAgICAgICAgICAgIEFyZzEgW09uZV0g PSBeSF9FQy5FUkNGICgpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0 dXJuIChBcmcxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2Ug KDB4MDApe30pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFJQTUQsIDAsIFNlcmlhbGl6 ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuTFBD Qi5IX0VDKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICheSF9FQy5F UlBDICgpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgx QSl7fSkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoV1BNRCwgMSwgU2VyaWFsaXplZCkK ICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5MUENCLkhf RUMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBeSF9FQy5XUEVEIChBcmcwKQog ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKElTUEMsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAu TFBDQi5IX0VDKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXkhfRUMuU1BFVCAo KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEVOUEMsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NC LlBDMDAuTFBDQi5IX0VDKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXkhfRUMu RVBFVCAoKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFJQQ1Ms IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChcX1NCLlBDMDAuTFBDQi5IX0VDKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg UmV0dXJuICheSF9FQy5FUlBTICgpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFJQRUMsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5MUENCLkhfRUMpKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBMb2NhbDEgPSBeSF9FQy5FUlBFICgpCiAgICAgICAgICAgICAgICBM b2NhbDAgfD0gRGVyZWZPZiAoTG9jYWwxIFtaZXJvXSkKICAgICAgICAgICAgICAgIExvY2Fs MCB8PSAoRGVyZWZPZiAoTG9jYWwxIFtPbmVdKSA8PCAweDA4KQogICAgICAgICAgICAgICAg TG9jYWwwIHw9IChEZXJlZk9mIChMb2NhbDEgWzB4MDJdKSA8PCAweDEwKQogICAgICAgICAg ICAgICAgTG9jYWwwIHw9IChEZXJlZk9mIChMb2NhbDEgWzB4MDNdKSA8PCAweDE4KQogICAg ICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9CgogICAg ICAgIE1ldGhvZCAoVVBESywgMSwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5MUENCLkhfRUMuVVBCVCkpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIF5IX0VDLlVQQlQgKDB4OTAsIEFyZzApCiAgICAgICAgICAg IH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoTlRJUiwgMSwgU2VyaWFsaXplZCkKICAg ICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5MUENCLkhfRUMu RUNOVCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF5IX0VDLkVDTlQgKEFyZzAp CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoV0tFQywgMCwgU2Vy aWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMw MC5MUENCLkhfRUMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKExJRFMg IT0gXkhfRUMuRVJMRCAoKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgTElEUyA9IF5IX0VDLkVSTEQgKCkKICAgICAgICAgICAgICAgICAgICBJZiAoSUdEUykK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICheXkdG WDAuR0xJRCAoTElEUykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5eR0ZYMC5DTElEIHw9IDB4ODAwMDAwMDAgLyogRXh0ZXJuYWwg cmVmZXJlbmNlICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoREdCQSAhPSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICheXlJQMTIuRExJ RCAoTElEUykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5eUlAxMi5DTElEIHw9IDB4ODAwMDAwMDAgLyogRXh0ZXJuYWwgcmVmZXJl bmNlICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXkhfRUMuTElEMCwgMHg4MCkgLy8gU3Rh dHVzIENoYW5nZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoXkhfRUMuQk5VTSA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoUFdSUyAhPSBeSF9FQy5FUlZQICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFdSUyA9IF5IX0VDLkVSVlAgKCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNQTlQgKCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJQTlQgKCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQV1JCLCAweDAyKSAvLyBEZXZp Y2UgV2FrZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAg ICAgICBNZXRob2QgKE5SVFMsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChSUFNHKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKChSUFNHICE9IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIF5eXlBHUEkuU0dPViAoUlBTRywgQXJnMCkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChYREFULCAwLCBTZXJpYWxpemVk KQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkxQQ0Iu SF9FQykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXkhfRUMuWERB VCAoKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg IH0KCiAgICAgICAgU2NvcGUgKFxfU0IuUEMwMC5MUENCKQogICAgICAgIHsKICAgICAgICAg ICAgRGV2aWNlIChRX0VDKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf SElELCBFaXNhSWQgKCJQTlAwQzA5IikgLyogRW1iZWRkZWQgQ29udHJvbGxlciBEZXZpY2Ug Ki8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwg T25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBOYW1lIChFQ0FWLCBa ZXJvKQogICAgICAgICAgICAgICAgTXV0ZXggKEVDTVQsIDB4MDApCiAgICAgICAgICAgICAg ICBNdXRleCAoR1BNVCwgMHgwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChCRkZSLCBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjIs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDA2MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NiwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDY2LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQkZGUikgLyogXF9TQl8uUEMwMC5MUENCLlFfRUMuX0NSUy5C RkZSICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RB LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKChFQ09OID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQUlQwLCBT eXN0ZW1JTywgMHg4MCwgMHgwNCkKICAgICAgICAgICAgICAgIEZpZWxkIChQUlQwLCBEV29y ZEFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUDgwSCwgICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoRVJBTSwgU3lzdGVtTWVtb3J5LCAweEZFMEIwMzAwLCAweDAxMDAp CiAgICAgICAgICAgICAgICBGaWVsZCAoRVJBTSwgQnl0ZUFjYywgTG9jaywgUHJlc2VydmUp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRUNNViwgICA4LCAKICAg ICAgICAgICAgICAgICAgICBFQ1NWLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIEVDVFYs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgRUNLViwgICA4LCAKICAgICAgICAgICAgICAg ICAgICBFQ0RWLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIEVDTkEsICAgMTYsIAogICAg ICAgICAgICAgICAgICAgIEVDTkIsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgVFNSMCwg ICA4LCAKICAgICAgICAgICAgICAgICAgICBUU1IxLCAgIDgsIAogICAgICAgICAgICAgICAg ICAgIFRTUjIsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgVFNSMywgICA4LCAKICAgICAg ICAgICAgICAgICAgICBUU1I0LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFRTUjUsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgVFNSNiwgICA4LCAKICAgICAgICAgICAgICAgICAg ICBUU1I3LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFRTUjgsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgVFNSOSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBUU1JBLCAgIDgs IAogICAgICAgICAgICAgICAgICAgIFRTUkIsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg TFNURSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBMSUQyLCAgIDEsIAogICAgICAgICAg ICAgICAgICAgIEJLVFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgRUtUUywgICAxLCAK ICAgICAgICAgICAgICAgICAgICBMRFJWLCAgIDQsIAogICAgICAgICAgICAgICAgICAgIExE U1csICAgMSwgCiAgICAgICAgICAgICAgICAgICAgTElEUiwgICA3LCAKICAgICAgICAgICAg ICAgICAgICBPS0YwLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9LRjEsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgT0tGMiwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPS0Yz LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9LRjQsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgR0dURiwgICAxLCAKICAgICAgICAgICAgICAgICAgICBDUExLLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIE9LUlYsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgVFhMSywg ICAxLCAKICAgICAgICAgICAgICAgICAgICBFQ1VQLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIEZOU1AsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgVFNMTiwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBNSVVULCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEZOUlYsICAg MywgCiAgICAgICAgICAgICAgICAgICAgQU9VRiwgICAyLCAKICAgICAgICAgICAgICAgICAg ICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIENBTEUsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgQ0FTVCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBJS0JXLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIFdPVUIsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDE5KSwgCiAgICAgICAgICAgICAgICAgICAgREtJTiwgICAxLCAKICAgICAg ICAgICAgICAgICAgICBES1BXLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIERLUlMsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgV0ZFTiwgICAxLCAKICAgICAgICAgICAgICAgICAg ICBUUEVOLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEJMT0YsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgT0RSViwgICAyLCAKICAgICAgICAgICAgICAgICAgICBHRlhGLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxQiksIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgxQyksIAogICAgICAgICAgICAgICAgICAgIFNNUFQsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgU01TVCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBTTUFE LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFNNQ0QsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgU01EQSwgICAyNTYsIAogICAgICAgICAgICAgICAgICAgIFNNQlQsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgU01BQSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBTTUQx LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFNNRDIsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDRDKSwgCiAgICAgICAgICAgICAgICAgICAgVFNJLCAgICA0LCAK ICAgICAgICAgICAgICAgICAgICBIWVNULCAgIDQsIAogICAgICAgICAgICAgICAgICAgIFRT SFQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgVFNMVCwgICA4LCAKICAgICAgICAgICAg ICAgICAgICBUU1NULCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MCks IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1NiksIAogICAgICAgICAgICAgICAg ICAgIFRTU1IsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYwKSwgCiAg ICAgICAgICAgICAgICAgICAgUUZBTiwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4NjIpLCAKICAgICAgICAgICAgICAgICAgICBTQ0ZHLCAgIDgsIAogICAgICAgICAg ICAgICAgICAgIEhCUEYsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgUENNRCwgICA4LCAK ICAgICAgICAgICAgICAgICAgICBPU1RQLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFBK SUQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDZFKSwgCiAgICAgICAg ICAgICAgICAgICAgU01NRCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 ODApLCAKICAgICAgICAgICAgICAgICAgICBBQ0lOLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIEJUSU4sICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQlRTVCwgICA0LCAKICAgICAg ICAgICAgICAgICAgICBGQ1NULCAgIDEsIAogICAgICAgICAgICAgICAgICAgIFBXUlYsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgQURQVywgICA4LCAKICAgICAgICAgICAgICAgICAg ICBCVFNOLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICBCVERDLCAgIDE2LCAKICAgICAg ICAgICAgICAgICAgICBCVERWLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICBCVEZDLCAg IDE2LCAKICAgICAgICAgICAgICAgICAgICBCVFRQLCAgIDE2LCAKICAgICAgICAgICAgICAg ICAgICBCVENULCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICBCVFBSLCAgIDE2LCAKICAg ICAgICAgICAgICAgICAgICBCVFZULCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICBSU09D LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIEJTQjAsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgQlNCMSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBCU0IyLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIEJTQjMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQlNCNCwg ICAxLCAKICAgICAgICAgICAgICAgICAgICBCU0I1LCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIEJTQjYsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQlNCNywgICAxLCAKICAgICAg ICAgICAgICAgICAgICBCU0I4LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEJTQjksICAg MSwgCiAgICAgICAgICAgICAgICAgICAgQlNCQSwgICAxLCAKICAgICAgICAgICAgICAgICAg ICBCU0JCLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEJTQkMsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgQlNCRCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBCU0JFLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIEJTQkYsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg QlRDQywgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgQkFUTSwgICAxNiwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDlBKSwgCiAgICAgICAgICAgICAgICAgICAgTUZHRCwg ICAxNiwgCiAgICAgICAgICAgICAgICAgICAgQkFUVCwgICAxNiwgCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDlGKSwgCiAgICAgICAgICAgICAgICAgICAgQlRJRCwgICA4LCAK ICAgICAgICAgICAgICAgICAgICBQU0MwLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFBT QzEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgUFNDMiwgICA4LCAKICAgICAgICAgICAg ICAgICAgICBQU0MzLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIExPTkwsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgQUZCQywgICA4LCAKICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4QTcpLCAKICAgICAgICAgICAgICAgICAgICBIQkRBLCAgIDgsIAogICAgICAgICAg ICAgICAgICAgIEhCTlQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEFC KSwgCiAgICAgICAgICAgICAgICAgICAgU09IMSwgICA4LCAKICAgICAgICAgICAgICAgICAg ICBVQ0JULCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBRiksIAogICAg ICAgICAgICAgICAgICAgIFNFR00sICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICwg ICA3LCAKICAgICAgICAgICAgICAgICAgICBFT0JGLCAgIDEsIAogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHhCMiksIAogICAgICAgICAgICAgICAgICAgIEtCTEwsICAgNywgCiAg ICAgICAgICAgICAgICAgICAgS0JNRCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBGRVNU LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIENTU0QsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgT1NEVCwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QzApLCAK ICAgICAgICAgICAgICAgICAgICBWRVIxLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFZF UjIsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgUlNWMSwgICA4LCAKICAgICAgICAgICAg ICAgICAgICBSU1YyLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIENDSTAsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgQ0NJMSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBDQ0ky LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIENDSTMsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgQ1RMMCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBDVEwxLCAgIDgsIAogICAg ICAgICAgICAgICAgICAgIENUTDIsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgQ1RMMywg ICA4LCAKICAgICAgICAgICAgICAgICAgICBDVEw0LCAgIDgsIAogICAgICAgICAgICAgICAg ICAgIENUTDUsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgQ1RMNiwgICA4LCAKICAgICAg ICAgICAgICAgICAgICBDVEw3LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE1HSTAsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgTUdJMSwgICA4LCAKICAgICAgICAgICAgICAgICAg ICBNR0kyLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE1HSTMsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgTUdJNCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBNR0k1LCAgIDgs IAogICAgICAgICAgICAgICAgICAgIE1HSTYsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg TUdJNywgICA4LCAKICAgICAgICAgICAgICAgICAgICBNR0k4LCAgIDgsIAogICAgICAgICAg ICAgICAgICAgIE1HSTksICAgOCwgCiAgICAgICAgICAgICAgICAgICAgTUdJQSwgICA4LCAK ICAgICAgICAgICAgICAgICAgICBNR0lCLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE1H SUMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgTUdJRCwgICA4LCAKICAgICAgICAgICAg ICAgICAgICBNR0lFLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE1HSUYsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgTUdPMCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBNR08x LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE1HTzIsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgTUdPMywgICA4LCAKICAgICAgICAgICAgICAgICAgICBNR080LCAgIDgsIAogICAg ICAgICAgICAgICAgICAgIE1HTzUsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgTUdPNiwg ICA4LCAKICAgICAgICAgICAgICAgICAgICBNR083LCAgIDgsIAogICAgICAgICAgICAgICAg ICAgIE1HTzgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgTUdPOSwgICA4LCAKICAgICAg ICAgICAgICAgICAgICBNR09BLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE1HT0IsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgTUdPQywgICA4LCAKICAgICAgICAgICAgICAgICAg ICBNR09ELCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE1HT0UsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgTUdPRiwgICA4LCAKICAgICAgICAgICAgICAgICAgICBVU0RDLCAgIDgs IAogICAgICAgICAgICAgICAgICAgIFVTR0MsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg RUNXSywgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RjMpLCAKICAgICAg ICAgICAgICAgICAgICBFTkVYLCAgIDgKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKFNNQTIsIFN5c3RlbU1lbW9yeSwgMHhGRTBCMEEwMCwg MHgwMTAwKQogICAgICAgICAgICAgICAgRmllbGQgKFNNQTIsIEJ5dGVBY2MsIExvY2ssIFBy ZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENNREIsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgU1RBVCwgICA4LCAKICAgICAgICAgICAgICAgICAg ICBEQVRMLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIERBVDAsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgREFUMSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBEQVQyLCAgIDgs IAogICAgICAgICAgICAgICAgICAgIERBVDMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg REFUNCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBEQVQ1LCAgIDgsIAogICAgICAgICAg ICAgICAgICAgIERBVDYsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgREFUNywgICA4LCAK ICAgICAgICAgICAgICAgICAgICBEQVQ4LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIERB VDksICAgOCwgCiAgICAgICAgICAgICAgICAgICAgREFUQSwgICA4LCAKICAgICAgICAgICAg ICAgICAgICBEQVRCLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIERBVEMsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEMwKSwgCiAgICAgICAgICAgICAgICAgICAg QkFNTiwgICAxMjgsIAogICAgICAgICAgICAgICAgICAgIEJBRE4sICAgMTI4LCAKICAgICAg ICAgICAgICAgICAgICBCQVNOLCAgIDI1NgogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoRUNSRCwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1aXJlIChFQ01ULCAweDAzRTgpCiAg ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoRUNBVikKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gRGVy ZWZPZiAoQXJnMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKEVDTVQp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2Ug KEVDTVQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKEVDV1QsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoRUNNVCwg MHgwM0U4KQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEVDQVYpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFy ZzEgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIFJlbGVhc2UgKEVDTVQpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoUkRFUiwgMSwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1aXJl IChFQ01ULCAweDA3RDApCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDEgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSAmPSAweEZGCiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IChBcmcwID4+IDB4MDgpCiAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMiAmPSAweEZGCiAgICAgICAgICAgICAgICAgICAgICAgIERB VDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgREFUMSA9IExvY2FsMQogICAg ICAgICAgICAgICAgICAgICAgICBEQVRMID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg IENNREIgPSAweDgwCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDEwMAog ICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCAmJiBDTURCKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAg KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChDTURCID09 IFplcm8pICYmIChTVEFUID09IDB4ODApKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gREFUMCAvKiBcX1NCXy5QQzAw LkxQQ0IuUV9FQy5EQVQwICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweEZGCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKEVDTVQpCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweEZGKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE5hbWUgKEJUQlMsIDB4MDg2MCkKICAgICAgICAgICAgICAgIE5h bWUgKEJUTk0sIDB4NDApCiAgICAgICAgICAgICAgICBOYW1lIChCVENILCAweDIwKQogICAg ICAgICAgICAgICAgTmFtZSAoQlRNRiwgMHgzMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAo UkRJRiwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEJURE4sIEJ1ZmZlciAo MHgwRSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDBFCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDIgPSBCVEJTIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLkJUQlMgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IEJUTk0gLyogXF9TQl8uUEMw MC5MUENCLlFfRUMuQlROTSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUg KExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCVEROIFsoMHgwRSAtIExvY2FsMSldID0gUkRFUiAoKExvY2Fs MiArIExvY2FsMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMysrCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwxLS0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJURE4pIC8qIFxfU0JfLlBD MDAuTFBDQi5RX0VDLlJESUYuQlRETiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEJUQ00sIEJ1ZmZlciAo MHgwOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDA4CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDIgPSBCVEJTIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLkJUQlMgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IEJUQ0ggLyogXF9TQl8uUEMw MC5MUENCLlFfRUMuQlRDSCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUg KExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCVENNIFsoMHgwOCAtIExvY2FsMSldID0gUkRFUiAoKExvY2Fs MiArIExvY2FsMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMysrCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwxLS0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJUQ00pIC8qIFxfU0JfLlBD MDAuTFBDQi5RX0VDLlJESUYuQlRDTSAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEJUTU4sIEJ1ZmZlciAo MHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDEwCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDIgPSBCVEJTIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLkJUQlMgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IEJUTUYgLyogXF9TQl8uUEMw MC5MUENCLlFfRUMuQlRNRiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUg KExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCVE1OIFsoMHgxMCAtIExvY2FsMSldID0gUkRFUiAoKExvY2Fs MiArIExvY2FsMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMysrCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwxLS0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJUTU4pIC8qIFxfU0JfLlBD MDAuTFBDQi5RX0VDLlJESUYuQlRNTiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKFdURVIsIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoRUNNVCwgMHgwN0QwKQogICAgICAg ICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgREFUMCA9IDB4NEQKICAgICAgICAgICAgICAg ICAgICAgICAgQ01EQiA9IDB4MjkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g MHgwMTAwCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwICYmIENNREIp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMC0tCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo Q01EQiAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwwID0gMHhGRgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVsZWFzZSAoRUNNVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo TG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDEgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSAmPSAw eEZGCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IChBcmcwID4+IDB4MDgpCiAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiAmPSAweEZGCiAgICAgICAgICAgICAgICAg ICAgICAgIERBVDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgREFUMSA9IExv Y2FsMQogICAgICAgICAgICAgICAgICAgICAgICBEQVQyID0gQXJnMQogICAgICAgICAgICAg ICAgICAgICAgICBEQVRMID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIENNREIgPSAw eDgxCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MDEwMAogICAgICAgICAg ICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCAmJiBDTURCKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKENNREIgPT0gWmVybykpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IDB4RkYKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoRUNNVCkKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBSZWxlYXNlIChFQ01UKQogICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHhGRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEVD Q0MsIDQsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gQWNxdWlyZSAoRUNNVCwgMHgwN0QwKQogICAgICAgICAgICAgICAgICAg IElmICgoTG9jYWwwID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgREFUMCA9IEFyZzEKICAgICAgICAgICAgICAgICAgICAgICAgREFU MSA9IEFyZzIKICAgICAgICAgICAgICAgICAgICAgICAgREFUMiA9IEFyZzMKICAgICAgICAg ICAgICAgICAgICAgICAgQ01EQiA9IEFyZzAKICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gMHgwMTAwCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwwICYm IENNREIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTbGVlcCAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MC0tCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQ01EQiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHhGRgogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNl IChFQ01UKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKEVDTVQpCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweEZGKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQ01ERSwgU3lzdGVtSU8sIDB4NjIsIDB4 MEIpCiAgICAgICAgICAgICAgICBGaWVsZCAoQ01ERSwgQnl0ZUFjYywgTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRUM2MiwgICA4LCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDIpLCAKICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MDMpLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpLCAK ICAgICAgICAgICAgICAgICAgICBFQzY2LCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHgwNiksIAogICAgICAgICAgICAgICAgICAgIEVDNjgsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDA4KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDA5KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDBBKSwgCiAgICAgICAg ICAgICAgICAgICAgRUM2QywgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChFQ0QyLCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFdoaWxlICgoRUM2QyAmIDB4MDIpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MEEpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBFQzZDID0gQXJnMAogICAgICAgICAg ICAgICAgICAgIFdoaWxlICgoRUM2QyAmIDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MEEpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBFQzY4ID0gQXJnMQogICAgICAgICAgICAgICAg ICAgIFdoaWxlICgoRUM2QyAmIDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoV0lCRSwgMSwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg PSBBY3F1aXJlIChFQ01ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2Nh bDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSAweDAwMDEwMDAwCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxl IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEVDNjYgLyog XF9TQl8uUEMwMC5MUENCLlFfRUMuRUM2NiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDEgPSBFQzZDIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLkVDNkMg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChFQ01UKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDEgJiAweDAyKSA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWxlYXNlIChFQ01UKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFsbCAoMHgwQSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMC0tCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKEVDTVQpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFdPQkYsIDEsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoRUNN VCwgMHgwM0U4KQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFplcm8pKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g MHgwMDAxMDAwMAogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBFQzY2IC8qIFxfU0JfLlBDMDAuTFBD Qi5RX0VDLkVDNjYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gMHgwMikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwxID0gRUM2QyAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9FQy5FQzZDICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmVsZWFzZSAoRUNNVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwxICYgT25lKSA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlbGVhc2UgKEVDTVQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0YWxsICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwLS0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgUmVsZWFzZSAoRUNNVCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoV09CRSwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1aXJlIChFQ01ULCAweDAzRTgpCiAgICAg ICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAweDAwMDEwMDAwCiAgICAg ICAgICAgICAgICAgICAgICAgIFdoaWxlIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMSA9IEVDNjYgLyogXF9TQl8uUEMwMC5MUENCLlFfRUMuRUM2NiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZUlmICgoQXJnMCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBFQzZDIC8qIFxf U0JfLlBDMDAuTFBDQi5RX0VDLkVDNkMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChF Q01UKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKChMb2NhbDEgJiBPbmUpID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSBFQzYyIC8qIFxfU0JfLlBDMDAuTFBDQi5R X0VDLkVDNjIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAweDAyKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMiA9IEVDNjggLyogXF9TQl8uUEMwMC5MUENCLlFfRUMuRUM2OCAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChFQ01UKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKEVD TVQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0YWxsICgweDBBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwLS0KICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFz ZSAoRUNNVCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo RUNNRCwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKFdJQkUgKE9uZSkgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoV09CRSAoT25lKSAhPSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25l KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRUM2NiA9IEFy ZzAKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFNSQU0sIDIs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KChXSUJFIChPbmUpICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKFdPQkUgKE9uZSkgIT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEVDNjYgPSAweDkyCiAgICAg ICAgICAgICAgICAgICAgSWYgKChXSUJFIChPbmUpICE9IFplcm8pKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBFQzYyID0gQXJnMAogICAgICAg ICAgICAgICAgICAgIElmICgoV0lCRSAoT25lKSAhPSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRUM2MiA9IEFyZzEKICAgICAgICAg ICAgICAgICAgICBJZiAoKFdJQkUgKE9uZSkgIT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoV09CRiAoT25lKSAhPSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChFQzYyKSAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9FQy5FQzYyICovCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfR1BFLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0dQRTogR2VuZXJhbCBQdXJwb3NlIEV2ZW50cwogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmIChFU1BJKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHg2RQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBHR1BFICgweDAwMTQxMDgwKQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKFNSU1AgIT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEdHUEUgKFNS U1ApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9J Tkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoKF9SRVYgPj0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBFQ0FWID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfUkVHLCAyLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JFRzogUmVn aW9uIEF2YWlsYWJpbGl0eQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEVDQVYgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBJZiAoKChBcmcwID09IDB4MDMpICYmIChBcmcxID09IE9uZSkpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lT ID09IDB4MDdENikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE9TWVMgPT0gMHgwM0U4KSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g MHgwMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKE9TWVMgPT0gMHgwN0Q5KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwMwogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE9TWVMgPT0gMHgwN0RD KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gMHgwNAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKE9TWVMgPT0gMHgwN0REKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwNQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE9T WVMgPT0gMHgwN0RGKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwNgogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFjcXVpcmUgKEVDTVQsIDB4QTAwMCkg PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9TVFAgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoTFNURSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5HRlgwLkNMSUQgPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChMU1RFID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXl5eR0ZYMC5DTElEID0gMHgwMwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJRFMg PSBMU1RFIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLkxTVEUgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJlbGVhc2UgKEVDTVQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChGVU5SLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcwKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTYpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UUZBTikgLyogXF9TQl8uUEMwMC5MUENCLlFfRUMuUUZBTiAqLwogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTcpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo Rk5TUCkgLyogXF9TQl8uUEMwMC5MUENCLlFfRUMuRk5TUCAqLwogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTgpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDE5KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENQTEspIC8qIFxfU0JfLlBDMDAu TFBDQi5RX0VDLkNQTEsgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDIwKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE1JVVQpIC8qIFxfU0JfLlBDMDAu TFBDQi5RX0VDLk1JVVQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChOVERQLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE9EVjEgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg Tm90aWZ5IChJRVRNLCAweDg4KSAvLyBEZXZpY2UtU3BlY2lmaWMKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9EVjEgPSAweDAy CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoSUVUTSwgMHg4OCkgLy8gRGV2aWNl LVNwZWNpZmljCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs c2VJZiAoKEFyZzAgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBPRFYxID0gMHgwNAogICAgICAgICAgICAgICAgICAgICAgICBOb3Rp ZnkgKElFVE0sIDB4ODgpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcwID09IDB4MDUpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT0RWMSA9IDB4MDUKICAg ICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChJRVRNLCAweDg4KSAvLyBEZXZpY2UtU3Bl Y2lmaWMKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlm ICgoQXJnMCA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIE9EVjEgPSAweDA2CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAo SUVUTSwgMHg4OCkgLy8gRGV2aWNlLVNwZWNpZmljCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIE9EVjEgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIE5v dGlmeSAoSUVUTSwgMHg4OCkgLy8gRGV2aWNlLVNwZWNpZmljCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EwNCwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEOFhIIChaZXJvLCAweDA0KQog ICAgICAgICAgICAgICAgICAgIF5eXldNSUQuUVYyMCAoT25lLCAweDIxKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EwNSwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBEOFhIIChaZXJvLCAweDA1KQogICAgICAgICAgICAgICAg ICAgIE5vdGlmeSAoXl5eR0ZYMC5ERDFGLCAweDg3KSAvLyBEZXZpY2UtU3BlY2lmaWMKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9RMDYsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgRDhYSCAoWmVybywgMHgwNikKICAgICAgICAg ICAgICAgICAgICBOb3RpZnkgKF5eXkdGWDAuREQxRiwgMHg4NikgLy8gRGV2aWNlLVNwZWNp ZmljCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUTA3LCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEQ4WEggKFplcm8sIDB4MDcpCiAg ICAgICAgICAgICAgICAgICAgXl5eV01JRC5RVjIwIChPbmUsIE9uZSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9RMDgsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgRDhYSCAoWmVybywgMHgwOCkKICAgICAgICAgICAgICAgICAg ICBeXl5XTUlELlFWMjAgKE9uZSwgMHgwMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9RMDksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBR dWVyeSwgeHg9MHgwMC0weEZGCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgRDhYSCAoWmVybywgMHgwOSkKICAgICAgICAgICAgICAgICAgICBeXl5XTUlELlFWMjAg KE9uZSwgMHgxQikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9RMEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0w eEZGCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRDhYSCAoWmVybywg MHgwQSkKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAg ICAgICBOb3RpZnkgKEJBVDAsIDB4ODEpIC8vIEluZm9ybWF0aW9uIENoYW5nZQogICAgICAg ICAgICAgICAgICAgIFNsZWVwICgweDBBKQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAo QURQMSwgMHg4MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgICAgIElmICgo QUNJTiAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBQV1JTID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFBXUlMgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EwQiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9R eHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKEJB VDAsIDB4ODEpIC8vIEluZm9ybWF0aW9uIENoYW5nZQogICAgICAgICAgICAgICAgICAgIFNs ZWVwICgweDBBKQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoQkFUMCwgMHg4MCkgLy8g U3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1EwQywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAw LTB4RkYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEOFhIIChaZXJv LCAweDBDKQogICAgICAgICAgICAgICAgICAgIExJRFMgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgXl5eR0ZYMC5HTElEIChMSURTKQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAo TElEMCwgMHg4MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1EwRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVD IFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBEOFhIIChaZXJvLCAweDBEKQogICAgICAgICAgICAgICAgICAgIExJRFMgPSBPbmUK ICAgICAgICAgICAgICAgICAgICBeXl5HRlgwLkdMSUQgKExJRFMpCiAgICAgICAgICAgICAg ICAgICAgTm90aWZ5IChMSUQwLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUTBFLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIEQ4WEggKFplcm8sIDB4MEUpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUTBGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIEQ4WEggKFplcm8sIDB4MEYpCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfUTEwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDog RUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIEQ4WEggKFplcm8sIDB4MTApCiAgICAgICAgICAgICAgICAgICAgXl5eV01JRC5R VjIwIChPbmUsIDB4MDUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfUTExLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4 MDAtMHhGRgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEQ4WEggKFpl cm8sIDB4MTEpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChf UTEyLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhG RgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEQ4WEggKFplcm8sIDB4 MTIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUTEzLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEQ4WEggKFplcm8sIDB4MTMpCiAg ICAgICAgICAgICAgICAgICAgXl5eV01JRC5RVjIwIChPbmUsIDB4MDcpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUTE0LCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIEQ4WEggKFplcm8sIDB4MTQpCiAgICAgICAgICAgICAgICAg ICAgXl5eV01JRC5RVjIwIChPbmUsIDB4MDkpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfUTE1LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMg UXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEQ4WEggKFplcm8sIDB4MTUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChfUTE2LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnks IHh4PTB4MDAtMHhGRgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEQ4 WEggKFplcm8sIDB4MTYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfUTE3LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4 MDAtMHhGRgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEQ4WEggKFpl cm8sIDB4MTcpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChf UTE4LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhG RgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEQ4WEggKFplcm8sIDB4 MTgpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUTI0LCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEQ4WEggKFplcm8sIDB4MjQpCiAg ICAgICAgICAgICAgICAgICAgU01NRCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBeXl5X TUlELlFWMjAgKE9uZSwgMHgxNikKICAgICAgICAgICAgICAgICAgICBOVERQIChRRkFOKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EyNSwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEOFhIIChaZXJvLCAweDI1KQogICAgICAg ICAgICAgICAgICAgIF5eXldNSUQuUVYyMCAoT25lLCAweDFBKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EyNiwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBEOFhIIChaZXJvLCAweDI2KQogICAgICAgICAgICAgICAgICAgIF5e XldNSUQuUVYyMCAoT25lLCAweDEwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1EyNywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5 LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBE OFhIIChaZXJvLCAweDI3KQogICAgICAgICAgICAgICAgICAgIF5eXldNSUQuUVYyMCAoT25l LCAweDExKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1Ey OCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEOFhIIChaZXJvLCAweDI4 KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EyOSwgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEOFhIIChaZXJvLCAweDI5KQogICAg ICAgICAgICAgICAgICAgIF5eXldNSUQuUVYyMCAoT25lLCAweDEyKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EyQSwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBEOFhIIChaZXJvLCAweDJBKQogICAgICAgICAgICAgICAgICAg IF5eXldNSUQuUVYyMCAoT25lLCAweDEzKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1EyQiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1 ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBEOFhIIChaZXJvLCAweDJCKQogICAgICAgICAgICAgICAgICAgIF5eXldNSUQuUVYyMCAo T25lLCAweDE0KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo X1EyQywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4 RkYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEOFhIIChaZXJvLCAw eDJDKQogICAgICAgICAgICAgICAgICAgIF5eXldNSUQuUVYyMCAoT25lLCAweDE1KQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EyRCwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBEOFhIIChaZXJvLCAweDJEKQogICAgICAgICAg ICAgICAgICAgIF5eXldNSUQuUVYyMCAoT25lLCAweDE4KQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EyRSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9R eHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBEOFhIIChaZXJvLCAweDJFKQogICAgICAgICAgICAgICAgICAgIF5eXldN SUQuUVYyMCAoT25lLCAweDE5KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1EyRiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4 eD0weDAwLTB4RkYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEOFhI IChaZXJvLCAweDJGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1EzMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAw LTB4RkYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEOFhIIChaZXJv LCAweDMwKQogICAgICAgICAgICAgICAgICAgIE5URFAgKFFGQU4pCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUTMxLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIEQ4WEggKFplcm8sIDB4MzEpCiAgICAgICAgICAgICAgICAgICAg T0RWMiA9IE9uZQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoSUVUTSwgMHg4OCkgLy8g RGV2aWNlLVNwZWNpZmljCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfUTMyLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4 MDAtMHhGRgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEQ4WEggKFpl cm8sIDB4MzIpCiAgICAgICAgICAgICAgICAgICAgT0RWMiA9IFplcm8KICAgICAgICAgICAg ICAgICAgICBOb3RpZnkgKElFVE0sIDB4ODgpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EzNSwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBQOFhIIChaZXJvLCAweDM1KQogICAgICAgICAgICAg ICAgICAgIFNTTVAgPSAweEMyCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfUTQxLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4 PTB4MDAtMHhGRgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFA4WEgg KFplcm8sIDB4NDEpCiAgICAgICAgICAgICAgICAgICAgXl5eV01JRC5RVjIwICgweDA0LCBP bmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUTYxLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRgogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEQ4WEggKFplcm8sIDB4NjEpCiAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MDFGNCkKICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKEJBVDAsIDB4ODEpIC8vIEluZm9ybWF0aW9uIENoYW5nZQogICAgICAgICAgICAg ICAgICAgIFNsZWVwICgweDAxRjQpCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChCQVQw LCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfUTc5LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVl cnksIHh4PTB4MDAtMHhGRgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IExvY2FsMCA9IEFjcXVpcmUgKEVDTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICBJ ZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IFRpbWVyCiAgICAgICAgICAgICAgICAgICAgICAgIF5e Xl5VQlRDLk1HSTAgPSBNR0kwIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLk1HSTAgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgXl5eXlVCVEMuTUdJMSA9IE1HSTEgLyogXF9TQl8uUEMw MC5MUENCLlFfRUMuTUdJMSAqLwogICAgICAgICAgICAgICAgICAgICAgICBeXl5eVUJUQy5N R0kyID0gTUdJMiAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9FQy5NR0kyICovCiAgICAgICAgICAg ICAgICAgICAgICAgIF5eXl5VQlRDLk1HSTMgPSBNR0kzIC8qIFxfU0JfLlBDMDAuTFBDQi5R X0VDLk1HSTMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgXl5eXlVCVEMuTUdJNCA9IE1H STQgLyogXF9TQl8uUEMwMC5MUENCLlFfRUMuTUdJNCAqLwogICAgICAgICAgICAgICAgICAg ICAgICBeXl5eVUJUQy5NR0k1ID0gTUdJNSAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9FQy5NR0k1 ICovCiAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5VQlRDLk1HSTYgPSBNR0k2IC8qIFxf U0JfLlBDMDAuTFBDQi5RX0VDLk1HSTYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgXl5e XlVCVEMuTUdJNyA9IE1HSTcgLyogXF9TQl8uUEMwMC5MUENCLlFfRUMuTUdJNyAqLwogICAg ICAgICAgICAgICAgICAgICAgICBeXl5eVUJUQy5NR0k4ID0gTUdJOCAvKiBcX1NCXy5QQzAw LkxQQ0IuUV9FQy5NR0k4ICovCiAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5VQlRDLk1H STkgPSBNR0k5IC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLk1HSTkgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgXl5eXlVCVEMuTUdJQSA9IE1HSUEgLyogXF9TQl8uUEMwMC5MUENCLlFf RUMuTUdJQSAqLwogICAgICAgICAgICAgICAgICAgICAgICBeXl5eVUJUQy5NR0lCID0gTUdJ QiAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9FQy5NR0lCICovCiAgICAgICAgICAgICAgICAgICAg ICAgIF5eXl5VQlRDLk1HSUMgPSBNR0lDIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLk1HSUMg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgXl5eXlVCVEMuTUdJRCA9IE1HSUQgLyogXF9T Ql8uUEMwMC5MUENCLlFfRUMuTUdJRCAqLwogICAgICAgICAgICAgICAgICAgICAgICBeXl5e VUJUQy5NR0lFID0gTUdJRSAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9FQy5NR0lFICovCiAgICAg ICAgICAgICAgICAgICAgICAgIF5eXl5VQlRDLk1HSUYgPSBNR0lGIC8qIFxfU0JfLlBDMDAu TFBDQi5RX0VDLk1HSUYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgXl5eXlVCVEMuVkVS MSA9IFZFUjEgLyogXF9TQl8uUEMwMC5MUENCLlFfRUMuVkVSMSAqLwogICAgICAgICAgICAg ICAgICAgICAgICBeXl5eVUJUQy5WRVIyID0gVkVSMiAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9F Qy5WRVIyICovCiAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5VQlRDLlJTVjEgPSBSU1Yx IC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLlJTVjEgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgXl5eXlVCVEMuUlNWMiA9IFJTVjIgLyogXF9TQl8uUEMwMC5MUENCLlFfRUMuUlNWMiAq LwogICAgICAgICAgICAgICAgICAgICAgICBeXl5eVUJUQy5DQ0kwID0gQ0NJMCAvKiBcX1NC Xy5QQzAwLkxQQ0IuUV9FQy5DQ0kwICovCiAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5V QlRDLkNDSTEgPSBDQ0kxIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLkNDSTEgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgXl5eXlVCVEMuQ0NJMiA9IENDSTIgLyogXF9TQl8uUEMwMC5M UENCLlFfRUMuQ0NJMiAqLwogICAgICAgICAgICAgICAgICAgICAgICBeXl5eVUJUQy5DQ0kz ID0gQ0NJMyAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9FQy5DQ0kzICovCiAgICAgICAgICAgICAg ICAgICAgICAgIFVTR0MgPSAweEUxCiAgICAgICAgICAgICAgICAgICAgICAgIENDSTAgPSBa ZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIENDSTMgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMSA9ICgoVGltZXIgLSBMb2NhbDApIC8gMHgyNzEwKQogICAgICAg ICAgICAgICAgICAgICAgICBOb3RpZnkgKFVCVEMsIDB4ODApIC8vIFN0YXR1cyBDaGFuZ2UK ICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoRUNNVCkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChBRFAx KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJB Q1BJMDAwMyIgLyogUG93ZXIgU291cmNlIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJl IElECiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEVDT04gPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9Q U1IsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFNSOiBQb3dlciBTb3VyY2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChFQ0FWKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFj cXVpcmUgKEVDTVQsIDB4QTAwMCkgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBQ0lOICYgT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBXUlMgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUFdSUyA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKEVDTVQpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQV1JTKSAvKiBcUFdSUyAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9Q Q0wsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUENMOiBQb3dlciBDb25zdW1lciBMaXN0CiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBh Y2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF9TQgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2Ug KExJRDApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJ RCwgRWlzYUlkICgiUE5QMEMwRCIpIC8qIExpZCBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJk d2FyZSBJRAogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChFQ09OID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfTElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0xJRDogTGlkIFN0YXR1cwogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWly ZSAoRUNNVCwgMHgwM0U4KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChFQ1JEIChSZWZPZiAoTFNURSkpID09IFplcm8pKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5e Xl5HRlgwLkNMSUQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5HRlgwLkNMSUQgPSAweDAzCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChC QVQwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQs IEVpc2FJZCAoIlBOUDBDMEEiKSAvKiBDb250cm9sIE1ldGhvZCBCYXR0ZXJ5ICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9VSUQsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoRUNBVikKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBY3F1aXJlIChFQ01ULCAweEEwMDAp ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEJUSU4gLyogXF9TQl8uUEMwMC5MUENCLlFf RUMuQlRJTiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKEVD TVQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChMb2NhbDAgJiBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgxRikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0JJRiwgMCwgU2VyaWFsaXplZCkgIC8vIF9C SUY6IEJhdHRlcnkgSW5mb3JtYXRpb24KICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKEJQSzEsIFBhY2thZ2UgKDB4MEQpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9u ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHg0MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAi QkFTRS1CQVQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMjM0NTY3OCIsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxJT04iLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJUSU1JIgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJQSzEpIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLkJB VDAuX0JJRi5CUEsxICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9CSVgsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQklYOiBCYXR0ZXJ5IElu Zm9ybWF0aW9uIEV4dGVuZGVkCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBOYW1lIChCUEsxLCBQYWNrYWdlICgweDE1KQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAwMTczMTgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAxMDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg0MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQkFTRS1CQVQiLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIxMjM0NTY3OCIsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkxJT04iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUSU1JIiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEVDQVYpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQWNxdWlyZSAo RUNNVCwgMHhBMDAwKSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChCVERWICYmIEJURkMpICYm IEJUREMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQlBLMSBbT25lXSA9IFplcm8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQlBLMSBbMHgwMl0gPSAoKEJUREMgKiBCVERWKSAv IDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlBLMSBbMHgw M10gPSAoKEJURkMgKiBCVERWKSAvIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQlBLMSBbMHgwNV0gPSBCVERWIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VD LkJURFYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g QlRGQyAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9FQy5CVEZDICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCAqPSAweDBBCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERpdmlkZSAoTG9jYWwwLCAweDY0LCBMb2NhbDEsIExvY2FsMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlBLMSBbMHgwNl0gPSAoKExv Y2FsMiAqIEJURFYpIC8gMHgwM0U4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBCVEZDIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLkJURkMgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gRUNXSyAvKiBcX1NC Xy5QQzAwLkxQQ0IuUV9FQy5FQ1dLICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsNCA9IFJTT0MgLyogXF9TQl8uUEMwMC5MUENCLlFfRUMuUlNPQyAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMyA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFQ1dLID0gWmVybwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDQgPT0gMHgwNykpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICo9IDB4MDcKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXZpZGUgKExvY2FsMCwgMHg2NCwgTG9j YWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQlBLMSBbMHgwN10gPSAoKExvY2FsMiAqIEJURFYpIC8gMHgwM0U4KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCAqPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRGl2aWRlIChMb2NhbDAsIDB4NjQsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJQSzEgWzB4MDddID0gKChMb2Nh bDIgKiBCVERWKSAvIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCAqPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBEaXZpZGUgKExvY2FsMCwgMHg2NCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCUEsxIFsweDA3XSA9ICgoTG9jYWwyICog QlREVikgLyAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJQSzEgWzB4MDldID0gMHgy NTFDCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCUEsxIFsweDEwXSA9IEJBRE4gLyogXF9TQl8uUEMwMC5MUENC LlFfRUMuQkFETiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJQSzEgWzB4 MTFdID0gQkFTTiAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9FQy5CQVNOICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQlBLMSBbMHgxM10gPSBCQU1OIC8qIFxfU0JfLlBDMDAu TFBDQi5RX0VDLkJBTU4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChFQ01UKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCUEsxKSAvKiBcX1NCXy5QQzAwLkxQQ0IuUV9FQy5CQVQw Ll9CSVguQlBLMSAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9CVFAsIDEsIE5vdFNlcmlh bGl6ZWQpICAvLyBfQlRQOiBCYXR0ZXJ5IFRyaXAgUG9pbnQKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChFQ0FWKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQXJnMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKChCVEZDICE9IFplcm8pICYmIChCVERWICE9IFplcm8pKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJUVFAgPSBBcmcwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9CU1Qs IDAsIFNlcmlhbGl6ZWQpICAvLyBfQlNUOiBCYXR0ZXJ5IFN0YXR1cwogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUEtHMSwgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZG RkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRgogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEVDQVYgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB Y3F1aXJlIChFQ01ULCAweEEwMDApID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEZDU1Qg LyogXF9TQl8uUEMwMC5MUENCLlFfRUMuRkNTVCAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN3aXRjaCAoQlRTVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFplcm8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDEgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDEgPSAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgfD0gKExvY2FsMCA8PCAweDAzKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBLRzEgW1plcm9dID0gTG9jYWwxCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEtHMSBbT25lXSA9ICgoQlRDVCAqIEJU VlQpIC8gMHgwM0U4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBLRzEgWzB4 MDJdID0gKChCVFBSICogQlREVikgLyAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUEtHMSBbMHgwM10gPSBCVFZUIC8qIFxfU0JfLlBDMDAuTFBDQi5RX0VDLkJU VlQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChFQ01UKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMSkgLyogXF9TQl8u UEMwMC5MUENCLlFfRUMuQkFUMC5fQlNULlBLRzEgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUENMLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1BDTDogUG93ZXIgQ29uc3VtZXIgTGlzdAogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfU0IKICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChCQVQxKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEEi KSAvKiBDb250cm9sIE1ldGhvZCBCYXR0ZXJ5ICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUg SUQKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFNjb3BlIChcX1NCKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXZpY2UgKFBXUkIpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwQyIp IC8qIFBvd2VyIEJ1dHRvbiBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAg ICAgICAgICAgICAgICAgIE5hbWUgKFBCU1QsIE9uZSkKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K ICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUEtCUywgU3lzdGVtSU8sIDB4 NjAsIDB4MDUpCiAgICAgICAgRmllbGQgKFBLQlMsIEJ5dGVBY2MsIExvY2ssIFByZXNlcnZl KQogICAgICAgIHsKICAgICAgICAgICAgUEtCRCwgICA4LCAKICAgICAgICAgICAgT2Zmc2V0 ICgweDA0KSwgCiAgICAgICAgICAgIFBLQkMsICAgOAogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChQUzJLKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgi UE5QMDMwQiIpKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJ RCwgRWlzYUlkICgiUE5QMDMwMyIpIC8qIElCTSBFbmhhbmNlZCBLZXlib2FyZCAoMTAxLzEw Mi1rZXksIFBTLzIgTW91c2UpICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFNDTUspCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVu dCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgMHgwMDYwLCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDYwLCAgICAgICAgICAgICAv LyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAg ICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAwNjQsICAgICAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwNjQsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAg Ly8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgSVJRIChF ZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUsICkKICAgICAgICAgICAgICAgICAgICB7MX0K ICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIERldmljZSAoUFMyTSkKICAgICAg ICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBGMTMiKSAvKiBQUy8y IE1vdXNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJ RCwgRWlzYUlkICgiUE5QMEYwMyIpIC8qIE1pY3Jvc29mdCBQUy8yLXN0eWxlIE1vdXNlICov KSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSWYgKFAyTUUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVz b3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJUlEgKEVkZ2UsIEFjdGl2ZUhpZ2gsIEV4 Y2x1c2l2ZSwgKQogICAgICAgICAgICAgICAgICAgIHsxMn0KICAgICAgICAgICAgfSkKICAg ICAgICB9CiAgICB9CgogICAgTXV0ZXggKE1VVFgsIDB4MDApCiAgICBNdXRleCAoT1NVTSwg MHgwMCkKICAgIE11dGV4IChXV01ULCAweDAwKQogICAgTXV0ZXggKENOTVQsIDB4MDApCiAg ICBPcGVyYXRpb25SZWdpb24gKFBSVDAsIFN5c3RlbUlPLCAweDgwLCAweDAyKQogICAgRmll bGQgKFBSVDAsIFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIFA4MEIs ICAgMTYKICAgIH0KCiAgICBOYW1lIChQODBULCBaZXJvKQogICAgTWV0aG9kIChEOFhILCAy LCBTZXJpYWxpemVkKQogICAgewogICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAg ICB7CiAgICAgICAgICAgIFA4MFQgPSAoKFA4MFQgJiAweEZGMDApIHwgQXJnMSkKICAgICAg ICB9CgogICAgICAgIElmICgoQXJnMCA9PSBPbmUpKQogICAgICAgIHsKICAgICAgICAgICAg UDgwVCA9ICgoUDgwVCAmIDB4RkYpIHwgKEFyZzEgPDwgMHgwOCkpCiAgICAgICAgfQoKICAg ICAgICBQODBCID0gUDgwVCAvKiBcUDgwVCAqLwogICAgfQoKICAgIE1ldGhvZCAoUDhYSCwg MiwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoQ29uZFJlZk9mIChNREJHKSkKICAg ICAgICB7CiAgICAgICAgICAgIEQ4WEggKEFyZzAsIEFyZzEpCiAgICAgICAgfQogICAgfQoK ICAgIE9wZXJhdGlvblJlZ2lvbiAoVTNGOCwgU3lzdGVtSU8sIDB4MDNGOCwgMHgxMCkKICAg IEZpZWxkIChVM0Y4LCBCeXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBU WEJGLCAgIDgsIAogICAgICAgIERMTSwgICAgOCwgCiAgICAgICAgRkNSLCAgICA4LCAKICAg ICAgICBMQ1IsICAgIDgKICAgIH0KCiAgICBNZXRob2QgKFNEQkcsIDEsIFNlcmlhbGl6ZWQp CiAgICB7CiAgICAgICAgU3dpdGNoIChPU0RQKQogICAgICAgIHsKICAgICAgICAgICAgQ2Fz ZSAoWmVybykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoVFhCVSwgWmVy bykKICAgICAgICAgICAgICAgIE5hbWUgKERMQlUsIFplcm8pCiAgICAgICAgICAgICAgICBO YW1lIChGQ0JVLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoTENCVSwgWmVybykKICAg ICAgICAgICAgICAgIFRYQlUgPSBUWEJGIC8qIFxUWEJGICovCiAgICAgICAgICAgICAgICBE TEJVID0gRExNIC8qIFxETE1fICovCiAgICAgICAgICAgICAgICBGQ0JVID0gRkNSIC8qIFxG Q1JfICovCiAgICAgICAgICAgICAgICBMQ0JVID0gTENSIC8qIFxMQ1JfICovCiAgICAgICAg ICAgICAgICBMQ1IgPSAweDgzCiAgICAgICAgICAgICAgICBUWEJGID0gT25lCiAgICAgICAg ICAgICAgICBETE0gPSBaZXJvCiAgICAgICAgICAgICAgICBGQ1IgPSAweEUxCiAgICAgICAg ICAgICAgICBMQ1IgPSAweDAzCiAgICAgICAgICAgICAgICBETE0gPSBaZXJvCiAgICAgICAg ICAgICAgICBUb0hleFN0cmluZyAoQXJnMCwgTG9jYWwzKQogICAgICAgICAgICAgICAgTG9j YWw0ID0gU2l6ZU9mIChMb2NhbDMpCiAgICAgICAgICAgICAgICBMb2NhbDUgPSBaZXJvCiAg ICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsNSA8IExvY2FsNCkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTWlkIChMb2NhbDMsIExvY2FsNSwgT25lLCBUWEJG KSAvKiBcVFhCRiAqLwogICAgICAgICAgICAgICAgICAgIFN0YWxsICgweDY0KQogICAgICAg ICAgICAgICAgICAgIExvY2FsNSsrCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgU3RhbGwgKDB4NjQpCiAgICAgICAgICAgICAgICBUWEJGID0gMHgwRAogICAgICAgICAg ICAgICAgU3RhbGwgKDB4NjQpCiAgICAgICAgICAgICAgICBUWEJGID0gMHgwQQogICAgICAg ICAgICAgICAgVFhCRiA9IFRYQlUgLyogXFNEQkcuVFhCVSAqLwogICAgICAgICAgICAgICAg RExNID0gRExCVSAvKiBcU0RCRy5ETEJVICovCiAgICAgICAgICAgICAgICBGQ1IgPSBGQ0JV IC8qIFxTREJHLkZDQlUgKi8KICAgICAgICAgICAgICAgIExDUiA9IExDQlUgLyogXFNEQkcu TENCVSAqLwogICAgICAgICAgICB9CiAgICAgICAgICAgIENhc2UgKE9uZSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChVMUNGLCBTeXN0ZW1NZW1v cnksIFVDMDAsIDB4MjApCiAgICAgICAgICAgICAgICBGaWVsZCAoVTFDRiwgQW55QWNjLCBO b0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHgxMCksIAogICAgICAgICAgICAgICAgICAgIEJBMDAsICAgNjQKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFUxQjAsIFN5 c3RlbU1lbW9yeSwgKEJBMDAgJiAweEZGRkZGRkZGRkZGRkYwMDApLCAweDEwKQogICAgICAg ICAgICAgICAgRmllbGQgKFUxQjAsIEJ5dGVBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFUxVFgsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgVTFESCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBVMUZDLCAgIDgsIAog ICAgICAgICAgICAgICAgICAgIFUxTEMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgVTFB RiwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgVTFMQyA9IDB4ODMK ICAgICAgICAgICAgICAgIFUxVFggPSBPbmUKICAgICAgICAgICAgICAgIFUxREggPSBaZXJv CiAgICAgICAgICAgICAgICBVMUZDID0gMHhFMQogICAgICAgICAgICAgICAgVTFMQyA9IDB4 MDMKICAgICAgICAgICAgICAgIFUxREggPSBaZXJvCiAgICAgICAgICAgICAgICBVMUFGID0g MHgwMgogICAgICAgICAgICAgICAgVG9IZXhTdHJpbmcgKEFyZzAsIExvY2FsMykKICAgICAg ICAgICAgICAgIExvY2FsNCA9IFNpemVPZiAoTG9jYWwzKQogICAgICAgICAgICAgICAgTG9j YWw1ID0gWmVybwogICAgICAgICAgICAgICAgV2hpbGUgKChMb2NhbDUgPCBMb2NhbDQpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE1pZCAoTG9jYWwzLCBMb2Nh bDUsIE9uZSwgVTFUWCkgLyogXFNEQkcuVTFUWCAqLwogICAgICAgICAgICAgICAgICAgIFN0 YWxsICgweDY0KQogICAgICAgICAgICAgICAgICAgIExvY2FsNSsrCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgU3RhbGwgKDB4NjQpCiAgICAgICAgICAgICAgICBVMVRY ID0gMHgwRAogICAgICAgICAgICAgICAgU3RhbGwgKDB4NjQpCiAgICAgICAgICAgICAgICBV MVRYID0gMHgwQQogICAgICAgICAgICB9CiAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVTJDRiwgU3lzdGVt TWVtb3J5LCBVQzAyLCAweDIwKQogICAgICAgICAgICAgICAgRmllbGQgKFUyQ0YsIEFueUFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MTApLCAKICAgICAgICAgICAgICAgICAgICBCQVIwLCAgIDY0CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChVMkIw LCBTeXN0ZW1NZW1vcnksIChCQVIwICYgMHhGRkZGRkZGRkZGRkZGMDAwKSwgMHgxMCkKICAg ICAgICAgICAgICAgIEZpZWxkIChVMkIwLCBCeXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBVMlRYLCAgIDgsIAogICAgICAg ICAgICAgICAgICAgIFUyREgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgVTJGQywgICA4 LCAKICAgICAgICAgICAgICAgICAgICBVMkxDLCAgIDgKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBVMkxDID0gMHg4MwogICAgICAgICAgICAgICAgVTJUWCA9IE9uZQog ICAgICAgICAgICAgICAgVTJESCA9IFplcm8KICAgICAgICAgICAgICAgIFUyRkMgPSAweEUx CiAgICAgICAgICAgICAgICBVMkxDID0gMHgwMwogICAgICAgICAgICAgICAgVTJESCA9IFpl cm8KICAgICAgICAgICAgICAgIFRvSGV4U3RyaW5nIChBcmcwLCBMb2NhbDMpCiAgICAgICAg ICAgICAgICBMb2NhbDQgPSBTaXplT2YgKExvY2FsMykKICAgICAgICAgICAgICAgIExvY2Fs NSA9IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWw1IDwgTG9jYWw0KSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNaWQgKExvY2FsMywgTG9jYWw1 LCBPbmUsIFUyVFgpIC8qIFxTREJHLlUyVFggKi8KICAgICAgICAgICAgICAgICAgICBTdGFs bCAoMHg2NCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDUrKwogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIFN0YWxsICgweDY0KQogICAgICAgICAgICAgICAgVTJUWCA9 IDB4MEQKICAgICAgICAgICAgICAgIFN0YWxsICgweDY0KQogICAgICAgICAgICAgICAgVTJU WCA9IDB4MEEKICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICB9CgogICAgT3BlcmF0aW9u UmVnaW9uIChTUFJULCBTeXN0ZW1JTywgMHhCMiwgMHgwMikKICAgIEZpZWxkIChTUFJULCBC eXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBTU01QLCAgIDgKICAgIH0K CiAgICBNZXRob2QgKF9QSUMsIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUElDOiBJbnRlcnJ1 cHQgTW9kZWwKICAgIHsKICAgICAgICBHUElDID0gQXJnMAogICAgICAgIFBJQ00gPSBBcmcw CiAgICB9CgogICAgTWV0aG9kIChfUFRTLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BUUzog UHJlcGFyZSBUbyBTbGVlcAogICAgewogICAgICAgIEQ4WEggKFplcm8sIEFyZzApCiAgICAg ICAgRDhYSCAoT25lLCBaZXJvKQogICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX1BUUz0i LCBUb0hleFN0cmluZyAoQXJnMCkpKQogICAgICAgIElmICgoKEFyZzAgPT0gMHgwNCkgfHwg KEFyZzAgPT0gMHgwNSkpKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChQRzNTID09IE9u ZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0Iu UEMwMC5MUENCLkhfRUMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmICgoUENIUyA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUEczIEFDV0EgdmFsdWUgPSIsIFRv SGV4U3RyaW5nIChcX1NCLlBDMDIuUFBNQy5BQ1dBKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUEczIERDV0EgdmFsdWUgPSIsIFRvSGV4U3RyaW5n IChcX1NCLlBDMDIuUFBNQy5EQ1dBKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUEczIEFDRVQgdmFsdWUgPSIsIFRvSGV4U3RyaW5nIChcX1NCLlBD MDIuUFBNQy5BQ0VUKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiUEczIERDRVQgdmFsdWUgPSIsIFRvSGV4U3RyaW5nIChcX1NCLlBDMDIuUFBNQy5E Q0VUKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUEMwMC5MUENCLlBHV0QgKFxf U0IuUEMwMi5QUE1DLkFDV0EsIFxfU0IuUEMwMi5QUE1DLkRDV0EsIFxfU0IuUEMwMi5QUE1D LkFDRVQsIFxfU0IuUEMwMi5QUE1DLkRDRVQpCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUEczIEFDV0EgdmFsdWUgPSIsIFRv SGV4U3RyaW5nIChBQ1dBKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiUEczIERDV0EgdmFsdWUgPSIsIFRvSGV4U3RyaW5nIChEQ1dBKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUEczIEFDRVQgdmFsdWUg PSIsIFRvSGV4U3RyaW5nIChBQ0VUKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUEczIERDRVQgdmFsdWUgPSIsIFRvSGV4U3RyaW5nIChEQ0VUKSkp CiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUEMwMC5MUENCLlBHV0QgKEFDV0EsIERD V0EsIEFDRVQsIERDRVQpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBcX1NCLlBDMDAuTFBDQi5QR0NMICgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KICAgICAgICB9CgogICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuVFBNLlBUUykp CiAgICAgICAgewogICAgICAgICAgICBcX1NCLlRQTS5QVFMgKEFyZzApCiAgICAgICAgfQoK ICAgICAgICBTUFRTIChBcmcwKQogICAgICAgIElmICgoUEZMViA9PSAweDAyKSkKICAgICAg ICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxFQ09OKSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgSWYgKChFQ09OID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgQURCRyAoIltUQ1NTXSAzcmQgUEQgUFNfT04gU3giKQogICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5MUENCLkhfRUMuRUNO VCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBcX1NC LlBDMDAuTFBDQi5IX0VDLkVDTlQgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE1ldGhv ZCAoUEJDTCwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKFBhY2th Z2UgKDB4NjcpCiAgICAgICAgewogICAgICAgICAgICAweDUwLCAKICAgICAgICAgICAgMHgz MiwgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAw eDAyLCAKICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgIDB4MDQsIAogICAgICAgICAg ICAweDA1LCAKICAgICAgICAgICAgMHgwNiwgCiAgICAgICAgICAgIDB4MDcsIAogICAgICAg ICAgICAweDA4LCAKICAgICAgICAgICAgMHgwOSwgCiAgICAgICAgICAgIDB4MEEsIAogICAg ICAgICAgICAweDBCLCAKICAgICAgICAgICAgMHgwQywgCiAgICAgICAgICAgIDB4MEQsIAog ICAgICAgICAgICAweDBFLCAKICAgICAgICAgICAgMHgwRiwgCiAgICAgICAgICAgIDB4MTAs IAogICAgICAgICAgICAweDExLCAKICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgIDB4 MTMsIAogICAgICAgICAgICAweDE0LCAKICAgICAgICAgICAgMHgxNSwgCiAgICAgICAgICAg IDB4MTYsIAogICAgICAgICAgICAweDE3LCAKICAgICAgICAgICAgMHgxOCwgCiAgICAgICAg ICAgIDB4MTksIAogICAgICAgICAgICAweDFBLCAKICAgICAgICAgICAgMHgxQiwgCiAgICAg ICAgICAgIDB4MUMsIAogICAgICAgICAgICAweDFELCAKICAgICAgICAgICAgMHgxRSwgCiAg ICAgICAgICAgIDB4MUYsIAogICAgICAgICAgICAweDIwLCAKICAgICAgICAgICAgMHgyMSwg CiAgICAgICAgICAgIDB4MjIsIAogICAgICAgICAgICAweDIzLCAKICAgICAgICAgICAgMHgy NCwgCiAgICAgICAgICAgIDB4MjUsIAogICAgICAgICAgICAweDI2LCAKICAgICAgICAgICAg MHgyNywgCiAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAweDI5LCAKICAgICAgICAg ICAgMHgyQSwgCiAgICAgICAgICAgIDB4MkIsIAogICAgICAgICAgICAweDJDLCAKICAgICAg ICAgICAgMHgyRCwgCiAgICAgICAgICAgIDB4MkUsIAogICAgICAgICAgICAweDJGLCAKICAg ICAgICAgICAgMHgzMCwgCiAgICAgICAgICAgIDB4MzEsIAogICAgICAgICAgICAweDMyLCAK ICAgICAgICAgICAgMHgzMywgCiAgICAgICAgICAgIDB4MzQsIAogICAgICAgICAgICAweDM1 LCAKICAgICAgICAgICAgMHgzNiwgCiAgICAgICAgICAgIDB4MzcsIAogICAgICAgICAgICAw eDM4LCAKICAgICAgICAgICAgMHgzOSwgCiAgICAgICAgICAgIDB4M0EsIAogICAgICAgICAg ICAweDNCLCAKICAgICAgICAgICAgMHgzQywgCiAgICAgICAgICAgIDB4M0QsIAogICAgICAg ICAgICAweDNFLCAKICAgICAgICAgICAgMHgzRiwgCiAgICAgICAgICAgIDB4NDAsIAogICAg ICAgICAgICAweDQxLCAKICAgICAgICAgICAgMHg0MiwgCiAgICAgICAgICAgIDB4NDMsIAog ICAgICAgICAgICAweDQ0LCAKICAgICAgICAgICAgMHg0NSwgCiAgICAgICAgICAgIDB4NDYs IAogICAgICAgICAgICAweDQ3LCAKICAgICAgICAgICAgMHg0OCwgCiAgICAgICAgICAgIDB4 NDksIAogICAgICAgICAgICAweDRBLCAKICAgICAgICAgICAgMHg0QiwgCiAgICAgICAgICAg IDB4NEMsIAogICAgICAgICAgICAweDRELCAKICAgICAgICAgICAgMHg0RSwgCiAgICAgICAg ICAgIDB4NEYsIAogICAgICAgICAgICAweDUwLCAKICAgICAgICAgICAgMHg1MSwgCiAgICAg ICAgICAgIDB4NTIsIAogICAgICAgICAgICAweDUzLCAKICAgICAgICAgICAgMHg1NCwgCiAg ICAgICAgICAgIDB4NTUsIAogICAgICAgICAgICAweDU2LCAKICAgICAgICAgICAgMHg1Nywg CiAgICAgICAgICAgIDB4NTgsIAogICAgICAgICAgICAweDU5LCAKICAgICAgICAgICAgMHg1 QSwgCiAgICAgICAgICAgIDB4NUIsIAogICAgICAgICAgICAweDVDLCAKICAgICAgICAgICAg MHg1RCwgCiAgICAgICAgICAgIDB4NUUsIAogICAgICAgICAgICAweDVGLCAKICAgICAgICAg ICAgMHg2MCwgCiAgICAgICAgICAgIDB4NjEsIAogICAgICAgICAgICAweDYyLCAKICAgICAg ICAgICAgMHg2MywgCiAgICAgICAgICAgIDB4NjQKICAgICAgICB9KQogICAgfQoKICAgIE1l dGhvZCAoX1dBSywgMSwgU2VyaWFsaXplZCkgIC8vIF9XQUs6IFdha2UKICAgIHsKICAgICAg ICBEOFhIIChPbmUsIDB4QUIpCiAgICAgICAgQURCRyAoIl9XQUsiKQogICAgICAgIE5hbWUg KFJQV00sIFplcm8pCiAgICAgICAgSWYgKChEU1RTID09IFplcm8pKQogICAgICAgIHsKICAg ICAgICAgICAgUlBXTSA9IFplcm8KICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAgIHsK ICAgICAgICAgICAgUlBXTSA9IDB4MDE4MAogICAgICAgIH0KCiAgICAgICAgU1dBSyAoQXJn MCwgUlBXTSkKICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMykpCiAgICAgICAgewogICAgICAg ICAgICBcX1NCLlBDMDAuTFBDQi5BQ0NGIChBQ1RUKQogICAgICAgIH0KCiAgICAgICAgSWYg KCgoQXJnMCA9PSAweDAzKSB8fCAoQXJnMCA9PSAweDA0KSkpCiAgICAgICAgewogICAgICAg ICAgICBJZiAoKEdCU1ggJiAweDQwKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg XF9TQi5QQzAwLkdGWDAuSVVFSCAoMHgwNikKICAgICAgICAgICAgICAgIFBCMUUgXj0gMHgw OAogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEdCU1ggJiAweDgwKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgXF9TQi5QQzAwLkdGWDAuSVVFSCAoMHgwNykKICAg ICAgICAgICAgICAgIFBCMUUgXj0gMHgxMAogICAgICAgICAgICB9CgogICAgICAgICAgICBc X1NCLlBDMDAuTFBDQi5TV1VCIChBcmcwLCBHQlNYLCBQQjFFLCBJR0RTKQogICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuVFhIQykpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFxfU0IuVENXSyAoQXJnMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoXERURlMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ ZiAoKERURlMgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBBY3F1aXJlIChPU1VNLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXF9HUEUuRFRJTikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBcX0dQRS5EVElOICgpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBSZWxlYXNlIChPU1VNKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcRFRGUykpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIElmICgoRFRGUyA9PSBPbmUpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDAxLk5G UlApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXF9T Qi5QQzAwLlJQMDEuTkZSUCAoKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLlJQMDUuTkZSUCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDMDAuUlAwNS5O RlJQICgpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo Q29uZFJlZk9mIChcX1NCLlBDMDAuUlAwOS5ORlJQKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUEMwMC5SUDA5Lk5GUlAgKCkKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxf U0IuUEMwMC5SUDEwLk5GUlApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgXF9TQi5QQzAwLlJQMTAuTkZSUCAoKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLlJQMTEu TkZSUCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBc X1NCLlBDMDAuUlAxMS5ORlJQICgpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAxMi5ORlJQKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUEMwMC5SUDEy Lk5GUlAgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmICgoUEZMViA9PSAweDAyKSkKICAgICAg ICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxFQ09OKSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgSWYgKChFQ09OID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgQURCRyAoIltUQ1NTXSAzcmQgUEQgUFNfT04gU3ggZXhpdCIp CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkxQQ0IuSF9F Qy5FQ05UKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFxfU0IuUEMwMC5MUENCLkhfRUMuRUNOVCAoMHgwNSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIEJQ TlQgKCkKICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgewogICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybwogICAgICAgIH0pCiAgICB9CgogICAgTWV0 aG9kIChHRVRCLCAzLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIExvY2FsMCA9IChBcmcw ICogMHgwOCkKICAgICAgICBMb2NhbDEgPSAoQXJnMSAqIDB4MDgpCiAgICAgICAgQ3JlYXRl RmllbGQgKEFyZzIsIExvY2FsMCwgTG9jYWwxLCBUQkYzKQogICAgICAgIFJldHVybiAoVEJG MykgLyogXEdFVEIuVEJGMyAqLwogICAgfQoKICAgIE1ldGhvZCAoQlBOVCwgMCwgTm90U2Vy aWFsaXplZCkKICAgIHsKICAgICAgICBBREJHICgiQlBOVCwgQm9hcmQgUG93ZXIgTm90aWZp Y2F0aW9uIikKICAgICAgICBcX1NCLlBDMDAuTFBDQi5OQklYICgpCiAgICAgICAgXF9TQi5Q QzAwLkxQQ0IuTkJTVCAoKQogICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuRFBURikpCiAg ICAgICAgewogICAgICAgICAgICBJZiAoKFxfU0IuRFBURiA9PSBPbmUpKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLklFVE0pKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5JRVRNLCAweDg2 KSAvLyBEZXZpY2UtU3BlY2lmaWMKICAgICAgICAgICAgICAgICAgICBJZiAoKChFQ09OID09 IE9uZSkgJiYgKFxfU0IuQ0hHRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuSUVUTS5DSFJHKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLklFVE0uQ0hSRywgMHg4MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE9wZXJhdGlvblJlZ2lv biAoQ1BXUiwgU3lzdGVtTWVtb3J5LCAoXF9TQi5QQzAwLkdNSEIgKCkgKyAweDUwMDApLCAw eDEwMDApCiAgICBGaWVsZCAoQ1BXUiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg IHsKICAgICAgICBPZmZzZXQgKDB4OTM4KSwgCiAgICAgICAgUFdSVSwgICA0LCAKICAgICAg ICBPZmZzZXQgKDB4OUEwKSwgCiAgICAgICAgUFBMMSwgICAxNSwgCiAgICAgICAgUEwxRSwg ICAxLCAKICAgICAgICBDTFAxLCAgIDEKICAgIH0KCiAgICBOYW1lIChDTE1QLCBaZXJvKQog ICAgTmFtZSAoUExFTiwgWmVybykKICAgIE5hbWUgKFBMU1YsIDB4ODAwMCkKICAgIE5hbWUg KENTRU0sIFplcm8pCiAgICBNZXRob2QgKFNQTDEsIDAsIFNlcmlhbGl6ZWQpCiAgICB7CiAg ICAgICAgTmFtZSAoUFBVVSwgWmVybykKICAgICAgICBJZiAoKENTRU0gPT0gT25lKSkKICAg ICAgICB7CiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICB9CgogICAgICAgIENT RU0gPSBPbmUKICAgICAgICBQTFNWID0gUFBMMSAvKiBcUFBMMSAqLwogICAgICAgIFBMRU4g PSBQTDFFIC8qIFxQTDFFICovCiAgICAgICAgQ0xNUCA9IENMUDEgLyogXENMUDEgKi8KICAg ICAgICBJZiAoKFBXUlUgPT0gWmVybykpCiAgICAgICAgewogICAgICAgICAgICBQUFVVID0g T25lCiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAgICAgICAgIFBQVVUg PSAoUFdSVS0tIDw8IDB4MDIpCiAgICAgICAgfQoKICAgICAgICBMb2NhbDAgPSAoUExWTCAq IFBQVVUpIC8qIFxTUEwxLlBQVVUgKi8KICAgICAgICBMb2NhbDEgPSAoTG9jYWwwIC8gMHgw M0U4KQogICAgICAgIFBQTDEgPSBMb2NhbDEKICAgICAgICBQTDFFID0gT25lCiAgICAgICAg Q0xQMSA9IE9uZQogICAgfQoKICAgIE1ldGhvZCAoUlBMMSwgMCwgU2VyaWFsaXplZCkKICAg IHsKICAgICAgICBQUEwxID0gUExTViAvKiBcUExTViAqLwogICAgICAgIFBMMUUgPSBQTEVO IC8qIFxQTEVOICovCiAgICAgICAgQ0xQMSA9IENMTVAgLyogXENMTVAgKi8KICAgICAgICBD U0VNID0gWmVybwogICAgfQoKICAgIE5hbWUgKFVBTVMsIFplcm8pCiAgICBOYW1lIChHTENL LCBaZXJvKQogICAgTWV0aG9kIChHVUFNLCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAg IFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcwKSkKICAgICAgICB7CiAgICAgICAgICAgIENhc2Ug KFplcm8pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoR0xDSyA9PSBPbmUp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdMQ0sgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgUDhYSCAoWmVybywgMHhFMSkKICAgICAgICAgICAgICAgICAg ICBBREJHICgiRXhpdCBSZXNpbGllbmN5IikKICAgICAgICAgICAgICAgICAgICBJZiAoUFND UCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFxfU0IuUFIwMC5fUFBDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5DUFBDID0gWmVybwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU1BOVCAoKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoUExDUykKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJQTDEgKCkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEJQTlQgKCkKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBDYXNlIChPbmUpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoR0xDSyA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHTENLID0gT25lCiAgICAgICAgICAgICAg ICAgICAgUDhYSCAoWmVybywgMHhFMCkKICAgICAgICAgICAgICAgICAgICBBREJHICgiRW50 ZXIgUmVzaWxpZW5jeSIpCiAgICAgICAgICAgICAgICAgICAgSWYgKFBTQ1ApCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKENvbmRSZWZPZiAo XF9TQi5QUjAwLl9QU1MpICYmIENvbmRSZWZPZiAoXF9TQi5QUjAwLl9QUEMpKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BOVCAo KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlBOVCAoKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJ ZiAoUExDUykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFNQTDEgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgfQoKICAgICAgICBV QU1TID0gKEFyZzAgJiYgIVBXUlMpCiAgICAgICAgUF9DUyAoKQogICAgfQoKICAgIE1ldGhv ZCAoUF9DUywgMCwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoQ29uZFJlZk9mIChc X1NCLlBDMDAuUEFVRC5QVUFNKSkKICAgICAgICB7CiAgICAgICAgICAgIFxfU0IuUEMwMC5Q QVVELlBVQU0gKCkKICAgICAgICB9CgogICAgICAgIElmICgoT1NZUyA9PSAweDA3REMpKQog ICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLlhIQ0kuRFVB TSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFxfU0IuUEMwMC5YSENJLkRVQU0g KCkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLlBDMDAp CiAgICB7CiAgICAgICAgTWV0aG9kIChQVE1BLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg IHsKICAgICAgICAgICAgUmV0dXJuIChCR01BKSAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8K ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoUFRNUywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICB7CiAgICAgICAgICAgIFJldHVybiAoQkdNUykgLyogRXh0ZXJuYWwgcmVmZXJlbmNl ICovCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFBUSUEsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKEJHSUEpIC8qIEV4dGVybmFsIHJlZmVy ZW5jZSAqLwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBTZXJpYWxpemVk KSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXERURlMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERURlMg PT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChcX1NCLlBDMDAuUlAwMS5ORlJQKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIF5SUDAxLk5GUlAgKCkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDA1 Lk5GUlApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg XlJQMDUuTkZSUCAoKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLlJQMDkuTkZSUCkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBeUlAwOS5ORlJQICgpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NC LlBDMDAuUlAxMC5ORlJQKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIF5SUDEwLk5GUlAgKCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDExLk5GUlApKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXlJQMTEuTkZSUCAo KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXF9TQi5QQzAwLlJQMTIuTkZSUCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBeUlAxMi5ORlJQICgpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBPU1lTID0g MHgwM0U4CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfT1NJKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgSWYgKF9PU0kgKCJXaW5kb3dzIDIwMDEiKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPU1lTID0gMHgwN0QxCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKF9PU0kgKCJXaW5kb3dzIDIwMDEgU1AxIikp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT1NZUyA9IDB4MDdEMQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAy MDAxIFNQMiIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9TWVMg PSAweDA3RDIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoX09TSSAo IldpbmRvd3MgMjAwMS4xIikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgT1NZUyA9IDB4MDdEMwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm IChfT1NJICgiV2luZG93cyAyMDA2IikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgT1NZUyA9IDB4MDdENgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmIChfT1NJICgiV2luZG93cyAyMDA5IikpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgT1NZUyA9IDB4MDdEOQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDEyIikpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgT1NZUyA9IDB4MDdEQwogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDEzIikpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgT1NZUyA9IDB4MDdERAogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDE1IikpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT1NZUyA9IDB4MDdERgogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChc RFRGUykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoRFRGUyA9PSBPbmUp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKE9TVU0s IDB4RkZGRikKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX0dQRS5EVElO KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFxfR1BF LkRUSU4gKCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl bGVhc2UgKE9TVU0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9 CiAgICB9CgogICAgU2NvcGUgKFwpCiAgICB7CiAgICAgICAgTmFtZSAoUElDTSwgWmVybykK ICAgICAgICBOYW1lIChQUldQLCBQYWNrYWdlICgweDAyKQogICAgICAgIHsKICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgIFplcm8KICAgICAgICB9KQogICAgICAgIE1ldGhvZCAo R1BSVywgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFBSV1AgW1pl cm9dID0gQXJnMAogICAgICAgICAgICBMb2NhbDAgPSAoU1MxIDw8IE9uZSkKICAgICAgICAg ICAgTG9jYWwwIHw9IChTUzIgPDwgMHgwMikKICAgICAgICAgICAgTG9jYWwwIHw9IChTUzMg PDwgMHgwMykKICAgICAgICAgICAgTG9jYWwwIHw9IChTUzQgPDwgMHgwNCkKICAgICAgICAg ICAgSWYgKCgoT25lIDw8IEFyZzEpICYgTG9jYWwwKSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgUFJXUCBbT25lXSA9IEFyZzEKICAgICAgICAgICAgfQogICAgICAgICAgICBF bHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA+Pj0gT25lCiAgICAg ICAgICAgICAgICBGaW5kU2V0TGVmdEJpdCAoTG9jYWwwLCBQUldQIFtPbmVdKQogICAgICAg ICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFBSV1ApIC8qIFxQUldQICovCiAgICAgICAg fQogICAgfQoKICAgIFNjb3BlIChfU0IpCiAgICB7CiAgICAgICAgTmFtZSAoT1NVNCwgWmVy bykKICAgICAgICBOYW1lIChPU0NNLCAweEZGKQogICAgICAgIElmICgoVTRTRSA9PSBPbmUp KQogICAgICAgIHsKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChDU0lPLCBTeXN0ZW1J TywgMHg3MiwgMHgwMikKICAgICAgICAgICAgRmllbGQgKENTSU8sIEJ5dGVBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElPNzIsICAgOCwg CiAgICAgICAgICAgICAgICBJTzczLCAgIDgKICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChXQ01QLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIldDTVAgLSBTYXZlZCBDTSBtb2RlID0gIiwgQXJn MCkpCiAgICAgICAgICAgICAgICBJTzcyID0gMHhCNwogICAgICAgICAgICAgICAgSU83MyA9 IEFyZzAKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChET0NNLCAw LCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChVNFNFID09IFplcm8p KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkYpCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiRE9DTTogU3dpdGNoIGhv c3Qgcm91dGVyIHRvIE9TIHJlcXVlc3RlZCBDTSBtb2RlIC0gIiwgT1NVNCkpCiAgICAgICAg ICAgIExvY2FsMCA9IDB4RkYKICAgICAgICAgICAgT1NDTSA9IFplcm8KICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJET0NNOiBFbmFibGVkIGhvc3Qgcm91dGVyIG1hc2sgb24g cGxhdGZvcm0gPSAiLCBUb0hleFN0cmluZyAoQ01TSykpKQogICAgICAgICAgICBJZiAoKENv bmRSZWZPZiAoXF9TQi5QQzAwLlRETTAuU1RDTSkgJiYgKENNU0sgJiBPbmUpKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoIkRPQ006IEFwcGx5IENNIG1vZGUgdG8g aVRCVDAgLi4uIikKICAgICAgICAgICAgICAgIExvY2FsMSA9IF5QQzAwLlRETTAuU1RDTSAo T1NVNCwgVTRDTSkKICAgICAgICAgICAgICAgIElmICgoTG9jYWwxICE9IDB4RkYpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi RE9DTTogQXBwbHkgQ00gbW9kZSB0byBpVEJUMCBzdWNjZXNzZnVsbHksIENNIG1vZGUgPSAi LCBMb2NhbDEpKQogICAgICAgICAgICAgICAgICAgIE9TQ00gPSBMb2NhbDEKICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJET0NNOiBGYWlsIHRvIGFwcGx5IENNIG1vZGUgdG8gaVRCVDAsIENN IG1vZGUgPSAiLCBPU1U0KSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkYpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQ29uZFJl Zk9mIChcX1NCLlBDMDAuVERNMS5TVENNKSAmJiAoQ01TSyAmIDB4MDIpKSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgQURCRyAoIkRPQ006IEFwcGx5IENNIG1vZGUgdG8gaVRC VDEiKQogICAgICAgICAgICAgICAgTG9jYWwxID0gXlBDMDAuVERNMS5TVENNIChPU1U0LCBV NENNKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgIT0gMHhGRikpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJET0NNOiBB cHBseSBDTSBtb2RlIHRvIGlUQlQxIHN1Y2Nlc3NmdWxseSwgQ00gbW9kZSA9ICIsIExvY2Fs MSkpCiAgICAgICAgICAgICAgICAgICAgT1NDTSA9IExvY2FsMQogICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIkRPQ006IEZhaWwgdG8gYXBwbHkgQ00gbW9kZSB0byBpVEJUMSwgQ00gbW9kZSA9 ICIsIE9TVTQpKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHhGRikKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gMHhG RikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEQkcgKCJET0NNOiBDTSBtb2Rl IGlzIG5vdCBhcHBsaWVkIHRvIGFueSBob3N0IHJvdXRlciwgbmF0aXZlIFVTQjQgY2FwYWJp bGl0eSBpcyBub3Qgc3VwcG9ydGVkIikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg KCgoVTRDTSAmIDB4NzApID09IDB4MjApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIkRPQ006IFNhdmUgdGhlIGFwcGxpZWQgQ00gbW9kZSB0 byBwbGF0Zm9ybSBzZXR0aW5ncywgQ00gbW9kZSA9ICIsIE9TQ00pKQogICAgICAgICAgICAg ICAgV0NNUCAoT1NDTSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChMb2Nh bDApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFU0Rk4sIDIsIFNlcmlhbGl6ZWQpCiAg ICAgICAgewogICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlU0Rk46IF9PU0MgU1RT ID0gIiwgVG9IZXhTdHJpbmcgKEFyZzApKSkKICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJVNEZOOiBfT1NDIENBUCA9ICIsIFRvSGV4U3RyaW5nIChBcmcxKSkpCiAgICAgICAg ICAgIElmICgoVTRTRSA9PSBaZXJvKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKCgoVTRDTSAmIDB4MDcpID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlU0Rk46IFBsYXRmb3JtIG9ubHkgc3VwcG9ydCBTVyBDTSIp CiAgICAgICAgICAgICAgICAgICAgT1NDTSA9IE9uZQogICAgICAgICAgICAgICAgICAgIElm ICgoQ29uZFJlZk9mIChcX1NCLlBDMDAuVERNMC5TVENNKSAmJiAoQ01TSyAmIE9uZSkpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXlBDMDAuVERN MC5TVENNIChPbmUsIFU0Q00pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoKENvbmRSZWZPZiAoXF9TQi5QQzAwLlRETTEuU1RDTSkgJiYgKENNU0sg JiAweDAyKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBeUEMwMC5URE0xLlNUQ00gKE9uZSwgVTRDTSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBPU0NNID0gWmVybwogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSAmIDB4MDAwNDAw MDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlU0Rk46IFVTQjQgY2FwYWJpbGl0eSBiaXQgc2hvdWxkIGJlIGNsZWFyZWQgc2luY2Ug cGxhdGZvcm0gZG9lc25cJ3Qgc3VwcG9ydCIpCiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHhGRikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlU0Rk46IE9TIGFuZCBwbGF0Zm9ybSBkb2VzblwndCBzdXBwb3J0IG5hdGl2ZSBVU0I0 IikKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBF bHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAg ICAgICAgICAgIElmICgoQXJnMSAmIDB4MDAwNDAwMDApKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJVNEZOOiBPUyBzdXBwb3J0cyBuYXRpdmUgVVNC NCBjYXBhYmlsaXR5IikKICAgICAgICAgICAgICAgICAgICBPU1U0ID0gT25lCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlU0Rk46IE9TIGRvZXNuXCd0IHN1cHBvcnQgbmF0aXZl IFVTQjQgY2FwYWJpbGl0eSIpCiAgICAgICAgICAgICAgICAgICAgT1NVNCA9IFplcm8KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKChVNENNICYgMHg3MCkgPT0g WmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChPU1U0 ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiVTRGTjogUGxhdGZvcm0gZG9lc25cJ3Qgc3VwcG9ydCBTVyBDTSwgY2xlYXIg VVNCNCBjYXBhYmlsaXR5IGJpdCIpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IDB4RkYKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlU0 Rk46IE9TIGFuZCBwbGF0Zm9ybSBvbmx5IHN1cHBvcnQgRlcgQ00iKQogICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoKChBcmcwICYgT25lKSA9PSBaZXJvKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiVTRGTjogUGxhdGZvcm0tV2lkZSBfT1ND IHF1ZXJ5IGJpdCA9IDAiKQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IERPQ00gKCkK ICAgICAgICAgICAgICAgICAgICBJZiAoKChPU1U0ID09IE9uZSkgJiYgKExvY2FsMSA9PSAw eEZGKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSAweEZGCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJVNEZOOiBQbGF0Zm9ybS1XaWRlIF9PU0MgcXVlcnkgYml0ID0gMSIpCiAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJPU1U0ID0gIiwgT1NVNCkp CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJPU0NNID0gIiwgT1ND TSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoT1NVNCA9PSBPbmUpICYmIChPU0NNID09 IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJVNEZOOiBOYXRpdmUgVVNCNCBjYXBhYmlsaXR5IGJpdCBzaG91bGQgYmUgY2xl YXJlZCBzaW5jZSBGVyBDTSBpcyBhcHBsaWVkIGZvciBPUyIpCiAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMCA9IDB4RkYKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgIH0K ICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQikKICAgIHsKICAgICAgICBOYW1lIChP U0NJLCBaZXJvKQogICAgICAgIE5hbWUgKE9TQ08sIFplcm8pCiAgICAgICAgTmFtZSAoT1ND UCwgWmVybykKICAgICAgICBNZXRob2QgKF9PU0MsIDQsIFNlcmlhbGl6ZWQpICAvLyBfT1ND OiBPcGVyYXRpbmcgU3lzdGVtIENhcGFiaWxpdGllcwogICAgICAgIHsKICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoQXJnMywgWmVybywgU1RTMCkKICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoQXJnMywgMHgwNCwgQ0FQMCkKICAgICAgICAgICAgSWYgKChBcmcwID09 IFRvVVVJRCAoIjA4MTFiMDZlLTRhMjctNDRmOS04ZDYwLTNjYmJjMjJlN2I0OCIpIC8qIFBs YXRmb3JtLXdpZGUgQ2FwYWJpbGl0aWVzICovKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgSWYgKChBcmcxID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgT1NDUCA9IENBUDAgLyogXF9TQl8uX09TQy5DQVAwICovCiAgICAgICAgICAg ICAgICAgICAgSWYgKChDQVAwICYgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBPU0NPID0gMHgwNAogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKChIR0RUICYgMHgwRikgIT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUlREMyA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDQVAwICY9IDB4RkZGRkZGRkIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTVFMwIHw9IDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKChVNEZOIChTVFMwLCBDQVAwKSA9PSAweEZGKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJfT1NDOiBOYXRpdmUgVVNC NCBjYXBhYmlsaXR5IGJpdCBpcyBjbGVhcmVkIikKICAgICAgICAgICAgICAgICAgICAgICAg Q0FQMCAmPSAweEZGRkJGRkZGCiAgICAgICAgICAgICAgICAgICAgICAgIFNUUzAgfD0gMHgx MAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTVFMwICY9 IDB4RkZGRkZGMDAKICAgICAgICAgICAgICAgICAgICBTVFMwIHw9IDB4MEEKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlSWYgKChBcmcwID09IFRv VVVJRCAoIjIzYTBkMTNhLTI2YWItNDg2Yy05YzVmLTBmZmE1MjVhNTc1YSIpIC8qIFVTQjQg Q2FwYWJpbGl0aWVzICovKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChP U0NNID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlRFdvcmRGaWVsZCAoQXJnMywgMHgwOCwgQ1RSTCkKICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiX09TQzogVVNCNCBDb250cm9sIF9PU0Mg cXVlcnkgYml0ID0gIiwgVG9IZXhTdHJpbmcgKChTVFMwICYgT25lKSkpKQogICAgICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkVQVFUgPSAiLCBUb0hleFN0cmlu ZyAoRVBUVSkpKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IkNUUkwgPSAiLCBUb0hleFN0cmluZyAoQ1RSTCkpKQogICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDEgPSBDVFJMIC8qIFxfU0JfLl9PU0MuQ1RSTCAqLwogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKENUUkwgJiAweEZGRkZGRkYwKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIl9PU0M6IENsZWFyIHVu c3VwcG9ydGVkIGJpdHMgb2YgVVNCIGNvbnRyb2wiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ1RSTCAmPSAweDBGCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoRVBUVSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1RSTCAmPSAweDBCCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIl9PU0M6IENsZWFy IFBDSWUgYml0LCBDVFJMPSAiLCBUb0hleFN0cmluZyAoQ1RSTCkpKQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSAhPSBD VFJMKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU1RTMCB8PSAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgi X09TQzogU2V0IGNhcGFiaWxpdGllcyBtYXNrZWQgYml0IHRvIGluZGljYXRlIGNhcGFiaWxp dGllcyBjbGVhcmVkIGJ5IHBsYXRmb3JtIikKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTVFMwICY9IDB4RkZGRkZG MDAKICAgICAgICAgICAgICAgICAgICAgICAgU1RTMCB8PSAweDBBCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJfT1NDOiBVU0I0IGNvbnRy b2wgVVVJRCBpcyB1bnJlY29nbmlzZWQgc2luY2UgU1cgQ00gbW9kZSBpcyBub3QgYXBwbGll ZCBmb3IgT1MhIikKICAgICAgICAgICAgICAgICAgICBTVFMwICY9IDB4RkZGRkZGMDAKICAg ICAgICAgICAgICAgICAgICBTVFMwIHw9IDB4MDYKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IFNUUzAgJj0gMHhGRkZGRkYwMAogICAgICAgICAgICAgICAgU1RTMCB8PSAweDA2CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoQXJnMykKICAgICAgICB9CiAgICB9Cgog ICAgU2NvcGUgKF9TQikKICAgIHsKICAgICAgICBEZXZpY2UgKFNMUEIpCiAgICAgICAgewog ICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBFIikgLyogU2xlZXAgQnV0 dG9uIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUg KF9TVEEsIFplcm8pICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICB9CiAgICB9CgogICAgU2Nv cGUgKF9TQikKICAgIHsKICAgICAgICBEZXZpY2UgKENPRVgpCiAgICAgICAgewogICAgICAg ICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJJTlQzNTE5IikpICAvLyBfSElEOiBIYXJkd2Fy ZSBJRAogICAgICAgICAgICBOYW1lIChfU1RSLCBVbmljb2RlICgiQ29FeGlzdGVuY2UgTWFu YWdlciIpKSAgLy8gX1NUUjogRGVzY3JpcHRpb24gU3RyaW5nCiAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJZiAoKENPRU0gPT0gT25lKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg ICAgICAgfQogICAgfQoKICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5JU0hEKSkKICAg IHsKICAgICAgICBTY29wZSAoX1NCLlBDMDAuSVNIRCkKICAgICAgICB7CiAgICAgICAgICAg IE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVj aWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoIklTSEQg X0RTTSIpCiAgICAgICAgICAgICAgICBJZiAoUENJQyAoQXJnMCkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQ0lEIChBcmcwLCBBcmcxLCBBcmcy LCBBcmczKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChISVdDKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo SElXQyAoQXJnMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPD0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKEhJRFcpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoSElEVyAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZUlmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoSVNB UikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChJU0FSIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gLgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAg IH0KCiAgICBTY29wZSAoX1NCKQogICAgewogICAgICAgIERldmljZSAoUFIwMCkKICAgICAg ICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBQ1BJMDAwNyIgLyogUHJvY2Vzc29yIERl dmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQs IFplcm8pICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICB9CgogICAgICAgIERldmljZSAo UFIwMSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBQ1BJMDAwNyIgLyog UHJvY2Vzc29yIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAg IE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAg ICAgRGV2aWNlIChQUjAyKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFD UEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjAzKQogICAgICAgIHsKICAgICAgICAgICAgTmFt ZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDog SGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMykgIC8vIF9VSUQ6IFVu aXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjA0KQogICAgICAgIHsKICAg ICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICov KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNCkg IC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjA1KQog ICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNz b3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgwNSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChQUjA2KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3 IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg ICAgICAgTmFtZSAoX1VJRCwgMHgwNikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0K CiAgICAgICAgRGV2aWNlIChQUjA3KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdh cmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNykgIC8vIF9VSUQ6IFVuaXF1ZSBJ RAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjA4KQogICAgICAgIHsKICAgICAgICAg ICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwOCkgIC8vIF9V SUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjA5KQogICAgICAg IHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2 aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwg MHgwOSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQ UjEwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQ cm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgwQSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAg ICAgRGV2aWNlIChQUjExKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFD UEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwQikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjEyKQogICAgICAgIHsKICAgICAgICAgICAgTmFt ZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDog SGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwQykgIC8vIF9VSUQ6IFVu aXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjEzKQogICAgICAgIHsKICAg ICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICov KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwRCkg IC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjE0KQog ICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNz b3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgwRSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChQUjE1KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3 IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg ICAgICAgTmFtZSAoX1VJRCwgMHgwRikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0K CiAgICAgICAgRGV2aWNlIChQUjE2KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdh cmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxMCkgIC8vIF9VSUQ6IFVuaXF1ZSBJ RAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjE3KQogICAgICAgIHsKICAgICAgICAg ICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxMSkgIC8vIF9V SUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjE4KQogICAgICAg IHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2 aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwg MHgxMikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQ UjE5KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQ cm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgxMykgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAg ICAgRGV2aWNlIChQUjIwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFD UEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxNCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjIxKQogICAgICAgIHsKICAgICAgICAgICAgTmFt ZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDog SGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxNSkgIC8vIF9VSUQ6IFVu aXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjIyKQogICAgICAgIHsKICAg ICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICov KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxNikg IC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjIzKQog ICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNz b3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgxNykgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChQUjI0KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3 IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg ICAgICAgTmFtZSAoX1VJRCwgMHgxOCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0K CiAgICAgICAgRGV2aWNlIChQUjI1KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdh cmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxOSkgIC8vIF9VSUQ6IFVuaXF1ZSBJ RAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjI2KQogICAgICAgIHsKICAgICAgICAg ICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxQSkgIC8vIF9V SUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjI3KQogICAgICAg IHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2 aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwg MHgxQikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQ UjI4KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQ cm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgxQykgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAg ICAgRGV2aWNlIChQUjI5KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFD UEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxRCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjMwKQogICAgICAgIHsKICAgICAgICAgICAgTmFt ZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDog SGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxRSkgIC8vIF9VSUQ6IFVu aXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjMxKQogICAgICAgIHsKICAg ICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICov KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxRikg IC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjMyKQog ICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNz b3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgyMCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChQUjMzKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3 IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg ICAgICAgTmFtZSAoX1VJRCwgMHgyMSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0K CiAgICAgICAgRGV2aWNlIChQUjM0KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdh cmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgyMikgIC8vIF9VSUQ6IFVuaXF1ZSBJ RAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjM1KQogICAgICAgIHsKICAgICAgICAg ICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgyMykgIC8vIF9V SUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjM2KQogICAgICAg IHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2 aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwg MHgyNCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQ UjM3KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQ cm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgyNSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAg ICAgRGV2aWNlIChQUjM4KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFD UEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgyNikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjM5KQogICAgICAgIHsKICAgICAgICAgICAgTmFt ZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDog SGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgyNykgIC8vIF9VSUQ6IFVu aXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjQwKQogICAgICAgIHsKICAg ICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICov KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgyOCkg IC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjQxKQog ICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNz b3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgyOSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChQUjQyKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3 IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg ICAgICAgTmFtZSAoX1VJRCwgMHgyQSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0K CiAgICAgICAgRGV2aWNlIChQUjQzKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdh cmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgyQikgIC8vIF9VSUQ6IFVuaXF1ZSBJ RAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjQ0KQogICAgICAgIHsKICAgICAgICAg ICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgyQykgIC8vIF9V SUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQUjQ1KQogICAgICAg IHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2 aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwg MHgyRCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQ UjQ2KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IiAvKiBQ cm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgyRSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgIH0KCiAgICAg ICAgRGV2aWNlIChQUjQ3KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFD UEkwMDA3IiAvKiBQcm9jZXNzb3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgyRikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCKQogICAgewogICAgICAgIERldmljZSAoUEFH RCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBQ1BJMDAwQyIgLyogUHJv Y2Vzc29yIEFnZ3JlZ2F0b3IgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAg ICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3Rh dHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChfT1NJICgiUHJvY2Vzc29y IEFnZ3JlZ2F0b3IgRGV2aWNlIikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAo X1BVUiwgUGFja2FnZSAoMHgwMikgIC8vIF9QVVI6IFByb2Nlc3NvciBVdGlsaXphdGlvbiBS ZXF1ZXN0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgIH0pCiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChf U0IuUEMwMCkKICAgIHsKICAgICAgICBEZXZpY2UgKFBEUkMpCiAgICAgICAgewogICAgICAg ICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJk IFJlc291cmNlcyAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUg KF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBOYW1lIChCVUYw LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1l bW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw LCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDgw MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBfWTRE KQogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAg ICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAg ICAgICAgICAgICAgICAgIF9ZNEUpCiAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChS ZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBB ZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8v IEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgX1k0RikKICAgICAgICAgICAg ICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAw MDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICBfWTUwKQogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAg ICAgICAgICAgICAgICAgIDB4RkVEMjAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAg ICAgICAgICAgICAgICAgICAgMHgwMDA2MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQg KFJlYWRPbmx5LAogICAgICAgICAgICAgICAgICAgIDB4RkM4MDAwMDAsICAgICAgICAgLy8g QWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAv LyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg IE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweEZFRDQ1 MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgIDB4MDAw NEIwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwKICAgICAgICAgICAg ICAgICAgICAweEZFRTAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAg ICAgICAgICAgIDB4MDAxMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3Jp dGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNz IEJhc2UKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJl c3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgTWVtb3J5 MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg ICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgIF9ZNTEpCiAg ICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAg ICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgX1k0QykKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChf Q1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5n cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChEUFRSKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChCVUYwLCBcX1NCLlBDMDAuUERSQy5fWTRDLl9CQVMsIEFCUjApICAvLyBfQkFTOiBCYXNl IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBBQlIwID0gRFBUUiAvKiBFeHRlcm5hbCBy ZWZlcmVuY2UgKi8KICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYw LCBcX1NCLlBDMDAuUERSQy5fWTRDLl9MRU4sIEFCTE4pICAvLyBfTEVOOiBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICBBQkxOID0gKEVQVFIgLSBEUFRSKSAvKiBFeHRlcm5hbCByZWZl cmVuY2UgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuUERSQy5fWTRELl9CQVMsIE1CUjApICAvLyBfQkFT OiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIE1CUjAgPSBHTUhCICgpCiAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuUERSQy5fWTRFLl9C QVMsIERCUjApICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIERCUjAg PSBHRE1CICgpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NC LlBDMDAuUERSQy5fWTRGLl9CQVMsIEVCUjApICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAg ICAgICAgICAgICAgIEVCUjAgPSBHRVBCICgpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuUERSQy5fWTUwLl9CQVMsIFhCUjApICAvLyBfQkFT OiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIFhCUjAgPSBHUENCICgpCiAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDMDAuUERSQy5fWTUwLl9M RU4sIFhTWjApICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgIFhTWjAgPSBHUENM ICgpCiAgICAgICAgICAgICAgICBJZiAoIUhQVEUpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLlBEUkMu X1k1MS5fQkFTLCBIQkFTKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQzAwLlBEUkMuX1k1MS5fTEVO LCBITEVOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgSEJBUyA9IEhQ VEIgLyogXEhQVEIgKi8KICAgICAgICAgICAgICAgICAgICBITEVOID0gMHgwNDAwCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChCVUYwKSAvKiBcX1NCXy5Q QzAwLlBEUkMuQlVGMCAqLwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE1l dGhvZCAoQlJUTiwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoKChESURYICYg MHgwRjBGKSA9PSAweDA0MDApKQogICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChcX1NC LlBDMDAuR0ZYMC5ERDFGLCBBcmcwKQogICAgICAgIH0KCiAgICAgICAgSWYgKCgoRElEWSAm IDB4MEYwRikgPT0gMHgwNDAxKSkKICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQzAwLkdGWDAuREQyRiwgQXJnMCkKICAgICAgICB9CgogICAgICAgIElmICgoKERHRFgg JiAweDBGMEYpID09IDB4MDQwMCkpCiAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxf U0IuUEMwMC5SUDEyLlBYU1guUEVHQi5QRUdFLkRFRFAsIEFyZzApCiAgICAgICAgfQogICAg fQoKICAgIFNjb3BlIChfR1BFKQogICAgewogICAgICAgIE1ldGhvZCAoX0w3MywgMCwgU2Vy aWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRyaWdnZXJlZCBHUEUsIHh4PTB4MDAtMHhGRgog ICAgICAgIHsKICAgICAgICAgICAgQURCRyAoIkw3MyBFdmVudCIpCiAgICAgICAgfQoKICAg ICAgICBNZXRob2QgKF9MNjksIDAsIFNlcmlhbGl6ZWQpICAvLyBfTHh4OiBMZXZlbC1Ucmln Z2VyZWQgR1BFLCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIEFEQkcgKCJM NjkgRXZlbnQiKQogICAgICAgICAgICBTTDY5ICgpCiAgICAgICAgfQoKICAgICAgICBNZXRo b2QgKF9MNjEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfTHh4OiBMZXZlbC1UcmlnZ2VyZWQg R1BFLCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIEFEQkcgKCJMNjEgRXZl bnQiKQogICAgICAgICAgICBMMDFDICs9IE9uZQogICAgICAgICAgICBQOFhIIChaZXJvLCBP bmUpCiAgICAgICAgICAgIFA4WEggKE9uZSwgTDAxQykKICAgICAgICAgICAgU0w2MSAoKQog ICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfTDYyLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X0x4eDogTGV2ZWwtVHJpZ2dlcmVkIEdQRSwgeHg9MHgwMC0weEZGCiAgICAgICAgewogICAg ICAgICAgICBBREJHICgiTDYyIEV2ZW50IikKICAgICAgICAgICAgR1BFQyA9IFplcm8KICAg ICAgICB9CgogICAgICAgIE1ldGhvZCAoX0w1MCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9M eHg6IExldmVsLVRyaWdnZXJlZCBHUEUsIHh4PTB4MDAtMHhGRgogICAgICAgIHsKICAgICAg ICAgICAgQURCRyAoIkw1MCBFdmVudCIpCiAgICAgICAgICAgIFxfU0IuUEMwMC5MUENCLldL RUMgKCkKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgIH0KCiAgICAgICAgTWV0 aG9kIChfTDZCLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0x4eDogTGV2ZWwtVHJpZ2dlcmVk IEdQRSwgeHg9MHgwMC0weEZGCiAgICAgICAgewogICAgICAgICAgICBBREJHICgiX0w2QiBF dmVudCIpCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfR1BFLkFMNkIpKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBBTDZCICgpCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFxfR1BFLlBMNkIpKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBQTDZCICgpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUg KFBSRVMsIE9uZSkKICAgICAgICBNZXRob2QgKF9MNkYsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfTHh4OiBMZXZlbC1UcmlnZ2VyZWQgR1BFLCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAg ICAgICAgICAgIEFEQkcgKCJMNkYgRXZlbnQiKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChcX0dQRS5BTDZGKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQUw2RiAoKQog ICAgICAgICAgICB9CgogICAgICAgICAgICBTTDZGICgpCiAgICAgICAgfQoKICAgICAgICBN ZXRob2QgKF9MNzIsIDAsIFNlcmlhbGl6ZWQpICAvLyBfTHh4OiBMZXZlbC1UcmlnZ2VyZWQg R1BFLCB4eD0weDAwLTB4RkYKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KFxfU0IuUEMwMC5BV0FDKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9TQi5Q QzAwLkFXQUMuV0FTVCA9IE9uZQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDMDAu QVdBQywgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgfQogICAgICAgIH0KCiAg ICAgICAgTWV0aG9kIChfTDcxLCAwLCBTZXJpYWxpemVkKSAgLy8gX0x4eDogTGV2ZWwtVHJp Z2dlcmVkIEdQRSwgeHg9MHgwMC0weEZGCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChcX0dQRS5TTDcxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU0w3 MSAoKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoQ29uZFJlZk9mIChH UDFFKSkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoR1AxRSAhPSBaZXJvKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChfTEM3LCAwLCBTZXJpYWxpemVkKSAg Ly8gX0x4eDogTGV2ZWwtVHJpZ2dlcmVkIEdQRSwgeHg9MHgwMC0weEZGCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkxDNyBFdmVudCIpCiAgICAgICAg ICAgICAgICAgICAgU0xDNyAoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg ICAgICAgfQoKICAgICAgICBJZiAoQ29uZFJlZk9mIChHUDFFKSkKICAgICAgICB7CiAgICAg ICAgICAgIElmICgoR1AxRSAhPSBaZXJvKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgTWV0aG9kIChfTEE3LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0x4eDogTGV2ZWwtVHJp Z2dlcmVkIEdQRSwgeHg9MHgwMC0weEZGCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQURCRyAoIkxBNyBFdmVudCIpCiAgICAgICAgICAgICAgICAgICAgTDAxQyAr PSBPbmUKICAgICAgICAgICAgICAgICAgICBQOFhIIChaZXJvLCAweEE3KQogICAgICAgICAg ICAgICAgICAgIFA4WEggKE9uZSwgTDAxQykKICAgICAgICAgICAgICAgICAgICBTTEE3ICgp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1l dGhvZCAoX0xBMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRyaWdnZXJlZCBH UEUsIHh4PTB4MDAtMHhGRgogICAgICAgIHsKICAgICAgICAgICAgQURCRyAoIkxBMCBFdmVu dCIpCiAgICAgICAgICAgIFNMQTAgKCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0xB MSwgMCwgU2VyaWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRyaWdnZXJlZCBHUEUsIHh4PTB4 MDAtMHhGRgogICAgICAgIHsKICAgICAgICAgICAgQURCRyAoIkxBMSBFdmVudCIpCiAgICAg ICAgICAgIFNMQTEgKCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0xBMiwgMCwgU2Vy aWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRyaWdnZXJlZCBHUEUsIHh4PTB4MDAtMHhGRgog ICAgICAgIHsKICAgICAgICAgICAgQURCRyAoIkxBMiBFdmVudCIpCiAgICAgICAgICAgIFNM QTIgKCkKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0xDMCwgMCwgU2VyaWFsaXplZCkg IC8vIF9MeHg6IExldmVsLVRyaWdnZXJlZCBHUEUsIHh4PTB4MDAtMHhGRgogICAgICAgIHsK ICAgICAgICAgICAgQURCRyAoIkxDMCBFdmVudCIpCiAgICAgICAgICAgIFNMQzAgKCkKICAg ICAgICB9CgogICAgICAgIE1ldGhvZCAoX0xDMSwgMCwgU2VyaWFsaXplZCkgIC8vIF9MeHg6 IExldmVsLVRyaWdnZXJlZCBHUEUsIHh4PTB4MDAtMHhGRgogICAgICAgIHsKICAgICAgICAg ICAgQURCRyAoIkxDMSBFdmVudCIpCiAgICAgICAgICAgIFNMQzEgKCkKICAgICAgICB9Cgog ICAgICAgIE1ldGhvZCAoX0xDMiwgMCwgU2VyaWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRy aWdnZXJlZCBHUEUsIHh4PTB4MDAtMHhGRgogICAgICAgIHsKICAgICAgICAgICAgQURCRyAo IkxDMiBFdmVudCIpCiAgICAgICAgICAgIFNMQzIgKCkKICAgICAgICB9CiAgICB9CgogICAg RGV2aWNlIChfU0IuUEMwMC5ET0NLKQogICAgewogICAgICAgIE5hbWUgKF9ISUQsICJBQkNE MDAwMCIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgIE5hbWUgKF9DSUQsIEVpc2FJ ZCAoIlBOUDBDMTUiKSAvKiBEb2NraW5nIFN0YXRpb24gKi8pICAvLyBfQ0lEOiBDb21wYXRp YmxlIElECiAgICAgICAgTmFtZSAoX1VJRCwgIlNBRERMRVNUUklORyIpICAvLyBfVUlEOiBV bmlxdWUgSUQKICAgICAgICBJZiAoKFMwSUQgPT0gWmVybykpCiAgICAgICAgewogICAgICAg ICAgICBNZXRob2QgKF9FSjAsIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRUp4OiBFamVjdCBE ZXZpY2UsIHg9MC05CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFA4WEggKFplcm8s IDB4RUQpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgIHsKICAgICAgICAg ICAgQURCRyAoIk1ldGhvZCBfU1RBIikKICAgICAgICAgICAgSWYgKChFQ09OID09IFplcm8p KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIElmIChEU1RTKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBBREJHICgiRG9jayBFeGlzdCIpCiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBBREJHICgiRG9jayBub3QgRXhpc3QiKQogICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKFMwSUQgPT0g WmVybykpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9EQ0ssIDEsIE5vdFNlcmlh bGl6ZWQpICAvLyBfRENLOiBEb2NrIFByZXNlbnQKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQURCRyAoIk1ldGhvZCBfRENLIikKICAgICAgICAgICAgICAgIElmIChBcmcwKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIERTVFMgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9Cgog ICAgICAgIElmICgoUENIUyAhPSAweDA0KSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUg KFhFREwsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF5S UDA3LlBYU1gsIAogICAgICAgICAgICAgICAgXlJQMDguUFhTWCwgCiAgICAgICAgICAgICAg ICBTQVQwCiAgICAgICAgICAgIH0pCiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoR01J TywgMywgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBYQ1Ms IFN5c3RlbU1lbW9yeSwgXF9TQi5QQzAwLlBDMk0gKEFyZzEsIEFyZzApLCAweDIwKQogICAg ICAgIEZpZWxkIChQWENTLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewog ICAgICAgICAgICBPZmZzZXQgKDB4MTgpLCAKICAgICAgICAgICAgUEJVUywgICA4LCAKICAg ICAgICAgICAgU0JVUywgICA4CiAgICAgICAgfQoKICAgICAgICBMb2NhbDAgPSBcX1NCLlBD MDAuR1BDQiAoKQogICAgICAgIExvY2FsMCArPSAoKEFyZzIgJiAweDAwMUYwMDAwKSA+PiBP bmUpCiAgICAgICAgTG9jYWwwICs9ICgoQXJnMiAmIDB4MDcpIDw8IDB4MEMpCiAgICAgICAg TG9jYWwwICs9IChTQlVTIDw8IDB4MTQpCiAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICB9 CgogICAgU2NvcGUgKF9TQi5QQzAwLlJQMDEuUFhTWCkKICAgIHsKICAgICAgICBPcGVyYXRp b25SZWdpb24gKFJQWFgsIFN5c3RlbU1lbW9yeSwgR01JTyAoUEJOVSwgXl9BRFIgKCksIF9B RFIpLCAweDMwKQogICAgICAgIEZpZWxkIChSUFhYLCBBbnlBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgewogICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAgICAgT2Zm c2V0ICgweDJDKSwgCiAgICAgICAgICAgIFNWSUQsICAgMTYKICAgICAgICB9CgogICAgICAg IE9wZXJhdGlvblJlZ2lvbiAoRkxEUiwgU3lzdGVtTWVtb3J5LCAoR01JTyAoUEJOVSwgXl9B RFIgKCksIF9BRFIpICsgV0RDTyksIDB4MDYpCiAgICAgICAgRmllbGQgKEZMRFIsIEJ5dGVB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBEQ0FQLCAgIDMy LCAKICAgICAgICAgICAgRENUUiwgICAxNgogICAgICAgIH0KCiAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChWU0VDLCBTeXN0ZW1NZW1vcnksIChHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FE UikgKyBXVkhPKSwgMHgxMCkKICAgICAgICBGaWVsZCAoVlNFQywgQW55QWNjLCBOb0xvY2ss IFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweDBDKSwgCiAgICAg ICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIEJUSUUsICAgMSwgCiAgICAgICAgICAg ICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAs ICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwg CiAgICAgICAgICAgIE9mZnNldCAoMHgwRCksIAogICAgICAgICAgICBQRFJDLCAgIDEKICAg ICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUEJSUiwgU3lzdGVtTWVtb3J5LCBH TUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUiksIDB4MDJCOCkKICAgICAgICBGaWVsZCAoUEJS UiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zm c2V0ICgweDE4QyksIAogICAgICAgICAgICBNU05MLCAgIDMyLCAKICAgICAgICAgICAgT2Zm c2V0ICgweDE5OCksIAogICAgICAgICAgICBMMUMxLCAgIDMyLCAKICAgICAgICAgICAgTDFD MiwgICAzMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgyQjQpLCAKICAgICAgICAgICAgUFRN UiwgICAzMgogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChXSVNULCAwLCBTZXJpYWxpemVk KQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVkRJRCkpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChWRElEKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI1MjY4MDg2KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4Mjcx QjgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg Q2FzZSAoMHgyNzIzODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDI3MjU4MDg2KQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MjcyQjgwODYpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTVkRDID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQogICAgICAgIH0K CiAgICAgICAgTWV0aG9kIChXV1NULCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAg ICAgICAgSWYgKENvbmRSZWZPZiAoVkRJRCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChWRElEKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDczNjA4MDg2KQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4NzU2MDgwODYpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHg0RDc1MTRDMykK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDA4MDAxNEMzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAg ICAgICBJZiAoV0lTVCAoKSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFJTVFksIFpl cm8pCiAgICAgICAgICAgIE5hbWUgKEZMUkMsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKEJP RkMsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKERQUlMsIFplcm8pCiAgICAgICAgICAgIFBv d2VyUmVzb3VyY2UgKFdSU1QsIDB4MDUsIDB4MDAwMCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3Rh dHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkg UFIgX1NUQSIpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT04sIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJXaWZpIFBSIF9PTiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIg T2ZmCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkg UFIgX09GRiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChf UlNULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChSU1RZID09IE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV2lmaSBQ cm9kdWN0IFJTVCIpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEFjcXVpcmUg KENOTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoRkxSQyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IERDVFIgLyogXF9T Ql8uUEMwMC5SUDAxLlBYU1guRENUUiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCB8PSAweDgwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE Q1RSID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKEZE RUwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRFBSUyA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChC T0ZDID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChCUk1UID09IFplcm8pKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQlRSSyAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoV1ZITyAhPSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJUSUUgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoUkRMWSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQRFJDID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoVkRFTCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNHT1YgKFdMUlQsIFplcm8pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoUERFTCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNHT1YgKFdMUlQsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoQk9GQyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQlJNVCA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJUUksgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoV1ZITyAhPSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJUSUUgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChSRExZKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERQUlMgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChD Tk1UKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIENvcmUgUlNUIikKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChEQ0FQICYgMHgxMDAwMDAwMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IERDVFIgLyogXF9T Ql8uUEMwMC5SUDAxLlBYU1guRENUUiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwIHw9IDB4ODAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRENUUiA9IExv Y2FsMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBEUFJTID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHgwN0QwKQogICAgICAgICAgICAgICAgICAgIE1TTkwgPSBEUjAxIC8qIFxE UjAxICovCiAgICAgICAgICAgICAgICAgICAgTDFDMSA9IERSMDIgLyogXERSMDIgKi8KICAg ICAgICAgICAgICAgICAgICBMMUMyID0gRFIwMyAvKiBcRFIwMyAqLwogICAgICAgICAgICAg ICAgICAgIFBUTVIgPSBEUjA0IC8qIFxEUjA0ICovCiAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKDB4MDdEMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTmFtZSAoU1BMWCwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChTUExD LCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9m IChTUExYIFtPbmVdKSBbWmVyb10gPSBET00xIC8qIFxET00xICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChTUExYIFtPbmVdKSBbT25lXSA9IExJTTEgLyogXExJTTEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFsweDAyXSA9IFRJTTEgLyogXFRJTTEg Ki8KICAgICAgICAgICAgICAgIFJldHVybiAoU1BMWCkgLyogXF9TQl8uUEMwMC5SUDAxLlBY U1guU1BMWCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXQU5YLCBQYWNr YWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAw MDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV0FORCwgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBbT25lXSkg W1plcm9dID0gWmVybwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBbT25lXSkgW09u ZV0gPSBUUkQwIC8qIFxUUkQwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXQU5YIFtP bmVdKSBbMHgwMl0gPSBUUkwwIC8qIFxUUkwwICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXQU5YIFsweDAyXSkgW1plcm9dID0gT25lCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX QU5YIFsweDAyXSkgW09uZV0gPSBUUkQxIC8qIFxUUkQxICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXQU5YIFsweDAyXSkgWzB4MDJdID0gVFJMMSAvKiBcVFJMMSAqLwogICAgICAg ICAgICAgICAgUmV0dXJuIChXQU5YKSAvKiBcX1NCXy5QQzAwLlJQMDEuUFhTWC5XQU5YICov CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdSRFgsIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw eDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChXUkRELCAwLCBTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRYIFtPbmVd KSBbWmVyb10gPSBXRE0xIC8qIFxXRE0xICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRYIFtPbmVdKSBbT25lXSA9IENJRDEgLyogXENJRDEgKi8KICAgICAgICAgICAgICAgIFJl dHVybiAoV1JEWCkgLyogXF9TQl8uUEMwMC5SUDAxLlBYU1guV1JEWCAqLwogICAgICAgICAg ICB9CgogICAgICAgICAgICBOYW1lIChXUkRZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MkUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQog ICAgICAgICAgICBNZXRob2QgKFdSRFMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFtPbmVdID0gU1RYRSAvKiBc U1RYRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDJdID0g U1QxMCAvKiBcU1QxMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MDNdID0gU1QxMSAvKiBcU1QxMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MDRdID0gU1QxMiAvKiBcU1QxMiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MDVdID0gU1QxMyAvKiBcU1QxMyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDZdID0gU1QxNCAvKiBcU1QxNCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDddID0gU1QxNSAvKiBc U1QxNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDhdID0g U1QxNiAvKiBcU1QxNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MDldID0gU1QxNyAvKiBcU1QxNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MEFdID0gU1QxOCAvKiBcU1QxOCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MEJdID0gU1QxOSAvKiBcU1QxOSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MENdID0gU1Q1MCAvKiBcU1Q1MCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MERdID0gU1Q1MSAvKiBc U1Q1MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MEVdID0g U1Q1MiAvKiBcU1Q1MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MEZdID0gU1Q1MyAvKiBcU1Q1MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MTBdID0gU1Q1NCAvKiBcU1Q1NCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MTFdID0gU1Q1NSAvKiBcU1Q1NSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTJdID0gU1Q1NiAvKiBcU1Q1NiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTNdID0gU1Q1NyAvKiBc U1Q1NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTRdID0g U1Q1OCAvKiBcU1Q1OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MTVdID0gU1Q1OSAvKiBcU1Q1OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MTZdID0gU1Q1QSAvKiBcU1Q1QSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MTddID0gU1Q1QiAvKiBcU1Q1QiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MThdID0gQ0QxMCAvKiBcQ0QxMCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTldID0gQ0QxMSAvKiBc Q0QxMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUFdID0g Q0QxMiAvKiBcQ0QxMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MUJdID0gQ0QxMyAvKiBcQ0QxMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MUNdID0gQ0QxNCAvKiBcQ0QxNCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MURdID0gQ0QxNSAvKiBcQ0QxNSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUVdID0gQ0QxNiAvKiBcQ0QxNiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUZdID0gQ0QxNyAvKiBc Q0QxNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjBdID0g Q0QxOCAvKiBcQ0QxOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MjFdID0gQ0QxOSAvKiBcQ0QxOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MjJdID0gQ0QxQSAvKiBcQ0QxQSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MjNdID0gQ0QyMCAvKiBcQ0QyMCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjRdID0gQ0QyMSAvKiBcQ0QyMSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjVdID0gQ0QyMiAvKiBc Q0QyMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjZdID0g Q0QyMyAvKiBcQ0QyMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MjddID0gQ0QyNCAvKiBcQ0QyNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MjhdID0gQ0QyNSAvKiBcQ0QyNSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MjldID0gQ0QyNiAvKiBcQ0QyNiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MkFdID0gQ0QyNyAvKiBcQ0QyNyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MkJdID0gQ0QyOCAvKiBc Q0QyOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MkNdID0g Q0QyOSAvKiBcQ0QyOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MkRdID0gQ0QyQSAvKiBcQ0QyQSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXUkRZ KSAvKiBcX1NCXy5QQzAwLlJQMDEuUFhTWC5XUkRZICovCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE5hbWUgKEVXUlksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHg4NykKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoRVdSRCwgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg W09uZV0gPSBTVERFIC8qIFxTVERFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgwMl0gPSBTVFJTIC8qIFxTVFJTICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgwM10gPSBTVDIwIC8qIFxTVDIwICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwNF0gPSBTVDIxIC8qIFxTVDIxICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwNV0gPSBTVDIyIC8qIFxT VDIyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwNl0gPSBT VDIzIC8qIFxTVDIzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgwN10gPSBTVDI0IC8qIFxTVDI0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgwOF0gPSBTVDI1IC8qIFxTVDI1ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgwOV0gPSBTVDI2IC8qIFxTVDI2ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwQV0gPSBTVDI3IC8qIFxTVDI3ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwQl0gPSBTVDI4IC8qIFxT VDI4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwQ10gPSBT VDI5IC8qIFxTVDI5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgwRF0gPSBTVDYwIC8qIFxTVDYwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgwRV0gPSBTVDYxIC8qIFxTVDYxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgwRl0gPSBTVDYyIC8qIFxTVDYyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxMF0gPSBTVDYzIC8qIFxTVDYzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxMV0gPSBTVDY0IC8qIFxT VDY0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxMl0gPSBT VDY1IC8qIFxTVDY1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgxM10gPSBTVDY2IC8qIFxTVDY2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgxNF0gPSBTVDY3IC8qIFxTVDY3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgxNV0gPSBTVDY4IC8qIFxTVDY4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxNl0gPSBTVDY5IC8qIFxTVDY5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxN10gPSBTVDZBIC8qIFxT VDZBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxOF0gPSBT VDZCIC8qIFxTVDZCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgxOV0gPSBTVDMwIC8qIFxTVDMwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgxQV0gPSBTVDMxIC8qIFxTVDMxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgxQl0gPSBTVDMyIC8qIFxTVDMyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxQ10gPSBTVDMzIC8qIFxTVDMzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxRF0gPSBTVDM0IC8qIFxT VDM0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxRV0gPSBT VDM1IC8qIFxTVDM1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgxRl0gPSBTVDM2IC8qIFxTVDM2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgyMF0gPSBTVDM3IC8qIFxTVDM3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgyMV0gPSBTVDM4IC8qIFxTVDM4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyMl0gPSBTVDM5IC8qIFxTVDM5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyM10gPSBTVDcwIC8qIFxT VDcwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyNF0gPSBT VDcxIC8qIFxTVDcxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgyNV0gPSBTVDcyIC8qIFxTVDcyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgyNl0gPSBTVDczIC8qIFxTVDczICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgyN10gPSBTVDc0IC8qIFxTVDc0ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyOF0gPSBTVDc1IC8qIFxTVDc1ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyOV0gPSBTVDc2IC8qIFxT VDc2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyQV0gPSBT VDc3IC8qIFxTVDc3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgyQl0gPSBTVDc4IC8qIFxTVDc4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgyQ10gPSBTVDc5IC8qIFxTVDc5ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgyRF0gPSBTVDdBIC8qIFxTVDdBICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRV0gPSBTVDdCIC8qIFxTVDdCICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRl0gPSBTVDQwIC8qIFxT VDQwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzMF0gPSBT VDQxIC8qIFxTVDQxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgzMV0gPSBTVDQyIC8qIFxTVDQyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgzMl0gPSBTVDQzIC8qIFxTVDQzICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgzM10gPSBTVDQ0IC8qIFxTVDQ0ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzNF0gPSBTVDQ1IC8qIFxTVDQ1ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzNV0gPSBTVDQ2IC8qIFxT VDQ2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzNl0gPSBT VDQ3IC8qIFxTVDQ3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgzN10gPSBTVDQ4IC8qIFxTVDQ4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgzOF0gPSBTVDQ5IC8qIFxTVDQ5ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgzOV0gPSBTVDgwIC8qIFxTVDgwICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzQV0gPSBTVDgxIC8qIFxTVDgxICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzQl0gPSBTVDgyIC8qIFxT VDgyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzQ10gPSBT VDgzIC8qIFxTVDgzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgzRF0gPSBTVDg0IC8qIFxTVDg0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgzRV0gPSBTVDg1IC8qIFxTVDg1ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgzRl0gPSBTVDg2IC8qIFxTVDg2ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0MF0gPSBTVDg3IC8qIFxTVDg3ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0MV0gPSBTVDg4IC8qIFxT VDg4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Ml0gPSBT VDg5IC8qIFxTVDg5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg0M10gPSBTVDhBIC8qIFxTVDhBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg0NF0gPSBTVDhCIC8qIFxTVDhCICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg0NV0gPSBDRDMwIC8qIFxDRDMwICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Nl0gPSBDRDMxIC8qIFxDRDMxICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0N10gPSBDRDMyIC8qIFxD RDMyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0OF0gPSBD RDMzIC8qIFxDRDMzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg0OV0gPSBDRDM0IC8qIFxDRDM0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg0QV0gPSBDRDM1IC8qIFxDRDM1ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg0Ql0gPSBDRDM2IC8qIFxDRDM2ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Q10gPSBDRDM3IC8qIFxDRDM3ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0RF0gPSBDRDM4IC8qIFxD RDM4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0RV0gPSBD RDM5IC8qIFxDRDM5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg0Rl0gPSBDRDNBIC8qIFxDRDNBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg1MF0gPSBDRDNCIC8qIFxDRDNCICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg1MV0gPSBDRDNDIC8qIFxDRDNDICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Ml0gPSBDRDNEIC8qIFxDRDNEICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1M10gPSBDRDNFIC8qIFxD RDNFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1NF0gPSBD RDNGIC8qIFxDRDNGICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg1NV0gPSBDRDQwIC8qIFxDRDQwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg1Nl0gPSBDRDQxIC8qIFxDRDQxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg1N10gPSBDRDQyIC8qIFxDRDQyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1OF0gPSBDRDQzIC8qIFxDRDQzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1OV0gPSBDRDQ0IC8qIFxD RDQ0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1QV0gPSBD RDQ1IC8qIFxDRDQ1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg1Ql0gPSBDRDQ2IC8qIFxDRDQ2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg1Q10gPSBDRDQ3IC8qIFxDRDQ3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg1RF0gPSBDRDQ4IC8qIFxDRDQ4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1RV0gPSBDRDQ5IC8qIFxDRDQ5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Rl0gPSBDRDRBIC8qIFxD RDRBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2MF0gPSBD RDRCIC8qIFxDRDRCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg2MV0gPSBDRDRDIC8qIFxDRDRDICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg2Ml0gPSBDRDREIC8qIFxDRDREICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg2M10gPSBDRDRFIC8qIFxDRDRFICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2NF0gPSBDRDRGIC8qIFxDRDRGICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2NV0gPSBDRDUwIC8qIFxD RDUwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2Nl0gPSBD RDUxIC8qIFxDRDUxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg2N10gPSBDRDUyIC8qIFxDRDUyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg2OF0gPSBDRDUzIC8qIFxDRDUzICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg2OV0gPSBDRDU0IC8qIFxDRDU0ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2QV0gPSBDRDU1IC8qIFxDRDU1ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2Ql0gPSBDRDU2IC8qIFxD RDU2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2Q10gPSBD RDU3IC8qIFxDRDU3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg2RF0gPSBDRDU4IC8qIFxDRDU4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg2RV0gPSBDRDU5IC8qIFxDRDU5ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg2Rl0gPSBDRDVBIC8qIFxDRDVBICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3MF0gPSBDRDVCIC8qIFxDRDVCICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3MV0gPSBDRDVDIC8qIFxD RDVDICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Ml0gPSBD RDVEIC8qIFxDRDVEICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg3M10gPSBDRDVFIC8qIFxDRDVFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg3NF0gPSBDRDVGIC8qIFxDRDVGICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg3NV0gPSBDRDYwIC8qIFxDRDYwICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Nl0gPSBDRDYxIC8qIFxDRDYxICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3N10gPSBDRDYyIC8qIFxD RDYyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3OF0gPSBD RDYzIC8qIFxDRDYzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg3OV0gPSBDRDY0IC8qIFxDRDY0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg3QV0gPSBDRDY1IC8qIFxDRDY1ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg3Ql0gPSBDRDY2IC8qIFxDRDY2ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Q10gPSBDRDY3IC8qIFxDRDY3ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3RF0gPSBDRDY4IC8qIFxD RDY4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3RV0gPSBD RDY5IC8qIFxDRDY5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg3Rl0gPSBDRDZBIC8qIFxDRDZBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg4MF0gPSBDRDZCIC8qIFxDRDZCICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg4MV0gPSBDRDZDIC8qIFxDRDZDICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4Ml0gPSBDRDZEIC8qIFxDRDZEICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4M10gPSBDRDZFIC8qIFxD RDZFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4NF0gPSBD RDZGIC8qIFxDRDZGICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg4NV0gPSBDRDcwIC8qIFxDRDcwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg4Nl0gPSBDRDcxIC8qIFxDRDcxICovCiAgICAgICAgICAgICAgICBSZXR1 cm4gKEVXUlkpIC8qIFxfU0JfLlBDMDAuUlAwMS5QWFNYLkVXUlkgKi8KICAgICAgICAgICAg fQoKICAgICAgICAgICAgTmFtZSAoV0dEWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDRB KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAg ICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAg ICAgICAgICAgTWV0aG9kIChXR0RTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbT25lXSA9IFNER04gLyogXFNE R04gKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDAyXSA9IFNE MTEgLyogXFNEMTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDAzXSA9IFNEMTIgLyogXFNEMTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDA0XSA9IFNEMTMgLyogXFNEMTMgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDA1XSA9IFNEMTQgLyogXFNEMTQgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA2XSA9IFNEMTUgLyogXFNEMTUgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA3XSA9IFNEMTYgLyogXFNE MTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA4XSA9IFNE MTcgLyogXFNEMTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDA5XSA9IFNEMTggLyogXFNEMTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDBBXSA9IFNEMTkgLyogXFNEMTkgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDBCXSA9IFNEMjEgLyogXFNEMjEgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBDXSA9IFNEMjIgLyogXFNEMjIgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBEXSA9IFNEMjMgLyogXFNE MjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBFXSA9IFNE MjQgLyogXFNEMjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDBGXSA9IFNEMjUgLyogXFNEMjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDEwXSA9IFNEMjYgLyogXFNEMjYgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDExXSA9IFNEMjcgLyogXFNEMjcgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDEyXSA9IFNEMjggLyogXFNEMjggKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDEzXSA9IFNEMjkgLyogXFNE MjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE0XSA9IFNE MzEgLyogXFNEMzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDE1XSA9IFNEMzIgLyogXFNEMzIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDE2XSA9IFNEMzMgLyogXFNEMzMgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDE3XSA9IFNEMzQgLyogXFNEMzQgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE4XSA9IFNEMzUgLyogXFNEMzUgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE5XSA9IFNEMzYgLyogXFNE MzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFBXSA9IFNE MzcgLyogXFNEMzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDFCXSA9IFNEMzggLyogXFNEMzggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDFDXSA9IFNEMzkgLyogXFNEMzkgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDFEXSA9IFNENDEgLyogXFNENDEgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFFXSA9IFNENDIgLyogXFNENDIgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFGXSA9IFNENDMgLyogXFNE NDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDIwXSA9IFNE NDQgLyogXFNENDQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDIxXSA9IFNENDUgLyogXFNENDUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDIyXSA9IFNENDYgLyogXFNENDYgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDIzXSA9IFNENDcgLyogXFNENDcgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI0XSA9IFNENDggLyogXFNENDggKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI1XSA9IFNENDkgLyogXFNE NDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI2XSA9IFNE NTEgLyogXFNENTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDI3XSA9IFNENTIgLyogXFNENTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDI4XSA9IFNENTMgLyogXFNENTMgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDI5XSA9IFNENTQgLyogXFNENTQgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJBXSA9IFNENTUgLyogXFNENTUgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJCXSA9IFNENTYgLyogXFNE NTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJDXSA9IFNE NTcgLyogXFNENTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDJEXSA9IFNENTggLyogXFNENTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDJFXSA9IFNENTkgLyogXFNENTkgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDJGXSA9IFNENjEgLyogXFNENjEgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDMwXSA9IFNENjIgLyogXFNENjIgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDMxXSA9IFNENjMgLyogXFNE NjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDMyXSA9IFNE NjQgLyogXFNENjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDMzXSA9IFNENjUgLyogXFNENjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDM0XSA9IFNENjYgLyogXFNENjYgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDM1XSA9IFNENjcgLyogXFNENjcgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM2XSA9IFNENjggLyogXFNENjggKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM3XSA9IFNENjkgLyogXFNE NjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM4XSA9IFNE NzEgLyogXFNENzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDM5XSA9IFNENzIgLyogXFNENzIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDNBXSA9IFNENzMgLyogXFNENzMgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDNCXSA9IFNENzQgLyogXFNENzQgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNDXSA9IFNENzUgLyogXFNENzUgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNEXSA9IFNENzYgLyogXFNE NzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNFXSA9IFNE NzcgLyogXFNENzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDNGXSA9IFNENzggLyogXFNENzggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDQwXSA9IFNENzkgLyogXFNENzkgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDQxXSA9IFNEODEgLyogXFNEODEgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQyXSA9IFNEODIgLyogXFNEODIgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQzXSA9IFNEODMgLyogXFNE ODMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ0XSA9IFNE ODQgLyogXFNEODQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDQ1XSA9IFNEODUgLyogXFNEODUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDQ2XSA9IFNEODYgLyogXFNEODYgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDQ3XSA9IFNEODcgLyogXFNEODcgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ4XSA9IFNEODggLyogXFNEODggKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ5XSA9IFNEODkgLyogXFNE ODkgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoV0dEWSkgLyogXF9TQl8uUEMwMC5SUDAx LlBYU1guV0dEWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChFQ0tZLCBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKEVDS1YsIDAsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKEVDS1kg W09uZV0pIFtPbmVdID0gQ0VDViAvKiBcQ0VDViAqLwogICAgICAgICAgICAgICAgUmV0dXJu IChFQ0tZKSAvKiBcX1NCXy5QQzAwLlJQMDEuUFhTWC5FQ0tZICovCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE5hbWUgKFBQQVksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgxOCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAweDE4LCAKICAgICAgICAg ICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAg ICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAg ICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAg ICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAg ICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAg ICAgICAgICAgICAweDE4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAg ICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAg ICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAg ICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAg ICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAg ICAgICAgICAgICAweDI4CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAg ICAgICAgIE1ldGhvZCAoUFBBRywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgW09uZV0gPSBXQUdNIC8qIFxXQUdN ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwMl0gPSBBR0Ex IC8qIFxBR0ExICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgw M10gPSBBR0EyIC8qIFxBR0EyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtP bmVdKSBbMHgwNF0gPSBBR0EzIC8qIFxBR0EzICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChQUEFZIFtPbmVdKSBbMHgwNV0gPSBBR0E0IC8qIFxBR0E0ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwNl0gPSBBR0E1IC8qIFxBR0E1ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwN10gPSBBR0E2IC8qIFxBR0E2 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwOF0gPSBBR0E3 IC8qIFxBR0E3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgw OV0gPSBBR0E4IC8qIFxBR0E4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtP bmVdKSBbMHgwQV0gPSBBR0E5IC8qIFxBR0E5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChQUEFZIFtPbmVdKSBbMHgwQl0gPSBBR0FBIC8qIFxBR0FBICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwQ10gPSBBR0FCIC8qIFxBR0FCICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwRF0gPSBBR0IxIC8qIFxBR0Ix ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwRV0gPSBBR0Iy IC8qIFxBR0IyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgw Rl0gPSBBR0IzIC8qIFxBR0IzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtP bmVdKSBbMHgxMF0gPSBBR0I0IC8qIFxBR0I0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChQUEFZIFtPbmVdKSBbMHgxMV0gPSBBR0I1IC8qIFxBR0I1ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxMl0gPSBBR0I2IC8qIFxBR0I2ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxM10gPSBBR0I3IC8qIFxBR0I3 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxNF0gPSBBR0I4 IC8qIFxBR0I4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgx NV0gPSBBR0I5IC8qIFxBR0I5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtP bmVdKSBbMHgxNl0gPSBBR0JBIC8qIFxBR0JBICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChQUEFZIFtPbmVdKSBbMHgxN10gPSBBR0JCIC8qIFxBR0JCICovCiAgICAgICAgICAgICAg ICBSZXR1cm4gKFBQQVkpIC8qIFxfU0JfLlBDMDAuUlAwMS5QWFNYLlBQQVkgKi8KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV1BGWSwgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDA1KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChXUEZD LCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9m IChXUEZZIFtPbmVdKSBbT25lXSA9IFdQRkEgLyogXFdQRkEgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdQRlkgW09uZV0pIFsweDAyXSA9IFdQRkIgLyogXFdQRkIgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFsweDAzXSA9IFxXUEZDCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbMHgwNF0gPSBXUEZEIC8qIFxXUEZEICov CiAgICAgICAgICAgICAgICBSZXR1cm4gKFdQRlkpIC8qIFxfU0JfLlBDMDAuUlAwMS5QWFNY LldQRlkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV1RTWSwgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MTMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAg ICBNZXRob2QgKFdUQVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFtPbmVdID0gV1RTRSAvKiBcV1RTRSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDJdID0gV1RMRSAvKiBc V1RMRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDNdID0g QkwwMSAvKiBcQkwwMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkg WzB4MDRdID0gQkwwMiAvKiBcQkwwMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RT WSBbT25lXSkgWzB4MDVdID0gQkwwMyAvKiBcQkwwMyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1RTWSBbT25lXSkgWzB4MDZdID0gQkwwNCAvKiBcQkwwNCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDddID0gQkwwNSAvKiBcQkwwNSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDhdID0gQkwwNiAvKiBc QkwwNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDldID0g QkwwNyAvKiBcQkwwNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkg WzB4MEFdID0gQkwwOCAvKiBcQkwwOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RT WSBbT25lXSkgWzB4MEJdID0gQkwwOSAvKiBcQkwwOSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1RTWSBbT25lXSkgWzB4MENdID0gQkwxMCAvKiBcQkwxMCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MERdID0gQkwxMSAvKiBcQkwxMSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MEVdID0gQkwxMiAvKiBc QkwxMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MEZdID0g QkwxMyAvKiBcQkwxMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkg WzB4MTBdID0gQkwxNCAvKiBcQkwxNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RT WSBbT25lXSkgWzB4MTFdID0gQkwxNSAvKiBcQkwxNSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1RTWSBbT25lXSkgWzB4MTJdID0gQkwxNiAvKiBcQkwxNiAqLwogICAgICAgICAg ICAgICAgUmV0dXJuIChXVFNZKSAvKiBcX1NCXy5QQzAwLlJQMDEuUFhTWC5XVFNZICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdBSVksIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3 LCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV0FJUywgMCwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FJWSBbT25lXSkgW09uZV0gPSBX TEJJIC8qIFxXTEJJICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXQUlZIFtPbmVdKSBb MHgwMl0gPSBXSEJJIC8qIFxXSEJJICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdBSVkp IC8qIFxfU0JfLlBDMDAuUlAwMS5QWFNYLldBSVkgKi8KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTmFtZSAoU0FEWCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgx MiwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFNBRFMsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFNBRFggW09uZV0pIFtP bmVdID0gQVREViAvKiBcQVREViAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoU0FEWCBb MHgwMl0pIFtPbmVdID0gQVREViAvKiBcQVREViAqLwogICAgICAgICAgICAgICAgUmV0dXJu IChTQURYKSAvKiBcX1NCXy5QQzAwLlJQMDEuUFhTWC5TQURYICovCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE5hbWUgKEdQQ1gsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKEdQQywg MCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChH UENYKSAvKiBcX1NCXy5QQzAwLlJQMDEuUFhTWC5HUENYICovCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE5hbWUgKEdMQVgsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MTIs IAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfSkKICAgICAgICAgICAgTWV0aG9kIChHTEFJLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkFSOiBHTEFJIG1l dGhvZC4gQ0dMUyA9ICIsIFRvSGV4U3RyaW5nIChDR0xTKSkpCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChHTEFYIFtPbmVdKSBbT25lXSA9IENHTFMgLyogXENHTFMgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEdMQVggWzB4MDJdKSBbT25lXSA9IENHTFMgLyogXENHTFMgKi8K ICAgICAgICAgICAgICAgIFJldHVybiAoR0xBWCkgLyogXF9TQl8uUEMwMC5SUDAxLlBYU1gu R0xBWCAqLwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKChXV0VOICE9 IFplcm8pICYmIChXV1JQID09IFNMT1QpKSkKICAgICAgICB7CiAgICAgICAgICAgIE1ldGhv ZCAoRkhSRiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKChHR09WIChQUlNUKSAhPSBXUFJQKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBETDIzICgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4g REwyMygpIERvbmUiKQogICAgICAgICAgICAgICAgICAgIFNHT1YgKFBSU1QsIFdQUlApCiAg ICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUEVSU1Q6MCBEb25lIikKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBBREJHICgiQXNzdW1lIFdXQU4gREwyMygpIGlzIGFscmVhZHkgZG9u ZSIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU2xlZXAgKFRSMkIpCiAg ICAgICAgICAgICAgICBTR09WIChXQlJTLCBQQlJTKQogICAgICAgICAgICAgICAgQURCRyAo IldXQU4gUlNUOjAgRG9uZSIpCiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFRCVEcpCiAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEJURyAiLCBUb0Rl Y2ltYWxTdHJpbmcgKFRCVEcpKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IEVsc2VJZiAoKEFyZzAgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBTUENPIChXQ0xLLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJX V0FOIFNDTEs6MCBEb25lIikKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoVEIyRikKICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlNMUCBUQjJGICIsIFRvRGVj aW1hbFN0cmluZyAoVEIyRikpKQogICAgICAgICAgICAgICAgICAgIFNHT1YgKFdGQ1AsICh+ UEZDUCAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFdSOjAgRG9u ZSIpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFRGREkpCiAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEZESSAiLCBUb0RlY2ltYWxTdHJpbmcgKFRG REkpKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiVW5zdXBwb3J0ZWQgQXJnMCBp cyBkZXRlY3RlZC4iKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKFNIUkYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFBTRDAgKFNMT1QpCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBN UEhZUEc6MCBEb25lIikKICAgICAgICAgICAgICAgIFNQQ08gKFdDTEssIE9uZSkKICAgICAg ICAgICAgICAgIEFEQkcgKCJXV0FOIFNDTEs6MSBEb25lIikKICAgICAgICAgICAgICAgIFNH T1YgKFdGQ1AsIFBGQ1ApCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQV1I6MSBEb25l IikKICAgICAgICAgICAgICAgIFNsZWVwIChUTjJCKQogICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJTTFAgVE4yQiAiLCBUb0RlY2ltYWxTdHJpbmcgKFROMkIpKSkKICAg ICAgICAgICAgICAgIFNHT1YgKFdCUlMsICh+UEJSUyAmIE9uZSkpCiAgICAgICAgICAgICAg ICBBREJHICgiV1dBTiBSU1Q6MSBEb25lIikKICAgICAgICAgICAgICAgIFNsZWVwIChUQjJS KQogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEIyUiAiLCBUb0Rl Y2ltYWxTdHJpbmcgKFRCMlIpKSkKICAgICAgICAgICAgICAgIFNHT1YgKFBSU1QsICh+V1BS UCAmIE9uZSkpCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQRVJTVDowIERvbmUiKQog ICAgICAgICAgICAgICAgTDIzRCAoKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gTDIz RCgpIERvbmUiKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKERPU1YsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9 IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlICgoKFNWSUQgIT0gV1NJRCkgJiYgKExvY2Fs MCA8IFdTVE8pKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2Nh bDArKwogICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJERVQgVGltZSAiLCBUb0Rl Y2ltYWxTdHJpbmcgKExvY2FsMCkpKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo b2QgKF9SU1QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVzZXQKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoIl9SU1QgV1dBTiIpCiAgICAgICAgICAg ICAgICBJZiAoKFdXRU4gPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoV1dNVCwgMHgwM0U4KQogICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJXV0FOIEZMRFIgTXV0ZXg6IEFjcXVpcmVkIFRyeSBEb25lIikKICAg ICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJTdGFydCBXV0FOIEZMRFIi KQogICAgICAgICAgICAgICAgICAgICAgICBGSFJGIChaZXJvKQogICAgICAgICAgICAgICAg ICAgICAgICBTSFJGICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJFbmQgV1dB TiBGTERSIikKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoV1dNVCkKICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gRkxEUiBNdXRleDpSZWxlYXNlIERvbmUi KQogICAgICAgICAgICAgICAgICAgICAgICBET1NWICgpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsIFBCUlMpCiAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKDB4QzgpCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNY LCBPbmUpIC8vIERldmljZSBDaGVjawogICAgICAgICAgICAgICAgICAgIFNHT1YgKFBSU1Qs ICh+V1BSUCAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgU0dPViAoV0JSUywgKH5QQlJT ICYgT25lKSkKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHhDOCkKICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChMQVNY ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChMb2NhbDAgPiAweDE0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkZMRFIgVE8iKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBT bGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlJW UCBEZWxheSBUaW1lICIsIFRvRGVjaW1hbFN0cmluZyAoTG9jYWwwKSkpCiAgICAgICAgICAg ICAgICAgICAgTm90aWZ5IChQWFNYLCBPbmUpIC8vIERldmljZSBDaGVjawogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBQb3dlclJlc291cmNlIChNUlNU LCAweDA1LCAweDAwMDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAo X1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBSIF9TVEEiKQogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQUiBfT04i KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX09GRiwgMCwg U2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBSIF9PRkYiKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwgU2VyaWFsaXplZCkgIC8vIF9S U1Q6IERldmljZSBSZXNldAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IExvY2FsMCA9IEFjcXVpcmUgKFdXTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICBB REJHICgiV1dBTiBQTERSIE11dGV4OiBBY3F1aXJlZCBUcnkgRG9uZSIpCiAgICAgICAgICAg ICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBQTERSIikKICAgICAg ICAgICAgICAgICAgICAgICAgRkhSRiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICBT SFJGICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJFbmQgV1dBTiBQUiBfUlNU IikKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoV1dNVCkKICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIldXQU4gUExEUiBNdXRleDogUmVsZWFzZSBEb25lIikKICAg ICAgICAgICAgICAgICAgICAgICAgRE9TViAoKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKChX SVNUICgpIHx8ICgoV1dFTiAhPSBaZXJvKSAmJiAoV1dSUCA9PSBTTE9UKSkpKQogICAgICAg IHsKICAgICAgICAgICAgTWV0aG9kIChfUFJSLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BS UjogUG93ZXIgUmVzb3VyY2UgZm9yIFJlc2V0CiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFdSU1QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXUlNUCiAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIElmICgoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xP VCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKE1SU1QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNUlNUCiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBXUlNUCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBOYW1lIChGREVMLCBaZXJvKQogICAgICAgICAgICBOYW1lIChQREVMLCBa ZXJvKQogICAgICAgICAgICBOYW1lIChWREVMLCBaZXJvKQogICAgICAgICAgICBNZXRob2Qg KElGVU4sIDQsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgidlBybzogIiwgQ1ZQUikpCiAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gKENWUFIgPDwgWmVybykKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2Fs MCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgw MikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChBcmczLCBaZXJvLCBDTURUKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoQXJnMywgMHgwMiwgQ01EUCkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIkNtZFR5cGUgPSAiLCBUb0hleFN0cmluZyAoQ01EVCkpKQogICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQ21kUGF5bG9hZCA9ICIsIFRvSGV4U3Ry aW5nIChDTURQKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChDTURUID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoV0lTVCAo KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChSU1RZKSAvKiBcX1NCXy5QQzAwLlJQMDEuUFhTWC5SU1RZICovCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmIChD b25kUmVmT2YgKFxfU0IuUEMwMC5DTlZXLlJTVFQpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkdl dCBfUFJSIE1vZGUgPSAiLCBeXl5DTlZXLlJTVFQpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICheXl5DTlZXLlJTVFQpIC8qIFxfU0JfLlBDMDAuQ05WVy5SU1RUICov CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQ01EVCA9PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChXSVNUICgp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSAoQ01EUCAmIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJT VFkgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IChDTURQ ICYgMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA+Pj0gT25lCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGTFJDID0gTG9jYWwxCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDIgPSAoQ01EUCAmIDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDIgPj49IDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJPRkMgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkNOVlcuUlNUVCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiU2V0IF9QUlIgTW9kZSA9ICIsIFRvSGV4U3RyaW5nIChDTURQ KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5DTlZXLlJTVFQgPSBDTURQIC8q IFxfU0JfLlBDMDAuUlAwMS5QWFNYLklGVU4uQ01EUCAqLwogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKENNRFQgPT0gMHgwMykp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChcX1NCLlBDMDAuQ05WVy5QUlJTKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJHZXQg TGFzdF9QUlIgc3RhdHVzIFBSUlMgPSAiLCBUb0hleFN0cmluZyAoXl5eQ05WVy5QUlJTKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eXkNOVlcuUFJSUykgLyog XF9TQl8uUEMwMC5DTlZXLlBSUlMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiR2V0IExhc3RfUFJSIHN0YXR1cyBEUFJTID0gIiwgVG9IZXhTdHJpbmcgKERQUlMpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFBSUykgLyogXF9TQl8uUEMw MC5SUDAxLlBYU1guRFBSUyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQ1JGSSA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMywgWmVybywgUFJUVCkKICAgICAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIDB4MDIsIFBSVEQpCiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJUaW1lclR5cGUgPSAiLCBUb0hleFN0 cmluZyAoUFJUVCkpKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi VGltZXJEdXJhdGlvbiAobXMpID0gIiwgVG9EZWNpbWFsU3RyaW5nIChQUlREKSkpCiAgICAg ICAgICAgICAgICAgICAgSWYgKChQUlRUID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBGREVMID0gUFJURCAvKiBcX1NCXy5QQzAwLlJQ MDEuUFhTWC5JRlVOLlBSVEQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgRWxzZUlmICgoUFJUVCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFBERUwgPSBQUlREIC8qIFxfU0JfLlBDMDAuUlAw MS5QWFNYLklGVU4uUFJURCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBFbHNlSWYgKChQUlRUID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgVkRFTCA9IFBSVEQgLyogXF9TQl8uUEMwMC5SUDAx LlBYU1guSUZVTi5QUlREICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJUaW1lckR1cmF0aW9uIG5vdCBzZXQiKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoSURTTSwgMSwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjcy NjYxNzJjLTIyMGItNGIyOS04MTRmLTc1ZTRkZDI2YjVmZCIpIC8qIFVua25vd24gVVVJRCAq LykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEVGVU4sIDQsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkYsIDB4MUYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQUNTRCAvKiBcQUNTRCAqLwog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBJNUJTIC8qIFxJNUJTICovCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IFVIQlMgLyogXFVIQlMgKi8KICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gMHgwNikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTG9jYWwwID0gQVhNVSAvKiBcQVhNVSAqLwogICAgICAgICAgICAgICAgICAgIExv Y2FsMCA8PD0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IEFYU1UgLyogXEFY U1UgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBBWE1SIC8qIFxBWE1SICovCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwxIDw8PSBPbmUKICAgICAgICAgICAgICAgICAgICBM b2NhbDEgfD0gQVhTUiAvKiBcQVhTUiAqLwogICAgICAgICAgICAgICAgICAgIExvY2FsMSA8 PD0gMHgwMgogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSBMb2NhbDEKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgMHgwMCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRlVDKSAvKiBc V0ZVQyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDA3KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFVOSTQpIC8qIFxVTkk0ICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoV0ZJQykgLyogXFdGSUMgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwOSkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChXRkJTKSAvKiBcV0ZCUyAqLwogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBBKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdFRFQpIC8qIFxXRURUICovCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEIpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQ0lSTSA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MEMpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoV0Y3QykgLyogXFdGN0MgKi8KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoRURTTSwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImYyMTIwMmJmLThmNzgtNGRjNi1h NWIzLTFmNzM4ZTI4NWFkZSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3Bl Y2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChXSVNUICgp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChFRFNNIChBcmcw KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoRUZVTiAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoSURTTSAoQXJnMCkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKElGVU4gKEFyZzAsIEFy ZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoKChXV0VOICE9IFplcm8pICYmIChXV1JQID09IFNM T1QpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAg PT0gVG9VVUlEICgiYmFkMDFiNzUtMjJhOC00ZjQ4LTg3OTItYmRkZTk0Njc3NDdkIikgLyog VW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKXt9 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSl7fQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoV1JUTyA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJXV0FOIFBvd2VyIF9EU00gRDAvTDEuMiIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYg KChXUlRPID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBvd2VyIF9EU00gRDMvTDEu MiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlSWYgKChXUlRPID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBv d2VyIF9EU00gRDMvTDIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBvd2VyIF9E U00gRGlzYWJsZWQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoV1JUTykgLyogXFdSVE8gKi8KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLlBDMDAuUlAwMi5QWFNYKQog ICAgewogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUlBYWCwgU3lzdGVtTWVtb3J5LCBHTUlP IChQQk5VLCBeX0FEUiAoKSwgX0FEUiksIDB4MzApCiAgICAgICAgRmllbGQgKFJQWFgsIEFu eUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIFZESUQsICAg MzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MkMpLCAKICAgICAgICAgICAgU1ZJRCwgICAx NgogICAgICAgIH0KCiAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChGTERSLCBTeXN0ZW1NZW1v cnksIChHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUikgKyBXRENPKSwgMHgwNikKICAgICAg ICBGaWVsZCAoRkxEUiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAg ICAgICAgICAgIERDQVAsICAgMzIsIAogICAgICAgICAgICBEQ1RSLCAgIDE2CiAgICAgICAg fQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZTRUMsIFN5c3RlbU1lbW9yeSwgKEdNSU8g KFBCTlUsIF5fQURSICgpLCBfQURSKSArIFdWSE8pLCAweDEwKQogICAgICAgIEZpZWxkIChW U0VDLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBP ZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgQlRJ RSwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICwgICAx LCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAg ICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDBEKSwgCiAgICAg ICAgICAgIFBEUkMsICAgMQogICAgICAgIH0KCiAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQ QlJSLCBTeXN0ZW1NZW1vcnksIEdNSU8gKFBCTlUsIF5fQURSICgpLCBfQURSKSwgMHgwMkI4 KQogICAgICAgIEZpZWxkIChQQlJSLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAg ICAgewogICAgICAgICAgICBPZmZzZXQgKDB4MThDKSwgCiAgICAgICAgICAgIE1TTkwsICAg MzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MTk4KSwgCiAgICAgICAgICAgIEwxQzEsICAg MzIsIAogICAgICAgICAgICBMMUMyLCAgIDMyLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDJC NCksIAogICAgICAgICAgICBQVE1SLCAgIDMyCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg KFdJU1QsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChWRElEKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3dpdGNoIChUb0lu dGVnZXIgKFZESUQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENh c2UgKDB4MjUyNjgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgQ2FzZSAoMHgyNzFCODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MjM4MDg2KQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MjcyNTgwODYpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgyNzJC ODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBE ZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKFNWREMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFdXU1QsIDAsIFNlcmlhbGl6 ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChWRElEKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKFZESUQpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4NzM2MDgwODYpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHg3 NTYwODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBDYXNlICgweDRENzUxNEMzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MDgwMDE0QzMpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgIH0KICAgICAgICB9CgogICAgICAgIElmIChXSVNUICgpKQogICAgICAgIHsKICAgICAg ICAgICAgTmFtZSAoUlNUWSwgWmVybykKICAgICAgICAgICAgTmFtZSAoRkxSQywgWmVybykK ICAgICAgICAgICAgTmFtZSAoQk9GQywgWmVybykKICAgICAgICAgICAgTmFtZSAoRFBSUywg WmVybykKICAgICAgICAgICAgUG93ZXJSZXNvdXJjZSAoV1JTVCwgMHgwNSwgMHgwMDAwKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBBREJHICgiV2lmaSBQUiBfU1RBIikKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9P TiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9uCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkgUFIgX09OIikKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9PRkYsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBBREJHICgiV2lmaSBQUiBfT0ZGIikKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBE ZXZpY2UgUmVzZXQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo KFJTVFkgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJXaWZpIFByb2R1Y3QgUlNUIikKICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gQWNxdWlyZSAoQ05NVCwgMHgwM0U4KQogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChGTFJDID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gRENUUiAvKiBcX1NCXy5QQzAwLlJQMDIuUFhTWC5EQ1RSICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERDVFIgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTbGVlcCAoRkRFTCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUFJTID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEJPRkMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJSTVQgPT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCVFJLIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYg KChXVkhPICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRJRSA9IFplcm8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNsZWVwIChSRExZKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBEUkMgPSBPbmUKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNsZWVwIChWREVMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0dPViAo V0xSVCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChQREVMKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU0dPViAoV0xSVCwgT25lKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChCT0ZDID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCUk1U ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRSSyAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNl SWYgKChXVkhPICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRJRSA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2xlZXAgKFJETFkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRFBSUyA9IDB4MDIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlbGVhc2UgKENOTVQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkgQ29yZSBS U1QiKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERDQVAgJiAweDEwMDAwMDAwKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gRENUUiAvKiBcX1NCXy5QQzAwLlJQMDIuUFhTWC5EQ1RSICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gMHg4MDAwCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBEQ1RSID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIERQUlMgPSBPbmUKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDA3RDApCiAgICAgICAgICAgICAgICAg ICAgTVNOTCA9IERSMDEgLyogXERSMDEgKi8KICAgICAgICAgICAgICAgICAgICBMMUMxID0g RFIwMiAvKiBcRFIwMiAqLwogICAgICAgICAgICAgICAgICAgIEwxQzIgPSBEUjAzIC8qIFxE UjAzICovCiAgICAgICAgICAgICAgICAgICAgUFRNUiA9IERSMDQgLyogXERSMDQgKi8KICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwN0QwKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChTUExYLCBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHg4MDAw MDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAg ICAgICAgICBNZXRob2QgKFNQTEMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFtaZXJvXSA9IERPTTEgLyogXERP TTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFtPbmVdID0gTElN MSAvKiBcTElNMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoU1BMWCBbT25lXSkgWzB4 MDJdID0gVElNMSAvKiBcVElNMSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChTUExYKSAv KiBcX1NCXy5QQzAwLlJQMDIuUFhTWC5TUExYICovCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE5hbWUgKFdBTlgsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwCiAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAw MDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9k IChXQU5ELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXQU5YIFtPbmVdKSBbWmVyb10gPSBaZXJvCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXQU5YIFtPbmVdKSBbT25lXSA9IFRSRDAgLyogXFRSRDAgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFsweDAyXSA9IFRSTDAgLyogXFRSTDAgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBbWmVyb10gPSBPbmUKICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBbT25lXSA9IFRSRDEgLyogXFRSRDEg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBbMHgwMl0gPSBUUkwx IC8qIFxUUkwxICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdBTlgpIC8qIFxfU0JfLlBD MDAuUlAwMi5QWFNYLldBTlggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAo V1JEWCwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAwMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRo b2QgKFdSREQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFggW09uZV0pIFtaZXJvXSA9IFdETTEgLyogXFdETTEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFggW09uZV0pIFtPbmVdID0gQ0lEMSAvKiBcQ0lEMSAq LwogICAgICAgICAgICAgICAgUmV0dXJuIChXUkRYKSAvKiBcX1NCXy5QQzAwLlJQMDIuUFhT WC5XUkRYICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdSRFksIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgyRSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1JEUywgMCwgU2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25l XSkgW09uZV0gPSBTVFhFIC8qIFxTVFhFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgwMl0gPSBTVDEwIC8qIFxTVDEwICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwM10gPSBTVDExIC8qIFxTVDExICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwNF0gPSBTVDEyIC8qIFxTVDEyICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwNV0gPSBTVDEzIC8q IFxTVDEzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwNl0g PSBTVDE0IC8qIFxTVDE0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgwN10gPSBTVDE1IC8qIFxTVDE1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgwOF0gPSBTVDE2IC8qIFxTVDE2ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwOV0gPSBTVDE3IC8qIFxTVDE3ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwQV0gPSBTVDE4IC8qIFxTVDE4ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwQl0gPSBTVDE5IC8q IFxTVDE5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwQ10g PSBTVDUwIC8qIFxTVDUwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgwRF0gPSBTVDUxIC8qIFxTVDUxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgwRV0gPSBTVDUyIC8qIFxTVDUyICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwRl0gPSBTVDUzIC8qIFxTVDUzICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxMF0gPSBTVDU0IC8qIFxTVDU0ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxMV0gPSBTVDU1IC8q IFxTVDU1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxMl0g PSBTVDU2IC8qIFxTVDU2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgxM10gPSBTVDU3IC8qIFxTVDU3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgxNF0gPSBTVDU4IC8qIFxTVDU4ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxNV0gPSBTVDU5IC8qIFxTVDU5ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxNl0gPSBTVDVBIC8qIFxTVDVBICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxN10gPSBTVDVCIC8q IFxTVDVCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxOF0g PSBDRDEwIC8qIFxDRDEwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgxOV0gPSBDRDExIC8qIFxDRDExICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgxQV0gPSBDRDEyIC8qIFxDRDEyICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQl0gPSBDRDEzIC8qIFxDRDEzICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQ10gPSBDRDE0IC8qIFxDRDE0ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxRF0gPSBDRDE1IC8q IFxDRDE1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxRV0g PSBDRDE2IC8qIFxDRDE2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgxRl0gPSBDRDE3IC8qIFxDRDE3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgyMF0gPSBDRDE4IC8qIFxDRDE4ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMV0gPSBDRDE5IC8qIFxDRDE5ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMl0gPSBDRDFBIC8qIFxDRDFBICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyM10gPSBDRDIwIC8q IFxDRDIwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyNF0g PSBDRDIxIC8qIFxDRDIxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgyNV0gPSBDRDIyIC8qIFxDRDIyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgyNl0gPSBDRDIzIC8qIFxDRDIzICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyN10gPSBDRDI0IC8qIFxDRDI0ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyOF0gPSBDRDI1IC8qIFxDRDI1ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyOV0gPSBDRDI2IC8q IFxDRDI2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyQV0g PSBDRDI3IC8qIFxDRDI3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgyQl0gPSBDRDI4IC8qIFxDRDI4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgyQ10gPSBDRDI5IC8qIFxDRDI5ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyRF0gPSBDRDJBIC8qIFxDRDJBICovCiAgICAgICAg ICAgICAgICBSZXR1cm4gKFdSRFkpIC8qIFxfU0JfLlBDMDAuUlAwMi5QWFNYLldSRFkgKi8K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoRVdSWSwgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDg3KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4 MDcsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9k IChFV1JELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbT25lXSA9IFNUREUgLyogXFNUREUgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDAyXSA9IFNUUlMgLyogXFNUUlMgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDAzXSA9IFNUMjAgLyog XFNUMjAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA0XSA9 IFNUMjEgLyogXFNUMjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDA1XSA9IFNUMjIgLyogXFNUMjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDA2XSA9IFNUMjMgLyogXFNUMjMgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDA3XSA9IFNUMjQgLyogXFNUMjQgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA4XSA9IFNUMjUgLyogXFNUMjUgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA5XSA9IFNUMjYgLyog XFNUMjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBBXSA9 IFNUMjcgLyogXFNUMjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDBCXSA9IFNUMjggLyogXFNUMjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDBDXSA9IFNUMjkgLyogXFNUMjkgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDBEXSA9IFNUNjAgLyogXFNUNjAgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBFXSA9IFNUNjEgLyogXFNUNjEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBGXSA9IFNUNjIgLyog XFNUNjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDEwXSA9 IFNUNjMgLyogXFNUNjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDExXSA9IFNUNjQgLyogXFNUNjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDEyXSA9IFNUNjUgLyogXFNUNjUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDEzXSA9IFNUNjYgLyogXFNUNjYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE0XSA9IFNUNjcgLyogXFNUNjcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE1XSA9IFNUNjggLyog XFNUNjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE2XSA9 IFNUNjkgLyogXFNUNjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDE3XSA9IFNUNkEgLyogXFNUNkEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDE4XSA9IFNUNkIgLyogXFNUNkIgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDE5XSA9IFNUMzAgLyogXFNUMzAgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFBXSA9IFNUMzEgLyogXFNUMzEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFCXSA9IFNUMzIgLyog XFNUMzIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFDXSA9 IFNUMzMgLyogXFNUMzMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDFEXSA9IFNUMzQgLyogXFNUMzQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDFFXSA9IFNUMzUgLyogXFNUMzUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDFGXSA9IFNUMzYgLyogXFNUMzYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDIwXSA9IFNUMzcgLyogXFNUMzcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDIxXSA9IFNUMzggLyog XFNUMzggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDIyXSA9 IFNUMzkgLyogXFNUMzkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDIzXSA9IFNUNzAgLyogXFNUNzAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDI0XSA9IFNUNzEgLyogXFNUNzEgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDI1XSA9IFNUNzIgLyogXFNUNzIgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI2XSA9IFNUNzMgLyogXFNUNzMgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI3XSA9IFNUNzQgLyog XFNUNzQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI4XSA9 IFNUNzUgLyogXFNUNzUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDI5XSA9IFNUNzYgLyogXFNUNzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDJBXSA9IFNUNzcgLyogXFNUNzcgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDJCXSA9IFNUNzggLyogXFNUNzggKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJDXSA9IFNUNzkgLyogXFNUNzkgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJEXSA9IFNUN0EgLyog XFNUN0EgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJFXSA9 IFNUN0IgLyogXFNUN0IgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDJGXSA9IFNUNDAgLyogXFNUNDAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDMwXSA9IFNUNDEgLyogXFNUNDEgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDMxXSA9IFNUNDIgLyogXFNUNDIgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMyXSA9IFNUNDMgLyogXFNUNDMgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMzXSA9IFNUNDQgLyog XFNUNDQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM0XSA9 IFNUNDUgLyogXFNUNDUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDM1XSA9IFNUNDYgLyogXFNUNDYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDM2XSA9IFNUNDcgLyogXFNUNDcgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDM3XSA9IFNUNDggLyogXFNUNDggKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM4XSA9IFNUNDkgLyogXFNUNDkgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM5XSA9IFNUODAgLyog XFNUODAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNBXSA9 IFNUODEgLyogXFNUODEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDNCXSA9IFNUODIgLyogXFNUODIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDNDXSA9IFNUODMgLyogXFNUODMgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDNEXSA9IFNUODQgLyogXFNUODQgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNFXSA9IFNUODUgLyogXFNUODUgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNGXSA9IFNUODYgLyog XFNUODYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQwXSA9 IFNUODcgLyogXFNUODcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDQxXSA9IFNUODggLyogXFNUODggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDQyXSA9IFNUODkgLyogXFNUODkgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDQzXSA9IFNUOEEgLyogXFNUOEEgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ0XSA9IFNUOEIgLyogXFNUOEIgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ1XSA9IENEMzAgLyog XENEMzAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ2XSA9 IENEMzEgLyogXENEMzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDQ3XSA9IENEMzIgLyogXENEMzIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDQ4XSA9IENEMzMgLyogXENEMzMgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDQ5XSA9IENEMzQgLyogXENEMzQgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRBXSA9IENEMzUgLyogXENEMzUgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRCXSA9IENEMzYgLyog XENEMzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRDXSA9 IENEMzcgLyogXENEMzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDREXSA9IENEMzggLyogXENEMzggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDRFXSA9IENEMzkgLyogXENEMzkgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDRGXSA9IENEM0EgLyogXENEM0EgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDUwXSA9IENEM0IgLyogXENEM0IgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDUxXSA9IENEM0MgLyog XENEM0MgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDUyXSA9 IENEM0QgLyogXENEM0QgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDUzXSA9IENEM0UgLyogXENEM0UgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDU0XSA9IENEM0YgLyogXENEM0YgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDU1XSA9IENENDAgLyogXENENDAgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU2XSA9IENENDEgLyogXENENDEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU3XSA9IENENDIgLyog XENENDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU4XSA9 IENENDMgLyogXENENDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDU5XSA9IENENDQgLyogXENENDQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDVBXSA9IENENDUgLyogXENENDUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDVCXSA9IENENDYgLyogXENENDYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVDXSA9IENENDcgLyogXENENDcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVEXSA9IENENDggLyog XENENDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVFXSA9 IENENDkgLyogXENENDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDVGXSA9IENENEEgLyogXENENEEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDYwXSA9IENENEIgLyogXENENEIgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDYxXSA9IENENEMgLyogXENENEMgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYyXSA9IENENEQgLyogXENENEQgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYzXSA9IENENEUgLyog XENENEUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY0XSA9 IENENEYgLyogXENENEYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDY1XSA9IENENTAgLyogXENENTAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDY2XSA9IENENTEgLyogXENENTEgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDY3XSA9IENENTIgLyogXENENTIgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY4XSA9IENENTMgLyogXENENTMgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY5XSA9IENENTQgLyog XENENTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZBXSA9 IENENTUgLyogXENENTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDZCXSA9IENENTYgLyogXENENTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDZDXSA9IENENTcgLyogXENENTcgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDZEXSA9IENENTggLyogXENENTggKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZFXSA9IENENTkgLyogXENENTkgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZGXSA9IENENUEgLyog XENENUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDcwXSA9 IENENUIgLyogXENENUIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDcxXSA9IENENUMgLyogXENENUMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDcyXSA9IENENUQgLyogXENENUQgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDczXSA9IENENUUgLyogXENENUUgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc0XSA9IENENUYgLyogXENENUYgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc1XSA9IENENjAgLyog XENENjAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc2XSA9 IENENjEgLyogXENENjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDc3XSA9IENENjIgLyogXENENjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDc4XSA9IENENjMgLyogXENENjMgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDc5XSA9IENENjQgLyogXENENjQgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdBXSA9IENENjUgLyogXENENjUgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdCXSA9IENENjYgLyog XENENjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdDXSA9 IENENjcgLyogXENENjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDdEXSA9IENENjggLyogXENENjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDdFXSA9IENENjkgLyogXENENjkgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDdGXSA9IENENkEgLyogXENENkEgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDgwXSA9IENENkIgLyogXENENkIgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDgxXSA9IENENkMgLyog XENENkMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDgyXSA9 IENENkQgLyogXENENkQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDgzXSA9IENENkUgLyogXENENkUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDg0XSA9IENENkYgLyogXENENkYgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDg1XSA9IENENzAgLyogXENENzAgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDg2XSA9IENENzEgLyogXENENzEgKi8K ICAgICAgICAgICAgICAgIFJldHVybiAoRVdSWSkgLyogXF9TQl8uUEMwMC5SUDAyLlBYU1gu RVdSWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXR0RZLCBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4NEEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdHRFMsIDAsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFtPbmVdID0gU0RHTiAvKiBcU0RHTiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MDJdID0gU0QxMSAvKiBcU0QxMSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MDNdID0gU0QxMiAvKiBcU0QxMiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDRdID0gU0QxMyAvKiBcU0QxMyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDVdID0gU0QxNCAvKiBc U0QxNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDZdID0g U0QxNSAvKiBcU0QxNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MDddID0gU0QxNiAvKiBcU0QxNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MDhdID0gU0QxNyAvKiBcU0QxNyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MDldID0gU0QxOCAvKiBcU0QxOCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEFdID0gU0QxOSAvKiBcU0QxOSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEJdID0gU0QyMSAvKiBc U0QyMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MENdID0g U0QyMiAvKiBcU0QyMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MERdID0gU0QyMyAvKiBcU0QyMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MEVdID0gU0QyNCAvKiBcU0QyNCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MEZdID0gU0QyNSAvKiBcU0QyNSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTBdID0gU0QyNiAvKiBcU0QyNiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTFdID0gU0QyNyAvKiBc U0QyNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTJdID0g U0QyOCAvKiBcU0QyOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MTNdID0gU0QyOSAvKiBcU0QyOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MTRdID0gU0QzMSAvKiBcU0QzMSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MTVdID0gU0QzMiAvKiBcU0QzMiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTZdID0gU0QzMyAvKiBcU0QzMyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTddID0gU0QzNCAvKiBc U0QzNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MThdID0g U0QzNSAvKiBcU0QzNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MTldID0gU0QzNiAvKiBcU0QzNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MUFdID0gU0QzNyAvKiBcU0QzNyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MUJdID0gU0QzOCAvKiBcU0QzOCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MUNdID0gU0QzOSAvKiBcU0QzOSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MURdID0gU0Q0MSAvKiBc U0Q0MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MUVdID0g U0Q0MiAvKiBcU0Q0MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MUZdID0gU0Q0MyAvKiBcU0Q0MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MjBdID0gU0Q0NCAvKiBcU0Q0NCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MjFdID0gU0Q0NSAvKiBcU0Q0NSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjJdID0gU0Q0NiAvKiBcU0Q0NiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjNdID0gU0Q0NyAvKiBc U0Q0NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjRdID0g U0Q0OCAvKiBcU0Q0OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MjVdID0gU0Q0OSAvKiBcU0Q0OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MjZdID0gU0Q1MSAvKiBcU0Q1MSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MjddID0gU0Q1MiAvKiBcU0Q1MiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjhdID0gU0Q1MyAvKiBcU0Q1MyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjldID0gU0Q1NCAvKiBc U0Q1NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkFdID0g U0Q1NSAvKiBcU0Q1NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MkJdID0gU0Q1NiAvKiBcU0Q1NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MkNdID0gU0Q1NyAvKiBcU0Q1NyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MkRdID0gU0Q1OCAvKiBcU0Q1OCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkVdID0gU0Q1OSAvKiBcU0Q1OSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkZdID0gU0Q2MSAvKiBc U0Q2MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzBdID0g U0Q2MiAvKiBcU0Q2MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MzFdID0gU0Q2MyAvKiBcU0Q2MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MzJdID0gU0Q2NCAvKiBcU0Q2NCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MzNdID0gU0Q2NSAvKiBcU0Q2NSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzRdID0gU0Q2NiAvKiBcU0Q2NiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzVdID0gU0Q2NyAvKiBc U0Q2NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzZdID0g U0Q2OCAvKiBcU0Q2OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MzddID0gU0Q2OSAvKiBcU0Q2OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MzhdID0gU0Q3MSAvKiBcU0Q3MSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MzldID0gU0Q3MiAvKiBcU0Q3MiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0FdID0gU0Q3MyAvKiBcU0Q3MyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0JdID0gU0Q3NCAvKiBc U0Q3NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0NdID0g U0Q3NSAvKiBcU0Q3NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4M0RdID0gU0Q3NiAvKiBcU0Q3NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4M0VdID0gU0Q3NyAvKiBcU0Q3NyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4M0ZdID0gU0Q3OCAvKiBcU0Q3OCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDBdID0gU0Q3OSAvKiBcU0Q3OSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDFdID0gU0Q4MSAvKiBc U0Q4MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDJdID0g U0Q4MiAvKiBcU0Q4MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4NDNdID0gU0Q4MyAvKiBcU0Q4MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4NDRdID0gU0Q4NCAvKiBcU0Q4NCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4NDVdID0gU0Q4NSAvKiBcU0Q4NSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDZdID0gU0Q4NiAvKiBcU0Q4NiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDddID0gU0Q4NyAvKiBc U0Q4NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDhdID0g U0Q4OCAvKiBcU0Q4OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4NDldID0gU0Q4OSAvKiBcU0Q4OSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXR0RZ KSAvKiBcX1NCXy5QQzAwLlJQMDIuUFhTWC5XR0RZICovCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE5hbWUgKEVDS1ksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAg IE1ldGhvZCAoRUNLViwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRUNLWSBbT25lXSkgW09uZV0gPSBDRUNWIC8qIFxDRUNWICovCiAg ICAgICAgICAgICAgICBSZXR1cm4gKEVDS1kpIC8qIFxfU0JfLlBDMDAuUlAwMi5QWFNYLkVD S1kgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoUFBBWSwgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDE4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIDB4MTgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MTgsIAogICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChQUEFHLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBb T25lXSA9IFdBR00gLyogXFdBR00gKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkg W09uZV0pIFsweDAyXSA9IEFHQTEgLyogXEFHQTEgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFBQQVkgW09uZV0pIFsweDAzXSA9IEFHQTIgLyogXEFHQTIgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA0XSA9IEFHQTMgLyogXEFHQTMgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA1XSA9IEFHQTQgLyogXEFH QTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA2XSA9IEFH QTUgLyogXEFHQTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsw eDA3XSA9IEFHQTYgLyogXEFHQTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkg W09uZV0pIFsweDA4XSA9IEFHQTcgLyogXEFHQTcgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFBQQVkgW09uZV0pIFsweDA5XSA9IEFHQTggLyogXEFHQTggKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBBXSA9IEFHQTkgLyogXEFHQTkgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBCXSA9IEFHQUEgLyogXEFH QUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBDXSA9IEFH QUIgLyogXEFHQUIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsw eDBEXSA9IEFHQjEgLyogXEFHQjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkg W09uZV0pIFsweDBFXSA9IEFHQjIgLyogXEFHQjIgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFBQQVkgW09uZV0pIFsweDBGXSA9IEFHQjMgLyogXEFHQjMgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDEwXSA9IEFHQjQgLyogXEFHQjQgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDExXSA9IEFHQjUgLyogXEFH QjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDEyXSA9IEFH QjYgLyogXEFHQjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsw eDEzXSA9IEFHQjcgLyogXEFHQjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkg W09uZV0pIFsweDE0XSA9IEFHQjggLyogXEFHQjggKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFBQQVkgW09uZV0pIFsweDE1XSA9IEFHQjkgLyogXEFHQjkgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE2XSA9IEFHQkEgLyogXEFHQkEgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE3XSA9IEFHQkIgLyogXEFH QkIgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoUFBBWSkgLyogXF9TQl8uUEMwMC5SUDAy LlBYU1guUFBBWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXUEZZLCBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAg ICAgICAgICBNZXRob2QgKFdQRkMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFtPbmVdID0gV1BGQSAvKiBcV1BG QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1BGWSBbT25lXSkgWzB4MDJdID0gV1BG QiAvKiBcV1BGQiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1BGWSBbT25lXSkgWzB4 MDNdID0gXFdQRkMKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFsweDA0 XSA9IFdQRkQgLyogXFdQRkQgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoV1BGWSkgLyog XF9TQl8uUEMwMC5SUDAyLlBYU1guV1BGWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAg ICBOYW1lIChXVFNZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBPbmUsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgxMykKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1RBUywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgW09uZV0g PSBXVFNFIC8qIFxXVFNFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVd KSBbMHgwMl0gPSBXVExFIC8qIFxXVExFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX VFNZIFtPbmVdKSBbMHgwM10gPSBCTDAxIC8qIFxCTDAxICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwNF0gPSBCTDAyIC8qIFxCTDAyICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwNV0gPSBCTDAzIC8qIFxCTDAzICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwNl0gPSBCTDA0IC8q IFxCTDA0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwN10g PSBCTDA1IC8qIFxCTDA1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVd KSBbMHgwOF0gPSBCTDA2IC8qIFxCTDA2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX VFNZIFtPbmVdKSBbMHgwOV0gPSBCTDA3IC8qIFxCTDA3ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQV0gPSBCTDA4IC8qIFxCTDA4ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQl0gPSBCTDA5IC8qIFxCTDA5ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQ10gPSBCTDEwIC8q IFxCTDEwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwRF0g PSBCTDExIC8qIFxCTDExICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVd KSBbMHgwRV0gPSBCTDEyIC8qIFxCTDEyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX VFNZIFtPbmVdKSBbMHgwRl0gPSBCTDEzIC8qIFxCTDEzICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMF0gPSBCTDE0IC8qIFxCTDE0ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMV0gPSBCTDE1IC8qIFxCTDE1ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMl0gPSBCTDE2IC8q IFxCTDE2ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdUU1kpIC8qIFxfU0JfLlBDMDAu UlAwMi5QWFNYLldUU1kgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV0FJ WSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChXQUlTLCAw LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChX QUlZIFtPbmVdKSBbT25lXSA9IFdMQkkgLyogXFdMQkkgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdBSVkgW09uZV0pIFsweDAyXSA9IFdIQkkgLyogXFdIQkkgKi8KICAgICAgICAg ICAgICAgIFJldHVybiAoV0FJWSkgLyogXF9TQl8uUEMwMC5SUDAyLlBYU1guV0FJWSAqLwog ICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChTQURYLCBQYWNrYWdlICgweDAzKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgw NywgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAw CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAo U0FEUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVy ZWZPZiAoU0FEWCBbT25lXSkgW09uZV0gPSBBVERWIC8qIFxBVERWICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChTQURYIFsweDAyXSkgW09uZV0gPSBBVERWIC8qIFxBVERWICovCiAg ICAgICAgICAgICAgICBSZXR1cm4gKFNBRFgpIC8qIFxfU0JfLlBDMDAuUlAwMi5QWFNYLlNB RFggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoR1BDWCwgUGFja2FnZSAo MHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IDB4MTIsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAg ICAgICAgIE1ldGhvZCAoR1BDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBSZXR1cm4gKEdQQ1gpIC8qIFxfU0JfLlBDMDAuUlAwMi5QWFNYLkdQQ1gg Ki8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoR0xBWCwgUGFja2FnZSAoMHgw MykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKEdMQUksIDAs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiQVI6IEdMQUkgbWV0aG9kLiBDR0xTID0gIiwgVG9IZXhTdHJpbmcgKENHTFMp KSkKICAgICAgICAgICAgICAgIERlcmVmT2YgKEdMQVggW09uZV0pIFtPbmVdID0gQ0dMUyAv KiBcQ0dMUyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoR0xBWCBbMHgwMl0pIFtPbmVd ID0gQ0dMUyAvKiBcQ0dMUyAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChHTEFYKSAvKiBc X1NCXy5QQzAwLlJQMDIuUFhTWC5HTEFYICovCiAgICAgICAgICAgIH0KICAgICAgICB9Cgog ICAgICAgIElmICgoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xPVCkpKQogICAgICAg IHsKICAgICAgICAgICAgTWV0aG9kIChGSFJGLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEdHT1YgKFBSU1QpICE9IFdQUlApKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERMMjMgKCkKICAgICAgICAgICAg ICAgICAgICBBREJHICgiV1dBTiBETDIzKCkgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAg U0dPViAoUFJTVCwgV1BSUCkKICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQRVJT VDowIERvbmUiKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJBc3N1bWUgV1dBTiBE TDIzKCkgaXMgYWxyZWFkeSBkb25lIikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBTbGVlcCAoVFIyQikKICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsIFBCUlMpCiAg ICAgICAgICAgICAgICBBREJHICgiV1dBTiBSU1Q6MCBEb25lIikKICAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoVEJURykKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlNMUCBUQlRHICIsIFRvRGVjaW1hbFN0cmluZyAoVEJURykpKQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSBPbmUpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFNQQ08gKFdDTEssIFplcm8pCiAgICAgICAg ICAgICAgICAgICAgQURCRyAoIldXQU4gU0NMSzowIERvbmUiKQogICAgICAgICAgICAgICAg ICAgIFNsZWVwIChUQjJGKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiU0xQIFRCMkYgIiwgVG9EZWNpbWFsU3RyaW5nIChUQjJGKSkpCiAgICAgICAgICAgICAg ICAgICAgU0dPViAoV0ZDUCwgKH5QRkNQICYgT25lKSkKICAgICAgICAgICAgICAgICAgICBB REJHICgiV1dBTiBQV1I6MCBEb25lIikKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoVEZE SSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlNMUCBURkRJICIs IFRvRGVjaW1hbFN0cmluZyAoVEZESSkpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcg KCJVbnN1cHBvcnRlZCBBcmcwIGlzIGRldGVjdGVkLiIpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU0hSRiwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFNEMCAoU0xPVCkKICAgICAgICAg ICAgICAgIEFEQkcgKCJXV0FOIE1QSFlQRzowIERvbmUiKQogICAgICAgICAgICAgICAgU1BD TyAoV0NMSywgT25lKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gU0NMSzoxIERvbmUi KQogICAgICAgICAgICAgICAgU0dPViAoV0ZDUCwgUEZDUCkKICAgICAgICAgICAgICAgIEFE QkcgKCJXV0FOIFBXUjoxIERvbmUiKQogICAgICAgICAgICAgICAgU2xlZXAgKFROMkIpCiAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlNMUCBUTjJCICIsIFRvRGVjaW1h bFN0cmluZyAoVE4yQikpKQogICAgICAgICAgICAgICAgU0dPViAoV0JSUywgKH5QQlJTICYg T25lKSkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFJTVDoxIERvbmUiKQogICAgICAg ICAgICAgICAgU2xlZXAgKFRCMlIpCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlNMUCBUQjJSICIsIFRvRGVjaW1hbFN0cmluZyAoVEIyUikpKQogICAgICAgICAgICAg ICAgU0dPViAoUFJTVCwgKH5XUFJQICYgT25lKSkKICAgICAgICAgICAgICAgIEFEQkcgKCJX V0FOIFBFUlNUOjAgRG9uZSIpCiAgICAgICAgICAgICAgICBMMjNEICgpCiAgICAgICAgICAg ICAgICBBREJHICgiV1dBTiBMMjNEKCkgRG9uZSIpCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoRE9TViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgV2hpbGUgKCgoU1ZJ RCAhPSBXU0lEKSAmJiAoTG9jYWwwIDwgV1NUTykpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9u ZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIkRFVCBUaW1lICIsIFRvRGVjaW1hbFN0cmluZyAoTG9jYWwwKSkpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwgU2VyaWFsaXplZCkgIC8vIF9SU1Q6 IERldmljZSBSZXNldAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJHICgiX1JT VCBXV0FOIikKICAgICAgICAgICAgICAgIElmICgoV1dFTiA9PSAweDAyKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1aXJlIChXV01ULCAw eDAzRTgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gRkxEUiBNdXRleDogQWNx dWlyZWQgVHJ5IERvbmUiKQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlN0YXJ0IFdXQU4gRkxEUiIpCiAgICAgICAgICAgICAgICAgICAgICAgIEZIUkYgKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgICAgIFNIUkYgKCkKICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIkVuZCBXV0FOIEZMRFIiKQogICAgICAgICAgICAgICAgICAgICAgICBS ZWxlYXNlIChXV01UKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBGTERS IE11dGV4OlJlbGVhc2UgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAgICAgIERPU1YgKCkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU0dPViAoV0JS UywgUEJSUykKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHhDOCkKICAgICAgICAgICAg ICAgICAgICBOb3RpZnkgKFBYU1gsIE9uZSkgLy8gRGV2aWNlIENoZWNrCiAgICAgICAgICAg ICAgICAgICAgU0dPViAoUFJTVCwgKH5XUFJQICYgT25lKSkKICAgICAgICAgICAgICAgICAg ICBTR09WIChXQlJTLCAoflBCUlMgJiBPbmUpKQogICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweEM4KQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAg ICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MTQpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRkxE UiBUTyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxMCkKICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDBBKQogICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiUlZQIERlbGF5IFRpbWUgIiwgVG9EZWNpbWFsU3RyaW5nIChM b2NhbDApKSkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gsIE9uZSkgLy8gRGV2 aWNlIENoZWNrCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IFBvd2VyUmVzb3VyY2UgKE1SU1QsIDB4MDUsIDB4MDAwMCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NUQTogU3Rh dHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4g UFIgX1NUQSIpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT04sIDAsIFNlcmlhbGl6ZWQpICAv LyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IEFEQkcgKCJXV0FOIFBSIF9PTiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChfT0ZGLCAwLCBTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFIgX09G RiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUlNULCAw LCBTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoV1dNVCwgMHgwM0U4KQog ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBMRFIgTXV0ZXg6IEFjcXVpcmVkIFRy eSBEb25lIikKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJTdGFy dCBXV0FOIFBMRFIiKQogICAgICAgICAgICAgICAgICAgICAgICBGSFJGIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgIFNIUkYgKCkKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIkVuZCBXV0FOIFBSIF9SU1QiKQogICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNl IChXV01UKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQTERSIE11dGV4 OiBSZWxlYXNlIERvbmUiKQogICAgICAgICAgICAgICAgICAgICAgICBET1NWICgpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg ICAgfQoKICAgICAgICBJZiAoKFdJU1QgKCkgfHwgKChXV0VOICE9IFplcm8pICYmIChXV1JQ ID09IFNMT1QpKSkpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9QUlIsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfUFJSOiBQb3dlciBSZXNvdXJjZSBmb3IgUmVzZXQKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoV1JTVCkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4 MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFdSU1QKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKCgoV1dFTiAhPSBa ZXJvKSAmJiAoV1dSUCA9PSBTTE9UKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoTVJTVCkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1SU1QKICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFdSU1QKICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEZERUwsIFplcm8pCiAgICAg ICAgICAgIE5hbWUgKFBERUwsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKFZERUwsIFplcm8p CiAgICAgICAgICAgIE1ldGhvZCAoSUZVTiwgNCwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDFGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g LgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJ2UHJvOiAiLCBDVlBSKSkKICAg ICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQ1ZQUiA8PCBaZXJvKQogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIFplcm8sIENNRFQpCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmczLCAweDAyLCBDTURQKQogICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQ21kVHlwZSA9ICIsIFRvSGV4U3RyaW5n IChDTURUKSkpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJDbWRQ YXlsb2FkID0gIiwgVG9IZXhTdHJpbmcgKENNRFApKSkKICAgICAgICAgICAgICAgICAgICBJ ZiAoKENNRFQgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJTVFkpIC8qIFxfU0JfLlBDMDAuUlAw Mi5QWFNYLlJTVFkgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkNOVlcuUlNUVCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiR2V0IF9QUlIgTW9kZSA9ICIsIF5eXkNOVlcuUlNUVCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eXkNOVlcuUlNUVCkgLyogXF9T Ql8uUEMwMC5DTlZXLlJTVFQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KChDTURUID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChDTURQICYgT25lKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUlNUWSA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwxID0gKENNRFAgJiAweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwxID4+PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZMUkMgPSBM b2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IChDTURQICYgMHgw NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA+Pj0gMHgwMgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQk9GQyA9IExvY2FsMgogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoQ29uZFJlZk9mIChcX1NC LlBDMDAuQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTZXQgX1BSUiBNb2RlID0g IiwgVG9IZXhTdHJpbmcgKENNRFApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5e XkNOVlcuUlNUVCA9IENNRFAgLyogXF9TQl8uUEMwMC5SUDAyLlBYU1guSUZVTi5DTURQICov CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmICgoQ01EVCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5DTlZXLlBSUlMpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIkdldCBMYXN0X1BSUiBzdGF0dXMgUFJSUyA9ICIsIFRvSGV4U3Ry aW5nICheXl5DTlZXLlBSUlMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoXl5eQ05WVy5QUlJTKSAvKiBcX1NCXy5QQzAwLkNOVlcuUFJSUyAqLwogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoV0lTVCAo KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJHZXQgTGFzdF9QUlIgc3RhdHVzIERQUlMgPSAiLCBU b0hleFN0cmluZyAoRFBSUykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChEUFJTKSAvKiBcX1NCXy5QQzAwLlJQMDIuUFhTWC5EUFJTICovCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChDUkZJID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmczLCBa ZXJvLCBQUlRUKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMywg MHgwMiwgUFJURCkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlRp bWVyVHlwZSA9ICIsIFRvSGV4U3RyaW5nIChQUlRUKSkpCiAgICAgICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJUaW1lckR1cmF0aW9uIChtcykgPSAiLCBUb0RlY2ltYWxT dHJpbmcgKFBSVEQpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKFBSVFQgPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEZERUwgPSBQ UlREIC8qIFxfU0JfLlBDMDAuUlAwMi5QWFNYLklGVU4uUFJURCAqLwogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChQUlRUID09IDB4MDIpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUERFTCA9IFBS VEQgLyogXF9TQl8uUEMwMC5SUDAyLlBYU1guSUZVTi5QUlREICovCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFBSVFQgPT0gMHgwMykpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBWREVMID0gUFJU RCAvKiBcX1NCXy5QQzAwLlJQMDIuUFhTWC5JRlVOLlBSVEQgKi8KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRpbWVyRHVyYXRpb24gbm90IHNldCIp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChJ RFNNLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gVG9VVUlEICgiNzI2NjE3MmMtMjIwYi00YjI5LTgxNGYtNzVlNGRkMjZiNWZk IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoRUZV TiwgNCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChB cmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgMHgxRiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg PSBBQ1NEIC8qIFxBQ1NEICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDAp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEk1QlMg LyogXEk1QlMgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gVUhCUyAvKiBcVUhC UyAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA2KSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBWE1VIC8qIFxBWE1VICovCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwwIDw8PSBPbmUKICAgICAgICAgICAgICAgICAgICBM b2NhbDAgfD0gQVhTVSAvKiBcQVhTVSAqLwogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9 IEFYTVIgLyogXEFYTVIgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPDw9IE9uZQog ICAgICAgICAgICAgICAgICAgIExvY2FsMSB8PSBBWFNSIC8qIFxBWFNSICovCiAgICAgICAg ICAgICAgICAgICAgTG9jYWwxIDw8PSAweDAyCiAgICAgICAgICAgICAgICAgICAgTG9jYWww IHw9IExvY2FsMQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA0KSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwMikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAw eDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4KICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSAweDA1KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFdGVUMpIC8qIFxXRlVDICovCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MDcpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoVU5JNCkgLyogXFVOSTQgKi8KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwOCkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRklDKSAvKiBcV0ZJQyAqLwogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA5KSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdGQlMpIC8qIFxX RkJTICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IDB4MEEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo V0VEVCkgLyogXFdFRFQgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ ZiAoKEFyZzIgPT0gMHgwQikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKChDSVJNID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwQykpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRjdDKSAvKiBcV0Y3 QyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChFRFNNLCAxLCBTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgi ZjIxMjAyYmYtOGY3OC00ZGM2LWE1YjMtMWY3MzhlMjg1YWRlIikgLyogVW5rbm93biBVVUlE ICovKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkg IC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKEVEU00gKEFyZzApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChFRlVOIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczKSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChJRFNNIChB cmcwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoSUZVTiAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoKFdXRU4gIT0g WmVybykgJiYgKFdXUlAgPT0gU0xPVCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJiYWQwMWI3NS0yMmE4LTRmNDgtODc5 Mi1iZGRlOTQ2Nzc0N2QiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IE9uZSkpe30KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IDB4MDIpKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAz KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChXUlRPID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUG93ZXIgX0RTTSBE MC9MMS4yIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2VJZiAoKFdSVE8gPT0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldX QU4gUG93ZXIgX0RTTSBEMy9MMS4yIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdSVE8gPT0gMHgwMykpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIldXQU4gUG93ZXIgX0RTTSBEMy9MMiIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoIldXQU4gUG93ZXIgX0RTTSBEaXNhYmxlZCIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXUlRPKSAv KiBcV1JUTyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVy IChPbmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChf U0IuUEMwMC5SUDAzLlBYU1gpCiAgICB7CiAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChSUFhY LCBTeXN0ZW1NZW1vcnksIEdNSU8gKFBCTlUsIF5fQURSICgpLCBfQURSKSwgMHgzMCkKICAg ICAgICBGaWVsZCAoUlBYWCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsK ICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgyQyksIAog ICAgICAgICAgICBTVklELCAgIDE2CiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdp b24gKEZMRFIsIFN5c3RlbU1lbW9yeSwgKEdNSU8gKFBCTlUsIF5fQURSICgpLCBfQURSKSAr IFdEQ08pLCAweDA2KQogICAgICAgIEZpZWxkIChGTERSLCBCeXRlQWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgRENBUCwgICAzMiwgCiAgICAgICAgICAg IERDVFIsICAgMTYKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVlNFQywg U3lzdGVtTWVtb3J5LCAoR01JTyAoUEJOVSwgXl9BRFIgKCksIF9BRFIpICsgV1ZITyksIDB4 MTApCiAgICAgICAgRmllbGQgKFZTRUMsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg ICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgwQyksIAogICAgICAgICAgICAgICAgLCAg IDEsIAogICAgICAgICAgICBCVElFLCAgIDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAog ICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAg ICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICBP ZmZzZXQgKDB4MEQpLCAKICAgICAgICAgICAgUERSQywgICAxCiAgICAgICAgfQoKICAgICAg ICBPcGVyYXRpb25SZWdpb24gKFBCUlIsIFN5c3RlbU1lbW9yeSwgR01JTyAoUEJOVSwgXl9B RFIgKCksIF9BRFIpLCAweDAyQjgpCiAgICAgICAgRmllbGQgKFBCUlIsIEFueUFjYywgTm9M b2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgxOEMpLCAK ICAgICAgICAgICAgTVNOTCwgICAzMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgxOTgpLCAK ICAgICAgICAgICAgTDFDMSwgICAzMiwgCiAgICAgICAgICAgIEwxQzIsICAgMzIsIAogICAg ICAgICAgICBPZmZzZXQgKDB4MkI0KSwgCiAgICAgICAgICAgIFBUTVIsICAgMzIKICAgICAg ICB9CgogICAgICAgIE1ldGhvZCAoV0lTVCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFZESUQpKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoVkRJRCkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgyNTI2ODA4NikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MUI4MDg2KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MjcyMzgw ODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoMHgyNzI1ODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBDYXNlICgweDI3MkI4MDg2KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoU1ZEQyA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhv ZCAoV1dTVCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFZESUQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTd2l0Y2ggKFRv SW50ZWdlciAoVkRJRCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg Q2FzZSAoMHg3MzYwODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDc1NjA4MDg2KQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4NEQ3NTE0QzMpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwODAwMTRDMykKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25l KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKFdJU1Qg KCkpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChSU1RZLCBaZXJvKQogICAgICAgICAg ICBOYW1lIChGTFJDLCBaZXJvKQogICAgICAgICAgICBOYW1lIChCT0ZDLCBaZXJvKQogICAg ICAgICAgICBOYW1lIChEUFJTLCBaZXJvKQogICAgICAgICAgICBQb3dlclJlc291cmNlIChX UlNULCAweDA1LCAweDAwMDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFBSIF9TVEEiKQogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09OXzogUG93 ZXIgT24KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiV2lm aSBQUiBfT04iKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo X09GRiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFBSIF9PRkYiKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoUlNUWSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkgUHJvZHVjdCBSU1QiKQog ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1aXJlIChDTk1ULCAweDAzRTgp CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFplcm8pKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEZM UkMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBEQ1RSIC8qIFxfU0JfLlBDMDAuUlAwMy5Q WFNYLkRDVFIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0g MHg4MDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRENUUiA9IExvY2FsMAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChGREVMKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERQUlMg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQk9GQyA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQlJNVCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJUUksgKFplcm8p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2VJZiAoKFdWSE8gIT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC VElFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFJETFkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUERSQyA9IE9uZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFZERUwpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTR09WIChXTFJULCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2xlZXAgKFBERUwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTR09WIChX TFJULCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJPRkMgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEJSTVQgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVFJLIChP bmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdWSE8gIT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCVElFID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoUkRMWSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUFJTID0gMHgw MgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoQ05NVCkKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiV2lmaSBDb3JlIFJTVCIpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo RENBUCAmIDB4MTAwMDAwMDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBEQ1RSIC8qIFxfU0JfLlBDMDAuUlAwMy5Q WFNYLkRDVFIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAweDgw MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERDVFIgPSBMb2NhbDAKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgRFBSUyA9IE9uZQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MDdE MCkKICAgICAgICAgICAgICAgICAgICBNU05MID0gRFIwMSAvKiBcRFIwMSAqLwogICAgICAg ICAgICAgICAgICAgIEwxQzEgPSBEUjAyIC8qIFxEUjAyICovCiAgICAgICAgICAgICAgICAg ICAgTDFDMiA9IERSMDMgLyogXERSMDMgKi8KICAgICAgICAgICAgICAgICAgICBQVE1SID0g RFIwNCAvKiBcRFIwNCAqLwogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDA3RDApCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFNQTFgs IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAw MDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoU1BMQywgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoU1BMWCBbT25lXSkg W1plcm9dID0gRE9NMSAvKiBcRE9NMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoU1BM WCBbT25lXSkgW09uZV0gPSBMSU0xIC8qIFxMSU0xICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChTUExYIFtPbmVdKSBbMHgwMl0gPSBUSU0xIC8qIFxUSU0xICovCiAgICAgICAgICAg ICAgICBSZXR1cm4gKFNQTFgpIC8qIFxfU0JfLlBDMDAuUlAwMy5QWFNYLlNQTFggKi8KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV0FOWCwgUGFja2FnZSAoMHgwMykKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAw MDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg MHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 KQogICAgICAgICAgICBNZXRob2QgKFdBTkQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFtaZXJvXSA9IFplcm8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFtPbmVdID0gVFJEMCAvKiBc VFJEMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBbT25lXSkgWzB4MDJdID0g VFJMMCAvKiBcVFJMMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBbMHgwMl0p IFtaZXJvXSA9IE9uZQogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBbMHgwMl0pIFtP bmVdID0gVFJEMSAvKiBcVFJEMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBb MHgwMl0pIFsweDAyXSA9IFRSTDEgLyogXFRSTDEgKi8KICAgICAgICAgICAgICAgIFJldHVy biAoV0FOWCkgLyogXF9TQl8uUEMwMC5SUDAzLlBYU1guV0FOWCAqLwogICAgICAgICAgICB9 CgogICAgICAgICAgICBOYW1lIChXUkRYLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MDAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1JERCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWCBbT25lXSkgW1plcm9dID0gV0RN MSAvKiBcV0RNMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWCBbT25lXSkgW09u ZV0gPSBDSUQxIC8qIFxDSUQxICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdSRFgpIC8q IFxfU0JfLlBDMDAuUlAwMy5QWFNYLldSRFggKi8KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTmFtZSAoV1JEWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDJFKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg IDB4ODAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0 aG9kIChXUkRTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbT25lXSA9IFNUWEUgLyogXFNUWEUgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDAyXSA9IFNUMTAgLyogXFNUMTAg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDAzXSA9IFNUMTEg LyogXFNUMTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA0 XSA9IFNUMTIgLyogXFNUMTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDA1XSA9IFNUMTMgLyogXFNUMTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDA2XSA9IFNUMTQgLyogXFNUMTQgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA3XSA9IFNUMTUgLyogXFNUMTUgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA4XSA9IFNUMTYgLyogXFNUMTYg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA5XSA9IFNUMTcg LyogXFNUMTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBB XSA9IFNUMTggLyogXFNUMTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDBCXSA9IFNUMTkgLyogXFNUMTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDBDXSA9IFNUNTAgLyogXFNUNTAgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBEXSA9IFNUNTEgLyogXFNUNTEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBFXSA9IFNUNTIgLyogXFNUNTIg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBGXSA9IFNUNTMg LyogXFNUNTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDEw XSA9IFNUNTQgLyogXFNUNTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDExXSA9IFNUNTUgLyogXFNUNTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDEyXSA9IFNUNTYgLyogXFNUNTYgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDEzXSA9IFNUNTcgLyogXFNUNTcgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE0XSA9IFNUNTggLyogXFNUNTgg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE1XSA9IFNUNTkg LyogXFNUNTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE2 XSA9IFNUNUEgLyogXFNUNUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDE3XSA9IFNUNUIgLyogXFNUNUIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDE4XSA9IENEMTAgLyogXENEMTAgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE5XSA9IENEMTEgLyogXENEMTEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFBXSA9IENEMTIgLyogXENEMTIg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFCXSA9IENEMTMg LyogXENEMTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFD XSA9IENEMTQgLyogXENEMTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDFEXSA9IENEMTUgLyogXENEMTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDFFXSA9IENEMTYgLyogXENEMTYgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFGXSA9IENEMTcgLyogXENEMTcgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDIwXSA9IENEMTggLyogXENEMTgg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDIxXSA9IENEMTkg LyogXENEMTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDIy XSA9IENEMUEgLyogXENEMUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDIzXSA9IENEMjAgLyogXENEMjAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDI0XSA9IENEMjEgLyogXENEMjEgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI1XSA9IENEMjIgLyogXENEMjIgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI2XSA9IENEMjMgLyogXENEMjMg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI3XSA9IENEMjQg LyogXENEMjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI4 XSA9IENEMjUgLyogXENEMjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDI5XSA9IENEMjYgLyogXENEMjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDJBXSA9IENEMjcgLyogXENEMjcgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJCXSA9IENEMjggLyogXENEMjggKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJDXSA9IENEMjkgLyogXENEMjkg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJEXSA9IENEMkEg LyogXENEMkEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoV1JEWSkgLyogXF9TQl8uUEMw MC5SUDAzLlBYU1guV1JEWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChF V1JZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4ODcpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 KQogICAgICAgICAgICBNZXRob2QgKEVXUkQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFtPbmVdID0gU1RERSAv KiBcU1RERSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDJd ID0gU1RSUyAvKiBcU1RSUyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MDNdID0gU1QyMCAvKiBcU1QyMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MDRdID0gU1QyMSAvKiBcU1QyMSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDVdID0gU1QyMiAvKiBcU1QyMiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDZdID0gU1QyMyAvKiBcU1QyMyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDddID0gU1QyNCAv KiBcU1QyNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDhd ID0gU1QyNSAvKiBcU1QyNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MDldID0gU1QyNiAvKiBcU1QyNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MEFdID0gU1QyNyAvKiBcU1QyNyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MEJdID0gU1QyOCAvKiBcU1QyOCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MENdID0gU1QyOSAvKiBcU1QyOSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MERdID0gU1Q2MCAv KiBcU1Q2MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MEVd ID0gU1Q2MSAvKiBcU1Q2MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MEZdID0gU1Q2MiAvKiBcU1Q2MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MTBdID0gU1Q2MyAvKiBcU1Q2MyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTFdID0gU1Q2NCAvKiBcU1Q2NCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTJdID0gU1Q2NSAvKiBcU1Q2NSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTNdID0gU1Q2NiAv KiBcU1Q2NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTRd ID0gU1Q2NyAvKiBcU1Q2NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MTVdID0gU1Q2OCAvKiBcU1Q2OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MTZdID0gU1Q2OSAvKiBcU1Q2OSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTddID0gU1Q2QSAvKiBcU1Q2QSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MThdID0gU1Q2QiAvKiBcU1Q2QiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTldID0gU1QzMCAv KiBcU1QzMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUFd ID0gU1QzMSAvKiBcU1QzMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MUJdID0gU1QzMiAvKiBcU1QzMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MUNdID0gU1QzMyAvKiBcU1QzMyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MURdID0gU1QzNCAvKiBcU1QzNCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUVdID0gU1QzNSAvKiBcU1QzNSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUZdID0gU1QzNiAv KiBcU1QzNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjBd ID0gU1QzNyAvKiBcU1QzNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MjFdID0gU1QzOCAvKiBcU1QzOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MjJdID0gU1QzOSAvKiBcU1QzOSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjNdID0gU1Q3MCAvKiBcU1Q3MCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjRdID0gU1Q3MSAvKiBcU1Q3MSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjVdID0gU1Q3MiAv KiBcU1Q3MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjZd ID0gU1Q3MyAvKiBcU1Q3MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MjddID0gU1Q3NCAvKiBcU1Q3NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MjhdID0gU1Q3NSAvKiBcU1Q3NSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjldID0gU1Q3NiAvKiBcU1Q3NiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkFdID0gU1Q3NyAvKiBcU1Q3NyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkJdID0gU1Q3OCAv KiBcU1Q3OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkNd ID0gU1Q3OSAvKiBcU1Q3OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MkRdID0gU1Q3QSAvKiBcU1Q3QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MkVdID0gU1Q3QiAvKiBcU1Q3QiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkZdID0gU1Q0MCAvKiBcU1Q0MCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzBdID0gU1Q0MSAvKiBcU1Q0MSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzFdID0gU1Q0MiAv KiBcU1Q0MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzJd ID0gU1Q0MyAvKiBcU1Q0MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MzNdID0gU1Q0NCAvKiBcU1Q0NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MzRdID0gU1Q0NSAvKiBcU1Q0NSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzVdID0gU1Q0NiAvKiBcU1Q0NiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzZdID0gU1Q0NyAvKiBcU1Q0NyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzddID0gU1Q0OCAv KiBcU1Q0OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4Mzhd ID0gU1Q0OSAvKiBcU1Q0OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MzldID0gU1Q4MCAvKiBcU1Q4MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4M0FdID0gU1Q4MSAvKiBcU1Q4MSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0JdID0gU1Q4MiAvKiBcU1Q4MiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0NdID0gU1Q4MyAvKiBcU1Q4MyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0RdID0gU1Q4NCAv KiBcU1Q4NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0Vd ID0gU1Q4NSAvKiBcU1Q4NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4M0ZdID0gU1Q4NiAvKiBcU1Q4NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NDBdID0gU1Q4NyAvKiBcU1Q4NyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDFdID0gU1Q4OCAvKiBcU1Q4OCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDJdID0gU1Q4OSAvKiBcU1Q4OSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDNdID0gU1Q4QSAv KiBcU1Q4QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDRd ID0gU1Q4QiAvKiBcU1Q4QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NDVdID0gQ0QzMCAvKiBcQ0QzMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NDZdID0gQ0QzMSAvKiBcQ0QzMSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDddID0gQ0QzMiAvKiBcQ0QzMiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDhdID0gQ0QzMyAvKiBcQ0QzMyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDldID0gQ0QzNCAv KiBcQ0QzNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NEFd ID0gQ0QzNSAvKiBcQ0QzNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NEJdID0gQ0QzNiAvKiBcQ0QzNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NENdID0gQ0QzNyAvKiBcQ0QzNyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NERdID0gQ0QzOCAvKiBcQ0QzOCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NEVdID0gQ0QzOSAvKiBcQ0QzOSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NEZdID0gQ0QzQSAv KiBcQ0QzQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTBd ID0gQ0QzQiAvKiBcQ0QzQiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NTFdID0gQ0QzQyAvKiBcQ0QzQyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NTJdID0gQ0QzRCAvKiBcQ0QzRCAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTNdID0gQ0QzRSAvKiBcQ0QzRSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTRdID0gQ0QzRiAvKiBcQ0QzRiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTVdID0gQ0Q0MCAv KiBcQ0Q0MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTZd ID0gQ0Q0MSAvKiBcQ0Q0MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NTddID0gQ0Q0MiAvKiBcQ0Q0MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NThdID0gQ0Q0MyAvKiBcQ0Q0MyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTldID0gQ0Q0NCAvKiBcQ0Q0NCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUFdID0gQ0Q0NSAvKiBcQ0Q0NSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUJdID0gQ0Q0NiAv KiBcQ0Q0NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUNd ID0gQ0Q0NyAvKiBcQ0Q0NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NURdID0gQ0Q0OCAvKiBcQ0Q0OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NUVdID0gQ0Q0OSAvKiBcQ0Q0OSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUZdID0gQ0Q0QSAvKiBcQ0Q0QSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjBdID0gQ0Q0QiAvKiBcQ0Q0QiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjFdID0gQ0Q0QyAv KiBcQ0Q0QyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjJd ID0gQ0Q0RCAvKiBcQ0Q0RCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NjNdID0gQ0Q0RSAvKiBcQ0Q0RSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NjRdID0gQ0Q0RiAvKiBcQ0Q0RiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjVdID0gQ0Q1MCAvKiBcQ0Q1MCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjZdID0gQ0Q1MSAvKiBcQ0Q1MSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjddID0gQ0Q1MiAv KiBcQ0Q1MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4Njhd ID0gQ0Q1MyAvKiBcQ0Q1MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NjldID0gQ0Q1NCAvKiBcQ0Q1NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NkFdID0gQ0Q1NSAvKiBcQ0Q1NSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkJdID0gQ0Q1NiAvKiBcQ0Q1NiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkNdID0gQ0Q1NyAvKiBcQ0Q1NyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkRdID0gQ0Q1OCAv KiBcQ0Q1OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkVd ID0gQ0Q1OSAvKiBcQ0Q1OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NkZdID0gQ0Q1QSAvKiBcQ0Q1QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NzBdID0gQ0Q1QiAvKiBcQ0Q1QiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzFdID0gQ0Q1QyAvKiBcQ0Q1QyAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzJdID0gQ0Q1RCAvKiBcQ0Q1RCAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzNdID0gQ0Q1RSAv KiBcQ0Q1RSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzRd ID0gQ0Q1RiAvKiBcQ0Q1RiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NzVdID0gQ0Q2MCAvKiBcQ0Q2MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NzZdID0gQ0Q2MSAvKiBcQ0Q2MSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzddID0gQ0Q2MiAvKiBcQ0Q2MiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzhdID0gQ0Q2MyAvKiBcQ0Q2MyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzldID0gQ0Q2NCAv KiBcQ0Q2NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0Fd ID0gQ0Q2NSAvKiBcQ0Q2NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4N0JdID0gQ0Q2NiAvKiBcQ0Q2NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4N0NdID0gQ0Q2NyAvKiBcQ0Q2NyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0RdID0gQ0Q2OCAvKiBcQ0Q2OCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0VdID0gQ0Q2OSAvKiBcQ0Q2OSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0ZdID0gQ0Q2QSAv KiBcQ0Q2QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODBd ID0gQ0Q2QiAvKiBcQ0Q2QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4ODFdID0gQ0Q2QyAvKiBcQ0Q2QyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4ODJdID0gQ0Q2RCAvKiBcQ0Q2RCAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODNdID0gQ0Q2RSAvKiBcQ0Q2RSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODRdID0gQ0Q2RiAvKiBcQ0Q2RiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODVdID0gQ0Q3MCAv KiBcQ0Q3MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODZd ID0gQ0Q3MSAvKiBcQ0Q3MSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChFV1JZKSAvKiBc X1NCXy5QQzAwLlJQMDMuUFhTWC5FV1JZICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE5hbWUgKFdHRFksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHg0QSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICAw eDAzLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhv ZCAoV0dEUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgW09uZV0gPSBTREdOIC8qIFxTREdOICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwMl0gPSBTRDExIC8qIFxTRDExICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwM10gPSBTRDEyIC8q IFxTRDEyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwNF0g PSBTRDEzIC8qIFxTRDEzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgwNV0gPSBTRDE0IC8qIFxTRDE0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgwNl0gPSBTRDE1IC8qIFxTRDE1ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwN10gPSBTRDE2IC8qIFxTRDE2ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwOF0gPSBTRDE3IC8qIFxTRDE3ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwOV0gPSBTRDE4IC8q IFxTRDE4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwQV0g PSBTRDE5IC8qIFxTRDE5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgwQl0gPSBTRDIxIC8qIFxTRDIxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgwQ10gPSBTRDIyIC8qIFxTRDIyICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwRF0gPSBTRDIzIC8qIFxTRDIzICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwRV0gPSBTRDI0IC8qIFxTRDI0ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwRl0gPSBTRDI1IC8q IFxTRDI1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxMF0g PSBTRDI2IC8qIFxTRDI2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgxMV0gPSBTRDI3IC8qIFxTRDI3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgxMl0gPSBTRDI4IC8qIFxTRDI4ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxM10gPSBTRDI5IC8qIFxTRDI5ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxNF0gPSBTRDMxIC8qIFxTRDMxICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxNV0gPSBTRDMyIC8q IFxTRDMyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxNl0g PSBTRDMzIC8qIFxTRDMzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgxN10gPSBTRDM0IC8qIFxTRDM0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgxOF0gPSBTRDM1IC8qIFxTRDM1ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxOV0gPSBTRDM2IC8qIFxTRDM2ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxQV0gPSBTRDM3IC8qIFxTRDM3ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxQl0gPSBTRDM4IC8q IFxTRDM4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxQ10g PSBTRDM5IC8qIFxTRDM5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgxRF0gPSBTRDQxIC8qIFxTRDQxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgxRV0gPSBTRDQyIC8qIFxTRDQyICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxRl0gPSBTRDQzIC8qIFxTRDQzICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyMF0gPSBTRDQ0IC8qIFxTRDQ0ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyMV0gPSBTRDQ1IC8q IFxTRDQ1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyMl0g PSBTRDQ2IC8qIFxTRDQ2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgyM10gPSBTRDQ3IC8qIFxTRDQ3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgyNF0gPSBTRDQ4IC8qIFxTRDQ4ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyNV0gPSBTRDQ5IC8qIFxTRDQ5ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyNl0gPSBTRDUxIC8qIFxTRDUxICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyN10gPSBTRDUyIC8q IFxTRDUyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyOF0g PSBTRDUzIC8qIFxTRDUzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgyOV0gPSBTRDU0IC8qIFxTRDU0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgyQV0gPSBTRDU1IC8qIFxTRDU1ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQl0gPSBTRDU2IC8qIFxTRDU2ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQ10gPSBTRDU3IC8qIFxTRDU3ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyRF0gPSBTRDU4IC8q IFxTRDU4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyRV0g PSBTRDU5IC8qIFxTRDU5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgyRl0gPSBTRDYxIC8qIFxTRDYxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgzMF0gPSBTRDYyIC8qIFxTRDYyICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMV0gPSBTRDYzIC8qIFxTRDYzICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMl0gPSBTRDY0IC8qIFxTRDY0ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzM10gPSBTRDY1IC8q IFxTRDY1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzNF0g PSBTRDY2IC8qIFxTRDY2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgzNV0gPSBTRDY3IC8qIFxTRDY3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgzNl0gPSBTRDY4IC8qIFxTRDY4ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzN10gPSBTRDY5IC8qIFxTRDY5ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzOF0gPSBTRDcxIC8qIFxTRDcxICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzOV0gPSBTRDcyIC8q IFxTRDcyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzQV0g PSBTRDczIC8qIFxTRDczICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgzQl0gPSBTRDc0IC8qIFxTRDc0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgzQ10gPSBTRDc1IC8qIFxTRDc1ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRF0gPSBTRDc2IC8qIFxTRDc2ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRV0gPSBTRDc3IC8qIFxTRDc3ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRl0gPSBTRDc4IC8q IFxTRDc4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0MF0g PSBTRDc5IC8qIFxTRDc5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHg0MV0gPSBTRDgxIC8qIFxTRDgxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHg0Ml0gPSBTRDgyIC8qIFxTRDgyICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0M10gPSBTRDgzIC8qIFxTRDgzICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0NF0gPSBTRDg0IC8qIFxTRDg0ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0NV0gPSBTRDg1IC8q IFxTRDg1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0Nl0g PSBTRDg2IC8qIFxTRDg2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHg0N10gPSBTRDg3IC8qIFxTRDg3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHg0OF0gPSBTRDg4IC8qIFxTRDg4ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0OV0gPSBTRDg5IC8qIFxTRDg5ICovCiAgICAgICAg ICAgICAgICBSZXR1cm4gKFdHRFkpIC8qIFxfU0JfLlBDMDAuUlAwMy5QWFNYLldHRFkgKi8K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoRUNLWSwgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4 MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChFQ0tWLCAwLCBTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFQ0tZIFtPbmVdKSBbT25lXSA9 IENFQ1YgLyogXENFQ1YgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoRUNLWSkgLyogXF9T Ql8uUEMwMC5SUDAzLlBYU1guRUNLWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBO YW1lIChQUEFZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MTgpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgMHgxOCwgCiAgICAgICAgICAgICAgICAgICAgMHgy OCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgy OCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgy OCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgy OCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgy OCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgx OCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgy OCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgy OCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgy OCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgy OCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgy OAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2Qg KFBQQUcsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERl cmVmT2YgKFBQQVkgW09uZV0pIFtPbmVdID0gV0FHTSAvKiBcV0FHTSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDJdID0gQUdBMSAvKiBcQUdBMSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDNdID0gQUdBMiAvKiBc QUdBMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDRdID0g QUdBMyAvKiBcQUdBMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkg WzB4MDVdID0gQUdBNCAvKiBcQUdBNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBB WSBbT25lXSkgWzB4MDZdID0gQUdBNSAvKiBcQUdBNSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoUFBBWSBbT25lXSkgWzB4MDddID0gQUdBNiAvKiBcQUdBNiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDhdID0gQUdBNyAvKiBcQUdBNyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDldID0gQUdBOCAvKiBc QUdBOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MEFdID0g QUdBOSAvKiBcQUdBOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkg WzB4MEJdID0gQUdBQSAvKiBcQUdBQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBB WSBbT25lXSkgWzB4MENdID0gQUdBQiAvKiBcQUdBQiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoUFBBWSBbT25lXSkgWzB4MERdID0gQUdCMSAvKiBcQUdCMSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MEVdID0gQUdCMiAvKiBcQUdCMiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MEZdID0gQUdCMyAvKiBc QUdCMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTBdID0g QUdCNCAvKiBcQUdCNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkg WzB4MTFdID0gQUdCNSAvKiBcQUdCNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBB WSBbT25lXSkgWzB4MTJdID0gQUdCNiAvKiBcQUdCNiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoUFBBWSBbT25lXSkgWzB4MTNdID0gQUdCNyAvKiBcQUdCNyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTRdID0gQUdCOCAvKiBcQUdCOCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTVdID0gQUdCOSAvKiBc QUdCOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTZdID0g QUdCQSAvKiBcQUdCQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkg WzB4MTddID0gQUdCQiAvKiBcQUdCQiAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChQUEFZ KSAvKiBcX1NCXy5QQzAwLlJQMDMuUFhTWC5QUEFZICovCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE5hbWUgKFdQRlksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1BGQywgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1BGWSBbT25lXSkg W09uZV0gPSBXUEZBIC8qIFxXUEZBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUEZZ IFtPbmVdKSBbMHgwMl0gPSBXUEZCIC8qIFxXUEZCICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUEZZIFtPbmVdKSBbMHgwM10gPSBcV1BGQwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1BGWSBbT25lXSkgWzB4MDRdID0gV1BGRCAvKiBcV1BGRCAqLwogICAgICAgICAgICAg ICAgUmV0dXJuIChXUEZZKSAvKiBcX1NCXy5QQzAwLlJQMDMuUFhTWC5XUEZZICovCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdUU1ksIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDEzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChXVEFT LCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9m IChXVFNZIFtPbmVdKSBbT25lXSA9IFdUU0UgLyogXFdUU0UgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDAyXSA9IFdUTEUgLyogXFdUTEUgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDAzXSA9IEJMMDEgLyogXEJMMDEg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA0XSA9IEJMMDIg LyogXEJMMDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA1 XSA9IEJMMDMgLyogXEJMMDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09u ZV0pIFsweDA2XSA9IEJMMDQgLyogXEJMMDQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdUU1kgW09uZV0pIFsweDA3XSA9IEJMMDUgLyogXEJMMDUgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA4XSA9IEJMMDYgLyogXEJMMDYgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA5XSA9IEJMMDcgLyogXEJMMDcg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBBXSA9IEJMMDgg LyogXEJMMDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBC XSA9IEJMMDkgLyogXEJMMDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09u ZV0pIFsweDBDXSA9IEJMMTAgLyogXEJMMTAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdUU1kgW09uZV0pIFsweDBEXSA9IEJMMTEgLyogXEJMMTEgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBFXSA9IEJMMTIgLyogXEJMMTIgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBGXSA9IEJMMTMgLyogXEJMMTMg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDEwXSA9IEJMMTQg LyogXEJMMTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDEx XSA9IEJMMTUgLyogXEJMMTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09u ZV0pIFsweDEyXSA9IEJMMTYgLyogXEJMMTYgKi8KICAgICAgICAgICAgICAgIFJldHVybiAo V1RTWSkgLyogXF9TQl8uUEMwMC5SUDAzLlBYU1guV1RTWSAqLwogICAgICAgICAgICB9Cgog ICAgICAgICAgICBOYW1lIChXQUlZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAg ICAgICBNZXRob2QgKFdBSVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdBSVkgW09uZV0pIFtPbmVdID0gV0xCSSAvKiBcV0xCSSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FJWSBbT25lXSkgWzB4MDJdID0gV0hCSSAv KiBcV0hCSSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXQUlZKSAvKiBcX1NCXy5QQzAw LlJQMDMuUFhTWC5XQUlZICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFNB RFgsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAw CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MTIsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkK ICAgICAgICAgICAgTWV0aG9kIChTQURTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBEZXJlZk9mIChTQURYIFtPbmVdKSBbT25lXSA9IEFURFYgLyog XEFURFYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFNBRFggWzB4MDJdKSBbT25lXSA9 IEFURFYgLyogXEFURFYgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoU0FEWCkgLyogXF9T Ql8uUEMwMC5SUDAzLlBYU1guU0FEWCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBO YW1lIChHUENYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChHUEMsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoR1BDWCkgLyogXF9TQl8u UEMwMC5SUDAzLlBYU1guR1BDWCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1l IChHTEFYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAg ICAgIE1ldGhvZCAoR0xBSSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBUjogR0xBSSBtZXRob2QuIENHTFMgPSAi LCBUb0hleFN0cmluZyAoQ0dMUykpKQogICAgICAgICAgICAgICAgRGVyZWZPZiAoR0xBWCBb T25lXSkgW09uZV0gPSBDR0xTIC8qIFxDR0xTICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChHTEFYIFsweDAyXSkgW09uZV0gPSBDR0xTIC8qIFxDR0xTICovCiAgICAgICAgICAgICAg ICBSZXR1cm4gKEdMQVgpIC8qIFxfU0JfLlBDMDAuUlAwMy5QWFNYLkdMQVggKi8KICAgICAg ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKCgoV1dFTiAhPSBaZXJvKSAmJiAoV1dS UCA9PSBTTE9UKSkpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKEZIUkYsIDEsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoR0dPViAo UFJTVCkgIT0gV1BSUCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg REwyMyAoKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIERMMjMoKSBEb25lIikK ICAgICAgICAgICAgICAgICAgICBTR09WIChQUlNULCBXUFJQKQogICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJXV0FOIFBFUlNUOjAgRG9uZSIpCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg QURCRyAoIkFzc3VtZSBXV0FOIERMMjMoKSBpcyBhbHJlYWR5IGRvbmUiKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIFNsZWVwIChUUjJCKQogICAgICAgICAgICAgICAg U0dPViAoV0JSUywgUEJSUykKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFJTVDowIERv bmUiKQogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFplcm8pKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFNsZWVwIChUQlRHKQogICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRCVEcgIiwgVG9EZWNpbWFsU3RyaW5nIChU QlRHKSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcw ID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU1BDTyAo V0NMSywgWmVybykKICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBTQ0xLOjAgRG9u ZSIpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFRCMkYpCiAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEIyRiAiLCBUb0RlY2ltYWxTdHJpbmcgKFRC MkYpKSkKICAgICAgICAgICAgICAgICAgICBTR09WIChXRkNQLCAoflBGQ1AgJiBPbmUpKQog ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBXUjowIERvbmUiKQogICAgICAgICAg ICAgICAgICAgIFNsZWVwIChURkRJKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiU0xQIFRGREkgIiwgVG9EZWNpbWFsU3RyaW5nIChURkRJKSkpCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlVuc3VwcG9ydGVkIEFyZzAgaXMgZGV0ZWN0ZWQuIikK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChT SFJGLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQ U0QwIChTTE9UKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gTVBIWVBHOjAgRG9uZSIp CiAgICAgICAgICAgICAgICBTUENPIChXQ0xLLCBPbmUpCiAgICAgICAgICAgICAgICBBREJH ICgiV1dBTiBTQ0xLOjEgRG9uZSIpCiAgICAgICAgICAgICAgICBTR09WIChXRkNQLCBQRkNQ KQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFdSOjEgRG9uZSIpCiAgICAgICAgICAg ICAgICBTbGVlcCAoVE4yQikKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi U0xQIFROMkIgIiwgVG9EZWNpbWFsU3RyaW5nIChUTjJCKSkpCiAgICAgICAgICAgICAgICBT R09WIChXQlJTLCAoflBCUlMgJiBPbmUpKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4g UlNUOjEgRG9uZSIpCiAgICAgICAgICAgICAgICBTbGVlcCAoVEIyUikKICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRCMlIgIiwgVG9EZWNpbWFsU3RyaW5nIChU QjJSKSkpCiAgICAgICAgICAgICAgICBTR09WIChQUlNULCAofldQUlAgJiBPbmUpKQogICAg ICAgICAgICAgICAgQURCRyAoIldXQU4gUEVSU1Q6MCBEb25lIikKICAgICAgICAgICAgICAg IEwyM0QgKCkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIEwyM0QoKSBEb25lIikKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChET1NWLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAg ICAgICAgICBXaGlsZSAoKChTVklEICE9IFdTSUQpICYmIChMb2NhbDAgPCBXU1RPKSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAg ICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiREVUIFRpbWUgIiwgVG9EZWNpbWFsU3RyaW5nIChM b2NhbDApKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUlNULCAwLCBT ZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIEFEQkcgKCJfUlNUIFdXQU4iKQogICAgICAgICAgICAgICAgSWYgKChXV0VO ID09IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IEFjcXVpcmUgKFdXTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICBBREJHICgi V1dBTiBGTERSIE11dGV4OiBBY3F1aXJlZCBUcnkgRG9uZSIpCiAgICAgICAgICAgICAgICAg ICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBGTERSIikKICAgICAgICAgICAg ICAgICAgICAgICAgRkhSRiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgU0hSRiAo KQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRW5kIFdXQU4gRkxEUiIpCiAgICAg ICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFdXTVQpCiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJXV0FOIEZMRFIgTXV0ZXg6UmVsZWFzZSBEb25lIikKICAgICAgICAgICAg ICAgICAgICAgICAgRE9TViAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBTR09WIChXQlJTLCBQQlJTKQogICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweEM4KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhTWCwgT25lKSAvLyBEZXZp Y2UgQ2hlY2sKICAgICAgICAgICAgICAgICAgICBTR09WIChQUlNULCAofldQUlAgJiBPbmUp KQogICAgICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsICh+UEJSUyAmIE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgU2xlZXAgKDB4QzgpCiAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTEFTWCA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWww ID4gMHgxNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJGTERSIFRPIikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDArKwogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MEEpCiAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJSVlAgRGVsYXkgVGltZSAi LCBUb0RlY2ltYWxTdHJpbmcgKExvY2FsMCkpKQogICAgICAgICAgICAgICAgICAgIE5vdGlm eSAoUFhTWCwgT25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgUG93ZXJSZXNvdXJjZSAoTVJTVCwgMHgwNSwgMHgwMDAw KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlh bGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBBREJHICgiV1dBTiBQUiBfU1RBIikKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9P TiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9uCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFIgX09OIikKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9PRkYsIDAsIFNlcmlhbGl6ZWQpICAv LyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBBREJHICgiV1dBTiBQUiBfT0ZGIikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9SU1QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVz ZXQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1 aXJlIChXV01ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUExE UiBNdXRleDogQWNxdWlyZWQgVHJ5IERvbmUiKQogICAgICAgICAgICAgICAgICAgIElmICgo TG9jYWwwID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoIlN0YXJ0IFdXQU4gUExEUiIpCiAgICAgICAgICAgICAgICAgICAg ICAgIEZIUkYgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgU0hSRiAoKQogICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiRW5kIFdXQU4gUFIgX1JTVCIpCiAgICAgICAgICAg ICAgICAgICAgICAgIFJlbGVhc2UgKFdXTVQpCiAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJXV0FOIFBMRFIgTXV0ZXg6IFJlbGVhc2UgRG9uZSIpCiAgICAgICAgICAgICAgICAg ICAgICAgIERPU1YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmICgoV0lTVCAoKSB8fCAoKFdX RU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xPVCkpKSkKICAgICAgICB7CiAgICAgICAgICAg IE1ldGhvZCAoX1BSUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlI6IFBvd2VyIFJlc291 cmNlIGZvciBSZXNldAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoV0lTVCAo KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChXUlNUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgV1JTVAogICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBJZiAoKChXV0VOICE9IFplcm8pICYmIChXV1JQID09IFNMT1QpKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChNUlNUKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFj a2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTVJTVAogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4g KFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg V1JTVAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFt ZSAoRkRFTCwgWmVybykKICAgICAgICAgICAgTmFtZSAoUERFTCwgWmVybykKICAgICAgICAg ICAgTmFtZSAoVkRFTCwgWmVybykKICAgICAgICAgICAgTWV0aG9kIChJRlVOLCA0LCBTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVy bykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09 IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MUYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g LgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo InZQcm86ICIsIENWUFIpKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChDVlBSIDw8 IFplcm8pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMywgWmVy bywgQ01EVCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIDB4 MDIsIENNRFApCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJDbWRU eXBlID0gIiwgVG9IZXhTdHJpbmcgKENNRFQpKSkKICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIkNtZFBheWxvYWQgPSAiLCBUb0hleFN0cmluZyAoQ01EUCkpKQog ICAgICAgICAgICAgICAgICAgIElmICgoQ01EVCA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlNU WSkgLyogXF9TQl8uUEMwMC5SUDAzLlBYU1guUlNUWSAqLwogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoQ29uZFJlZk9mIChcX1NC LlBDMDAuQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJHZXQgX1BSUiBNb2RlID0g IiwgXl5eQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo Xl5eQ05WVy5SU1RUKSAvKiBcX1NCXy5QQzAwLkNOVlcuUlNUVCAqLwogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKENNRFQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKENN RFAgJiBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSU1RZID0gTG9jYWwwCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoQ01EUCAmIDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPj49IE9uZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRkxSQyA9IExvY2FsMQogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwyID0gKENNRFAgJiAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwyID4+PSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT0ZDID0gTG9jYWwy CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZUlmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5DTlZXLlJTVFQpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlNldCBfUFJSIE1vZGUgPSAiLCBUb0hleFN0cmluZyAoQ01EUCkpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgXl5eQ05WVy5SU1RUID0gQ01EUCAvKiBcX1NCXy5QQzAwLlJQ MDMuUFhTWC5JRlVOLkNNRFAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChDTURUID09IDB4MDMpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5Q QzAwLkNOVlcuUFJSUykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiR2V0IExhc3RfUFJSIHN0YXR1 cyBQUlJTID0gIiwgVG9IZXhTdHJpbmcgKF5eXkNOVlcuUFJSUykpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICheXl5DTlZXLlBSUlMpIC8qIFxfU0JfLlBDMDAuQ05W Vy5QUlJTICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZUlmIChXSVNUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkdldCBMYXN0X1BS UiBzdGF0dXMgRFBSUyA9ICIsIFRvSGV4U3RyaW5nIChEUFJTKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKERQUlMpIC8qIFxfU0JfLlBDMDAuUlAwMy5QWFNYLkRQ UlMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKENSRkkgPT0gT25lKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSAweDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVh dGVXb3JkRmllbGQgKEFyZzMsIFplcm8sIFBSVFQpCiAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChBcmczLCAweDAyLCBQUlREKQogICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiVGltZXJUeXBlID0gIiwgVG9IZXhTdHJpbmcgKFBSVFQpKSkK ICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlRpbWVyRHVyYXRpb24g KG1zKSA9ICIsIFRvRGVjaW1hbFN0cmluZyAoUFJURCkpKQogICAgICAgICAgICAgICAgICAg IElmICgoUFJUVCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgRkRFTCA9IFBSVEQgLyogXF9TQl8uUEMwMC5SUDAzLlBYU1guSUZVTi5Q UlREICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJ ZiAoKFBSVFQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBQREVMID0gUFJURCAvKiBcX1NCXy5QQzAwLlJQMDMuUFhTWC5JRlVOLlBS VEQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlm ICgoUFJUVCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFZERUwgPSBQUlREIC8qIFxfU0JfLlBDMDAuUlAwMy5QWFNYLklGVU4uUFJU RCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVGlt ZXJEdXJhdGlvbiBub3Qgc2V0IikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKElEU00sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI3MjY2MTcyYy0yMjBiLTRi MjktODE0Zi03NWU0ZGQyNmI1ZmQiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChFRlVOLCA0LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eEZGLCAweDFGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4K ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IEFDU0QgLyogXEFDU0QgKi8KICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTG9jYWwwID0gSTVCUyAvKiBcSTVCUyAqLwogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBVSEJTIC8qIFxVSEJTICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChM b2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IDB4MDYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IEFYTVUgLyogXEFYTVUgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPDw9IE9uZQog ICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSBBWFNVIC8qIFxBWFNVICovCiAgICAgICAg ICAgICAgICAgICAgTG9jYWwxID0gQVhNUiAvKiBcQVhNUiAqLwogICAgICAgICAgICAgICAg ICAgIExvY2FsMSA8PD0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIHw9IEFYU1Ig LyogXEFYU1IgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPDw9IDB4MDIKICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgfD0gTG9jYWwxCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDMsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDUpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0ZVQykgLyogXFdGVUMgKi8KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNykpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVTkk0KSAvKiBcVU5J NCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAw eDA4KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdG SUMpIC8qIFxXRklDICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg KChBcmcyID09IDB4MDkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoV0ZCUykgLyogXFdGQlMgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gMHgwQSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChXRURUKSAvKiBcV0VEVCAqLwogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBCKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKENJUk0gPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSAweDBDKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFdGN0MpIC8qIFxXRjdDICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KEVEU00sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm ICgoQXJnMCA9PSBUb1VVSUQgKCJmMjEyMDJiZi04Zjc4LTRkYzYtYTViMy0xZjczOGUyODVh ZGUiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf RFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoRURTTSAoQXJnMCkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEVGVU4gKEFyZzAs IEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKElEU00gKEFyZzApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChJRlVOIChBcmcwLCBBcmcxLCBBcmcyLCBBcmcz KSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKCgoV1dFTiAhPSBaZXJvKSAmJiAoV1dSUCA9PSBTTE9UKSkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImJh ZDAxYjc1LTIyYTgtNGY0OC04NzkyLWJkZGU5NDY3NzQ3ZCIpIC8qIFVua25vd24gVVVJRCAq LykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSl7fQogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpe30KICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFdSVE8gPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiV1dBTiBQb3dlciBfRFNNIEQwL0wxLjIiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoV1JUTyA9PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNNIEQzL0wxLjIiKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlm ICgoV1JUTyA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNNIEQzL0wy IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNNIERpc2FibGVkIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFdSVE8pIC8qIFxXUlRPICovCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIC4KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICB9 CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAwLlJQMDQuUFhTWCkKICAgIHsKICAgICAgICBP cGVyYXRpb25SZWdpb24gKFJQWFgsIFN5c3RlbU1lbW9yeSwgR01JTyAoUEJOVSwgXl9BRFIg KCksIF9BRFIpLCAweDMwKQogICAgICAgIEZpZWxkIChSUFhYLCBBbnlBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBWRElELCAgIDMyLCAKICAgICAgICAg ICAgT2Zmc2V0ICgweDJDKSwgCiAgICAgICAgICAgIFNWSUQsICAgMTYKICAgICAgICB9Cgog ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoRkxEUiwgU3lzdGVtTWVtb3J5LCAoR01JTyAoUEJO VSwgXl9BRFIgKCksIF9BRFIpICsgV0RDTyksIDB4MDYpCiAgICAgICAgRmllbGQgKEZMRFIs IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBEQ0FQ LCAgIDMyLCAKICAgICAgICAgICAgRENUUiwgICAxNgogICAgICAgIH0KCiAgICAgICAgT3Bl cmF0aW9uUmVnaW9uIChWU0VDLCBTeXN0ZW1NZW1vcnksIChHTUlPIChQQk5VLCBeX0FEUiAo KSwgX0FEUikgKyBXVkhPKSwgMHgxMCkKICAgICAgICBGaWVsZCAoVlNFQywgQW55QWNjLCBO b0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgweDBDKSwg CiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIEJUSUUsICAgMSwgCiAgICAg ICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAg ICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAs ICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgwRCksIAogICAgICAgICAgICBQRFJDLCAg IDEKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUEJSUiwgU3lzdGVtTWVt b3J5LCBHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUiksIDB4MDJCOCkKICAgICAgICBGaWVs ZCAoUEJSUiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAg ICAgT2Zmc2V0ICgweDE4QyksIAogICAgICAgICAgICBNU05MLCAgIDMyLCAKICAgICAgICAg ICAgT2Zmc2V0ICgweDE5OCksIAogICAgICAgICAgICBMMUMxLCAgIDMyLCAKICAgICAgICAg ICAgTDFDMiwgICAzMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgyQjQpLCAKICAgICAgICAg ICAgUFRNUiwgICAzMgogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChXSVNULCAwLCBTZXJp YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVkRJRCkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChWRElEKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI1MjY4MDg2 KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MjcxQjgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgQ2FzZSAoMHgyNzIzODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICBDYXNlICgweDI3MjU4MDg2KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MjcyQjgwODYpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTVkRDID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQogICAg ICAgIH0KCiAgICAgICAgTWV0aG9kIChXV1NULCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsK ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVkRJRCkpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChWRElEKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDczNjA4MDg2KQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4NzU2MDgwODYpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHg0RDc1 MTRDMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBD YXNlICgweDA4MDAxNEMzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CiAgICAgICAg fQoKICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFJT VFksIFplcm8pCiAgICAgICAgICAgIE5hbWUgKEZMUkMsIFplcm8pCiAgICAgICAgICAgIE5h bWUgKEJPRkMsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKERQUlMsIFplcm8pCiAgICAgICAg ICAgIFBvd2VyUmVzb3VyY2UgKFdSU1QsIDB4MDUsIDB4MDAwMCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU QTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAo IldpZmkgUFIgX1NUQSIpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT04sIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJXaWZpIFBSIF9PTiIpCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09GRjog UG93ZXIgT2ZmCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAo IldpZmkgUFIgX09GRiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfUlNULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChSU1RZID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgi V2lmaSBQcm9kdWN0IFJTVCIpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEFj cXVpcmUgKENOTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2Nh bDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoRkxSQyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IERDVFIg LyogXF9TQl8uUEMwMC5SUDA0LlBYU1guRENUUiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMCB8PSAweDgwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBEQ1RSID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKEZERUwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgRFBSUyA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChCT0ZDID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCUk1UID09IFplcm8pKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQlRSSyAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoV1ZITyAhPSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJUSUUgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoUkRM WSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQRFJDID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAo VkRFTCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNHT1YgKFdMUlQsIFplcm8pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoUERFTCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNHT1YgKFdMUlQsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQk9GQyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQlJNVCA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJUUksgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoV1ZITyAhPSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJUSUUgPSBPbmUKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChS RExZKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERQUlMgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxl YXNlIChDTk1UKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIENvcmUgUlNUIikKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChEQ0FQICYgMHgxMDAwMDAwMCkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IERDVFIg LyogXF9TQl8uUEMwMC5SUDA0LlBYU1guRENUUiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwwIHw9IDB4ODAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRENU UiA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBEUFJTID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBTbGVlcCAoMHgwN0QwKQogICAgICAgICAgICAgICAgICAgIE1TTkwgPSBEUjAx IC8qIFxEUjAxICovCiAgICAgICAgICAgICAgICAgICAgTDFDMSA9IERSMDIgLyogXERSMDIg Ki8KICAgICAgICAgICAgICAgICAgICBMMUMyID0gRFIwMyAvKiBcRFIwMyAqLwogICAgICAg ICAgICAgICAgICAgIFBUTVIgPSBEUjA0IC8qIFxEUjA0ICovCiAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MDdEMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTmFtZSAoU1BMWCwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAw MDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9k IChTUExDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBE ZXJlZk9mIChTUExYIFtPbmVdKSBbWmVyb10gPSBET00xIC8qIFxET00xICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChTUExYIFtPbmVdKSBbT25lXSA9IExJTTEgLyogXExJTTEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFsweDAyXSA9IFRJTTEgLyog XFRJTTEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoU1BMWCkgLyogXF9TQl8uUEMwMC5S UDA0LlBYU1guU1BMWCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXQU5Y LCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAw MDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV0FORCwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBb T25lXSkgW1plcm9dID0gWmVybwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBbT25l XSkgW09uZV0gPSBUUkQwIC8qIFxUUkQwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX QU5YIFtPbmVdKSBbMHgwMl0gPSBUUkwwIC8qIFxUUkwwICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXQU5YIFsweDAyXSkgW1plcm9dID0gT25lCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXQU5YIFsweDAyXSkgW09uZV0gPSBUUkQxIC8qIFxUUkQxICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXQU5YIFsweDAyXSkgWzB4MDJdID0gVFJMMSAvKiBcVFJMMSAqLwog ICAgICAgICAgICAgICAgUmV0dXJuIChXQU5YKSAvKiBcX1NCXy5QQzAwLlJQMDQuUFhTWC5X QU5YICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdSRFgsIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChXUkRELCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRY IFtPbmVdKSBbWmVyb10gPSBXRE0xIC8qIFxXRE0xICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUkRYIFtPbmVdKSBbT25lXSA9IENJRDEgLyogXENJRDEgKi8KICAgICAgICAgICAg ICAgIFJldHVybiAoV1JEWCkgLyogXF9TQl8uUEMwMC5SUDA0LlBYU1guV1JEWCAqLwogICAg ICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXUkRZLCBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MkUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9KQogICAgICAgICAgICBNZXRob2QgKFdSRFMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFtPbmVdID0gU1RY RSAvKiBcU1RYRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4 MDJdID0gU1QxMCAvKiBcU1QxMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBb T25lXSkgWzB4MDNdID0gU1QxMSAvKiBcU1QxMSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1JEWSBbT25lXSkgWzB4MDRdID0gU1QxMiAvKiBcU1QxMiAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDVdID0gU1QxMyAvKiBcU1QxMyAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDZdID0gU1QxNCAvKiBcU1Qx NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDddID0gU1Qx NSAvKiBcU1QxNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4 MDhdID0gU1QxNiAvKiBcU1QxNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBb T25lXSkgWzB4MDldID0gU1QxNyAvKiBcU1QxNyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1JEWSBbT25lXSkgWzB4MEFdID0gU1QxOCAvKiBcU1QxOCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MEJdID0gU1QxOSAvKiBcU1QxOSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MENdID0gU1Q1MCAvKiBcU1Q1 MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MERdID0gU1Q1 MSAvKiBcU1Q1MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4 MEVdID0gU1Q1MiAvKiBcU1Q1MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBb T25lXSkgWzB4MEZdID0gU1Q1MyAvKiBcU1Q1MyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1JEWSBbT25lXSkgWzB4MTBdID0gU1Q1NCAvKiBcU1Q1NCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTFdID0gU1Q1NSAvKiBcU1Q1NSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTJdID0gU1Q1NiAvKiBcU1Q1 NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTNdID0gU1Q1 NyAvKiBcU1Q1NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4 MTRdID0gU1Q1OCAvKiBcU1Q1OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBb T25lXSkgWzB4MTVdID0gU1Q1OSAvKiBcU1Q1OSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1JEWSBbT25lXSkgWzB4MTZdID0gU1Q1QSAvKiBcU1Q1QSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTddID0gU1Q1QiAvKiBcU1Q1QiAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MThdID0gQ0QxMCAvKiBcQ0Qx MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTldID0gQ0Qx MSAvKiBcQ0QxMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4 MUFdID0gQ0QxMiAvKiBcQ0QxMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBb T25lXSkgWzB4MUJdID0gQ0QxMyAvKiBcQ0QxMyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1JEWSBbT25lXSkgWzB4MUNdID0gQ0QxNCAvKiBcQ0QxNCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MURdID0gQ0QxNSAvKiBcQ0QxNSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUVdID0gQ0QxNiAvKiBcQ0Qx NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUZdID0gQ0Qx NyAvKiBcQ0QxNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4 MjBdID0gQ0QxOCAvKiBcQ0QxOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBb T25lXSkgWzB4MjFdID0gQ0QxOSAvKiBcQ0QxOSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1JEWSBbT25lXSkgWzB4MjJdID0gQ0QxQSAvKiBcQ0QxQSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjNdID0gQ0QyMCAvKiBcQ0QyMCAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjRdID0gQ0QyMSAvKiBcQ0Qy MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjVdID0gQ0Qy MiAvKiBcQ0QyMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4 MjZdID0gQ0QyMyAvKiBcQ0QyMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBb T25lXSkgWzB4MjddID0gQ0QyNCAvKiBcQ0QyNCAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1JEWSBbT25lXSkgWzB4MjhdID0gQ0QyNSAvKiBcQ0QyNSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjldID0gQ0QyNiAvKiBcQ0QyNiAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MkFdID0gQ0QyNyAvKiBcQ0Qy NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MkJdID0gQ0Qy OCAvKiBcQ0QyOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4 MkNdID0gQ0QyOSAvKiBcQ0QyOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBb T25lXSkgWzB4MkRdID0gQ0QyQSAvKiBcQ0QyQSAqLwogICAgICAgICAgICAgICAgUmV0dXJu IChXUkRZKSAvKiBcX1NCXy5QQzAwLlJQMDQuUFhTWC5XUkRZICovCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE5hbWUgKEVXUlksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHg4NykK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoRVdSRCwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgW09uZV0gPSBTVERFIC8qIFxTVERFICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgwMl0gPSBTVFJTIC8qIFxTVFJTICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwM10gPSBTVDIwIC8qIFxTVDIwICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwNF0gPSBTVDIxIC8qIFxTVDIx ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwNV0gPSBTVDIy IC8qIFxTVDIyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgw Nl0gPSBTVDIzIC8qIFxTVDIzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgwN10gPSBTVDI0IC8qIFxTVDI0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgwOF0gPSBTVDI1IC8qIFxTVDI1ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwOV0gPSBTVDI2IC8qIFxTVDI2ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwQV0gPSBTVDI3IC8qIFxTVDI3 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwQl0gPSBTVDI4 IC8qIFxTVDI4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgw Q10gPSBTVDI5IC8qIFxTVDI5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgwRF0gPSBTVDYwIC8qIFxTVDYwICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgwRV0gPSBTVDYxIC8qIFxTVDYxICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwRl0gPSBTVDYyIC8qIFxTVDYyICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxMF0gPSBTVDYzIC8qIFxTVDYz ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxMV0gPSBTVDY0 IC8qIFxTVDY0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgx Ml0gPSBTVDY1IC8qIFxTVDY1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgxM10gPSBTVDY2IC8qIFxTVDY2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgxNF0gPSBTVDY3IC8qIFxTVDY3ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxNV0gPSBTVDY4IC8qIFxTVDY4ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxNl0gPSBTVDY5IC8qIFxTVDY5 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxN10gPSBTVDZB IC8qIFxTVDZBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgx OF0gPSBTVDZCIC8qIFxTVDZCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgxOV0gPSBTVDMwIC8qIFxTVDMwICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgxQV0gPSBTVDMxIC8qIFxTVDMxICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxQl0gPSBTVDMyIC8qIFxTVDMyICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxQ10gPSBTVDMzIC8qIFxTVDMz ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxRF0gPSBTVDM0 IC8qIFxTVDM0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgx RV0gPSBTVDM1IC8qIFxTVDM1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgxRl0gPSBTVDM2IC8qIFxTVDM2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgyMF0gPSBTVDM3IC8qIFxTVDM3ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyMV0gPSBTVDM4IC8qIFxTVDM4ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyMl0gPSBTVDM5IC8qIFxTVDM5 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyM10gPSBTVDcw IC8qIFxTVDcwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgy NF0gPSBTVDcxIC8qIFxTVDcxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgyNV0gPSBTVDcyIC8qIFxTVDcyICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgyNl0gPSBTVDczIC8qIFxTVDczICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyN10gPSBTVDc0IC8qIFxTVDc0ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyOF0gPSBTVDc1IC8qIFxTVDc1 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyOV0gPSBTVDc2 IC8qIFxTVDc2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgy QV0gPSBTVDc3IC8qIFxTVDc3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgyQl0gPSBTVDc4IC8qIFxTVDc4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgyQ10gPSBTVDc5IC8qIFxTVDc5ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRF0gPSBTVDdBIC8qIFxTVDdBICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRV0gPSBTVDdCIC8qIFxTVDdC ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRl0gPSBTVDQw IC8qIFxTVDQwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgz MF0gPSBTVDQxIC8qIFxTVDQxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgzMV0gPSBTVDQyIC8qIFxTVDQyICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgzMl0gPSBTVDQzIC8qIFxTVDQzICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzM10gPSBTVDQ0IC8qIFxTVDQ0ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzNF0gPSBTVDQ1IC8qIFxTVDQ1 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzNV0gPSBTVDQ2 IC8qIFxTVDQ2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgz Nl0gPSBTVDQ3IC8qIFxTVDQ3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgzN10gPSBTVDQ4IC8qIFxTVDQ4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgzOF0gPSBTVDQ5IC8qIFxTVDQ5ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzOV0gPSBTVDgwIC8qIFxTVDgwICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzQV0gPSBTVDgxIC8qIFxTVDgx ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzQl0gPSBTVDgy IC8qIFxTVDgyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgz Q10gPSBTVDgzIC8qIFxTVDgzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgzRF0gPSBTVDg0IC8qIFxTVDg0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgzRV0gPSBTVDg1IC8qIFxTVDg1ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzRl0gPSBTVDg2IC8qIFxTVDg2ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0MF0gPSBTVDg3IC8qIFxTVDg3 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0MV0gPSBTVDg4 IC8qIFxTVDg4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0 Ml0gPSBTVDg5IC8qIFxTVDg5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg0M10gPSBTVDhBIC8qIFxTVDhBICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg0NF0gPSBTVDhCIC8qIFxTVDhCICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0NV0gPSBDRDMwIC8qIFxDRDMwICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Nl0gPSBDRDMxIC8qIFxDRDMx ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0N10gPSBDRDMy IC8qIFxDRDMyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0 OF0gPSBDRDMzIC8qIFxDRDMzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg0OV0gPSBDRDM0IC8qIFxDRDM0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg0QV0gPSBDRDM1IC8qIFxDRDM1ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Ql0gPSBDRDM2IC8qIFxDRDM2ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Q10gPSBDRDM3IC8qIFxDRDM3 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0RF0gPSBDRDM4 IC8qIFxDRDM4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0 RV0gPSBDRDM5IC8qIFxDRDM5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg0Rl0gPSBDRDNBIC8qIFxDRDNBICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg1MF0gPSBDRDNCIC8qIFxDRDNCICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1MV0gPSBDRDNDIC8qIFxDRDNDICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Ml0gPSBDRDNEIC8qIFxDRDNE ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1M10gPSBDRDNF IC8qIFxDRDNFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1 NF0gPSBDRDNGIC8qIFxDRDNGICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg1NV0gPSBDRDQwIC8qIFxDRDQwICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg1Nl0gPSBDRDQxIC8qIFxDRDQxICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1N10gPSBDRDQyIC8qIFxDRDQyICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1OF0gPSBDRDQzIC8qIFxDRDQz ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1OV0gPSBDRDQ0 IC8qIFxDRDQ0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1 QV0gPSBDRDQ1IC8qIFxDRDQ1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg1Ql0gPSBDRDQ2IC8qIFxDRDQ2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg1Q10gPSBDRDQ3IC8qIFxDRDQ3ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1RF0gPSBDRDQ4IC8qIFxDRDQ4ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1RV0gPSBDRDQ5IC8qIFxDRDQ5 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Rl0gPSBDRDRB IC8qIFxDRDRBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2 MF0gPSBDRDRCIC8qIFxDRDRCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg2MV0gPSBDRDRDIC8qIFxDRDRDICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg2Ml0gPSBDRDREIC8qIFxDRDREICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2M10gPSBDRDRFIC8qIFxDRDRFICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2NF0gPSBDRDRGIC8qIFxDRDRG ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2NV0gPSBDRDUw IC8qIFxDRDUwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2 Nl0gPSBDRDUxIC8qIFxDRDUxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg2N10gPSBDRDUyIC8qIFxDRDUyICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg2OF0gPSBDRDUzIC8qIFxDRDUzICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2OV0gPSBDRDU0IC8qIFxDRDU0ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2QV0gPSBDRDU1IC8qIFxDRDU1 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2Ql0gPSBDRDU2 IC8qIFxDRDU2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2 Q10gPSBDRDU3IC8qIFxDRDU3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg2RF0gPSBDRDU4IC8qIFxDRDU4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg2RV0gPSBDRDU5IC8qIFxDRDU5ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2Rl0gPSBDRDVBIC8qIFxDRDVBICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3MF0gPSBDRDVCIC8qIFxDRDVC ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3MV0gPSBDRDVD IC8qIFxDRDVDICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3 Ml0gPSBDRDVEIC8qIFxDRDVEICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg3M10gPSBDRDVFIC8qIFxDRDVFICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg3NF0gPSBDRDVGIC8qIFxDRDVGICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3NV0gPSBDRDYwIC8qIFxDRDYwICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Nl0gPSBDRDYxIC8qIFxDRDYx ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3N10gPSBDRDYy IC8qIFxDRDYyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3 OF0gPSBDRDYzIC8qIFxDRDYzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg3OV0gPSBDRDY0IC8qIFxDRDY0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg3QV0gPSBDRDY1IC8qIFxDRDY1ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Ql0gPSBDRDY2IC8qIFxDRDY2ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Q10gPSBDRDY3IC8qIFxDRDY3 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3RF0gPSBDRDY4 IC8qIFxDRDY4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3 RV0gPSBDRDY5IC8qIFxDRDY5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg3Rl0gPSBDRDZBIC8qIFxDRDZBICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg4MF0gPSBDRDZCIC8qIFxDRDZCICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4MV0gPSBDRDZDIC8qIFxDRDZDICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4Ml0gPSBDRDZEIC8qIFxDRDZE ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4M10gPSBDRDZF IC8qIFxDRDZFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4 NF0gPSBDRDZGIC8qIFxDRDZGICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg4NV0gPSBDRDcwIC8qIFxDRDcwICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg4Nl0gPSBDRDcxIC8qIFxDRDcxICovCiAgICAgICAgICAgICAg ICBSZXR1cm4gKEVXUlkpIC8qIFxfU0JfLlBDMDAuUlAwNC5QWFNYLkVXUlkgKi8KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV0dEWSwgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDRBKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAog ICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fSkKICAgICAgICAgICAgTWV0aG9kIChXR0RTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbT25lXSA9IFNER04g LyogXFNER04gKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDAy XSA9IFNEMTEgLyogXFNEMTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDAzXSA9IFNEMTIgLyogXFNEMTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDA0XSA9IFNEMTMgLyogXFNEMTMgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA1XSA9IFNEMTQgLyogXFNEMTQgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA2XSA9IFNEMTUgLyogXFNEMTUg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA3XSA9IFNEMTYg LyogXFNEMTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA4 XSA9IFNEMTcgLyogXFNEMTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDA5XSA9IFNEMTggLyogXFNEMTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDBBXSA9IFNEMTkgLyogXFNEMTkgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBCXSA9IFNEMjEgLyogXFNEMjEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBDXSA9IFNEMjIgLyogXFNEMjIg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBEXSA9IFNEMjMg LyogXFNEMjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBF XSA9IFNEMjQgLyogXFNEMjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDBGXSA9IFNEMjUgLyogXFNEMjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDEwXSA9IFNEMjYgLyogXFNEMjYgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDExXSA9IFNEMjcgLyogXFNEMjcgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDEyXSA9IFNEMjggLyogXFNEMjgg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDEzXSA9IFNEMjkg LyogXFNEMjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE0 XSA9IFNEMzEgLyogXFNEMzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDE1XSA9IFNEMzIgLyogXFNEMzIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDE2XSA9IFNEMzMgLyogXFNEMzMgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE3XSA9IFNEMzQgLyogXFNEMzQgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE4XSA9IFNEMzUgLyogXFNEMzUg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE5XSA9IFNEMzYg LyogXFNEMzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFB XSA9IFNEMzcgLyogXFNEMzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDFCXSA9IFNEMzggLyogXFNEMzggKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDFDXSA9IFNEMzkgLyogXFNEMzkgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFEXSA9IFNENDEgLyogXFNENDEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFFXSA9IFNENDIgLyogXFNENDIg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFGXSA9IFNENDMg LyogXFNENDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDIw XSA9IFNENDQgLyogXFNENDQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDIxXSA9IFNENDUgLyogXFNENDUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDIyXSA9IFNENDYgLyogXFNENDYgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDIzXSA9IFNENDcgLyogXFNENDcgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI0XSA9IFNENDggLyogXFNENDgg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI1XSA9IFNENDkg LyogXFNENDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI2 XSA9IFNENTEgLyogXFNENTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDI3XSA9IFNENTIgLyogXFNENTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDI4XSA9IFNENTMgLyogXFNENTMgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI5XSA9IFNENTQgLyogXFNENTQgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJBXSA9IFNENTUgLyogXFNENTUg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJCXSA9IFNENTYg LyogXFNENTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJD XSA9IFNENTcgLyogXFNENTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDJEXSA9IFNENTggLyogXFNENTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDJFXSA9IFNENTkgLyogXFNENTkgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJGXSA9IFNENjEgLyogXFNENjEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDMwXSA9IFNENjIgLyogXFNENjIg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDMxXSA9IFNENjMg LyogXFNENjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDMy XSA9IFNENjQgLyogXFNENjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDMzXSA9IFNENjUgLyogXFNENjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDM0XSA9IFNENjYgLyogXFNENjYgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM1XSA9IFNENjcgLyogXFNENjcgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM2XSA9IFNENjggLyogXFNENjgg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM3XSA9IFNENjkg LyogXFNENjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM4 XSA9IFNENzEgLyogXFNENzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDM5XSA9IFNENzIgLyogXFNENzIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDNBXSA9IFNENzMgLyogXFNENzMgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNCXSA9IFNENzQgLyogXFNENzQgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNDXSA9IFNENzUgLyogXFNENzUg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNEXSA9IFNENzYg LyogXFNENzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNF XSA9IFNENzcgLyogXFNENzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDNGXSA9IFNENzggLyogXFNENzggKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDQwXSA9IFNENzkgLyogXFNENzkgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQxXSA9IFNEODEgLyogXFNEODEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQyXSA9IFNEODIgLyogXFNEODIg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQzXSA9IFNEODMg LyogXFNEODMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ0 XSA9IFNEODQgLyogXFNEODQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDQ1XSA9IFNEODUgLyogXFNEODUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDQ2XSA9IFNEODYgLyogXFNEODYgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ3XSA9IFNEODcgLyogXFNEODcgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ4XSA9IFNEODggLyogXFNEODgg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ5XSA9IFNEODkg LyogXFNEODkgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoV0dEWSkgLyogXF9TQl8uUEMw MC5SUDA0LlBYU1guV0dEWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChF Q0tZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKEVDS1Ys IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVDS1kgW09uZV0pIFtPbmVdID0gQ0VDViAvKiBcQ0VDViAqLwogICAgICAgICAgICAgICAg UmV0dXJuIChFQ0tZKSAvKiBcX1NCXy5QQzAwLlJQMDQuUFhTWC5FQ0tZICovCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFBQQVksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgUGFja2FnZSAo MHgxOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAweDE4LCAKICAg ICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAg ICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAg ICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAg ICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAg ICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAg ICAgICAgICAgICAgICAgICAweDE4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAg ICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAg ICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAg ICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAg ICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAg ICAgICAgICAgICAgICAgICAweDI4CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0p CiAgICAgICAgICAgIE1ldGhvZCAoUFBBRywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgW09uZV0gPSBXQUdNIC8q IFxXQUdNICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwMl0g PSBBR0ExIC8qIFxBR0ExICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVd KSBbMHgwM10gPSBBR0EyIC8qIFxBR0EyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQ UEFZIFtPbmVdKSBbMHgwNF0gPSBBR0EzIC8qIFxBR0EzICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwNV0gPSBBR0E0IC8qIFxBR0E0ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwNl0gPSBBR0E1IC8qIFxBR0E1ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwN10gPSBBR0E2IC8q IFxBR0E2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwOF0g PSBBR0E3IC8qIFxBR0E3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVd KSBbMHgwOV0gPSBBR0E4IC8qIFxBR0E4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQ UEFZIFtPbmVdKSBbMHgwQV0gPSBBR0E5IC8qIFxBR0E5ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwQl0gPSBBR0FBIC8qIFxBR0FBICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwQ10gPSBBR0FCIC8qIFxBR0FCICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwRF0gPSBBR0IxIC8q IFxBR0IxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwRV0g PSBBR0IyIC8qIFxBR0IyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVd KSBbMHgwRl0gPSBBR0IzIC8qIFxBR0IzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQ UEFZIFtPbmVdKSBbMHgxMF0gPSBBR0I0IC8qIFxBR0I0ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxMV0gPSBBR0I1IC8qIFxBR0I1ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxMl0gPSBBR0I2IC8qIFxBR0I2ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxM10gPSBBR0I3IC8q IFxBR0I3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxNF0g PSBBR0I4IC8qIFxBR0I4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVd KSBbMHgxNV0gPSBBR0I5IC8qIFxBR0I5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQ UEFZIFtPbmVdKSBbMHgxNl0gPSBBR0JBIC8qIFxBR0JBICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxN10gPSBBR0JCIC8qIFxBR0JCICovCiAgICAgICAg ICAgICAgICBSZXR1cm4gKFBQQVkpIC8qIFxfU0JfLlBDMDAuUlAwNC5QWFNYLlBQQVkgKi8K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV1BGWSwgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4 MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9k IChXUEZDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUEZZIFtPbmVdKSBbT25lXSA9IFdQRkEgLyogXFdQRkEgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFsweDAyXSA9IFdQRkIgLyogXFdQRkIgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFsweDAzXSA9IFxXUEZDCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbMHgwNF0gPSBXUEZEIC8qIFxX UEZEICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdQRlkpIC8qIFxfU0JfLlBDMDAuUlAw NC5QWFNYLldQRlkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV1RTWSwg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT25lLCAKICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MTMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAg ICAgICAgICBNZXRob2QgKFdUQVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFtPbmVdID0gV1RTRSAvKiBcV1RT RSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDJdID0gV1RM RSAvKiBcV1RMRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4 MDNdID0gQkwwMSAvKiBcQkwwMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBb T25lXSkgWzB4MDRdID0gQkwwMiAvKiBcQkwwMiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1RTWSBbT25lXSkgWzB4MDVdID0gQkwwMyAvKiBcQkwwMyAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDZdID0gQkwwNCAvKiBcQkwwNCAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDddID0gQkwwNSAvKiBcQkww NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDhdID0gQkww NiAvKiBcQkwwNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4 MDldID0gQkwwNyAvKiBcQkwwNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBb T25lXSkgWzB4MEFdID0gQkwwOCAvKiBcQkwwOCAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1RTWSBbT25lXSkgWzB4MEJdID0gQkwwOSAvKiBcQkwwOSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MENdID0gQkwxMCAvKiBcQkwxMCAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MERdID0gQkwxMSAvKiBcQkwx MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MEVdID0gQkwx MiAvKiBcQkwxMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4 MEZdID0gQkwxMyAvKiBcQkwxMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBb T25lXSkgWzB4MTBdID0gQkwxNCAvKiBcQkwxNCAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1RTWSBbT25lXSkgWzB4MTFdID0gQkwxNSAvKiBcQkwxNSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MTJdID0gQkwxNiAvKiBcQkwxNiAqLwogICAg ICAgICAgICAgICAgUmV0dXJuIChXVFNZKSAvKiBcX1NCXy5QQzAwLlJQMDQuUFhTWC5XVFNZ ICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdBSVksIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAweDA3LCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV0FJUywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FJWSBbT25lXSkgW09u ZV0gPSBXTEJJIC8qIFxXTEJJICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXQUlZIFtP bmVdKSBbMHgwMl0gPSBXSEJJIC8qIFxXSEJJICovCiAgICAgICAgICAgICAgICBSZXR1cm4g KFdBSVkpIC8qIFxfU0JfLlBDMDAuUlAwNC5QWFNYLldBSVkgKi8KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTmFtZSAoU0FEWCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFNBRFMsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFNBRFggW09u ZV0pIFtPbmVdID0gQVREViAvKiBcQVREViAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo U0FEWCBbMHgwMl0pIFtPbmVdID0gQVREViAvKiBcQVREViAqLwogICAgICAgICAgICAgICAg UmV0dXJuIChTQURYKSAvKiBcX1NCXy5QQzAwLlJQMDQuUFhTWC5TQURYICovCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEdQQ1gsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2Qg KEdQQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0 dXJuIChHUENYKSAvKiBcX1NCXy5QQzAwLlJQMDQuUFhTWC5HUENYICovCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE5hbWUgKEdMQVgsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IDB4MTIsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChHTEFJLCAwLCBTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkFSOiBH TEFJIG1ldGhvZC4gQ0dMUyA9ICIsIFRvSGV4U3RyaW5nIChDR0xTKSkpCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChHTEFYIFtPbmVdKSBbT25lXSA9IENHTFMgLyogXENHTFMgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEdMQVggWzB4MDJdKSBbT25lXSA9IENHTFMgLyogXENH TFMgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoR0xBWCkgLyogXF9TQl8uUEMwMC5SUDA0 LlBYU1guR0xBWCAqLwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKChX V0VOICE9IFplcm8pICYmIChXV1JQID09IFNMT1QpKSkKICAgICAgICB7CiAgICAgICAgICAg IE1ldGhvZCAoRkhSRiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSWYgKChHR09WIChQUlNUKSAhPSBXUFJQKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBETDIzICgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAo IldXQU4gREwyMygpIERvbmUiKQogICAgICAgICAgICAgICAgICAgIFNHT1YgKFBSU1QsIFdQ UlApCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUEVSU1Q6MCBEb25lIikKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHICgiQXNzdW1lIFdXQU4gREwyMygpIGlzIGFscmVh ZHkgZG9uZSIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU2xlZXAgKFRS MkIpCiAgICAgICAgICAgICAgICBTR09WIChXQlJTLCBQQlJTKQogICAgICAgICAgICAgICAg QURCRyAoIldXQU4gUlNUOjAgRG9uZSIpCiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0g WmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFRC VEcpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEJURyAi LCBUb0RlY2ltYWxTdHJpbmcgKFRCVEcpKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBTUENPIChXQ0xLLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIEFE QkcgKCJXV0FOIFNDTEs6MCBEb25lIikKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoVEIy RikKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlNMUCBUQjJGICIs IFRvRGVjaW1hbFN0cmluZyAoVEIyRikpKQogICAgICAgICAgICAgICAgICAgIFNHT1YgKFdG Q1AsICh+UEZDUCAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFdS OjAgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFRGREkpCiAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEZESSAiLCBUb0RlY2ltYWxTdHJp bmcgKFRGREkpKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiVW5zdXBwb3J0ZWQg QXJnMCBpcyBkZXRlY3RlZC4iKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKFNIUkYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFBTRDAgKFNMT1QpCiAgICAgICAgICAgICAgICBBREJHICgi V1dBTiBNUEhZUEc6MCBEb25lIikKICAgICAgICAgICAgICAgIFNQQ08gKFdDTEssIE9uZSkK ICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFNDTEs6MSBEb25lIikKICAgICAgICAgICAg ICAgIFNHT1YgKFdGQ1AsIFBGQ1ApCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQV1I6 MSBEb25lIikKICAgICAgICAgICAgICAgIFNsZWVwIChUTjJCKQogICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVE4yQiAiLCBUb0RlY2ltYWxTdHJpbmcgKFROMkIp KSkKICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsICh+UEJSUyAmIE9uZSkpCiAgICAgICAg ICAgICAgICBBREJHICgiV1dBTiBSU1Q6MSBEb25lIikKICAgICAgICAgICAgICAgIFNsZWVw IChUQjJSKQogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEIyUiAi LCBUb0RlY2ltYWxTdHJpbmcgKFRCMlIpKSkKICAgICAgICAgICAgICAgIFNHT1YgKFBSU1Qs ICh+V1BSUCAmIE9uZSkpCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQRVJTVDowIERv bmUiKQogICAgICAgICAgICAgICAgTDIzRCAoKQogICAgICAgICAgICAgICAgQURCRyAoIldX QU4gTDIzRCgpIERvbmUiKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKERP U1YsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExv Y2FsMCA9IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlICgoKFNWSUQgIT0gV1NJRCkgJiYg KExvY2FsMCA8IFdTVE8pKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJERVQgVGltZSAi LCBUb0RlY2ltYWxTdHJpbmcgKExvY2FsMCkpKQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9SU1QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVzZXQK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoIl9SU1QgV1dBTiIpCiAgICAg ICAgICAgICAgICBJZiAoKFdXRU4gPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoV1dNVCwgMHgwM0U4KQogICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJXV0FOIEZMRFIgTXV0ZXg6IEFjcXVpcmVkIFRyeSBEb25l IikKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJTdGFydCBXV0FO IEZMRFIiKQogICAgICAgICAgICAgICAgICAgICAgICBGSFJGIChaZXJvKQogICAgICAgICAg ICAgICAgICAgICAgICBTSFJGICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJF bmQgV1dBTiBGTERSIikKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoV1dNVCkK ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gRkxEUiBNdXRleDpSZWxlYXNl IERvbmUiKQogICAgICAgICAgICAgICAgICAgICAgICBET1NWICgpCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsIFBCUlMpCiAgICAg ICAgICAgICAgICAgICAgU2xlZXAgKDB4QzgpCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5 IChQWFNYLCBPbmUpIC8vIERldmljZSBDaGVjawogICAgICAgICAgICAgICAgICAgIFNHT1Yg KFBSU1QsICh+V1BSUCAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgU0dPViAoV0JSUywg KH5QQlJTICYgT25lKSkKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHhDOCkKICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgV2hpbGUg KChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChMb2NhbDAgPiAweDE0KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkZMRFIgVE8iKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlJWUCBEZWxheSBUaW1lICIsIFRvRGVjaW1hbFN0cmluZyAoTG9jYWwwKSkpCiAgICAg ICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCBPbmUpIC8vIERldmljZSBDaGVjawogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBQb3dlclJlc291cmNl IChNUlNULCAweDA1LCAweDAwMDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBSIF9TVEEiKQogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIg T24KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQ UiBfT04iKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX09G RiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBSIF9PRkYiKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwgU2VyaWFsaXplZCkg IC8vIF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIExvY2FsMCA9IEFjcXVpcmUgKFdXTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAg ICAgICBBREJHICgiV1dBTiBQTERSIE11dGV4OiBBY3F1aXJlZCBUcnkgRG9uZSIpCiAgICAg ICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBQTERSIikK ICAgICAgICAgICAgICAgICAgICAgICAgRkhSRiAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICBTSFJGICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJFbmQgV1dBTiBQ UiBfUlNUIikKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoV1dNVCkKICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUExEUiBNdXRleDogUmVsZWFzZSBEb25l IikKICAgICAgICAgICAgICAgICAgICAgICAgRE9TViAoKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg SWYgKChXSVNUICgpIHx8ICgoV1dFTiAhPSBaZXJvKSAmJiAoV1dSUCA9PSBTTE9UKSkpKQog ICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfUFJSLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1BSUjogUG93ZXIgUmVzb3VyY2UgZm9yIFJlc2V0CiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKFdSU1QpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXUlNUCiAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAg PT0gU0xPVCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKE1SU1QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNUlNUCiAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBXUlNUCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICB9CgogICAgICAgICAgICBOYW1lIChGREVMLCBaZXJvKQogICAgICAgICAgICBOYW1lIChQ REVMLCBaZXJvKQogICAgICAgICAgICBOYW1lIChWREVMLCBaZXJvKQogICAgICAgICAgICBN ZXRob2QgKElGVU4sIDQsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgidlBybzogIiwgQ1ZQUikpCiAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gKENWUFIgPDwgWmVybykKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl V29yZEZpZWxkIChBcmczLCBaZXJvLCBDTURUKQogICAgICAgICAgICAgICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoQXJnMywgMHgwMiwgQ01EUCkKICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIkNtZFR5cGUgPSAiLCBUb0hleFN0cmluZyAoQ01EVCkpKQogICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQ21kUGF5bG9hZCA9ICIsIFRv SGV4U3RyaW5nIChDTURQKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChDTURUID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo V0lTVCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChSU1RZKSAvKiBcX1NCXy5QQzAwLlJQMDQuUFhTWC5SU1RZICov CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZUlmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5DTlZXLlJTVFQpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIkdldCBfUFJSIE1vZGUgPSAiLCBeXl5DTlZXLlJTVFQpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICheXl5DTlZXLlJTVFQpIC8qIFxfU0JfLlBDMDAuQ05WVy5S U1RUICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQ01EVCA9PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChX SVNUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSAoQ01EUCAmIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJTVFkgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9 IChDTURQICYgMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA+Pj0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGTFJDID0gTG9jYWwxCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoQ01EUCAmIDB4MDQpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDIgPj49IDB4MDIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJPRkMgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkNOVlcuUlNU VCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU2V0IF9QUlIgTW9kZSA9ICIsIFRvSGV4U3RyaW5n IChDTURQKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5DTlZXLlJTVFQgPSBD TURQIC8qIFxfU0JfLlBDMDAuUlAwNC5QWFNYLklGVU4uQ01EUCAqLwogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKENNRFQgPT0g MHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuQ05WVy5QUlJTKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJHZXQgTGFzdF9QUlIgc3RhdHVzIFBSUlMgPSAiLCBUb0hleFN0cmluZyAoXl5eQ05WVy5Q UlJTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eXkNOVlcuUFJS UykgLyogXF9TQl8uUEMwMC5DTlZXLlBSUlMgKi8KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKFdJU1QgKCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiR2V0IExhc3RfUFJSIHN0YXR1cyBEUFJTID0gIiwgVG9IZXhTdHJpbmcgKERQ UlMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFBSUykgLyogXF9T Ql8uUEMwMC5SUDA0LlBYU1guRFBSUyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQ1JGSSA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMywgWmVybywgUFJUVCkKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIDB4MDIsIFBSVEQpCiAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJUaW1lclR5cGUgPSAiLCBU b0hleFN0cmluZyAoUFJUVCkpKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiVGltZXJEdXJhdGlvbiAobXMpID0gIiwgVG9EZWNpbWFsU3RyaW5nIChQUlREKSkp CiAgICAgICAgICAgICAgICAgICAgSWYgKChQUlRUID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBGREVMID0gUFJURCAvKiBcX1NCXy5Q QzAwLlJQMDQuUFhTWC5JRlVOLlBSVEQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRWxzZUlmICgoUFJUVCA9PSAweDAyKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBERUwgPSBQUlREIC8qIFxfU0JfLlBD MDAuUlAwNC5QWFNYLklGVU4uUFJURCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBFbHNlSWYgKChQUlRUID09IDB4MDMpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVkRFTCA9IFBSVEQgLyogXF9TQl8uUEMw MC5SUDA0LlBYU1guSUZVTi5QUlREICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJUaW1lckR1cmF0aW9uIG5vdCBzZXQiKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoSURTTSwgMSwgU2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoIjcyNjYxNzJjLTIyMGItNGIyOS04MTRmLTc1ZTRkZDI2YjVmZCIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEVGVU4sIDQsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4RkYsIDB4MUYgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4K ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQUNTRCAvKiBcQUNT RCAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBJNUJTIC8qIFxJNUJTICovCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFVIQlMgLyogXFVIQlMgKi8KICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gQVhNVSAvKiBcQVhNVSAqLwogICAgICAgICAgICAgICAg ICAgIExvY2FsMCA8PD0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IEFYU1Ug LyogXEFYU1UgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBBWE1SIC8qIFxBWE1S ICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIDw8PSBPbmUKICAgICAgICAgICAgICAg ICAgICBMb2NhbDEgfD0gQVhTUiAvKiBcQVhTUiAqLwogICAgICAgICAgICAgICAgICAgIExv Y2FsMSA8PD0gMHgwMgogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSBMb2NhbDEKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgMHgwMCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgw NSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRlVD KSAvKiBcV0ZVQyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSAweDA3KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFVOSTQpIC8qIFxVTkk0ICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IDB4MDgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoV0ZJQykgLyogXFdGSUMgKi8KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwOSkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRkJTKSAvKiBcV0ZCUyAqLwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBBKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdFRFQpIC8qIFxXRURU ICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4 MEIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQ0lSTSA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEMpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0Y3QykgLyogXFdGN0MgKi8KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoRURTTSwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImYyMTIwMmJmLThmNzgt NGRjNi1hNWIzLTFmNzM4ZTI4NWFkZSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZp Y2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChX SVNUICgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChFRFNN IChBcmcwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoRUZVTiAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoSURTTSAoQXJnMCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKElGVU4gKEFy ZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKChXV0VOICE9IFplcm8pICYmIChXV1JQ ID09IFNMT1QpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gVG9VVUlEICgiYmFkMDFiNzUtMjJhOC00ZjQ4LTg3OTItYmRkZTk0Njc3NDdk IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBP bmUpKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSl7fQog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoV1JUTyA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBvd2VyIF9EU00gRDAvTDEuMiIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBF bHNlSWYgKChXUlRPID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBvd2VyIF9EU00g RDMvTDEuMiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlSWYgKChXUlRPID09IDB4MDMpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJX V0FOIFBvd2VyIF9EU00gRDMvTDIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBv d2VyIF9EU00gRGlzYWJsZWQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoV1JUTykgLyogXFdSVE8gKi8KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLlBDMDAuUlAwNS5Q WFNYKQogICAgewogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUlBYWCwgU3lzdGVtTWVtb3J5 LCBHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUiksIDB4MzApCiAgICAgICAgRmllbGQgKFJQ WFgsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIFZE SUQsICAgMzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MkMpLCAKICAgICAgICAgICAgU1ZJ RCwgICAxNgogICAgICAgIH0KCiAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChGTERSLCBTeXN0 ZW1NZW1vcnksIChHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUikgKyBXRENPKSwgMHgwNikK ICAgICAgICBGaWVsZCAoRkxEUiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICB7CiAgICAgICAgICAgIERDQVAsICAgMzIsIAogICAgICAgICAgICBEQ1RSLCAgIDE2CiAg ICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZTRUMsIFN5c3RlbU1lbW9yeSwg KEdNSU8gKFBCTlUsIF5fQURSICgpLCBfQURSKSArIFdWSE8pLCAweDEwKQogICAgICAgIEZp ZWxkIChWU0VDLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAg ICAgICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAg ICAgQlRJRSwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAg ICwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICwgICAx LCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDBEKSwg CiAgICAgICAgICAgIFBEUkMsICAgMQogICAgICAgIH0KCiAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChQQlJSLCBTeXN0ZW1NZW1vcnksIEdNSU8gKFBCTlUsIF5fQURSICgpLCBfQURSKSwg MHgwMkI4KQogICAgICAgIEZpZWxkIChQQlJSLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgewogICAgICAgICAgICBPZmZzZXQgKDB4MThDKSwgCiAgICAgICAgICAgIE1T TkwsICAgMzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MTk4KSwgCiAgICAgICAgICAgIEwx QzEsICAgMzIsIAogICAgICAgICAgICBMMUMyLCAgIDMyLCAKICAgICAgICAgICAgT2Zmc2V0 ICgweDJCNCksIAogICAgICAgICAgICBQVE1SLCAgIDMyCiAgICAgICAgfQoKICAgICAgICBN ZXRob2QgKFdJU1QsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAo Q29uZFJlZk9mIChWRElEKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3dpdGNo IChUb0ludGVnZXIgKFZESUQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIENhc2UgKDB4MjUyNjgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgQ2FzZSAoMHgyNzFCODA4NikKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MjM4MDg2KQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MjcyNTgwODYp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAo MHgyNzJCODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKFNWREMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFdXU1QsIDAsIFNl cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChWRElEKSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKFZESUQp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4NzM2MDgw ODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoMHg3NTYwODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBDYXNlICgweDRENzUxNEMzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDgwMDE0QzMpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmIChXSVNUICgpKQogICAgICAgIHsK ICAgICAgICAgICAgTmFtZSAoUlNUWSwgWmVybykKICAgICAgICAgICAgTmFtZSAoRkxSQywg WmVybykKICAgICAgICAgICAgTmFtZSAoQk9GQywgWmVybykKICAgICAgICAgICAgTmFtZSAo RFBSUywgWmVybykKICAgICAgICAgICAgUG93ZXJSZXNvdXJjZSAoV1JTVCwgMHgwNSwgMHgw MDAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBBREJHICgiV2lmaSBQUiBfU1RBIikKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9PTiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9uCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkgUFIgX09OIikKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9PRkYsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBBREJHICgiV2lmaSBQUiBfT0ZGIikKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf UlNUOiBEZXZpY2UgUmVzZXQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBJZiAoKFJTVFkgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFByb2R1Y3QgUlNUIikKICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoQ05NVCwgMHgwM0U4KQogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChGTFJDID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwwID0gRENUUiAvKiBcX1NCXy5QQzAwLlJQMDUuUFhTWC5EQ1RSICovCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERDVFIgPSBMb2NhbDAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoRkRFTCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUFJTID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEJPRkMgPT0gT25lKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJS TVQgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVFJLIChaZXJvKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF bHNlSWYgKChXVkhPICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRJRSA9IFplcm8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwIChSRExZKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBEUkMgPSBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNsZWVwIChWREVMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U0dPViAoV0xSVCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChQ REVMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0dPViAoV0xSVCwgT25lKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCT0ZDID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChCUk1UID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRSSyAoT25lKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFbHNlSWYgKChXVkhPICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRJRSA9IE9uZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU2xlZXAgKFJETFkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFBSUyA9IDB4MDIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlbGVhc2UgKENOTVQpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkg Q29yZSBSU1QiKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERDQVAgJiAweDEwMDAw MDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwwID0gRENUUiAvKiBcX1NCXy5QQzAwLlJQMDUuUFhTWC5EQ1RSICovCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gMHg4MDAwCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEQ1RSID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIERQUlMgPSBPbmUKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDA3RDApCiAgICAgICAgICAg ICAgICAgICAgTVNOTCA9IERSMDEgLyogXERSMDEgKi8KICAgICAgICAgICAgICAgICAgICBM MUMxID0gRFIwMiAvKiBcRFIwMiAqLwogICAgICAgICAgICAgICAgICAgIEwxQzIgPSBEUjAz IC8qIFxEUjAzICovCiAgICAgICAgICAgICAgICAgICAgUFRNUiA9IERSMDQgLyogXERSMDQg Ki8KICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwN0QwKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChTUExYLCBQYWNrYWdlICgweDAy KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg MHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 KQogICAgICAgICAgICBNZXRob2QgKFNQTEMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFtaZXJvXSA9IERPTTEg LyogXERPTTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFtPbmVd ID0gTElNMSAvKiBcTElNMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoU1BMWCBbT25l XSkgWzB4MDJdID0gVElNMSAvKiBcVElNMSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChT UExYKSAvKiBcX1NCXy5QQzAwLlJQMDUuUFhTWC5TUExYICovCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE5hbWUgKFdBTlgsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAw MDAwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAz KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAg TWV0aG9kIChXQU5ELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXQU5YIFtPbmVdKSBbWmVyb10gPSBaZXJvCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXQU5YIFtPbmVdKSBbT25lXSA9IFRSRDAgLyogXFRSRDAgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFsweDAyXSA9IFRSTDAgLyogXFRSTDAg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBbWmVyb10gPSBPbmUK ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBbT25lXSA9IFRSRDEgLyog XFRSRDEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBbMHgwMl0g PSBUUkwxIC8qIFxUUkwxICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdBTlgpIC8qIFxf U0JfLlBDMDAuUlAwNS5QWFNYLldBTlggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAg TmFtZSAoV1JEWCwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAwMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAg ICBNZXRob2QgKFdSREQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdSRFggW09uZV0pIFtaZXJvXSA9IFdETTEgLyogXFdETTEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFggW09uZV0pIFtPbmVdID0gQ0lEMSAvKiBc Q0lEMSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXUkRYKSAvKiBcX1NCXy5QQzAwLlJQ MDUuUFhTWC5XUkRYICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdSRFks IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgyRSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1JEUywgMCwg U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgW09uZV0gPSBTVFhFIC8qIFxTVFhFICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUkRZIFtPbmVdKSBbMHgwMl0gPSBTVDEwIC8qIFxTVDEwICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwM10gPSBTVDExIC8qIFxTVDExICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwNF0gPSBTVDEyIC8qIFxT VDEyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwNV0gPSBT VDEzIC8qIFxTVDEzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBb MHgwNl0gPSBTVDE0IC8qIFxTVDE0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZ IFtPbmVdKSBbMHgwN10gPSBTVDE1IC8qIFxTVDE1ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUkRZIFtPbmVdKSBbMHgwOF0gPSBTVDE2IC8qIFxTVDE2ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwOV0gPSBTVDE3IC8qIFxTVDE3ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwQV0gPSBTVDE4IC8qIFxT VDE4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwQl0gPSBT VDE5IC8qIFxTVDE5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBb MHgwQ10gPSBTVDUwIC8qIFxTVDUwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZ IFtPbmVdKSBbMHgwRF0gPSBTVDUxIC8qIFxTVDUxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUkRZIFtPbmVdKSBbMHgwRV0gPSBTVDUyIC8qIFxTVDUyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwRl0gPSBTVDUzIC8qIFxTVDUzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxMF0gPSBTVDU0IC8qIFxT VDU0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxMV0gPSBT VDU1IC8qIFxTVDU1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBb MHgxMl0gPSBTVDU2IC8qIFxTVDU2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZ IFtPbmVdKSBbMHgxM10gPSBTVDU3IC8qIFxTVDU3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUkRZIFtPbmVdKSBbMHgxNF0gPSBTVDU4IC8qIFxTVDU4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxNV0gPSBTVDU5IC8qIFxTVDU5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxNl0gPSBTVDVBIC8qIFxT VDVBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxN10gPSBT VDVCIC8qIFxTVDVCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBb MHgxOF0gPSBDRDEwIC8qIFxDRDEwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZ IFtPbmVdKSBbMHgxOV0gPSBDRDExIC8qIFxDRDExICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUkRZIFtPbmVdKSBbMHgxQV0gPSBDRDEyIC8qIFxDRDEyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQl0gPSBDRDEzIC8qIFxDRDEzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQ10gPSBDRDE0IC8qIFxD RDE0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxRF0gPSBD RDE1IC8qIFxDRDE1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBb MHgxRV0gPSBDRDE2IC8qIFxDRDE2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZ IFtPbmVdKSBbMHgxRl0gPSBDRDE3IC8qIFxDRDE3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUkRZIFtPbmVdKSBbMHgyMF0gPSBDRDE4IC8qIFxDRDE4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMV0gPSBDRDE5IC8qIFxDRDE5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMl0gPSBDRDFBIC8qIFxD RDFBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyM10gPSBD RDIwIC8qIFxDRDIwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBb MHgyNF0gPSBDRDIxIC8qIFxDRDIxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZ IFtPbmVdKSBbMHgyNV0gPSBDRDIyIC8qIFxDRDIyICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUkRZIFtPbmVdKSBbMHgyNl0gPSBDRDIzIC8qIFxDRDIzICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyN10gPSBDRDI0IC8qIFxDRDI0ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyOF0gPSBDRDI1IC8qIFxD RDI1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyOV0gPSBD RDI2IC8qIFxDRDI2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBb MHgyQV0gPSBDRDI3IC8qIFxDRDI3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZ IFtPbmVdKSBbMHgyQl0gPSBDRDI4IC8qIFxDRDI4ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUkRZIFtPbmVdKSBbMHgyQ10gPSBDRDI5IC8qIFxDRDI5ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyRF0gPSBDRDJBIC8qIFxDRDJBICovCiAg ICAgICAgICAgICAgICBSZXR1cm4gKFdSRFkpIC8qIFxfU0JfLlBDMDAuUlAwNS5QWFNYLldS RFkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoRVdSWSwgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDg3KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAg TWV0aG9kIChFV1JELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbT25lXSA9IFNUREUgLyogXFNUREUgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDAyXSA9IFNUUlMgLyogXFNU UlMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDAzXSA9IFNU MjAgLyogXFNUMjAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDA0XSA9IFNUMjEgLyogXFNUMjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDA1XSA9IFNUMjIgLyogXFNUMjIgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDA2XSA9IFNUMjMgLyogXFNUMjMgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA3XSA9IFNUMjQgLyogXFNUMjQgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA4XSA9IFNUMjUgLyogXFNU MjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA5XSA9IFNU MjYgLyogXFNUMjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDBBXSA9IFNUMjcgLyogXFNUMjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDBCXSA9IFNUMjggLyogXFNUMjggKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDBDXSA9IFNUMjkgLyogXFNUMjkgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBEXSA9IFNUNjAgLyogXFNUNjAgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBFXSA9IFNUNjEgLyogXFNU NjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBGXSA9IFNU NjIgLyogXFNUNjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDEwXSA9IFNUNjMgLyogXFNUNjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDExXSA9IFNUNjQgLyogXFNUNjQgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDEyXSA9IFNUNjUgLyogXFNUNjUgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDEzXSA9IFNUNjYgLyogXFNUNjYgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE0XSA9IFNUNjcgLyogXFNU NjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE1XSA9IFNU NjggLyogXFNUNjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDE2XSA9IFNUNjkgLyogXFNUNjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDE3XSA9IFNUNkEgLyogXFNUNkEgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDE4XSA9IFNUNkIgLyogXFNUNkIgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE5XSA9IFNUMzAgLyogXFNUMzAgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFBXSA9IFNUMzEgLyogXFNU MzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFCXSA9IFNU MzIgLyogXFNUMzIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDFDXSA9IFNUMzMgLyogXFNUMzMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDFEXSA9IFNUMzQgLyogXFNUMzQgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDFFXSA9IFNUMzUgLyogXFNUMzUgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFGXSA9IFNUMzYgLyogXFNUMzYgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDIwXSA9IFNUMzcgLyogXFNU MzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDIxXSA9IFNU MzggLyogXFNUMzggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDIyXSA9IFNUMzkgLyogXFNUMzkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDIzXSA9IFNUNzAgLyogXFNUNzAgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDI0XSA9IFNUNzEgLyogXFNUNzEgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI1XSA9IFNUNzIgLyogXFNUNzIgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI2XSA9IFNUNzMgLyogXFNU NzMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI3XSA9IFNU NzQgLyogXFNUNzQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDI4XSA9IFNUNzUgLyogXFNUNzUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDI5XSA9IFNUNzYgLyogXFNUNzYgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDJBXSA9IFNUNzcgLyogXFNUNzcgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJCXSA9IFNUNzggLyogXFNUNzggKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJDXSA9IFNUNzkgLyogXFNU NzkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJEXSA9IFNU N0EgLyogXFNUN0EgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDJFXSA9IFNUN0IgLyogXFNUN0IgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDJGXSA9IFNUNDAgLyogXFNUNDAgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDMwXSA9IFNUNDEgLyogXFNUNDEgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMxXSA9IFNUNDIgLyogXFNUNDIgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMyXSA9IFNUNDMgLyogXFNU NDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMzXSA9IFNU NDQgLyogXFNUNDQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDM0XSA9IFNUNDUgLyogXFNUNDUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDM1XSA9IFNUNDYgLyogXFNUNDYgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDM2XSA9IFNUNDcgLyogXFNUNDcgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM3XSA9IFNUNDggLyogXFNUNDggKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM4XSA9IFNUNDkgLyogXFNU NDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM5XSA9IFNU ODAgLyogXFNUODAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDNBXSA9IFNUODEgLyogXFNUODEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDNCXSA9IFNUODIgLyogXFNUODIgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDNDXSA9IFNUODMgLyogXFNUODMgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNEXSA9IFNUODQgLyogXFNUODQgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNFXSA9IFNUODUgLyogXFNU ODUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNGXSA9IFNU ODYgLyogXFNUODYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDQwXSA9IFNUODcgLyogXFNUODcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDQxXSA9IFNUODggLyogXFNUODggKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDQyXSA9IFNUODkgLyogXFNUODkgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQzXSA9IFNUOEEgLyogXFNUOEEgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ0XSA9IFNUOEIgLyogXFNU OEIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ1XSA9IENE MzAgLyogXENEMzAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDQ2XSA9IENEMzEgLyogXENEMzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDQ3XSA9IENEMzIgLyogXENEMzIgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDQ4XSA9IENEMzMgLyogXENEMzMgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ5XSA9IENEMzQgLyogXENEMzQgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRBXSA9IENEMzUgLyogXENE MzUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRCXSA9IENE MzYgLyogXENEMzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDRDXSA9IENEMzcgLyogXENEMzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDREXSA9IENEMzggLyogXENEMzggKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDRFXSA9IENEMzkgLyogXENEMzkgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRGXSA9IENEM0EgLyogXENEM0EgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDUwXSA9IENEM0IgLyogXENE M0IgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDUxXSA9IENE M0MgLyogXENEM0MgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDUyXSA9IENEM0QgLyogXENEM0QgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDUzXSA9IENEM0UgLyogXENEM0UgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDU0XSA9IENEM0YgLyogXENEM0YgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU1XSA9IENENDAgLyogXENENDAgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU2XSA9IENENDEgLyogXENE NDEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU3XSA9IENE NDIgLyogXENENDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDU4XSA9IENENDMgLyogXENENDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDU5XSA9IENENDQgLyogXENENDQgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDVBXSA9IENENDUgLyogXENENDUgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVCXSA9IENENDYgLyogXENENDYgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVDXSA9IENENDcgLyogXENE NDcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVEXSA9IENE NDggLyogXENENDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDVFXSA9IENENDkgLyogXENENDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDVGXSA9IENENEEgLyogXENENEEgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDYwXSA9IENENEIgLyogXENENEIgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYxXSA9IENENEMgLyogXENENEMgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYyXSA9IENENEQgLyogXENE NEQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYzXSA9IENE NEUgLyogXENENEUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDY0XSA9IENENEYgLyogXENENEYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDY1XSA9IENENTAgLyogXENENTAgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDY2XSA9IENENTEgLyogXENENTEgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY3XSA9IENENTIgLyogXENENTIgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY4XSA9IENENTMgLyogXENE NTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY5XSA9IENE NTQgLyogXENENTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDZBXSA9IENENTUgLyogXENENTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDZCXSA9IENENTYgLyogXENENTYgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDZDXSA9IENENTcgLyogXENENTcgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZEXSA9IENENTggLyogXENENTggKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZFXSA9IENENTkgLyogXENE NTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZGXSA9IENE NUEgLyogXENENUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDcwXSA9IENENUIgLyogXENENUIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDcxXSA9IENENUMgLyogXENENUMgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDcyXSA9IENENUQgLyogXENENUQgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDczXSA9IENENUUgLyogXENENUUgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc0XSA9IENENUYgLyogXENE NUYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc1XSA9IENE NjAgLyogXENENjAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDc2XSA9IENENjEgLyogXENENjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDc3XSA9IENENjIgLyogXENENjIgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDc4XSA9IENENjMgLyogXENENjMgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc5XSA9IENENjQgLyogXENENjQgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdBXSA9IENENjUgLyogXENE NjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdCXSA9IENE NjYgLyogXENENjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDdDXSA9IENENjcgLyogXENENjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDdEXSA9IENENjggLyogXENENjggKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDdFXSA9IENENjkgLyogXENENjkgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdGXSA9IENENkEgLyogXENENkEgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDgwXSA9IENENkIgLyogXENE NkIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDgxXSA9IENE NkMgLyogXENENkMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDgyXSA9IENENkQgLyogXENENkQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDgzXSA9IENENkUgLyogXENENkUgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDg0XSA9IENENkYgLyogXENENkYgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDg1XSA9IENENzAgLyogXENENzAgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDg2XSA9IENENzEgLyogXENE NzEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoRVdSWSkgLyogXF9TQl8uUEMwMC5SUDA1 LlBYU1guRVdSWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXR0RZLCBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAzLCAKICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4NEEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdHRFMsIDAsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFtPbmVdID0gU0RHTiAvKiBcU0RHTiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MDJdID0gU0QxMSAvKiBcU0QxMSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDNdID0gU0QxMiAvKiBcU0QxMiAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDRdID0gU0QxMyAvKiBcU0Qx MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDVdID0gU0Qx NCAvKiBcU0QxNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 MDZdID0gU0QxNSAvKiBcU0QxNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4MDddID0gU0QxNiAvKiBcU0QxNiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MDhdID0gU0QxNyAvKiBcU0QxNyAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDldID0gU0QxOCAvKiBcU0QxOCAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEFdID0gU0QxOSAvKiBcU0Qx OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEJdID0gU0Qy MSAvKiBcU0QyMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 MENdID0gU0QyMiAvKiBcU0QyMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4MERdID0gU0QyMyAvKiBcU0QyMyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MEVdID0gU0QyNCAvKiBcU0QyNCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEZdID0gU0QyNSAvKiBcU0QyNSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTBdID0gU0QyNiAvKiBcU0Qy NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTFdID0gU0Qy NyAvKiBcU0QyNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 MTJdID0gU0QyOCAvKiBcU0QyOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4MTNdID0gU0QyOSAvKiBcU0QyOSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MTRdID0gU0QzMSAvKiBcU0QzMSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTVdID0gU0QzMiAvKiBcU0QzMiAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTZdID0gU0QzMyAvKiBcU0Qz MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTddID0gU0Qz NCAvKiBcU0QzNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 MThdID0gU0QzNSAvKiBcU0QzNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4MTldID0gU0QzNiAvKiBcU0QzNiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MUFdID0gU0QzNyAvKiBcU0QzNyAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MUJdID0gU0QzOCAvKiBcU0QzOCAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MUNdID0gU0QzOSAvKiBcU0Qz OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MURdID0gU0Q0 MSAvKiBcU0Q0MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 MUVdID0gU0Q0MiAvKiBcU0Q0MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4MUZdID0gU0Q0MyAvKiBcU0Q0MyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MjBdID0gU0Q0NCAvKiBcU0Q0NCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjFdID0gU0Q0NSAvKiBcU0Q0NSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjJdID0gU0Q0NiAvKiBcU0Q0 NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjNdID0gU0Q0 NyAvKiBcU0Q0NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 MjRdID0gU0Q0OCAvKiBcU0Q0OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4MjVdID0gU0Q0OSAvKiBcU0Q0OSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MjZdID0gU0Q1MSAvKiBcU0Q1MSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjddID0gU0Q1MiAvKiBcU0Q1MiAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjhdID0gU0Q1MyAvKiBcU0Q1 MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjldID0gU0Q1 NCAvKiBcU0Q1NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 MkFdID0gU0Q1NSAvKiBcU0Q1NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4MkJdID0gU0Q1NiAvKiBcU0Q1NiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MkNdID0gU0Q1NyAvKiBcU0Q1NyAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkRdID0gU0Q1OCAvKiBcU0Q1OCAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkVdID0gU0Q1OSAvKiBcU0Q1 OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkZdID0gU0Q2 MSAvKiBcU0Q2MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 MzBdID0gU0Q2MiAvKiBcU0Q2MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4MzFdID0gU0Q2MyAvKiBcU0Q2MyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MzJdID0gU0Q2NCAvKiBcU0Q2NCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzNdID0gU0Q2NSAvKiBcU0Q2NSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzRdID0gU0Q2NiAvKiBcU0Q2 NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzVdID0gU0Q2 NyAvKiBcU0Q2NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 MzZdID0gU0Q2OCAvKiBcU0Q2OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4MzddID0gU0Q2OSAvKiBcU0Q2OSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MzhdID0gU0Q3MSAvKiBcU0Q3MSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzldID0gU0Q3MiAvKiBcU0Q3MiAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0FdID0gU0Q3MyAvKiBcU0Q3 MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0JdID0gU0Q3 NCAvKiBcU0Q3NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 M0NdID0gU0Q3NSAvKiBcU0Q3NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4M0RdID0gU0Q3NiAvKiBcU0Q3NiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4M0VdID0gU0Q3NyAvKiBcU0Q3NyAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0ZdID0gU0Q3OCAvKiBcU0Q3OCAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDBdID0gU0Q3OSAvKiBcU0Q3 OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDFdID0gU0Q4 MSAvKiBcU0Q4MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 NDJdID0gU0Q4MiAvKiBcU0Q4MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4NDNdID0gU0Q4MyAvKiBcU0Q4MyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4NDRdID0gU0Q4NCAvKiBcU0Q4NCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDVdID0gU0Q4NSAvKiBcU0Q4NSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDZdID0gU0Q4NiAvKiBcU0Q4 NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDddID0gU0Q4 NyAvKiBcU0Q4NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 NDhdID0gU0Q4OCAvKiBcU0Q4OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4NDldID0gU0Q4OSAvKiBcU0Q4OSAqLwogICAgICAgICAgICAgICAgUmV0dXJu IChXR0RZKSAvKiBcX1NCXy5QQzAwLlJQMDUuUFhTWC5XR0RZICovCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE5hbWUgKEVDS1ksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAg ICAgICAgIE1ldGhvZCAoRUNLViwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRUNLWSBbT25lXSkgW09uZV0gPSBDRUNWIC8qIFxDRUNW ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEVDS1kpIC8qIFxfU0JfLlBDMDAuUlAwNS5Q WFNYLkVDS1kgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoUFBBWSwgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDE4KQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIDB4MTgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MTgsIAogICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgKICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChQUEFHLCAwLCBTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtP bmVdKSBbT25lXSA9IFdBR00gLyogXFdBR00gKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFBQQVkgW09uZV0pIFsweDAyXSA9IEFHQTEgLyogXEFHQTEgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDAzXSA9IEFHQTIgLyogXEFHQTIgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA0XSA9IEFHQTMgLyogXEFHQTMg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA1XSA9IEFHQTQg LyogXEFHQTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA2 XSA9IEFHQTUgLyogXEFHQTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09u ZV0pIFsweDA3XSA9IEFHQTYgLyogXEFHQTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFBQQVkgW09uZV0pIFsweDA4XSA9IEFHQTcgLyogXEFHQTcgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA5XSA9IEFHQTggLyogXEFHQTggKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBBXSA9IEFHQTkgLyogXEFHQTkg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBCXSA9IEFHQUEg LyogXEFHQUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBD XSA9IEFHQUIgLyogXEFHQUIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09u ZV0pIFsweDBEXSA9IEFHQjEgLyogXEFHQjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFBQQVkgW09uZV0pIFsweDBFXSA9IEFHQjIgLyogXEFHQjIgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBGXSA9IEFHQjMgLyogXEFHQjMgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDEwXSA9IEFHQjQgLyogXEFHQjQg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDExXSA9IEFHQjUg LyogXEFHQjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDEy XSA9IEFHQjYgLyogXEFHQjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09u ZV0pIFsweDEzXSA9IEFHQjcgLyogXEFHQjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFBQQVkgW09uZV0pIFsweDE0XSA9IEFHQjggLyogXEFHQjggKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE1XSA9IEFHQjkgLyogXEFHQjkgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE2XSA9IEFHQkEgLyogXEFHQkEg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE3XSA9IEFHQkIg LyogXEFHQkIgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoUFBBWSkgLyogXF9TQl8uUEMw MC5SUDA1LlBYU1guUFBBWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChX UEZZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 KQogICAgICAgICAgICBNZXRob2QgKFdQRkMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFtPbmVdID0gV1BGQSAv KiBcV1BGQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1BGWSBbT25lXSkgWzB4MDJd ID0gV1BGQiAvKiBcV1BGQiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1BGWSBbT25l XSkgWzB4MDNdID0gXFdQRkMKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0p IFsweDA0XSA9IFdQRkQgLyogXFdQRkQgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoV1BG WSkgLyogXF9TQl8uUEMwMC5SUDA1LlBYU1guV1BGWSAqLwogICAgICAgICAgICB9CgogICAg ICAgICAgICBOYW1lIChXVFNZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgxMykKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1RBUywgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkg W09uZV0gPSBXVFNFIC8qIFxXVFNFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZ IFtPbmVdKSBbMHgwMl0gPSBXVExFIC8qIFxXVExFICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXVFNZIFtPbmVdKSBbMHgwM10gPSBCTDAxIC8qIFxCTDAxICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwNF0gPSBCTDAyIC8qIFxCTDAyICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwNV0gPSBCTDAzIC8qIFxC TDAzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwNl0gPSBC TDA0IC8qIFxCTDA0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBb MHgwN10gPSBCTDA1IC8qIFxCTDA1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZ IFtPbmVdKSBbMHgwOF0gPSBCTDA2IC8qIFxCTDA2ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXVFNZIFtPbmVdKSBbMHgwOV0gPSBCTDA3IC8qIFxCTDA3ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQV0gPSBCTDA4IC8qIFxCTDA4ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQl0gPSBCTDA5IC8qIFxC TDA5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQ10gPSBC TDEwIC8qIFxCTDEwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBb MHgwRF0gPSBCTDExIC8qIFxCTDExICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZ IFtPbmVdKSBbMHgwRV0gPSBCTDEyIC8qIFxCTDEyICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXVFNZIFtPbmVdKSBbMHgwRl0gPSBCTDEzIC8qIFxCTDEzICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMF0gPSBCTDE0IC8qIFxCTDE0ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMV0gPSBCTDE1IC8qIFxC TDE1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMl0gPSBC TDE2IC8qIFxCTDE2ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdUU1kpIC8qIFxfU0Jf LlBDMDAuUlAwNS5QWFNYLldUU1kgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFt ZSAoV0FJWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChX QUlTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXQUlZIFtPbmVdKSBbT25lXSA9IFdMQkkgLyogXFdMQkkgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdBSVkgW09uZV0pIFsweDAyXSA9IFdIQkkgLyogXFdIQkkgKi8KICAg ICAgICAgICAgICAgIFJldHVybiAoV0FJWSkgLyogXF9TQl8uUEMwMC5SUDA1LlBYU1guV0FJ WSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChTQURYLCBQYWNrYWdlICgw eDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAgICAgICAgICAweDgw MDAwMDAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1l dGhvZCAoU0FEUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgRGVyZWZPZiAoU0FEWCBbT25lXSkgW09uZV0gPSBBVERWIC8qIFxBVERWICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChTQURYIFsweDAyXSkgW09uZV0gPSBBVERWIC8qIFxBVERW ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFNBRFgpIC8qIFxfU0JfLlBDMDAuUlAwNS5Q WFNYLlNBRFggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoR1BDWCwgUGFj a2FnZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIDB4MTIsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0p CiAgICAgICAgICAgIE1ldGhvZCAoR1BDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQQ1gpIC8qIFxfU0JfLlBDMDAuUlAwNS5QWFNY LkdQQ1ggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoR0xBWCwgUGFja2Fn ZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKEdM QUksIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiQVI6IEdMQUkgbWV0aG9kLiBDR0xTID0gIiwgVG9IZXhTdHJpbmcg KENHTFMpKSkKICAgICAgICAgICAgICAgIERlcmVmT2YgKEdMQVggW09uZV0pIFtPbmVdID0g Q0dMUyAvKiBcQ0dMUyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoR0xBWCBbMHgwMl0p IFtPbmVdID0gQ0dMUyAvKiBcQ0dMUyAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChHTEFY KSAvKiBcX1NCXy5QQzAwLlJQMDUuUFhTWC5HTEFYICovCiAgICAgICAgICAgIH0KICAgICAg ICB9CgogICAgICAgIElmICgoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xPVCkpKQog ICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChGSFJGLCAxLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEdHT1YgKFBSU1QpICE9IFdQUlAp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERMMjMgKCkKICAgICAg ICAgICAgICAgICAgICBBREJHICgiV1dBTiBETDIzKCkgRG9uZSIpCiAgICAgICAgICAgICAg ICAgICAgU0dPViAoUFJTVCwgV1BSUCkKICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dB TiBQRVJTVDowIERvbmUiKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJBc3N1bWUg V1dBTiBETDIzKCkgaXMgYWxyZWFkeSBkb25lIikKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBTbGVlcCAoVFIyQikKICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsIFBC UlMpCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBSU1Q6MCBEb25lIikKICAgICAgICAg ICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBTbGVlcCAoVEJURykKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlNMUCBUQlRHICIsIFRvRGVjaW1hbFN0cmluZyAoVEJURykpKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSBPbmUpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNQQ08gKFdDTEssIFplcm8pCiAg ICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gU0NMSzowIERvbmUiKQogICAgICAgICAg ICAgICAgICAgIFNsZWVwIChUQjJGKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiU0xQIFRCMkYgIiwgVG9EZWNpbWFsU3RyaW5nIChUQjJGKSkpCiAgICAgICAg ICAgICAgICAgICAgU0dPViAoV0ZDUCwgKH5QRkNQICYgT25lKSkKICAgICAgICAgICAgICAg ICAgICBBREJHICgiV1dBTiBQV1I6MCBEb25lIikKICAgICAgICAgICAgICAgICAgICBTbGVl cCAoVEZESSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlNMUCBU RkRJICIsIFRvRGVjaW1hbFN0cmluZyAoVEZESSkpKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IEFEQkcgKCJVbnN1cHBvcnRlZCBBcmcwIGlzIGRldGVjdGVkLiIpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU0hSRiwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFNEMCAoU0xPVCkKICAg ICAgICAgICAgICAgIEFEQkcgKCJXV0FOIE1QSFlQRzowIERvbmUiKQogICAgICAgICAgICAg ICAgU1BDTyAoV0NMSywgT25lKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gU0NMSzox IERvbmUiKQogICAgICAgICAgICAgICAgU0dPViAoV0ZDUCwgUEZDUCkKICAgICAgICAgICAg ICAgIEFEQkcgKCJXV0FOIFBXUjoxIERvbmUiKQogICAgICAgICAgICAgICAgU2xlZXAgKFRO MkIpCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlNMUCBUTjJCICIsIFRv RGVjaW1hbFN0cmluZyAoVE4yQikpKQogICAgICAgICAgICAgICAgU0dPViAoV0JSUywgKH5Q QlJTICYgT25lKSkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFJTVDoxIERvbmUiKQog ICAgICAgICAgICAgICAgU2xlZXAgKFRCMlIpCiAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlNMUCBUQjJSICIsIFRvRGVjaW1hbFN0cmluZyAoVEIyUikpKQogICAgICAg ICAgICAgICAgU0dPViAoUFJTVCwgKH5XUFJQICYgT25lKSkKICAgICAgICAgICAgICAgIEFE QkcgKCJXV0FOIFBFUlNUOjAgRG9uZSIpCiAgICAgICAgICAgICAgICBMMjNEICgpCiAgICAg ICAgICAgICAgICBBREJHICgiV1dBTiBMMjNEKCkgRG9uZSIpCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoRE9TViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgV2hpbGUg KCgoU1ZJRCAhPSBXU0lEKSAmJiAoTG9jYWwwIDwgV1NUTykpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIkRFVCBUaW1lICIsIFRvRGVjaW1hbFN0cmluZyAoTG9jYWwwKSkpCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwgU2VyaWFsaXplZCkgIC8v IF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJH ICgiX1JTVCBXV0FOIikKICAgICAgICAgICAgICAgIElmICgoV1dFTiA9PSAweDAyKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1aXJlIChX V01ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gRkxEUiBNdXRl eDogQWNxdWlyZWQgVHJ5IERvbmUiKQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWww ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlN0YXJ0IFdXQU4gRkxEUiIpCiAgICAgICAgICAgICAgICAgICAgICAgIEZI UkYgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIFNIUkYgKCkKICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIkVuZCBXV0FOIEZMRFIiKQogICAgICAgICAgICAgICAgICAg ICAgICBSZWxlYXNlIChXV01UKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dB TiBGTERSIE11dGV4OlJlbGVhc2UgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAgICAgIERP U1YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU0dP ViAoV0JSUywgUEJSUykKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHhDOCkKICAgICAg ICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gsIE9uZSkgLy8gRGV2aWNlIENoZWNrCiAgICAg ICAgICAgICAgICAgICAgU0dPViAoUFJTVCwgKH5XUFJQICYgT25lKSkKICAgICAgICAgICAg ICAgICAgICBTR09WIChXQlJTLCAoflBCUlMgJiBPbmUpKQogICAgICAgICAgICAgICAgICAg IFNsZWVwICgweEM4KQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAg ICAgICAgICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MTQpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiRkxEUiBUTyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgx MCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDBBKQogICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUlZQIERlbGF5IFRpbWUgIiwgVG9EZWNpbWFsU3Ry aW5nIChMb2NhbDApKSkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gsIE9uZSkg Ly8gRGV2aWNlIENoZWNrCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIFBvd2VyUmVzb3VyY2UgKE1SU1QsIDB4MDUsIDB4MDAwMCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NU QTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAo IldXQU4gUFIgX1NUQSIpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT04sIDAsIFNlcmlhbGl6 ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJXV0FOIFBSIF9PTiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIg T2ZmCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4g UFIgX09GRiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChf UlNULCAwLCBTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoV1dNVCwgMHgw M0U4KQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBMRFIgTXV0ZXg6IEFjcXVp cmVkIFRyeSBEb25lIikKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJTdGFydCBXV0FOIFBMRFIiKQogICAgICAgICAgICAgICAgICAgICAgICBGSFJGIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgIFNIUkYgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIkVuZCBXV0FOIFBSIF9SU1QiKQogICAgICAgICAgICAgICAgICAgICAgICBS ZWxlYXNlIChXV01UKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQTERS IE11dGV4OiBSZWxlYXNlIERvbmUiKQogICAgICAgICAgICAgICAgICAgICAgICBET1NWICgp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CiAgICAgICAgfQoKICAgICAgICBJZiAoKFdJU1QgKCkgfHwgKChXV0VOICE9IFplcm8pICYm IChXV1JQID09IFNMT1QpKSkpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9QUlIs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJSOiBQb3dlciBSZXNvdXJjZSBmb3IgUmVzZXQK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoV1JTVCkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFdSU1QKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKCgoV1dF TiAhPSBaZXJvKSAmJiAoV1dSUCA9PSBTTE9UKSkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoTVJTVCkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1S U1QKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFdSU1QKICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEZERUwsIFplcm8p CiAgICAgICAgICAgIE5hbWUgKFBERUwsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKFZERUws IFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoSUZVTiwgNCwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVy IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDFGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJ2UHJvOiAiLCBDVlBS KSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQ1ZQUiA8PCBaZXJvKQogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIFplcm8sIENNRFQpCiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmczLCAweDAyLCBDTURQKQogICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQ21kVHlwZSA9ICIsIFRvSGV4 U3RyaW5nIChDTURUKSkpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJDbWRQYXlsb2FkID0gIiwgVG9IZXhTdHJpbmcgKENNRFApKSkKICAgICAgICAgICAgICAg ICAgICBJZiAoKENNRFQgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJTVFkpIC8qIFxfU0JfLlBD MDAuUlAwNS5QWFNYLlJTVFkgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkNOVlcuUlNU VCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiR2V0IF9QUlIgTW9kZSA9ICIsIF5eXkNOVlcuUlNU VCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eXkNOVlcuUlNUVCkg LyogXF9TQl8uUEMwMC5DTlZXLlJTVFQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKChDTURUID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChDTURQICYgT25lKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUlNUWSA9IExvY2FsMAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwxID0gKENNRFAgJiAweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwxID4+PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZM UkMgPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IChDTURQ ICYgMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA+Pj0gMHgwMgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9GQyA9IExvY2FsMgogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoQ29uZFJlZk9m IChcX1NCLlBDMDAuQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTZXQgX1BSUiBN b2RlID0gIiwgVG9IZXhTdHJpbmcgKENNRFApKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5eXkNOVlcuUlNUVCA9IENNRFAgLyogXF9TQl8uUEMwMC5SUDA1LlBYU1guSUZVTi5D TURQICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmICgoQ01EVCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5DTlZXLlBSUlMp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIkdldCBMYXN0X1BSUiBzdGF0dXMgUFJSUyA9ICIsIFRv SGV4U3RyaW5nICheXl5DTlZXLlBSUlMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoXl5eQ05WVy5QUlJTKSAvKiBcX1NCXy5QQzAwLkNOVlcuUFJSUyAqLwogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAo V0lTVCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJHZXQgTGFzdF9QUlIgc3RhdHVzIERQUlMg PSAiLCBUb0hleFN0cmluZyAoRFBSUykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChEUFJTKSAvKiBcX1NCXy5QQzAwLlJQMDUuUFhTWC5EUFJTICovCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKChDUkZJID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChB cmczLCBaZXJvLCBQUlRUKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo QXJnMywgMHgwMiwgUFJURCkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlRpbWVyVHlwZSA9ICIsIFRvSGV4U3RyaW5nIChQUlRUKSkpCiAgICAgICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJUaW1lckR1cmF0aW9uIChtcykgPSAiLCBUb0Rl Y2ltYWxTdHJpbmcgKFBSVEQpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKFBSVFQgPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEZE RUwgPSBQUlREIC8qIFxfU0JfLlBDMDAuUlAwNS5QWFNYLklGVU4uUFJURCAqLwogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChQUlRUID09IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUERF TCA9IFBSVEQgLyogXF9TQl8uUEMwMC5SUDA1LlBYU1guSUZVTi5QUlREICovCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFBSVFQgPT0gMHgw MykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBWREVM ID0gUFJURCAvKiBcX1NCXy5QQzAwLlJQMDUuUFhTWC5JRlVOLlBSVEQgKi8KICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRpbWVyRHVyYXRpb24gbm90 IHNldCIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChJRFNNLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNzI2NjE3MmMtMjIwYi00YjI5LTgxNGYtNzVlNGRk MjZiNWZkIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv ZCAoRUZVTiwgNCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgMHgxRiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBBQ1NEIC8qIFxBQ1NEICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChM b2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IEk1QlMgLyogXEk1QlMgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gVUhCUyAv KiBcVUhCUyAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA2KSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBWE1VIC8qIFxBWE1V ICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIDw8PSBPbmUKICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgfD0gQVhTVSAvKiBcQVhTVSAqLwogICAgICAgICAgICAgICAgICAgIExv Y2FsMSA9IEFYTVIgLyogXEFYTVIgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPDw9 IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMSB8PSBBWFNSIC8qIFxBWFNSICovCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwxIDw8PSAweDAyCiAgICAgICAgICAgICAgICAgICAg TG9jYWwwIHw9IExvY2FsMQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA0KSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo MHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAw eDAzLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4K ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSAweDA1KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFdGVUMpIC8qIFxXRlVDICovCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDcpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoVU5JNCkgLyogXFVOSTQgKi8KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwOCkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRklDKSAvKiBcV0ZJQyAq LwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA5 KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdGQlMp IC8qIFxXRkJTICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MEEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoV0VEVCkgLyogXFdFRFQgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gMHgwQikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKChDSVJNID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwQykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRjdDKSAv KiBcV0Y3QyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChFRFNNLCAxLCBTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9V VUlEICgiZjIxMjAyYmYtOGY3OC00ZGM2LWE1YjMtMWY3MzhlMjg1YWRlIikgLyogVW5rbm93 biBVVUlEICovKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFs aXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKEVEU00gKEFyZzApKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChFRlVOIChBcmcwLCBBcmcxLCBBcmcyLCBB cmczKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChJ RFNNIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoSUZVTiAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoKFdX RU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xPVCkpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJiYWQwMWI3NS0yMmE4LTRm NDgtODc5Mi1iZGRlOTQ2Nzc0N2QiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8p KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IE9uZSkpe30KICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcyID09IDB4MDIpKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChXUlRPID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUG93ZXIg X0RTTSBEMC9MMS4yIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdSVE8gPT0gMHgwMikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIldXQU4gUG93ZXIgX0RTTSBEMy9MMS4yIikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdSVE8gPT0gMHgw MykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIldXQU4gUG93ZXIgX0RTTSBEMy9MMiIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIldXQU4gUG93ZXIgX0RTTSBEaXNhYmxlZCIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChX UlRPKSAvKiBcV1JUTyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4 MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNj b3BlIChfU0IuUEMwMC5SUDA2LlBYU1gpCiAgICB7CiAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChSUFhYLCBTeXN0ZW1NZW1vcnksIEdNSU8gKFBCTlUsIF5fQURSICgpLCBfQURSKSwgMHgz MCkKICAgICAgICBGaWVsZCAoUlBYWCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgIHsKICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgy QyksIAogICAgICAgICAgICBTVklELCAgIDE2CiAgICAgICAgfQoKICAgICAgICBPcGVyYXRp b25SZWdpb24gKEZMRFIsIFN5c3RlbU1lbW9yeSwgKEdNSU8gKFBCTlUsIF5fQURSICgpLCBf QURSKSArIFdEQ08pLCAweDA2KQogICAgICAgIEZpZWxkIChGTERSLCBCeXRlQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgRENBUCwgICAzMiwgCiAgICAg ICAgICAgIERDVFIsICAgMTYKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo VlNFQywgU3lzdGVtTWVtb3J5LCAoR01JTyAoUEJOVSwgXl9BRFIgKCksIF9BRFIpICsgV1ZI TyksIDB4MTApCiAgICAgICAgRmllbGQgKFZTRUMsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgwQyksIAogICAgICAgICAgICAg ICAgLCAgIDEsIAogICAgICAgICAgICBCVElFLCAgIDEsIAogICAgICAgICAgICAgICAgLCAg IDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAog ICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAg ICAgICBPZmZzZXQgKDB4MEQpLCAKICAgICAgICAgICAgUERSQywgICAxCiAgICAgICAgfQoK ICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBCUlIsIFN5c3RlbU1lbW9yeSwgR01JTyAoUEJO VSwgXl9BRFIgKCksIF9BRFIpLCAweDAyQjgpCiAgICAgICAgRmllbGQgKFBCUlIsIEFueUFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgx OEMpLCAKICAgICAgICAgICAgTVNOTCwgICAzMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgx OTgpLCAKICAgICAgICAgICAgTDFDMSwgICAzMiwgCiAgICAgICAgICAgIEwxQzIsICAgMzIs IAogICAgICAgICAgICBPZmZzZXQgKDB4MkI0KSwgCiAgICAgICAgICAgIFBUTVIsICAgMzIK ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoV0lTVCwgMCwgU2VyaWFsaXplZCkKICAgICAg ICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFZESUQpKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoVkRJRCkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgyNTI2ODA4NikKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MUI4MDg2KQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChP bmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4 MjcyMzgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHgyNzI1ODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDI3MkI4MDg2KQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1ZEQyA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAg IE1ldGhvZCAoV1dTVCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFZESUQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTd2l0 Y2ggKFRvSW50ZWdlciAoVkRJRCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQ2FzZSAoMHg3MzYwODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICBDYXNlICgweDc1NjA4MDg2KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4NEQ3NTE0QzMpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwODAwMTRD MykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBEZWZh dWx0CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYg KFdJU1QgKCkpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChSU1RZLCBaZXJvKQogICAg ICAgICAgICBOYW1lIChGTFJDLCBaZXJvKQogICAgICAgICAgICBOYW1lIChCT0ZDLCBaZXJv KQogICAgICAgICAgICBOYW1lIChEUFJTLCBaZXJvKQogICAgICAgICAgICBQb3dlclJlc291 cmNlIChXUlNULCAweDA1LCAweDAwMDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFBSIF9TVEEi KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09O XzogUG93ZXIgT24KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJH ICgiV2lmaSBQUiBfT04iKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX09GRiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFBSIF9PRkYi KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoUlNUWSA9PSBPbmUpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkgUHJvZHVjdCBS U1QiKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1aXJlIChDTk1ULCAw eDAzRTgpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEZMUkMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBEQ1RSIC8qIFxfU0JfLlBDMDAu UlAwNi5QWFNYLkRDVFIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgfD0gMHg4MDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRENUUiA9IExv Y2FsMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChGREVMKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IERQUlMgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQk9GQyA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQlJNVCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJUUksg KFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdWSE8gIT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCVElFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFJETFkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUERSQyA9 IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFZERUwpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTR09WIChXTFJULCBaZXJvKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU2xlZXAgKFBERUwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT R09WIChXTFJULCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJPRkMg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEJSTVQgPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC VFJLIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdWSE8gIT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCVElFID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoUkRMWSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUFJT ID0gMHgwMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoQ05NVCkKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiV2lmaSBDb3JlIFJTVCIpCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoRENBUCAmIDB4MTAwMDAwMDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBEQ1RSIC8qIFxfU0JfLlBDMDAu UlAwNi5QWFNYLkRDVFIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8 PSAweDgwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERDVFIgPSBMb2NhbDAKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgRFBSUyA9 IE9uZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAg KDB4MDdEMCkKICAgICAgICAgICAgICAgICAgICBNU05MID0gRFIwMSAvKiBcRFIwMSAqLwog ICAgICAgICAgICAgICAgICAgIEwxQzEgPSBEUjAyIC8qIFxEUjAyICovCiAgICAgICAgICAg ICAgICAgICAgTDFDMiA9IERSMDMgLyogXERSMDMgKi8KICAgICAgICAgICAgICAgICAgICBQ VE1SID0gRFIwNCAvKiBcRFIwNCAqLwogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDA3 RDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUg KFNQTFgsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoU1BMQywgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoU1BMWCBb T25lXSkgW1plcm9dID0gRE9NMSAvKiBcRE9NMSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoU1BMWCBbT25lXSkgW09uZV0gPSBMSU0xIC8qIFxMSU0xICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChTUExYIFtPbmVdKSBbMHgwMl0gPSBUSU0xIC8qIFxUSU0xICovCiAgICAg ICAgICAgICAgICBSZXR1cm4gKFNQTFgpIC8qIFxfU0JfLlBDMDAuUlAwNi5QWFNYLlNQTFgg Ki8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV0FOWCwgUGFja2FnZSAoMHgw MykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdBTkQsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFtaZXJvXSA9 IFplcm8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFtPbmVdID0gVFJE MCAvKiBcVFJEMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBbT25lXSkgWzB4 MDJdID0gVFJMMCAvKiBcVFJMMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBb MHgwMl0pIFtaZXJvXSA9IE9uZQogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBbMHgw Ml0pIFtPbmVdID0gVFJEMSAvKiBcVFJEMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0FOWCBbMHgwMl0pIFsweDAyXSA9IFRSTDEgLyogXFRSTDEgKi8KICAgICAgICAgICAgICAg IFJldHVybiAoV0FOWCkgLyogXF9TQl8uUEMwMC5SUDA2LlBYU1guV0FOWCAqLwogICAgICAg ICAgICB9CgogICAgICAgICAgICBOYW1lIChXUkRYLCBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAw MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1JERCwgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWCBbT25lXSkgW1plcm9d ID0gV0RNMSAvKiBcV0RNMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWCBbT25l XSkgW09uZV0gPSBDSUQxIC8qIFxDSUQxICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdS RFgpIC8qIFxfU0JfLlBDMDAuUlAwNi5QWFNYLldSRFggKi8KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTmFtZSAoV1JEWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDJFKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgIDB4ODAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAg ICAgTWV0aG9kIChXUkRTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbT25lXSA9IFNUWEUgLyogXFNUWEUgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDAyXSA9IFNUMTAgLyog XFNUMTAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDAzXSA9 IFNUMTEgLyogXFNUMTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0p IFsweDA0XSA9IFNUMTIgLyogXFNUMTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdS RFkgW09uZV0pIFsweDA1XSA9IFNUMTMgLyogXFNUMTMgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdSRFkgW09uZV0pIFsweDA2XSA9IFNUMTQgLyogXFNUMTQgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA3XSA9IFNUMTUgLyogXFNUMTUgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA4XSA9IFNUMTYgLyog XFNUMTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA5XSA9 IFNUMTcgLyogXFNUMTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0p IFsweDBBXSA9IFNUMTggLyogXFNUMTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdS RFkgW09uZV0pIFsweDBCXSA9IFNUMTkgLyogXFNUMTkgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdSRFkgW09uZV0pIFsweDBDXSA9IFNUNTAgLyogXFNUNTAgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBEXSA9IFNUNTEgLyogXFNUNTEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBFXSA9IFNUNTIgLyog XFNUNTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBGXSA9 IFNUNTMgLyogXFNUNTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0p IFsweDEwXSA9IFNUNTQgLyogXFNUNTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdS RFkgW09uZV0pIFsweDExXSA9IFNUNTUgLyogXFNUNTUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdSRFkgW09uZV0pIFsweDEyXSA9IFNUNTYgLyogXFNUNTYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDEzXSA9IFNUNTcgLyogXFNUNTcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE0XSA9IFNUNTggLyog XFNUNTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE1XSA9 IFNUNTkgLyogXFNUNTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0p IFsweDE2XSA9IFNUNUEgLyogXFNUNUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdS RFkgW09uZV0pIFsweDE3XSA9IFNUNUIgLyogXFNUNUIgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdSRFkgW09uZV0pIFsweDE4XSA9IENEMTAgLyogXENEMTAgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE5XSA9IENEMTEgLyogXENEMTEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFBXSA9IENEMTIgLyog XENEMTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFCXSA9 IENEMTMgLyogXENEMTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0p IFsweDFDXSA9IENEMTQgLyogXENEMTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdS RFkgW09uZV0pIFsweDFEXSA9IENEMTUgLyogXENEMTUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdSRFkgW09uZV0pIFsweDFFXSA9IENEMTYgLyogXENEMTYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFGXSA9IENEMTcgLyogXENEMTcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDIwXSA9IENEMTggLyog XENEMTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDIxXSA9 IENEMTkgLyogXENEMTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0p IFsweDIyXSA9IENEMUEgLyogXENEMUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdS RFkgW09uZV0pIFsweDIzXSA9IENEMjAgLyogXENEMjAgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdSRFkgW09uZV0pIFsweDI0XSA9IENEMjEgLyogXENEMjEgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI1XSA9IENEMjIgLyogXENEMjIgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI2XSA9IENEMjMgLyog XENEMjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI3XSA9 IENEMjQgLyogXENEMjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0p IFsweDI4XSA9IENEMjUgLyogXENEMjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdS RFkgW09uZV0pIFsweDI5XSA9IENEMjYgLyogXENEMjYgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdSRFkgW09uZV0pIFsweDJBXSA9IENEMjcgLyogXENEMjcgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJCXSA9IENEMjggLyogXENEMjggKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJDXSA9IENEMjkgLyog XENEMjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJEXSA9 IENEMkEgLyogXENEMkEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoV1JEWSkgLyogXF9T Ql8uUEMwMC5SUDA2LlBYU1guV1JEWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBO YW1lIChFV1JZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4ODcpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9KQogICAgICAgICAgICBNZXRob2QgKEVXUkQsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFtPbmVdID0g U1RERSAvKiBcU1RERSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MDJdID0gU1RSUyAvKiBcU1RSUyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MDNdID0gU1QyMCAvKiBcU1QyMCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4MDRdID0gU1QyMSAvKiBcU1QyMSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDVdID0gU1QyMiAvKiBcU1QyMiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDZdID0gU1QyMyAvKiBc U1QyMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDddID0g U1QyNCAvKiBcU1QyNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MDhdID0gU1QyNSAvKiBcU1QyNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MDldID0gU1QyNiAvKiBcU1QyNiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4MEFdID0gU1QyNyAvKiBcU1QyNyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MEJdID0gU1QyOCAvKiBcU1QyOCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MENdID0gU1QyOSAvKiBc U1QyOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MERdID0g U1Q2MCAvKiBcU1Q2MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MEVdID0gU1Q2MSAvKiBcU1Q2MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MEZdID0gU1Q2MiAvKiBcU1Q2MiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4MTBdID0gU1Q2MyAvKiBcU1Q2MyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTFdID0gU1Q2NCAvKiBcU1Q2NCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTJdID0gU1Q2NSAvKiBc U1Q2NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTNdID0g U1Q2NiAvKiBcU1Q2NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MTRdID0gU1Q2NyAvKiBcU1Q2NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MTVdID0gU1Q2OCAvKiBcU1Q2OCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4MTZdID0gU1Q2OSAvKiBcU1Q2OSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTddID0gU1Q2QSAvKiBcU1Q2QSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MThdID0gU1Q2QiAvKiBc U1Q2QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTldID0g U1QzMCAvKiBcU1QzMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MUFdID0gU1QzMSAvKiBcU1QzMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MUJdID0gU1QzMiAvKiBcU1QzMiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4MUNdID0gU1QzMyAvKiBcU1QzMyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MURdID0gU1QzNCAvKiBcU1QzNCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUVdID0gU1QzNSAvKiBc U1QzNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUZdID0g U1QzNiAvKiBcU1QzNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MjBdID0gU1QzNyAvKiBcU1QzNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MjFdID0gU1QzOCAvKiBcU1QzOCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4MjJdID0gU1QzOSAvKiBcU1QzOSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjNdID0gU1Q3MCAvKiBcU1Q3MCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjRdID0gU1Q3MSAvKiBc U1Q3MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjVdID0g U1Q3MiAvKiBcU1Q3MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MjZdID0gU1Q3MyAvKiBcU1Q3MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MjddID0gU1Q3NCAvKiBcU1Q3NCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4MjhdID0gU1Q3NSAvKiBcU1Q3NSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjldID0gU1Q3NiAvKiBcU1Q3NiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkFdID0gU1Q3NyAvKiBc U1Q3NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkJdID0g U1Q3OCAvKiBcU1Q3OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MkNdID0gU1Q3OSAvKiBcU1Q3OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MkRdID0gU1Q3QSAvKiBcU1Q3QSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4MkVdID0gU1Q3QiAvKiBcU1Q3QiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkZdID0gU1Q0MCAvKiBcU1Q0MCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzBdID0gU1Q0MSAvKiBc U1Q0MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzFdID0g U1Q0MiAvKiBcU1Q0MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MzJdID0gU1Q0MyAvKiBcU1Q0MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MzNdID0gU1Q0NCAvKiBcU1Q0NCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4MzRdID0gU1Q0NSAvKiBcU1Q0NSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzVdID0gU1Q0NiAvKiBcU1Q0NiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzZdID0gU1Q0NyAvKiBc U1Q0NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzddID0g U1Q0OCAvKiBcU1Q0OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MzhdID0gU1Q0OSAvKiBcU1Q0OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MzldID0gU1Q4MCAvKiBcU1Q4MCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4M0FdID0gU1Q4MSAvKiBcU1Q4MSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0JdID0gU1Q4MiAvKiBcU1Q4MiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0NdID0gU1Q4MyAvKiBc U1Q4MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0RdID0g U1Q4NCAvKiBcU1Q4NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4M0VdID0gU1Q4NSAvKiBcU1Q4NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4M0ZdID0gU1Q4NiAvKiBcU1Q4NiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NDBdID0gU1Q4NyAvKiBcU1Q4NyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDFdID0gU1Q4OCAvKiBcU1Q4OCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDJdID0gU1Q4OSAvKiBc U1Q4OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDNdID0g U1Q4QSAvKiBcU1Q4QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4NDRdID0gU1Q4QiAvKiBcU1Q4QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4NDVdID0gQ0QzMCAvKiBcQ0QzMCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NDZdID0gQ0QzMSAvKiBcQ0QzMSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDddID0gQ0QzMiAvKiBcQ0QzMiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDhdID0gQ0QzMyAvKiBc Q0QzMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDldID0g Q0QzNCAvKiBcQ0QzNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4NEFdID0gQ0QzNSAvKiBcQ0QzNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4NEJdID0gQ0QzNiAvKiBcQ0QzNiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NENdID0gQ0QzNyAvKiBcQ0QzNyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NERdID0gQ0QzOCAvKiBcQ0QzOCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NEVdID0gQ0QzOSAvKiBc Q0QzOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NEZdID0g Q0QzQSAvKiBcQ0QzQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4NTBdID0gQ0QzQiAvKiBcQ0QzQiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4NTFdID0gQ0QzQyAvKiBcQ0QzQyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NTJdID0gQ0QzRCAvKiBcQ0QzRCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTNdID0gQ0QzRSAvKiBcQ0QzRSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTRdID0gQ0QzRiAvKiBc Q0QzRiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTVdID0g Q0Q0MCAvKiBcQ0Q0MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4NTZdID0gQ0Q0MSAvKiBcQ0Q0MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4NTddID0gQ0Q0MiAvKiBcQ0Q0MiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NThdID0gQ0Q0MyAvKiBcQ0Q0MyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTldID0gQ0Q0NCAvKiBcQ0Q0NCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUFdID0gQ0Q0NSAvKiBc Q0Q0NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUJdID0g Q0Q0NiAvKiBcQ0Q0NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4NUNdID0gQ0Q0NyAvKiBcQ0Q0NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4NURdID0gQ0Q0OCAvKiBcQ0Q0OCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NUVdID0gQ0Q0OSAvKiBcQ0Q0OSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUZdID0gQ0Q0QSAvKiBcQ0Q0QSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjBdID0gQ0Q0QiAvKiBc Q0Q0QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjFdID0g Q0Q0QyAvKiBcQ0Q0QyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4NjJdID0gQ0Q0RCAvKiBcQ0Q0RCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4NjNdID0gQ0Q0RSAvKiBcQ0Q0RSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NjRdID0gQ0Q0RiAvKiBcQ0Q0RiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjVdID0gQ0Q1MCAvKiBcQ0Q1MCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjZdID0gQ0Q1MSAvKiBc Q0Q1MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjddID0g Q0Q1MiAvKiBcQ0Q1MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4NjhdID0gQ0Q1MyAvKiBcQ0Q1MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4NjldID0gQ0Q1NCAvKiBcQ0Q1NCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NkFdID0gQ0Q1NSAvKiBcQ0Q1NSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkJdID0gQ0Q1NiAvKiBcQ0Q1NiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkNdID0gQ0Q1NyAvKiBc Q0Q1NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkRdID0g Q0Q1OCAvKiBcQ0Q1OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4NkVdID0gQ0Q1OSAvKiBcQ0Q1OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4NkZdID0gQ0Q1QSAvKiBcQ0Q1QSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NzBdID0gQ0Q1QiAvKiBcQ0Q1QiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzFdID0gQ0Q1QyAvKiBcQ0Q1QyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzJdID0gQ0Q1RCAvKiBc Q0Q1RCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzNdID0g Q0Q1RSAvKiBcQ0Q1RSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4NzRdID0gQ0Q1RiAvKiBcQ0Q1RiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4NzVdID0gQ0Q2MCAvKiBcQ0Q2MCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NzZdID0gQ0Q2MSAvKiBcQ0Q2MSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzddID0gQ0Q2MiAvKiBcQ0Q2MiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzhdID0gQ0Q2MyAvKiBc Q0Q2MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzldID0g Q0Q2NCAvKiBcQ0Q2NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4N0FdID0gQ0Q2NSAvKiBcQ0Q2NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4N0JdID0gQ0Q2NiAvKiBcQ0Q2NiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4N0NdID0gQ0Q2NyAvKiBcQ0Q2NyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0RdID0gQ0Q2OCAvKiBcQ0Q2OCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0VdID0gQ0Q2OSAvKiBc Q0Q2OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0ZdID0g Q0Q2QSAvKiBcQ0Q2QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4ODBdID0gQ0Q2QiAvKiBcQ0Q2QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4ODFdID0gQ0Q2QyAvKiBcQ0Q2QyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4ODJdID0gQ0Q2RCAvKiBcQ0Q2RCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODNdID0gQ0Q2RSAvKiBcQ0Q2RSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODRdID0gQ0Q2RiAvKiBc Q0Q2RiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODVdID0g Q0Q3MCAvKiBcQ0Q3MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4ODZdID0gQ0Q3MSAvKiBcQ0Q3MSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChFV1JZ KSAvKiBcX1NCXy5QQzAwLlJQMDYuUFhTWC5FV1JZICovCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE5hbWUgKFdHRFksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHg0QSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAg ICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAg IE1ldGhvZCAoV0dEUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgW09uZV0gPSBTREdOIC8qIFxTREdOICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwMl0gPSBTRDExIC8qIFxT RDExICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwM10gPSBT RDEyIC8qIFxTRDEyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgwNF0gPSBTRDEzIC8qIFxTRDEzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgwNV0gPSBTRDE0IC8qIFxTRDE0ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgwNl0gPSBTRDE1IC8qIFxTRDE1ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwN10gPSBTRDE2IC8qIFxTRDE2ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwOF0gPSBTRDE3IC8qIFxT RDE3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwOV0gPSBT RDE4IC8qIFxTRDE4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgwQV0gPSBTRDE5IC8qIFxTRDE5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgwQl0gPSBTRDIxIC8qIFxTRDIxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgwQ10gPSBTRDIyIC8qIFxTRDIyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwRF0gPSBTRDIzIC8qIFxTRDIzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwRV0gPSBTRDI0IC8qIFxT RDI0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwRl0gPSBT RDI1IC8qIFxTRDI1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgxMF0gPSBTRDI2IC8qIFxTRDI2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgxMV0gPSBTRDI3IC8qIFxTRDI3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgxMl0gPSBTRDI4IC8qIFxTRDI4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxM10gPSBTRDI5IC8qIFxTRDI5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxNF0gPSBTRDMxIC8qIFxT RDMxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxNV0gPSBT RDMyIC8qIFxTRDMyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgxNl0gPSBTRDMzIC8qIFxTRDMzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgxN10gPSBTRDM0IC8qIFxTRDM0ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgxOF0gPSBTRDM1IC8qIFxTRDM1ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxOV0gPSBTRDM2IC8qIFxTRDM2ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxQV0gPSBTRDM3IC8qIFxT RDM3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxQl0gPSBT RDM4IC8qIFxTRDM4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgxQ10gPSBTRDM5IC8qIFxTRDM5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgxRF0gPSBTRDQxIC8qIFxTRDQxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgxRV0gPSBTRDQyIC8qIFxTRDQyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxRl0gPSBTRDQzIC8qIFxTRDQzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyMF0gPSBTRDQ0IC8qIFxT RDQ0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyMV0gPSBT RDQ1IC8qIFxTRDQ1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgyMl0gPSBTRDQ2IC8qIFxTRDQ2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgyM10gPSBTRDQ3IC8qIFxTRDQ3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgyNF0gPSBTRDQ4IC8qIFxTRDQ4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyNV0gPSBTRDQ5IC8qIFxTRDQ5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyNl0gPSBTRDUxIC8qIFxT RDUxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyN10gPSBT RDUyIC8qIFxTRDUyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgyOF0gPSBTRDUzIC8qIFxTRDUzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgyOV0gPSBTRDU0IC8qIFxTRDU0ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgyQV0gPSBTRDU1IC8qIFxTRDU1ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQl0gPSBTRDU2IC8qIFxTRDU2ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQ10gPSBTRDU3IC8qIFxT RDU3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyRF0gPSBT RDU4IC8qIFxTRDU4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgyRV0gPSBTRDU5IC8qIFxTRDU5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgyRl0gPSBTRDYxIC8qIFxTRDYxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgzMF0gPSBTRDYyIC8qIFxTRDYyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMV0gPSBTRDYzIC8qIFxTRDYzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMl0gPSBTRDY0IC8qIFxT RDY0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzM10gPSBT RDY1IC8qIFxTRDY1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgzNF0gPSBTRDY2IC8qIFxTRDY2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgzNV0gPSBTRDY3IC8qIFxTRDY3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgzNl0gPSBTRDY4IC8qIFxTRDY4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzN10gPSBTRDY5IC8qIFxTRDY5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzOF0gPSBTRDcxIC8qIFxT RDcxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzOV0gPSBT RDcyIC8qIFxTRDcyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgzQV0gPSBTRDczIC8qIFxTRDczICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgzQl0gPSBTRDc0IC8qIFxTRDc0ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgzQ10gPSBTRDc1IC8qIFxTRDc1ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRF0gPSBTRDc2IC8qIFxTRDc2ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRV0gPSBTRDc3IC8qIFxT RDc3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRl0gPSBT RDc4IC8qIFxTRDc4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHg0MF0gPSBTRDc5IC8qIFxTRDc5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHg0MV0gPSBTRDgxIC8qIFxTRDgxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHg0Ml0gPSBTRDgyIC8qIFxTRDgyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0M10gPSBTRDgzIC8qIFxTRDgzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0NF0gPSBTRDg0IC8qIFxT RDg0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0NV0gPSBT RDg1IC8qIFxTRDg1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHg0Nl0gPSBTRDg2IC8qIFxTRDg2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHg0N10gPSBTRDg3IC8qIFxTRDg3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHg0OF0gPSBTRDg4IC8qIFxTRDg4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0OV0gPSBTRDg5IC8qIFxTRDg5ICovCiAg ICAgICAgICAgICAgICBSZXR1cm4gKFdHRFkpIC8qIFxfU0JfLlBDMDAuUlAwNi5QWFNYLldH RFkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoRUNLWSwgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChFQ0tWLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFQ0tZIFtPbmVdKSBb T25lXSA9IENFQ1YgLyogXENFQ1YgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoRUNLWSkg LyogXF9TQl8uUEMwMC5SUDA2LlBYU1guRUNLWSAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBOYW1lIChQUEFZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MTgpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgxOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgxOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAg ICAgMHgyOAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBN ZXRob2QgKFBQQUcsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFtPbmVdID0gV0FHTSAvKiBcV0FHTSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDJdID0gQUdBMSAvKiBcQUdB MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDNdID0gQUdB MiAvKiBcQUdBMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4 MDRdID0gQUdBMyAvKiBcQUdBMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBb T25lXSkgWzB4MDVdID0gQUdBNCAvKiBcQUdBNCAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoUFBBWSBbT25lXSkgWzB4MDZdID0gQUdBNSAvKiBcQUdBNSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDddID0gQUdBNiAvKiBcQUdBNiAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDhdID0gQUdBNyAvKiBcQUdB NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDldID0gQUdB OCAvKiBcQUdBOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4 MEFdID0gQUdBOSAvKiBcQUdBOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBb T25lXSkgWzB4MEJdID0gQUdBQSAvKiBcQUdBQSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoUFBBWSBbT25lXSkgWzB4MENdID0gQUdBQiAvKiBcQUdBQiAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MERdID0gQUdCMSAvKiBcQUdCMSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MEVdID0gQUdCMiAvKiBcQUdC MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MEZdID0gQUdC MyAvKiBcQUdCMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4 MTBdID0gQUdCNCAvKiBcQUdCNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBb T25lXSkgWzB4MTFdID0gQUdCNSAvKiBcQUdCNSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoUFBBWSBbT25lXSkgWzB4MTJdID0gQUdCNiAvKiBcQUdCNiAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTNdID0gQUdCNyAvKiBcQUdCNyAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTRdID0gQUdCOCAvKiBcQUdC OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTVdID0gQUdC OSAvKiBcQUdCOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4 MTZdID0gQUdCQSAvKiBcQUdCQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBb T25lXSkgWzB4MTddID0gQUdCQiAvKiBcQUdCQiAqLwogICAgICAgICAgICAgICAgUmV0dXJu IChQUEFZKSAvKiBcX1NCXy5QQzAwLlJQMDYuUFhTWC5QUEFZICovCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE5hbWUgKFdQRlksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1BGQywgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1BGWSBb T25lXSkgW09uZV0gPSBXUEZBIC8qIFxXUEZBICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXUEZZIFtPbmVdKSBbMHgwMl0gPSBXUEZCIC8qIFxXUEZCICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbMHgwM10gPSBcV1BGQwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1BGWSBbT25lXSkgWzB4MDRdID0gV1BGRCAvKiBcV1BGRCAqLwogICAgICAg ICAgICAgICAgUmV0dXJuIChXUEZZKSAvKiBcX1NCXy5QQzAwLlJQMDYuUFhTWC5XUEZZICov CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdUU1ksIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDEzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4 MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFpl cm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9k IChXVEFTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXVFNZIFtPbmVdKSBbT25lXSA9IFdUU0UgLyogXFdUU0UgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDAyXSA9IFdUTEUgLyogXFdUTEUgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDAzXSA9IEJMMDEgLyog XEJMMDEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA0XSA9 IEJMMDIgLyogXEJMMDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0p IFsweDA1XSA9IEJMMDMgLyogXEJMMDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdU U1kgW09uZV0pIFsweDA2XSA9IEJMMDQgLyogXEJMMDQgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdUU1kgW09uZV0pIFsweDA3XSA9IEJMMDUgLyogXEJMMDUgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA4XSA9IEJMMDYgLyogXEJMMDYgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA5XSA9IEJMMDcgLyog XEJMMDcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBBXSA9 IEJMMDggLyogXEJMMDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0p IFsweDBCXSA9IEJMMDkgLyogXEJMMDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdU U1kgW09uZV0pIFsweDBDXSA9IEJMMTAgLyogXEJMMTAgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdUU1kgW09uZV0pIFsweDBEXSA9IEJMMTEgLyogXEJMMTEgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBFXSA9IEJMMTIgLyogXEJMMTIgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBGXSA9IEJMMTMgLyog XEJMMTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDEwXSA9 IEJMMTQgLyogXEJMMTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0p IFsweDExXSA9IEJMMTUgLyogXEJMMTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdU U1kgW09uZV0pIFsweDEyXSA9IEJMMTYgLyogXEJMMTYgKi8KICAgICAgICAgICAgICAgIFJl dHVybiAoV1RTWSkgLyogXF9TQl8uUEMwMC5SUDA2LlBYU1guV1RTWSAqLwogICAgICAgICAg ICB9CgogICAgICAgICAgICBOYW1lIChXQUlZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQog ICAgICAgICAgICBNZXRob2QgKFdBSVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBSVkgW09uZV0pIFtPbmVdID0gV0xCSSAvKiBc V0xCSSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FJWSBbT25lXSkgWzB4MDJdID0g V0hCSSAvKiBcV0hCSSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXQUlZKSAvKiBcX1NC Xy5QQzAwLlJQMDYuUFhTWC5XQUlZICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5h bWUgKFNBRFgsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICAweDgw MDAwMDAwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MTIsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfSkKICAgICAgICAgICAgTWV0aG9kIChTQURTLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChTQURYIFtPbmVdKSBbT25lXSA9IEFU RFYgLyogXEFURFYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFNBRFggWzB4MDJdKSBb T25lXSA9IEFURFYgLyogXEFURFYgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoU0FEWCkg LyogXF9TQl8uUEMwMC5SUDA2LlBYU1guU0FEWCAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBOYW1lIChHUENYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChHUEMsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoR1BDWCkgLyog XF9TQl8uUEMwMC5SUDA2LlBYU1guR1BDWCAqLwogICAgICAgICAgICB9CgogICAgICAgICAg ICBOYW1lIChHTEFYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAg WmVybwogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIE1ldGhvZCAoR0xBSSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBUjogR0xBSSBtZXRob2QuIENH TFMgPSAiLCBUb0hleFN0cmluZyAoQ0dMUykpKQogICAgICAgICAgICAgICAgRGVyZWZPZiAo R0xBWCBbT25lXSkgW09uZV0gPSBDR0xTIC8qIFxDR0xTICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChHTEFYIFsweDAyXSkgW09uZV0gPSBDR0xTIC8qIFxDR0xTICovCiAgICAgICAg ICAgICAgICBSZXR1cm4gKEdMQVgpIC8qIFxfU0JfLlBDMDAuUlAwNi5QWFNYLkdMQVggKi8K ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKCgoV1dFTiAhPSBaZXJvKSAm JiAoV1dSUCA9PSBTTE9UKSkpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKEZIUkYs IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgo R0dPViAoUFJTVCkgIT0gV1BSUCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgREwyMyAoKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIERMMjMoKSBE b25lIikKICAgICAgICAgICAgICAgICAgICBTR09WIChQUlNULCBXUFJQKQogICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJXV0FOIFBFUlNUOjAgRG9uZSIpCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQURCRyAoIkFzc3VtZSBXV0FOIERMMjMoKSBpcyBhbHJlYWR5IGRvbmUiKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFNsZWVwIChUUjJCKQogICAgICAgICAg ICAgICAgU0dPViAoV0JSUywgUEJSUykKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFJT VDowIERvbmUiKQogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFplcm8pKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNsZWVwIChUQlRHKQogICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRCVEcgIiwgVG9EZWNpbWFsU3Ry aW5nIChUQlRHKSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlSWYg KChBcmcwID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg U1BDTyAoV0NMSywgWmVybykKICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBTQ0xL OjAgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFRCMkYpCiAgICAgICAgICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEIyRiAiLCBUb0RlY2ltYWxTdHJp bmcgKFRCMkYpKSkKICAgICAgICAgICAgICAgICAgICBTR09WIChXRkNQLCAoflBGQ1AgJiBP bmUpKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBXUjowIERvbmUiKQogICAg ICAgICAgICAgICAgICAgIFNsZWVwIChURkRJKQogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiU0xQIFRGREkgIiwgVG9EZWNpbWFsU3RyaW5nIChURkRJKSkpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIlVuc3VwcG9ydGVkIEFyZzAgaXMgZGV0ZWN0 ZWQuIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChTSFJGLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBQU0QwIChTTE9UKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gTVBIWVBHOjAg RG9uZSIpCiAgICAgICAgICAgICAgICBTUENPIChXQ0xLLCBPbmUpCiAgICAgICAgICAgICAg ICBBREJHICgiV1dBTiBTQ0xLOjEgRG9uZSIpCiAgICAgICAgICAgICAgICBTR09WIChXRkNQ LCBQRkNQKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFdSOjEgRG9uZSIpCiAgICAg ICAgICAgICAgICBTbGVlcCAoVE4yQikKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiU0xQIFROMkIgIiwgVG9EZWNpbWFsU3RyaW5nIChUTjJCKSkpCiAgICAgICAgICAg ICAgICBTR09WIChXQlJTLCAoflBCUlMgJiBPbmUpKQogICAgICAgICAgICAgICAgQURCRyAo IldXQU4gUlNUOjEgRG9uZSIpCiAgICAgICAgICAgICAgICBTbGVlcCAoVEIyUikKICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRCMlIgIiwgVG9EZWNpbWFsU3Ry aW5nIChUQjJSKSkpCiAgICAgICAgICAgICAgICBTR09WIChQUlNULCAofldQUlAgJiBPbmUp KQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUEVSU1Q6MCBEb25lIikKICAgICAgICAg ICAgICAgIEwyM0QgKCkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIEwyM0QoKSBEb25l IikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChET1NWLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAg ICAgICAgICAgICAgICBXaGlsZSAoKChTVklEICE9IFdTSUQpICYmIChMb2NhbDAgPCBXU1RP KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiREVUIFRpbWUgIiwgVG9EZWNpbWFsU3Ry aW5nIChMb2NhbDApKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUlNU LCAwLCBTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIEFEQkcgKCJfUlNUIFdXQU4iKQogICAgICAgICAgICAgICAgSWYg KChXV0VOID09IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IExvY2FsMCA9IEFjcXVpcmUgKFdXTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICBB REJHICgiV1dBTiBGTERSIE11dGV4OiBBY3F1aXJlZCBUcnkgRG9uZSIpCiAgICAgICAgICAg ICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBGTERSIikKICAgICAg ICAgICAgICAgICAgICAgICAgRkhSRiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAg U0hSRiAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRW5kIFdXQU4gRkxEUiIp CiAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFdXTVQpCiAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJXV0FOIEZMRFIgTXV0ZXg6UmVsZWFzZSBEb25lIikKICAgICAg ICAgICAgICAgICAgICAgICAgRE9TViAoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBTR09WIChXQlJTLCBQQlJTKQogICAgICAgICAgICAgICAgICAg IFNsZWVwICgweEM4KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhTWCwgT25lKSAv LyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgICAgICBTR09WIChQUlNULCAofldQUlAg JiBPbmUpKQogICAgICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsICh+UEJSUyAmIE9uZSkp CiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4QzgpCiAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTEFTWCA9PSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo TG9jYWwwID4gMHgxNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJGTERSIFRPIikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAr KwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4 MEEpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJSVlAgRGVsYXkg VGltZSAiLCBUb0RlY2ltYWxTdHJpbmcgKExvY2FsMCkpKQogICAgICAgICAgICAgICAgICAg IE5vdGlmeSAoUFhTWCwgT25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgUG93ZXJSZXNvdXJjZSAoTVJTVCwgMHgwNSwg MHgwMDAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAs IFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBBREJHICgiV1dBTiBQUiBfU1RBIikKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9PTiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9uCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFIgX09OIikKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9PRkYsIDAsIFNlcmlhbGl6 ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBBREJHICgiV1dBTiBQUiBfT0ZGIikKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBEZXZp Y2UgUmVzZXQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg PSBBY3F1aXJlIChXV01ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldX QU4gUExEUiBNdXRleDogQWNxdWlyZWQgVHJ5IERvbmUiKQogICAgICAgICAgICAgICAgICAg IElmICgoTG9jYWwwID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlN0YXJ0IFdXQU4gUExEUiIpCiAgICAgICAgICAgICAg ICAgICAgICAgIEZIUkYgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgU0hSRiAoKQog ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRW5kIFdXQU4gUFIgX1JTVCIpCiAgICAg ICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFdXTVQpCiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJXV0FOIFBMRFIgTXV0ZXg6IFJlbGVhc2UgRG9uZSIpCiAgICAgICAgICAg ICAgICAgICAgICAgIERPU1YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmICgoV0lTVCAoKSB8 fCAoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xPVCkpKSkKICAgICAgICB7CiAgICAg ICAgICAgIE1ldGhvZCAoX1BSUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlI6IFBvd2Vy IFJlc291cmNlIGZvciBSZXNldAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo V0lTVCAoKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChXUlNUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgV1JTVAogICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoKChXV0VOICE9IFplcm8pICYmIChXV1JQID09IFNMT1QpKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChNUlNU KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTVJTVAogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgV1JTVAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTmFtZSAoRkRFTCwgWmVybykKICAgICAgICAgICAgTmFtZSAoUERFTCwgWmVybykKICAg ICAgICAgICAgTmFtZSAoVkRFTCwgWmVybykKICAgICAgICAgICAgTWV0aG9kIChJRlVOLCA0 LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcxID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVy IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25l KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoInZQcm86ICIsIENWUFIpKQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChD VlBSIDw8IFplcm8pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJn MywgWmVybywgQ01EVCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFy ZzMsIDB4MDIsIENNRFApCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJDbWRUeXBlID0gIiwgVG9IZXhTdHJpbmcgKENNRFQpKSkKICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIkNtZFBheWxvYWQgPSAiLCBUb0hleFN0cmluZyAoQ01E UCkpKQogICAgICAgICAgICAgICAgICAgIElmICgoQ01EVCA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUlNUWSkgLyogXF9TQl8uUEMwMC5SUDA2LlBYU1guUlNUWSAqLwogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoQ29uZFJlZk9m IChcX1NCLlBDMDAuQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJHZXQgX1BSUiBN b2RlID0gIiwgXl5eQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoXl5eQ05WVy5SU1RUKSAvKiBcX1NCXy5QQzAwLkNOVlcuUlNUVCAqLwogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoKENNRFQgPT0gMHgwMikpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gKENNRFAgJiBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSU1RZID0gTG9j YWwwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoQ01EUCAmIDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPj49IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRkxSQyA9IExvY2FsMQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwyID0gKENNRFAgJiAweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwyID4+PSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT0ZDID0g TG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZUlmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5DTlZXLlJTVFQpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlNldCBfUFJSIE1vZGUgPSAiLCBUb0hleFN0cmluZyAoQ01EUCkpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgXl5eQ05WVy5SU1RUID0gQ01EUCAvKiBcX1NCXy5Q QzAwLlJQMDYuUFhTWC5JRlVOLkNNRFAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChDTURUID09IDB4MDMpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo XF9TQi5QQzAwLkNOVlcuUFJSUykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiR2V0IExhc3RfUFJS IHN0YXR1cyBQUlJTID0gIiwgVG9IZXhTdHJpbmcgKF5eXkNOVlcuUFJSUykpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICheXl5DTlZXLlBSUlMpIC8qIFxfU0JfLlBD MDAuQ05WVy5QUlJTICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZUlmIChXSVNUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkdldCBM YXN0X1BSUiBzdGF0dXMgRFBSUyA9ICIsIFRvSGV4U3RyaW5nIChEUFJTKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERQUlMpIC8qIFxfU0JfLlBDMDAuUlAwNi5Q WFNYLkRQUlMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKENSRkkgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSAweDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIFplcm8sIFBSVFQpCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChBcmczLCAweDAyLCBQUlREKQogICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVGltZXJUeXBlID0gIiwgVG9IZXhTdHJpbmcgKFBS VFQpKSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlRpbWVyRHVy YXRpb24gKG1zKSA9ICIsIFRvRGVjaW1hbFN0cmluZyAoUFJURCkpKQogICAgICAgICAgICAg ICAgICAgIElmICgoUFJUVCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgRkRFTCA9IFBSVEQgLyogXF9TQl8uUEMwMC5SUDA2LlBYU1gu SUZVTi5QUlREICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2VJZiAoKFBSVFQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBQREVMID0gUFJURCAvKiBcX1NCXy5QQzAwLlJQMDYuUFhTWC5J RlVOLlBSVEQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg RWxzZUlmICgoUFJUVCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFZERUwgPSBQUlREIC8qIFxfU0JfLlBDMDAuUlAwNi5QWFNYLklG VU4uUFJURCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiVGltZXJEdXJhdGlvbiBub3Qgc2V0IikKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKElEU00sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI3MjY2MTcyYy0y MjBiLTRiMjktODE0Zi03NWU0ZGQyNmI1ZmQiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChFRlVOLCA0LCBTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEZGLCAweDFGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEFDU0QgLyogXEFDU0QgKi8KICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gSTVCUyAvKiBcSTVCUyAqLwogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBVSEJTIC8qIFxVSEJTICovCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IEFYTVUgLyogXEFYTVUgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPDw9 IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSBBWFNVIC8qIFxBWFNVICovCiAg ICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQVhNUiAvKiBcQVhNUiAqLwogICAgICAgICAg ICAgICAgICAgIExvY2FsMSA8PD0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIHw9 IEFYU1IgLyogXEFYU1IgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPDw9IDB4MDIK ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gTG9jYWwxCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDUpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0ZVQykgLyogXFdGVUMgKi8K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVTkk0KSAv KiBcVU5JNCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSAweDA4KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFdGSUMpIC8qIFxXRklDICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgSWYgKChBcmcyID09IDB4MDkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoV0ZCUykgLyogXFdGQlMgKi8KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwQSkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRURUKSAvKiBcV0VEVCAqLwogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBCKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKENJUk0gPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSAweDBDKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFdGN0MpIC8qIFxXRjdDICovCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKEVEU00sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJmMjEyMDJiZi04Zjc4LTRkYzYtYTViMy0xZjcz OGUyODVhZGUiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1l dGhvZAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoRURTTSAoQXJnMCkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEVGVU4g KEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKElEU00gKEFyZzApKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChJRlVOIChBcmcwLCBBcmcxLCBBcmcy LCBBcmczKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgSWYgKCgoV1dFTiAhPSBaZXJvKSAmJiAoV1dSUCA9PSBTTE9UKSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoImJhZDAxYjc1LTIyYTgtNGY0OC04NzkyLWJkZGU5NDY3NzQ3ZCIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSl7fQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpe30KICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFdSVE8gPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiV1dBTiBQb3dlciBfRFNNIEQwL0wxLjIiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoV1JUTyA9 PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNNIEQzL0wxLjIiKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZUlmICgoV1JUTyA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNN IEQzL0wyIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNNIERpc2Fi bGVkIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFdSVE8pIC8qIFxXUlRPICovCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAg ICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAwLlJQMDcuUFhTWCkKICAgIHsKICAg ICAgICBPcGVyYXRpb25SZWdpb24gKFJQWFgsIFN5c3RlbU1lbW9yeSwgR01JTyAoUEJOVSwg Xl9BRFIgKCksIF9BRFIpLCAweDMwKQogICAgICAgIEZpZWxkIChSUFhYLCBBbnlBY2MsIE5v TG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBWRElELCAgIDMyLCAKICAg ICAgICAgICAgT2Zmc2V0ICgweDJDKSwgCiAgICAgICAgICAgIFNWSUQsICAgMTYKICAgICAg ICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoRkxEUiwgU3lzdGVtTWVtb3J5LCAoR01J TyAoUEJOVSwgXl9BRFIgKCksIF9BRFIpICsgV0RDTyksIDB4MDYpCiAgICAgICAgRmllbGQg KEZMRFIsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAg ICBEQ0FQLCAgIDMyLCAKICAgICAgICAgICAgRENUUiwgICAxNgogICAgICAgIH0KCiAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChWU0VDLCBTeXN0ZW1NZW1vcnksIChHTUlPIChQQk5VLCBe X0FEUiAoKSwgX0FEUikgKyBXVkhPKSwgMHgxMCkKICAgICAgICBGaWVsZCAoVlNFQywgQW55 QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgw eDBDKSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIEJUSUUsICAgMSwg CiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAg ICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAg ICAgICAsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgwRCksIAogICAgICAgICAgICBQ RFJDLCAgIDEKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUEJSUiwgU3lz dGVtTWVtb3J5LCBHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUiksIDB4MDJCOCkKICAgICAg ICBGaWVsZCAoUEJSUiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAg ICAgICAgICAgT2Zmc2V0ICgweDE4QyksIAogICAgICAgICAgICBNU05MLCAgIDMyLCAKICAg ICAgICAgICAgT2Zmc2V0ICgweDE5OCksIAogICAgICAgICAgICBMMUMxLCAgIDMyLCAKICAg ICAgICAgICAgTDFDMiwgICAzMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgyQjQpLCAKICAg ICAgICAgICAgUFRNUiwgICAzMgogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChXSVNULCAw LCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVkRJ RCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChW RElEKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI1 MjY4MDg2KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IENhc2UgKDB4MjcxQjgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgyNzIzODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MjU4MDg2KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MjcyQjgwODYpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTVkRD ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg fQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChXV1NULCAwLCBTZXJpYWxpemVkKQogICAg ICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVkRJRCkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChWRElEKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlICgweDczNjA4MDg2KQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4NzU2MDgwODYp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAo MHg0RDc1MTRDMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDA4MDAxNEMzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CiAg ICAgICAgfQoKICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAgICB7CiAgICAgICAgICAgIE5h bWUgKFJTVFksIFplcm8pCiAgICAgICAgICAgIE5hbWUgKEZMUkMsIFplcm8pCiAgICAgICAg ICAgIE5hbWUgKEJPRkMsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKERQUlMsIFplcm8pCiAg ICAgICAgICAgIFBvd2VyUmVzb3VyY2UgKFdSU1QsIDB4MDUsIDB4MDAwMCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg QURCRyAoIldpZmkgUFIgX1NUQSIpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT04sIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFBSIF9PTiIpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg QURCRyAoIldpZmkgUFIgX09GRiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChfUlNULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJl c2V0CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChSU1RZID09 IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiV2lmaSBQcm9kdWN0IFJTVCIpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IEFjcXVpcmUgKENOTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoRkxSQyA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IERDVFIgLyogXF9TQl8uUEMwMC5SUDA3LlBYU1guRENUUiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMCB8PSAweDgwMDAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBEQ1RSID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKEZERUwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRFBSUyA9IE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChCT0ZDID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCUk1UID09IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQlRSSyAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoV1ZITyAh PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJUSUUgPSBaZXJvCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVl cCAoUkRMWSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQRFJDID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT bGVlcCAoVkRFTCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNHT1YgKFdMUlQsIFpl cm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoUERFTCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNHT1YgKFdMUlQsIE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQk9GQyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQlJNVCA9PSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJUUksgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoV1ZI TyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJUSUUgPSBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNs ZWVwIChSRExZKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERQUlMgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZWxlYXNlIChDTk1UKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIENvcmUgUlNUIikKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChEQ0FQICYgMHgxMDAwMDAwMCkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IERDVFIgLyogXF9TQl8uUEMwMC5SUDA3LlBYU1guRENUUiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRENUUiA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBEUFJTID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoMHgwN0QwKQogICAgICAgICAgICAgICAgICAgIE1TTkwg PSBEUjAxIC8qIFxEUjAxICovCiAgICAgICAgICAgICAgICAgICAgTDFDMSA9IERSMDIgLyog XERSMDIgKi8KICAgICAgICAgICAgICAgICAgICBMMUMyID0gRFIwMyAvKiBcRFIwMyAqLwog ICAgICAgICAgICAgICAgICAgIFBUTVIgPSBEUjA0IC8qIFxEUjA0ICovCiAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKDB4MDdEMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgTmFtZSAoU1BMWCwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAz KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAg TWV0aG9kIChTUExDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBEZXJlZk9mIChTUExYIFtPbmVdKSBbWmVyb10gPSBET00xIC8qIFxET00xICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChTUExYIFtPbmVdKSBbT25lXSA9IExJTTEgLyogXExJ TTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFsweDAyXSA9IFRJ TTEgLyogXFRJTTEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoU1BMWCkgLyogXF9TQl8u UEMwMC5SUDA3LlBYU1guU1BMWCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1l IChXQU5YLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV0FORCwg MCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0FOWCBbT25lXSkgW1plcm9dID0gWmVybwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FO WCBbT25lXSkgW09uZV0gPSBUUkQwIC8qIFxUUkQwICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXQU5YIFtPbmVdKSBbMHgwMl0gPSBUUkwwIC8qIFxUUkwwICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXQU5YIFsweDAyXSkgW1plcm9dID0gT25lCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXQU5YIFsweDAyXSkgW09uZV0gPSBUUkQxIC8qIFxUUkQxICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXQU5YIFsweDAyXSkgWzB4MDJdID0gVFJMMSAvKiBcVFJM MSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXQU5YKSAvKiBcX1NCXy5QQzAwLlJQMDcu UFhTWC5XQU5YICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdSRFgsIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChXUkRE LCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9m IChXUkRYIFtPbmVdKSBbWmVyb10gPSBXRE0xIC8qIFxXRE0xICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRYIFtPbmVdKSBbT25lXSA9IENJRDEgLyogXENJRDEgKi8KICAgICAg ICAgICAgICAgIFJldHVybiAoV1JEWCkgLyogXF9TQl8uUEMwMC5SUDA3LlBYU1guV1JEWCAq LwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXUkRZLCBQYWNrYWdlICgweDAy KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MkUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg MHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdSRFMsIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFtPbmVd ID0gU1RYRSAvKiBcU1RYRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25l XSkgWzB4MDJdID0gU1QxMCAvKiBcU1QxMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1JEWSBbT25lXSkgWzB4MDNdID0gU1QxMSAvKiBcU1QxMSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDRdID0gU1QxMiAvKiBcU1QxMiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDVdID0gU1QxMyAvKiBcU1QxMyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDZdID0gU1QxNCAv KiBcU1QxNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDdd ID0gU1QxNSAvKiBcU1QxNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25l XSkgWzB4MDhdID0gU1QxNiAvKiBcU1QxNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1JEWSBbT25lXSkgWzB4MDldID0gU1QxNyAvKiBcU1QxNyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MEFdID0gU1QxOCAvKiBcU1QxOCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MEJdID0gU1QxOSAvKiBcU1QxOSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MENdID0gU1Q1MCAv KiBcU1Q1MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MERd ID0gU1Q1MSAvKiBcU1Q1MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25l XSkgWzB4MEVdID0gU1Q1MiAvKiBcU1Q1MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1JEWSBbT25lXSkgWzB4MEZdID0gU1Q1MyAvKiBcU1Q1MyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTBdID0gU1Q1NCAvKiBcU1Q1NCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTFdID0gU1Q1NSAvKiBcU1Q1NSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTJdID0gU1Q1NiAv KiBcU1Q1NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTNd ID0gU1Q1NyAvKiBcU1Q1NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25l XSkgWzB4MTRdID0gU1Q1OCAvKiBcU1Q1OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1JEWSBbT25lXSkgWzB4MTVdID0gU1Q1OSAvKiBcU1Q1OSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTZdID0gU1Q1QSAvKiBcU1Q1QSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTddID0gU1Q1QiAvKiBcU1Q1QiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MThdID0gQ0QxMCAv KiBcQ0QxMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTld ID0gQ0QxMSAvKiBcQ0QxMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25l XSkgWzB4MUFdID0gQ0QxMiAvKiBcQ0QxMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1JEWSBbT25lXSkgWzB4MUJdID0gQ0QxMyAvKiBcQ0QxMyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUNdID0gQ0QxNCAvKiBcQ0QxNCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MURdID0gQ0QxNSAvKiBcQ0QxNSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUVdID0gQ0QxNiAv KiBcQ0QxNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUZd ID0gQ0QxNyAvKiBcQ0QxNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25l XSkgWzB4MjBdID0gQ0QxOCAvKiBcQ0QxOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1JEWSBbT25lXSkgWzB4MjFdID0gQ0QxOSAvKiBcQ0QxOSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjJdID0gQ0QxQSAvKiBcQ0QxQSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjNdID0gQ0QyMCAvKiBcQ0QyMCAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjRdID0gQ0QyMSAv KiBcQ0QyMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjVd ID0gQ0QyMiAvKiBcQ0QyMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25l XSkgWzB4MjZdID0gQ0QyMyAvKiBcQ0QyMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1JEWSBbT25lXSkgWzB4MjddID0gQ0QyNCAvKiBcQ0QyNCAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjhdID0gQ0QyNSAvKiBcQ0QyNSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjldID0gQ0QyNiAvKiBcQ0QyNiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MkFdID0gQ0QyNyAv KiBcQ0QyNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MkJd ID0gQ0QyOCAvKiBcQ0QyOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25l XSkgWzB4MkNdID0gQ0QyOSAvKiBcQ0QyOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1JEWSBbT25lXSkgWzB4MkRdID0gQ0QyQSAvKiBcQ0QyQSAqLwogICAgICAgICAgICAgICAg UmV0dXJuIChXUkRZKSAvKiBcX1NCXy5QQzAwLlJQMDcuUFhTWC5XUkRZICovCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEVXUlksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgUGFja2FnZSAo MHg4NykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoRVdSRCwg MCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgW09uZV0gPSBTVERFIC8qIFxTVERFICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwMl0gPSBTVFJTIC8qIFxTVFJTICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwM10gPSBTVDIwIC8qIFxTVDIwICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwNF0gPSBTVDIxIC8q IFxTVDIxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwNV0g PSBTVDIyIC8qIFxTVDIyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgwNl0gPSBTVDIzIC8qIFxTVDIzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgwN10gPSBTVDI0IC8qIFxTVDI0ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwOF0gPSBTVDI1IC8qIFxTVDI1ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwOV0gPSBTVDI2IC8qIFxTVDI2ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwQV0gPSBTVDI3IC8q IFxTVDI3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwQl0g PSBTVDI4IC8qIFxTVDI4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgwQ10gPSBTVDI5IC8qIFxTVDI5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgwRF0gPSBTVDYwIC8qIFxTVDYwICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwRV0gPSBTVDYxIC8qIFxTVDYxICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwRl0gPSBTVDYyIC8qIFxTVDYyICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxMF0gPSBTVDYzIC8q IFxTVDYzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxMV0g PSBTVDY0IC8qIFxTVDY0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgxMl0gPSBTVDY1IC8qIFxTVDY1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgxM10gPSBTVDY2IC8qIFxTVDY2ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxNF0gPSBTVDY3IC8qIFxTVDY3ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxNV0gPSBTVDY4IC8qIFxTVDY4ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxNl0gPSBTVDY5IC8q IFxTVDY5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxN10g PSBTVDZBIC8qIFxTVDZBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgxOF0gPSBTVDZCIC8qIFxTVDZCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgxOV0gPSBTVDMwIC8qIFxTVDMwICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxQV0gPSBTVDMxIC8qIFxTVDMxICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxQl0gPSBTVDMyIC8qIFxTVDMyICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxQ10gPSBTVDMzIC8q IFxTVDMzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxRF0g PSBTVDM0IC8qIFxTVDM0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgxRV0gPSBTVDM1IC8qIFxTVDM1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgxRl0gPSBTVDM2IC8qIFxTVDM2ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyMF0gPSBTVDM3IC8qIFxTVDM3ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyMV0gPSBTVDM4IC8qIFxTVDM4ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyMl0gPSBTVDM5IC8q IFxTVDM5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyM10g PSBTVDcwIC8qIFxTVDcwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgyNF0gPSBTVDcxIC8qIFxTVDcxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgyNV0gPSBTVDcyIC8qIFxTVDcyICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyNl0gPSBTVDczIC8qIFxTVDczICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyN10gPSBTVDc0IC8qIFxTVDc0ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyOF0gPSBTVDc1IC8q IFxTVDc1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyOV0g PSBTVDc2IC8qIFxTVDc2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgyQV0gPSBTVDc3IC8qIFxTVDc3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgyQl0gPSBTVDc4IC8qIFxTVDc4ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyQ10gPSBTVDc5IC8qIFxTVDc5ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRF0gPSBTVDdBIC8qIFxTVDdBICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRV0gPSBTVDdCIC8q IFxTVDdCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRl0g PSBTVDQwIC8qIFxTVDQwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgzMF0gPSBTVDQxIC8qIFxTVDQxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgzMV0gPSBTVDQyIC8qIFxTVDQyICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzMl0gPSBTVDQzIC8qIFxTVDQzICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzM10gPSBTVDQ0IC8qIFxTVDQ0ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzNF0gPSBTVDQ1IC8q IFxTVDQ1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzNV0g PSBTVDQ2IC8qIFxTVDQ2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgzNl0gPSBTVDQ3IC8qIFxTVDQ3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgzN10gPSBTVDQ4IC8qIFxTVDQ4ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzOF0gPSBTVDQ5IC8qIFxTVDQ5ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzOV0gPSBTVDgwIC8qIFxTVDgwICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzQV0gPSBTVDgxIC8q IFxTVDgxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzQl0g PSBTVDgyIC8qIFxTVDgyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgzQ10gPSBTVDgzIC8qIFxTVDgzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgzRF0gPSBTVDg0IC8qIFxTVDg0ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzRV0gPSBTVDg1IC8qIFxTVDg1ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzRl0gPSBTVDg2IC8qIFxTVDg2ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0MF0gPSBTVDg3IC8q IFxTVDg3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0MV0g PSBTVDg4IC8qIFxTVDg4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg0Ml0gPSBTVDg5IC8qIFxTVDg5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg0M10gPSBTVDhBIC8qIFxTVDhBICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0NF0gPSBTVDhCIC8qIFxTVDhCICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0NV0gPSBDRDMwIC8qIFxDRDMwICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Nl0gPSBDRDMxIC8q IFxDRDMxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0N10g PSBDRDMyIC8qIFxDRDMyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg0OF0gPSBDRDMzIC8qIFxDRDMzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg0OV0gPSBDRDM0IC8qIFxDRDM0ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0QV0gPSBDRDM1IC8qIFxDRDM1ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Ql0gPSBDRDM2IC8qIFxDRDM2ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Q10gPSBDRDM3IC8q IFxDRDM3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0RF0g PSBDRDM4IC8qIFxDRDM4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg0RV0gPSBDRDM5IC8qIFxDRDM5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg0Rl0gPSBDRDNBIC8qIFxDRDNBICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1MF0gPSBDRDNCIC8qIFxDRDNCICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1MV0gPSBDRDNDIC8qIFxDRDNDICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Ml0gPSBDRDNEIC8q IFxDRDNEICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1M10g PSBDRDNFIC8qIFxDRDNFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg1NF0gPSBDRDNGIC8qIFxDRDNGICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg1NV0gPSBDRDQwIC8qIFxDRDQwICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Nl0gPSBDRDQxIC8qIFxDRDQxICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1N10gPSBDRDQyIC8qIFxDRDQyICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1OF0gPSBDRDQzIC8q IFxDRDQzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1OV0g PSBDRDQ0IC8qIFxDRDQ0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg1QV0gPSBDRDQ1IC8qIFxDRDQ1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg1Ql0gPSBDRDQ2IC8qIFxDRDQ2ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Q10gPSBDRDQ3IC8qIFxDRDQ3ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1RF0gPSBDRDQ4IC8qIFxDRDQ4ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1RV0gPSBDRDQ5IC8q IFxDRDQ5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Rl0g PSBDRDRBIC8qIFxDRDRBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg2MF0gPSBDRDRCIC8qIFxDRDRCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg2MV0gPSBDRDRDIC8qIFxDRDRDICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2Ml0gPSBDRDREIC8qIFxDRDREICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2M10gPSBDRDRFIC8qIFxDRDRFICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2NF0gPSBDRDRGIC8q IFxDRDRGICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2NV0g PSBDRDUwIC8qIFxDRDUwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg2Nl0gPSBDRDUxIC8qIFxDRDUxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg2N10gPSBDRDUyIC8qIFxDRDUyICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2OF0gPSBDRDUzIC8qIFxDRDUzICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2OV0gPSBDRDU0IC8qIFxDRDU0ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2QV0gPSBDRDU1IC8q IFxDRDU1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2Ql0g PSBDRDU2IC8qIFxDRDU2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg2Q10gPSBDRDU3IC8qIFxDRDU3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg2RF0gPSBDRDU4IC8qIFxDRDU4ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2RV0gPSBDRDU5IC8qIFxDRDU5ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2Rl0gPSBDRDVBIC8qIFxDRDVBICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3MF0gPSBDRDVCIC8q IFxDRDVCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3MV0g PSBDRDVDIC8qIFxDRDVDICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg3Ml0gPSBDRDVEIC8qIFxDRDVEICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg3M10gPSBDRDVFIC8qIFxDRDVFICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3NF0gPSBDRDVGIC8qIFxDRDVGICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3NV0gPSBDRDYwIC8qIFxDRDYwICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Nl0gPSBDRDYxIC8q IFxDRDYxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3N10g PSBDRDYyIC8qIFxDRDYyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg3OF0gPSBDRDYzIC8qIFxDRDYzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg3OV0gPSBDRDY0IC8qIFxDRDY0ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3QV0gPSBDRDY1IC8qIFxDRDY1ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Ql0gPSBDRDY2IC8qIFxDRDY2ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Q10gPSBDRDY3IC8q IFxDRDY3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3RF0g PSBDRDY4IC8qIFxDRDY4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg3RV0gPSBDRDY5IC8qIFxDRDY5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg3Rl0gPSBDRDZBIC8qIFxDRDZBICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4MF0gPSBDRDZCIC8qIFxDRDZCICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4MV0gPSBDRDZDIC8qIFxDRDZDICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4Ml0gPSBDRDZEIC8q IFxDRDZEICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4M10g PSBDRDZFIC8qIFxDRDZFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg4NF0gPSBDRDZGIC8qIFxDRDZGICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg4NV0gPSBDRDcwIC8qIFxDRDcwICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4Nl0gPSBDRDcxIC8qIFxDRDcxICovCiAgICAgICAg ICAgICAgICBSZXR1cm4gKEVXUlkpIC8qIFxfU0JfLlBDMDAuUlAwNy5QWFNYLkVXUlkgKi8K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV0dEWSwgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDRBKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4 MDcsIAogICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChXR0RTLCAwLCBTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbT25lXSA9 IFNER04gLyogXFNER04gKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDAyXSA9IFNEMTEgLyogXFNEMTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDAzXSA9IFNEMTIgLyogXFNEMTIgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDA0XSA9IFNEMTMgLyogXFNEMTMgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA1XSA9IFNEMTQgLyogXFNEMTQgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA2XSA9IFNEMTUgLyog XFNEMTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA3XSA9 IFNEMTYgLyogXFNEMTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDA4XSA9IFNEMTcgLyogXFNEMTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDA5XSA9IFNEMTggLyogXFNEMTggKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDBBXSA9IFNEMTkgLyogXFNEMTkgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBCXSA9IFNEMjEgLyogXFNEMjEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBDXSA9IFNEMjIgLyog XFNEMjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBEXSA9 IFNEMjMgLyogXFNEMjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDBFXSA9IFNEMjQgLyogXFNEMjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDBGXSA9IFNEMjUgLyogXFNEMjUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDEwXSA9IFNEMjYgLyogXFNEMjYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDExXSA9IFNEMjcgLyogXFNEMjcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDEyXSA9IFNEMjggLyog XFNEMjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDEzXSA9 IFNEMjkgLyogXFNEMjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDE0XSA9IFNEMzEgLyogXFNEMzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDE1XSA9IFNEMzIgLyogXFNEMzIgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDE2XSA9IFNEMzMgLyogXFNEMzMgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE3XSA9IFNEMzQgLyogXFNEMzQgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE4XSA9IFNEMzUgLyog XFNEMzUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE5XSA9 IFNEMzYgLyogXFNEMzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDFBXSA9IFNEMzcgLyogXFNEMzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDFCXSA9IFNEMzggLyogXFNEMzggKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDFDXSA9IFNEMzkgLyogXFNEMzkgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFEXSA9IFNENDEgLyogXFNENDEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFFXSA9IFNENDIgLyog XFNENDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFGXSA9 IFNENDMgLyogXFNENDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDIwXSA9IFNENDQgLyogXFNENDQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDIxXSA9IFNENDUgLyogXFNENDUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDIyXSA9IFNENDYgLyogXFNENDYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDIzXSA9IFNENDcgLyogXFNENDcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI0XSA9IFNENDggLyog XFNENDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI1XSA9 IFNENDkgLyogXFNENDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDI2XSA9IFNENTEgLyogXFNENTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDI3XSA9IFNENTIgLyogXFNENTIgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDI4XSA9IFNENTMgLyogXFNENTMgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI5XSA9IFNENTQgLyogXFNENTQgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJBXSA9IFNENTUgLyog XFNENTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJCXSA9 IFNENTYgLyogXFNENTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDJDXSA9IFNENTcgLyogXFNENTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDJEXSA9IFNENTggLyogXFNENTggKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDJFXSA9IFNENTkgLyogXFNENTkgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJGXSA9IFNENjEgLyogXFNENjEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDMwXSA9IFNENjIgLyog XFNENjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDMxXSA9 IFNENjMgLyogXFNENjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDMyXSA9IFNENjQgLyogXFNENjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDMzXSA9IFNENjUgLyogXFNENjUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDM0XSA9IFNENjYgLyogXFNENjYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM1XSA9IFNENjcgLyogXFNENjcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM2XSA9IFNENjggLyog XFNENjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM3XSA9 IFNENjkgLyogXFNENjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDM4XSA9IFNENzEgLyogXFNENzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDM5XSA9IFNENzIgLyogXFNENzIgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDNBXSA9IFNENzMgLyogXFNENzMgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNCXSA9IFNENzQgLyogXFNENzQgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNDXSA9IFNENzUgLyog XFNENzUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNEXSA9 IFNENzYgLyogXFNENzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDNFXSA9IFNENzcgLyogXFNENzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDNGXSA9IFNENzggLyogXFNENzggKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDQwXSA9IFNENzkgLyogXFNENzkgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQxXSA9IFNEODEgLyogXFNEODEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQyXSA9IFNEODIgLyog XFNEODIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQzXSA9 IFNEODMgLyogXFNEODMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDQ0XSA9IFNEODQgLyogXFNEODQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDQ1XSA9IFNEODUgLyogXFNEODUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDQ2XSA9IFNEODYgLyogXFNEODYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ3XSA9IFNEODcgLyogXFNEODcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ4XSA9IFNEODggLyog XFNEODggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ5XSA9 IFNEODkgLyogXFNEODkgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoV0dEWSkgLyogXF9T Ql8uUEMwMC5SUDA3LlBYU1guV0dEWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBO YW1lIChFQ0tZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2Qg KEVDS1YsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERl cmVmT2YgKEVDS1kgW09uZV0pIFtPbmVdID0gQ0VDViAvKiBcQ0VDViAqLwogICAgICAgICAg ICAgICAgUmV0dXJuIChFQ0tZKSAvKiBcX1NCXy5QQzAwLlJQMDcuUFhTWC5FQ0tZICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFBQQVksIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgxOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3 LCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAweDE4 LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAweDE4LCAKICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAweDI4CiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoUFBBRywgMCwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgW09uZV0gPSBX QUdNIC8qIFxXQUdNICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBb MHgwMl0gPSBBR0ExIC8qIFxBR0ExICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZ IFtPbmVdKSBbMHgwM10gPSBBR0EyIC8qIFxBR0EyICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChQUEFZIFtPbmVdKSBbMHgwNF0gPSBBR0EzIC8qIFxBR0EzICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwNV0gPSBBR0E0IC8qIFxBR0E0ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwNl0gPSBBR0E1IC8qIFxB R0E1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwN10gPSBB R0E2IC8qIFxBR0E2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBb MHgwOF0gPSBBR0E3IC8qIFxBR0E3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZ IFtPbmVdKSBbMHgwOV0gPSBBR0E4IC8qIFxBR0E4ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChQUEFZIFtPbmVdKSBbMHgwQV0gPSBBR0E5IC8qIFxBR0E5ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwQl0gPSBBR0FBIC8qIFxBR0FBICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwQ10gPSBBR0FCIC8qIFxB R0FCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwRF0gPSBB R0IxIC8qIFxBR0IxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBb MHgwRV0gPSBBR0IyIC8qIFxBR0IyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZ IFtPbmVdKSBbMHgwRl0gPSBBR0IzIC8qIFxBR0IzICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChQUEFZIFtPbmVdKSBbMHgxMF0gPSBBR0I0IC8qIFxBR0I0ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxMV0gPSBBR0I1IC8qIFxBR0I1ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxMl0gPSBBR0I2IC8qIFxB R0I2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxM10gPSBB R0I3IC8qIFxBR0I3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBb MHgxNF0gPSBBR0I4IC8qIFxBR0I4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZ IFtPbmVdKSBbMHgxNV0gPSBBR0I5IC8qIFxBR0I5ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChQUEFZIFtPbmVdKSBbMHgxNl0gPSBBR0JBIC8qIFxBR0JBICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxN10gPSBBR0JCIC8qIFxBR0JCICovCiAg ICAgICAgICAgICAgICBSZXR1cm4gKFBQQVkpIC8qIFxfU0JfLlBDMDAuUlAwNy5QWFNYLlBQ QVkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV1BGWSwgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAg TWV0aG9kIChXUEZDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbT25lXSA9IFdQRkEgLyogXFdQRkEgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFsweDAyXSA9IFdQRkIgLyogXFdQ RkIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFsweDAzXSA9IFxX UEZDCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbMHgwNF0gPSBXUEZE IC8qIFxXUEZEICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdQRlkpIC8qIFxfU0JfLlBD MDAuUlAwNy5QWFNYLldQRlkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAo V1RTWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT25l LCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MTMpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 KQogICAgICAgICAgICBNZXRob2QgKFdUQVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFtPbmVdID0gV1RTRSAv KiBcV1RTRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDJd ID0gV1RMRSAvKiBcV1RMRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25l XSkgWzB4MDNdID0gQkwwMSAvKiBcQkwwMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1RTWSBbT25lXSkgWzB4MDRdID0gQkwwMiAvKiBcQkwwMiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDVdID0gQkwwMyAvKiBcQkwwMyAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDZdID0gQkwwNCAvKiBcQkwwNCAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDddID0gQkwwNSAv KiBcQkwwNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDhd ID0gQkwwNiAvKiBcQkwwNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25l XSkgWzB4MDldID0gQkwwNyAvKiBcQkwwNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1RTWSBbT25lXSkgWzB4MEFdID0gQkwwOCAvKiBcQkwwOCAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MEJdID0gQkwwOSAvKiBcQkwwOSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MENdID0gQkwxMCAvKiBcQkwxMCAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MERdID0gQkwxMSAv KiBcQkwxMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MEVd ID0gQkwxMiAvKiBcQkwxMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25l XSkgWzB4MEZdID0gQkwxMyAvKiBcQkwxMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1RTWSBbT25lXSkgWzB4MTBdID0gQkwxNCAvKiBcQkwxNCAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MTFdID0gQkwxNSAvKiBcQkwxNSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MTJdID0gQkwxNiAvKiBcQkwxNiAq LwogICAgICAgICAgICAgICAgUmV0dXJuIChXVFNZKSAvKiBcX1NCXy5QQzAwLlJQMDcuUFhT WC5XVFNZICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdBSVksIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV0FJUywgMCwgU2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FJWSBbT25l XSkgW09uZV0gPSBXTEJJIC8qIFxXTEJJICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX QUlZIFtPbmVdKSBbMHgwMl0gPSBXSEJJIC8qIFxXSEJJICovCiAgICAgICAgICAgICAgICBS ZXR1cm4gKFdBSVkpIC8qIFxfU0JfLlBDMDAuUlAwNy5QWFNYLldBSVkgKi8KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTmFtZSAoU0FEWCwgUGFja2FnZSAoMHgwMykKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFNBRFMsIDAs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFNB RFggW09uZV0pIFtPbmVdID0gQVREViAvKiBcQVREViAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoU0FEWCBbMHgwMl0pIFtPbmVdID0gQVREViAvKiBcQVREViAqLwogICAgICAgICAg ICAgICAgUmV0dXJuIChTQURYKSAvKiBcX1NCXy5QQzAwLlJQMDcuUFhTWC5TQURYICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEdQQ1gsIFBhY2thZ2UgKDB4MDMpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3 LCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDEyLCAK ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBN ZXRob2QgKEdQQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgUmV0dXJuIChHUENYKSAvKiBcX1NCXy5QQzAwLlJQMDcuUFhTWC5HUENYICovCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEdMQVgsIFBhY2thZ2UgKDB4MDMpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAK ICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIDB4MTIsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChHTEFJLCAwLCBTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IkFSOiBHTEFJIG1ldGhvZC4gQ0dMUyA9ICIsIFRvSGV4U3RyaW5nIChDR0xTKSkpCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChHTEFYIFtPbmVdKSBbT25lXSA9IENHTFMgLyogXENHTFMg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEdMQVggWzB4MDJdKSBbT25lXSA9IENHTFMg LyogXENHTFMgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoR0xBWCkgLyogXF9TQl8uUEMw MC5SUDA3LlBYU1guR0xBWCAqLwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJ ZiAoKChXV0VOICE9IFplcm8pICYmIChXV1JQID09IFNMT1QpKSkKICAgICAgICB7CiAgICAg ICAgICAgIE1ldGhvZCAoRkhSRiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgSWYgKChHR09WIChQUlNUKSAhPSBXUFJQKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBETDIzICgpCiAgICAgICAgICAgICAgICAgICAg QURCRyAoIldXQU4gREwyMygpIERvbmUiKQogICAgICAgICAgICAgICAgICAgIFNHT1YgKFBS U1QsIFdQUlApCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUEVSU1Q6MCBEb25l IikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiQXNzdW1lIFdXQU4gREwyMygpIGlz IGFscmVhZHkgZG9uZSIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU2xl ZXAgKFRSMkIpCiAgICAgICAgICAgICAgICBTR09WIChXQlJTLCBQQlJTKQogICAgICAgICAg ICAgICAgQURCRyAoIldXQU4gUlNUOjAgRG9uZSIpCiAgICAgICAgICAgICAgICBJZiAoKEFy ZzAgPT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKFRCVEcpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAg VEJURyAiLCBUb0RlY2ltYWxTdHJpbmcgKFRCVEcpKSkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBTUENPIChXQ0xLLCBaZXJvKQogICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJXV0FOIFNDTEs6MCBEb25lIikKICAgICAgICAgICAgICAgICAgICBTbGVl cCAoVEIyRikKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlNMUCBU QjJGICIsIFRvRGVjaW1hbFN0cmluZyAoVEIyRikpKQogICAgICAgICAgICAgICAgICAgIFNH T1YgKFdGQ1AsICh+UEZDUCAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldX QU4gUFdSOjAgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFRGREkpCiAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEZESSAiLCBUb0RlY2lt YWxTdHJpbmcgKFRGREkpKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiVW5zdXBw b3J0ZWQgQXJnMCBpcyBkZXRlY3RlZC4iKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKFNIUkYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFBTRDAgKFNMT1QpCiAgICAgICAgICAgICAgICBB REJHICgiV1dBTiBNUEhZUEc6MCBEb25lIikKICAgICAgICAgICAgICAgIFNQQ08gKFdDTEss IE9uZSkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFNDTEs6MSBEb25lIikKICAgICAg ICAgICAgICAgIFNHT1YgKFdGQ1AsIFBGQ1ApCiAgICAgICAgICAgICAgICBBREJHICgiV1dB TiBQV1I6MSBEb25lIikKICAgICAgICAgICAgICAgIFNsZWVwIChUTjJCKQogICAgICAgICAg ICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVE4yQiAiLCBUb0RlY2ltYWxTdHJpbmcg KFROMkIpKSkKICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsICh+UEJSUyAmIE9uZSkpCiAg ICAgICAgICAgICAgICBBREJHICgiV1dBTiBSU1Q6MSBEb25lIikKICAgICAgICAgICAgICAg IFNsZWVwIChUQjJSKQogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAg VEIyUiAiLCBUb0RlY2ltYWxTdHJpbmcgKFRCMlIpKSkKICAgICAgICAgICAgICAgIFNHT1Yg KFBSU1QsICh+V1BSUCAmIE9uZSkpCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQRVJT VDowIERvbmUiKQogICAgICAgICAgICAgICAgTDIzRCAoKQogICAgICAgICAgICAgICAgQURC RyAoIldXQU4gTDIzRCgpIERvbmUiKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo b2QgKERPU1YsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlICgoKFNWSUQgIT0gV1NJ RCkgJiYgKExvY2FsMCA8IFdTVE8pKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJERVQg VGltZSAiLCBUb0RlY2ltYWxTdHJpbmcgKExvY2FsMCkpKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKF9SU1QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBEZXZpY2Ug UmVzZXQKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoIl9SU1QgV1dBTiIp CiAgICAgICAgICAgICAgICBJZiAoKFdXRU4gPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoV1dNVCwgMHgwM0U4KQog ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIEZMRFIgTXV0ZXg6IEFjcXVpcmVkIFRy eSBEb25lIikKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJTdGFy dCBXV0FOIEZMRFIiKQogICAgICAgICAgICAgICAgICAgICAgICBGSFJGIChaZXJvKQogICAg ICAgICAgICAgICAgICAgICAgICBTSFJGICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJFbmQgV1dBTiBGTERSIikKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAo V1dNVCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gRkxEUiBNdXRleDpS ZWxlYXNlIERvbmUiKQogICAgICAgICAgICAgICAgICAgICAgICBET1NWICgpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsIFBCUlMp CiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4QzgpCiAgICAgICAgICAgICAgICAgICAg Tm90aWZ5IChQWFNYLCBPbmUpIC8vIERldmljZSBDaGVjawogICAgICAgICAgICAgICAgICAg IFNHT1YgKFBSU1QsICh+V1BSUCAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgU0dPViAo V0JSUywgKH5QQlJTICYgT25lKSkKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHhDOCkK ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg V2hpbGUgKChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDE0KSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkZMRFIgVE8iKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlJWUCBEZWxheSBUaW1lICIsIFRvRGVjaW1hbFN0cmluZyAoTG9jYWwwKSkp CiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCBPbmUpIC8vIERldmljZSBDaGVj awogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBQb3dlclJl c291cmNlIChNUlNULCAweDA1LCAweDAwMDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBSIF9TVEEi KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8gX09OXzog UG93ZXIgT24KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgi V1dBTiBQUiBfT04iKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX09GRiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBSIF9PRkYiKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwgU2VyaWFs aXplZCkgIC8vIF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IEFjcXVpcmUgKFdXTVQsIDB4MDNFOCkKICAgICAgICAg ICAgICAgICAgICBBREJHICgiV1dBTiBQTERSIE11dGV4OiBBY3F1aXJlZCBUcnkgRG9uZSIp CiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBQ TERSIikKICAgICAgICAgICAgICAgICAgICAgICAgRkhSRiAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICBTSFJGICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJFbmQg V1dBTiBQUiBfUlNUIikKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoV1dNVCkK ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUExEUiBNdXRleDogUmVsZWFz ZSBEb25lIikKICAgICAgICAgICAgICAgICAgICAgICAgRE9TViAoKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAg ICAgICAgSWYgKChXSVNUICgpIHx8ICgoV1dFTiAhPSBaZXJvKSAmJiAoV1dSUCA9PSBTTE9U KSkpKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfUFJSLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX1BSUjogUG93ZXIgUmVzb3VyY2UgZm9yIFJlc2V0CiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFdSU1QpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXUlNU CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoKFdXRU4gIT0gWmVybykgJiYg KFdXUlAgPT0gU0xPVCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKE1SU1QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNUlNUCiAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBXUlNUCiAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChGREVMLCBaZXJvKQogICAgICAgICAgICBO YW1lIChQREVMLCBaZXJvKQogICAgICAgICAgICBOYW1lIChWREVMLCBaZXJvKQogICAgICAg ICAgICBNZXRob2QgKElGVU4sIDQsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgidlBybzogIiwgQ1ZQUikpCiAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gKENWUFIgPDwgWmVybykKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlV29yZEZpZWxkIChBcmczLCBaZXJvLCBDTURUKQogICAgICAgICAgICAgICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoQXJnMywgMHgwMiwgQ01EUCkKICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIkNtZFR5cGUgPSAiLCBUb0hleFN0cmluZyAoQ01EVCkp KQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQ21kUGF5bG9hZCA9 ICIsIFRvSGV4U3RyaW5nIChDTURQKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChDTURU ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoV0lTVCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChSU1RZKSAvKiBcX1NCXy5QQzAwLlJQMDcuUFhTWC5S U1RZICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZUlmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5DTlZXLlJTVFQpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIkdldCBfUFJSIE1vZGUgPSAiLCBeXl5DTlZXLlJTVFQpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICheXl5DTlZXLlJTVFQpIC8qIFxfU0JfLlBDMDAu Q05WVy5SU1RUICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQ01EVCA9 PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgPSAoQ01EUCAmIE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJTVFkgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMSA9IChDTURQICYgMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MSA+Pj0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGTFJDID0gTG9jYWwxCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoQ01EUCAmIDB4MDQpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPj49IDB4MDIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJPRkMgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkNO VlcuUlNUVCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU2V0IF9QUlIgTW9kZSA9ICIsIFRvSGV4 U3RyaW5nIChDTURQKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5DTlZXLlJT VFQgPSBDTURQIC8qIFxfU0JfLlBDMDAuUlAwNy5QWFNYLklGVU4uQ01EUCAqLwogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKENN RFQgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuQ05WVy5QUlJTKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJHZXQgTGFzdF9QUlIgc3RhdHVzIFBSUlMgPSAiLCBUb0hleFN0cmluZyAoXl5e Q05WVy5QUlJTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eXkNO VlcuUFJSUykgLyogXF9TQl8uUEMwMC5DTlZXLlBSUlMgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKFdJU1QgKCkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiR2V0IExhc3RfUFJSIHN0YXR1cyBEUFJTID0gIiwgVG9IZXhTdHJp bmcgKERQUlMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFBSUykg LyogXF9TQl8uUEMwMC5SUDA3LlBYU1guRFBSUyAqLwogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IDB4MDMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQ1JG SSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMywgWmVybywgUFJU VCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIDB4MDIsIFBS VEQpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJUaW1lclR5cGUg PSAiLCBUb0hleFN0cmluZyAoUFJUVCkpKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENv bmNhdGVuYXRlICgiVGltZXJEdXJhdGlvbiAobXMpID0gIiwgVG9EZWNpbWFsU3RyaW5nIChQ UlREKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChQUlRUID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBGREVMID0gUFJURCAvKiBc X1NCXy5QQzAwLlJQMDcuUFhTWC5JRlVOLlBSVEQgKi8KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoUFJUVCA9PSAweDAyKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBERUwgPSBQUlREIC8qIFxf U0JfLlBDMDAuUlAwNy5QWFNYLklGVU4uUFJURCAqLwogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChQUlRUID09IDB4MDMpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVkRFTCA9IFBSVEQgLyogXF9T Ql8uUEMwMC5SUDA3LlBYU1guSUZVTi5QUlREICovCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJUaW1lckR1cmF0aW9uIG5vdCBzZXQiKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoSURTTSwgMSwg U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09 IFRvVVVJRCAoIjcyNjYxNzJjLTIyMGItNGIyOS04MTRmLTc1ZTRkZDI2YjVmZCIpIC8qIFVu a25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEVGVU4sIDQsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEg PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIDB4MUYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQUNTRCAv KiBcQUNTRCAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBJNUJTIC8qIFxJNUJT ICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFVIQlMgLyogXFVIQlMgKi8KICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNikpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQVhNVSAvKiBcQVhNVSAqLwogICAgICAgICAg ICAgICAgICAgIExvY2FsMCA8PD0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9 IEFYU1UgLyogXEFYU1UgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBBWE1SIC8q IFxBWE1SICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIDw8PSBPbmUKICAgICAgICAg ICAgICAgICAgICBMb2NhbDEgfD0gQVhTUiAvKiBcQVhTUiAqLwogICAgICAgICAgICAgICAg ICAgIExvY2FsMSA8PD0gMHgwMgogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSBMb2Nh bDEKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgMHgwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gMHgwNSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChXRlVDKSAvKiBcV0ZVQyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSAweDA3KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFVOSTQpIC8qIFxVTkk0ICovCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDgpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoV0ZJQykgLyogXFdGSUMgKi8KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwOSkpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRkJTKSAvKiBcV0ZCUyAqLwog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBBKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdFRFQpIC8q IFxXRURUICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IDB4MEIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgo Q0lSTSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEMpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0Y3QykgLyogXFdGN0MgKi8KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoRURTTSwgMSwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImYyMTIwMmJm LThmNzgtNGRjNi1hNWIzLTFmNzM4ZTI4NWFkZSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNN OiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChFRFNNIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoRUZVTiAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoSURTTSAoQXJnMCkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKElG VU4gKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKChXV0VOICE9IFplcm8pICYm IChXV1JQID09IFNMT1QpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiYmFkMDFiNzUtMjJhOC00ZjQ4LTg3OTItYmRkZTk0 Njc3NDdkIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSBPbmUpKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAy KSl7fQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo V1JUTyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBvd2VyIF9EU00gRDAvTDEuMiIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlSWYgKChXUlRPID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBvd2Vy IF9EU00gRDMvTDEuMiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChXUlRPID09IDB4MDMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJXV0FOIFBvd2VyIF9EU00gRDMvTDIiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJX V0FOIFBvd2VyIF9EU00gRGlzYWJsZWQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoV1JUTykgLyogXFdSVE8g Ki8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLlBDMDAu UlAwOC5QWFNYKQogICAgewogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUlBYWCwgU3lzdGVt TWVtb3J5LCBHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUiksIDB4MzApCiAgICAgICAgRmll bGQgKFJQWFgsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAg ICAgIFZESUQsICAgMzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MkMpLCAKICAgICAgICAg ICAgU1ZJRCwgICAxNgogICAgICAgIH0KCiAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChGTERS LCBTeXN0ZW1NZW1vcnksIChHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUikgKyBXRENPKSwg MHgwNikKICAgICAgICBGaWVsZCAoRkxEUiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgICAgICB7CiAgICAgICAgICAgIERDQVAsICAgMzIsIAogICAgICAgICAgICBEQ1RSLCAg IDE2CiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZTRUMsIFN5c3RlbU1l bW9yeSwgKEdNSU8gKFBCTlUsIF5fQURSICgpLCBfQURSKSArIFdWSE8pLCAweDEwKQogICAg ICAgIEZpZWxkIChWU0VDLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewog ICAgICAgICAgICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAg ICAgICAgICAgQlRJRSwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAg ICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAg ICwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgT2Zmc2V0ICgw eDBEKSwgCiAgICAgICAgICAgIFBEUkMsICAgMQogICAgICAgIH0KCiAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChQQlJSLCBTeXN0ZW1NZW1vcnksIEdNSU8gKFBCTlUsIF5fQURSICgpLCBf QURSKSwgMHgwMkI4KQogICAgICAgIEZpZWxkIChQQlJSLCBBbnlBY2MsIE5vTG9jaywgUHJl c2VydmUpCiAgICAgICAgewogICAgICAgICAgICBPZmZzZXQgKDB4MThDKSwgCiAgICAgICAg ICAgIE1TTkwsICAgMzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MTk4KSwgCiAgICAgICAg ICAgIEwxQzEsICAgMzIsIAogICAgICAgICAgICBMMUMyLCAgIDMyLCAKICAgICAgICAgICAg T2Zmc2V0ICgweDJCNCksIAogICAgICAgICAgICBQVE1SLCAgIDMyCiAgICAgICAgfQoKICAg ICAgICBNZXRob2QgKFdJU1QsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChWRElEKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg U3dpdGNoIChUb0ludGVnZXIgKFZESUQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIENhc2UgKDB4MjUyNjgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgyNzFCODA4NikKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MjM4MDg2KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4Mjcy NTgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg Q2FzZSAoMHgyNzJCODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFNWREMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKFdXU1Qs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChW RElEKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIg KFZESUQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4 NzM2MDgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHg3NTYwODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDRENzUxNEMzKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDgwMDE0QzMpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmIChXSVNUICgpKQogICAg ICAgIHsKICAgICAgICAgICAgTmFtZSAoUlNUWSwgWmVybykKICAgICAgICAgICAgTmFtZSAo RkxSQywgWmVybykKICAgICAgICAgICAgTmFtZSAoQk9GQywgWmVybykKICAgICAgICAgICAg TmFtZSAoRFBSUywgWmVybykKICAgICAgICAgICAgUG93ZXJSZXNvdXJjZSAoV1JTVCwgMHgw NSwgMHgwMDAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHICgiV2lmaSBQUiBfU1RBIikKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9PTiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9uCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkgUFIgX09O IikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9PRkYsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHICgiV2lmaSBQUiBfT0ZGIikKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfUlNUOiBEZXZpY2UgUmVzZXQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKFJTVFkgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFByb2R1Y3QgUlNUIikKICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoQ05NVCwgMHgwM0U4KQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChGTFJDID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gRENUUiAvKiBcX1NCXy5QQzAwLlJQMDguUFhTWC5EQ1RS ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERDVFIgPSBMb2NhbDAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoRkRFTCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUFJTID0gT25lCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJPRkMgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEJSTVQgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVFJLIChaZXJvKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlSWYgKChXVkhPICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRJRSA9IFpl cm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNsZWVwIChSRExZKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBEUkMgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNsZWVwIChWREVMKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU0dPViAoV0xSVCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNs ZWVwIChQREVMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0dPViAoV0xSVCwgT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCT0ZDID09IE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChCUk1UID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRSSyAoT25lKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlSWYgKChXVkhPICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRJRSA9 IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKFJETFkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFBSUyA9IDB4MDIKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKENOTVQpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IldpZmkgQ29yZSBSU1QiKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERDQVAgJiAw eDEwMDAwMDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gRENUUiAvKiBcX1NCXy5QQzAwLlJQMDguUFhTWC5EQ1RS ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gMHg4MDAwCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEQ1RSID0gTG9jYWwwCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIERQUlMgPSBPbmUKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDA3RDApCiAgICAg ICAgICAgICAgICAgICAgTVNOTCA9IERSMDEgLyogXERSMDEgKi8KICAgICAgICAgICAgICAg ICAgICBMMUMxID0gRFIwMiAvKiBcRFIwMiAqLwogICAgICAgICAgICAgICAgICAgIEwxQzIg PSBEUjAzIC8qIFxEUjAzICovCiAgICAgICAgICAgICAgICAgICAgUFRNUiA9IERSMDQgLyog XERSMDQgKi8KICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwN0QwKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChTUExYLCBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFNQTEMsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFtaZXJvXSA9 IERPTTEgLyogXERPTTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0p IFtPbmVdID0gTElNMSAvKiBcTElNMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoU1BM WCBbT25lXSkgWzB4MDJdID0gVElNMSAvKiBcVElNMSAqLwogICAgICAgICAgICAgICAgUmV0 dXJuIChTUExYKSAvKiBcX1NCXy5QQzAwLlJQMDguUFhTWC5TUExYICovCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE5hbWUgKFdBTlgsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwMDAwMDAwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAw MDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAg ICAgICAgTWV0aG9kIChXQU5ELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXQU5YIFtPbmVdKSBbWmVyb10gPSBaZXJvCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXQU5YIFtPbmVdKSBbT25lXSA9IFRSRDAgLyogXFRSRDAgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFsweDAyXSA9IFRSTDAgLyog XFRSTDAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBbWmVyb10g PSBPbmUKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBbT25lXSA9IFRS RDEgLyogXFRSRDEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBb MHgwMl0gPSBUUkwxIC8qIFxUUkwxICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdBTlgp IC8qIFxfU0JfLlBDMDAuUlAwOC5QWFNYLldBTlggKi8KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTmFtZSAoV1JEWCwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAwMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAg ICAgICAgICBNZXRob2QgKFdSREQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdSRFggW09uZV0pIFtaZXJvXSA9IFdETTEgLyogXFdE TTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFggW09uZV0pIFtPbmVdID0gQ0lE MSAvKiBcQ0lEMSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXUkRYKSAvKiBcX1NCXy5Q QzAwLlJQMDguUFhTWC5XUkRYICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUg KFdSRFksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 MDIsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgyRSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1JE UywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1JEWSBbT25lXSkgW09uZV0gPSBTVFhFIC8qIFxTVFhFICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwMl0gPSBTVDEwIC8qIFxTVDEwICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwM10gPSBTVDExIC8qIFxTVDEx ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwNF0gPSBTVDEy IC8qIFxTVDEyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgw NV0gPSBTVDEzIC8qIFxTVDEzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtP bmVdKSBbMHgwNl0gPSBTVDE0IC8qIFxTVDE0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXUkRZIFtPbmVdKSBbMHgwN10gPSBTVDE1IC8qIFxTVDE1ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwOF0gPSBTVDE2IC8qIFxTVDE2ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwOV0gPSBTVDE3IC8qIFxTVDE3 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwQV0gPSBTVDE4 IC8qIFxTVDE4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgw Ql0gPSBTVDE5IC8qIFxTVDE5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtP bmVdKSBbMHgwQ10gPSBTVDUwIC8qIFxTVDUwICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXUkRZIFtPbmVdKSBbMHgwRF0gPSBTVDUxIC8qIFxTVDUxICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwRV0gPSBTVDUyIC8qIFxTVDUyICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwRl0gPSBTVDUzIC8qIFxTVDUz ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxMF0gPSBTVDU0 IC8qIFxTVDU0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgx MV0gPSBTVDU1IC8qIFxTVDU1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtP bmVdKSBbMHgxMl0gPSBTVDU2IC8qIFxTVDU2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXUkRZIFtPbmVdKSBbMHgxM10gPSBTVDU3IC8qIFxTVDU3ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxNF0gPSBTVDU4IC8qIFxTVDU4ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxNV0gPSBTVDU5IC8qIFxTVDU5 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxNl0gPSBTVDVB IC8qIFxTVDVBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgx N10gPSBTVDVCIC8qIFxTVDVCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtP bmVdKSBbMHgxOF0gPSBDRDEwIC8qIFxDRDEwICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXUkRZIFtPbmVdKSBbMHgxOV0gPSBDRDExIC8qIFxDRDExICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQV0gPSBDRDEyIC8qIFxDRDEyICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQl0gPSBDRDEzIC8qIFxDRDEz ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQ10gPSBDRDE0 IC8qIFxDRDE0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgx RF0gPSBDRDE1IC8qIFxDRDE1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtP bmVdKSBbMHgxRV0gPSBDRDE2IC8qIFxDRDE2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXUkRZIFtPbmVdKSBbMHgxRl0gPSBDRDE3IC8qIFxDRDE3ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMF0gPSBDRDE4IC8qIFxDRDE4ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMV0gPSBDRDE5IC8qIFxDRDE5 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMl0gPSBDRDFB IC8qIFxDRDFBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgy M10gPSBDRDIwIC8qIFxDRDIwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtP bmVdKSBbMHgyNF0gPSBDRDIxIC8qIFxDRDIxICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXUkRZIFtPbmVdKSBbMHgyNV0gPSBDRDIyIC8qIFxDRDIyICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyNl0gPSBDRDIzIC8qIFxDRDIzICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyN10gPSBDRDI0IC8qIFxDRDI0 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyOF0gPSBDRDI1 IC8qIFxDRDI1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgy OV0gPSBDRDI2IC8qIFxDRDI2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtP bmVdKSBbMHgyQV0gPSBDRDI3IC8qIFxDRDI3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXUkRZIFtPbmVdKSBbMHgyQl0gPSBDRDI4IC8qIFxDRDI4ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyQ10gPSBDRDI5IC8qIFxDRDI5ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyRF0gPSBDRDJBIC8qIFxDRDJB ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdSRFkpIC8qIFxfU0JfLlBDMDAuUlAwOC5Q WFNYLldSRFkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoRVdSWSwgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDg3KQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAg ICAgICAgTWV0aG9kIChFV1JELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbT25lXSA9IFNUREUgLyogXFNUREUg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDAyXSA9IFNUUlMg LyogXFNUUlMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDAz XSA9IFNUMjAgLyogXFNUMjAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDA0XSA9IFNUMjEgLyogXFNUMjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDA1XSA9IFNUMjIgLyogXFNUMjIgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA2XSA9IFNUMjMgLyogXFNUMjMgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA3XSA9IFNUMjQgLyogXFNUMjQg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA4XSA9IFNUMjUg LyogXFNUMjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA5 XSA9IFNUMjYgLyogXFNUMjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDBBXSA9IFNUMjcgLyogXFNUMjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDBCXSA9IFNUMjggLyogXFNUMjggKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBDXSA9IFNUMjkgLyogXFNUMjkgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBEXSA9IFNUNjAgLyogXFNUNjAg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBFXSA9IFNUNjEg LyogXFNUNjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBG XSA9IFNUNjIgLyogXFNUNjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDEwXSA9IFNUNjMgLyogXFNUNjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDExXSA9IFNUNjQgLyogXFNUNjQgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDEyXSA9IFNUNjUgLyogXFNUNjUgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDEzXSA9IFNUNjYgLyogXFNUNjYg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE0XSA9IFNUNjcg LyogXFNUNjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE1 XSA9IFNUNjggLyogXFNUNjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDE2XSA9IFNUNjkgLyogXFNUNjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDE3XSA9IFNUNkEgLyogXFNUNkEgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE4XSA9IFNUNkIgLyogXFNUNkIgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE5XSA9IFNUMzAgLyogXFNUMzAg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFBXSA9IFNUMzEg LyogXFNUMzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFC XSA9IFNUMzIgLyogXFNUMzIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDFDXSA9IFNUMzMgLyogXFNUMzMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDFEXSA9IFNUMzQgLyogXFNUMzQgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFFXSA9IFNUMzUgLyogXFNUMzUgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFGXSA9IFNUMzYgLyogXFNUMzYg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDIwXSA9IFNUMzcg LyogXFNUMzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDIx XSA9IFNUMzggLyogXFNUMzggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDIyXSA9IFNUMzkgLyogXFNUMzkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDIzXSA9IFNUNzAgLyogXFNUNzAgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI0XSA9IFNUNzEgLyogXFNUNzEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI1XSA9IFNUNzIgLyogXFNUNzIg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI2XSA9IFNUNzMg LyogXFNUNzMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI3 XSA9IFNUNzQgLyogXFNUNzQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDI4XSA9IFNUNzUgLyogXFNUNzUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDI5XSA9IFNUNzYgLyogXFNUNzYgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJBXSA9IFNUNzcgLyogXFNUNzcgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJCXSA9IFNUNzggLyogXFNUNzgg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJDXSA9IFNUNzkg LyogXFNUNzkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJE XSA9IFNUN0EgLyogXFNUN0EgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDJFXSA9IFNUN0IgLyogXFNUN0IgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDJGXSA9IFNUNDAgLyogXFNUNDAgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMwXSA9IFNUNDEgLyogXFNUNDEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMxXSA9IFNUNDIgLyogXFNUNDIg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMyXSA9IFNUNDMg LyogXFNUNDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMz XSA9IFNUNDQgLyogXFNUNDQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDM0XSA9IFNUNDUgLyogXFNUNDUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDM1XSA9IFNUNDYgLyogXFNUNDYgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM2XSA9IFNUNDcgLyogXFNUNDcgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM3XSA9IFNUNDggLyogXFNUNDgg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM4XSA9IFNUNDkg LyogXFNUNDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM5 XSA9IFNUODAgLyogXFNUODAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDNBXSA9IFNUODEgLyogXFNUODEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDNCXSA9IFNUODIgLyogXFNUODIgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNDXSA9IFNUODMgLyogXFNUODMgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNEXSA9IFNUODQgLyogXFNUODQg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNFXSA9IFNUODUg LyogXFNUODUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNG XSA9IFNUODYgLyogXFNUODYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDQwXSA9IFNUODcgLyogXFNUODcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDQxXSA9IFNUODggLyogXFNUODggKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQyXSA9IFNUODkgLyogXFNUODkgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQzXSA9IFNUOEEgLyogXFNUOEEg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ0XSA9IFNUOEIg LyogXFNUOEIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ1 XSA9IENEMzAgLyogXENEMzAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDQ2XSA9IENEMzEgLyogXENEMzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDQ3XSA9IENEMzIgLyogXENEMzIgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ4XSA9IENEMzMgLyogXENEMzMgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ5XSA9IENEMzQgLyogXENEMzQg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRBXSA9IENEMzUg LyogXENEMzUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRC XSA9IENEMzYgLyogXENEMzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDRDXSA9IENEMzcgLyogXENEMzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDREXSA9IENEMzggLyogXENEMzggKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRFXSA9IENEMzkgLyogXENEMzkgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRGXSA9IENEM0EgLyogXENEM0Eg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDUwXSA9IENEM0Ig LyogXENEM0IgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDUx XSA9IENEM0MgLyogXENEM0MgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDUyXSA9IENEM0QgLyogXENEM0QgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDUzXSA9IENEM0UgLyogXENEM0UgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU0XSA9IENEM0YgLyogXENEM0YgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU1XSA9IENENDAgLyogXENENDAg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU2XSA9IENENDEg LyogXENENDEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU3 XSA9IENENDIgLyogXENENDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDU4XSA9IENENDMgLyogXENENDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDU5XSA9IENENDQgLyogXENENDQgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVBXSA9IENENDUgLyogXENENDUgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVCXSA9IENENDYgLyogXENENDYg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVDXSA9IENENDcg LyogXENENDcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVE XSA9IENENDggLyogXENENDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDVFXSA9IENENDkgLyogXENENDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDVGXSA9IENENEEgLyogXENENEEgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYwXSA9IENENEIgLyogXENENEIgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYxXSA9IENENEMgLyogXENENEMg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYyXSA9IENENEQg LyogXENENEQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYz XSA9IENENEUgLyogXENENEUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDY0XSA9IENENEYgLyogXENENEYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDY1XSA9IENENTAgLyogXENENTAgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY2XSA9IENENTEgLyogXENENTEgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY3XSA9IENENTIgLyogXENENTIg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY4XSA9IENENTMg LyogXENENTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY5 XSA9IENENTQgLyogXENENTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDZBXSA9IENENTUgLyogXENENTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDZCXSA9IENENTYgLyogXENENTYgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZDXSA9IENENTcgLyogXENENTcgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZEXSA9IENENTggLyogXENENTgg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZFXSA9IENENTkg LyogXENENTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZG XSA9IENENUEgLyogXENENUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDcwXSA9IENENUIgLyogXENENUIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDcxXSA9IENENUMgLyogXENENUMgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDcyXSA9IENENUQgLyogXENENUQgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDczXSA9IENENUUgLyogXENENUUg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc0XSA9IENENUYg LyogXENENUYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc1 XSA9IENENjAgLyogXENENjAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDc2XSA9IENENjEgLyogXENENjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDc3XSA9IENENjIgLyogXENENjIgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc4XSA9IENENjMgLyogXENENjMgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc5XSA9IENENjQgLyogXENENjQg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdBXSA9IENENjUg LyogXENENjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdC XSA9IENENjYgLyogXENENjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDdDXSA9IENENjcgLyogXENENjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDdEXSA9IENENjggLyogXENENjggKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdFXSA9IENENjkgLyogXENENjkgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdGXSA9IENENkEgLyogXENENkEg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDgwXSA9IENENkIg LyogXENENkIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDgx XSA9IENENkMgLyogXENENkMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDgyXSA9IENENkQgLyogXENENkQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDgzXSA9IENENkUgLyogXENENkUgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDg0XSA9IENENkYgLyogXENENkYgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDg1XSA9IENENzAgLyogXENENzAg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDg2XSA9IENENzEg LyogXENENzEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoRVdSWSkgLyogXF9TQl8uUEMw MC5SUDA4LlBYU1guRVdSWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChX R0RZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAz LCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4NEEpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MAogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdHRFMs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFtPbmVdID0gU0RHTiAvKiBcU0RHTiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDJdID0gU0QxMSAvKiBcU0QxMSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDNdID0gU0QxMiAvKiBcU0QxMiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDRdID0gU0QxMyAv KiBcU0QxMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDVd ID0gU0QxNCAvKiBcU0QxNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4MDZdID0gU0QxNSAvKiBcU0QxNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4MDddID0gU0QxNiAvKiBcU0QxNiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDhdID0gU0QxNyAvKiBcU0QxNyAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDldID0gU0QxOCAvKiBcU0QxOCAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEFdID0gU0QxOSAv KiBcU0QxOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEJd ID0gU0QyMSAvKiBcU0QyMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4MENdID0gU0QyMiAvKiBcU0QyMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4MERdID0gU0QyMyAvKiBcU0QyMyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEVdID0gU0QyNCAvKiBcU0QyNCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEZdID0gU0QyNSAvKiBcU0QyNSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTBdID0gU0QyNiAv KiBcU0QyNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTFd ID0gU0QyNyAvKiBcU0QyNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4MTJdID0gU0QyOCAvKiBcU0QyOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4MTNdID0gU0QyOSAvKiBcU0QyOSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTRdID0gU0QzMSAvKiBcU0QzMSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTVdID0gU0QzMiAvKiBcU0QzMiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTZdID0gU0QzMyAv KiBcU0QzMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTdd ID0gU0QzNCAvKiBcU0QzNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4MThdID0gU0QzNSAvKiBcU0QzNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4MTldID0gU0QzNiAvKiBcU0QzNiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MUFdID0gU0QzNyAvKiBcU0QzNyAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MUJdID0gU0QzOCAvKiBcU0QzOCAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MUNdID0gU0QzOSAv KiBcU0QzOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MURd ID0gU0Q0MSAvKiBcU0Q0MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4MUVdID0gU0Q0MiAvKiBcU0Q0MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4MUZdID0gU0Q0MyAvKiBcU0Q0MyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjBdID0gU0Q0NCAvKiBcU0Q0NCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjFdID0gU0Q0NSAvKiBcU0Q0NSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjJdID0gU0Q0NiAv KiBcU0Q0NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjNd ID0gU0Q0NyAvKiBcU0Q0NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4MjRdID0gU0Q0OCAvKiBcU0Q0OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4MjVdID0gU0Q0OSAvKiBcU0Q0OSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjZdID0gU0Q1MSAvKiBcU0Q1MSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjddID0gU0Q1MiAvKiBcU0Q1MiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjhdID0gU0Q1MyAv KiBcU0Q1MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4Mjld ID0gU0Q1NCAvKiBcU0Q1NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4MkFdID0gU0Q1NSAvKiBcU0Q1NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4MkJdID0gU0Q1NiAvKiBcU0Q1NiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkNdID0gU0Q1NyAvKiBcU0Q1NyAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkRdID0gU0Q1OCAvKiBcU0Q1OCAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkVdID0gU0Q1OSAv KiBcU0Q1OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkZd ID0gU0Q2MSAvKiBcU0Q2MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4MzBdID0gU0Q2MiAvKiBcU0Q2MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4MzFdID0gU0Q2MyAvKiBcU0Q2MyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzJdID0gU0Q2NCAvKiBcU0Q2NCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzNdID0gU0Q2NSAvKiBcU0Q2NSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzRdID0gU0Q2NiAv KiBcU0Q2NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzVd ID0gU0Q2NyAvKiBcU0Q2NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4MzZdID0gU0Q2OCAvKiBcU0Q2OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4MzddID0gU0Q2OSAvKiBcU0Q2OSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzhdID0gU0Q3MSAvKiBcU0Q3MSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzldID0gU0Q3MiAvKiBcU0Q3MiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0FdID0gU0Q3MyAv KiBcU0Q3MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0Jd ID0gU0Q3NCAvKiBcU0Q3NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4M0NdID0gU0Q3NSAvKiBcU0Q3NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4M0RdID0gU0Q3NiAvKiBcU0Q3NiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0VdID0gU0Q3NyAvKiBcU0Q3NyAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0ZdID0gU0Q3OCAvKiBcU0Q3OCAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDBdID0gU0Q3OSAv KiBcU0Q3OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDFd ID0gU0Q4MSAvKiBcU0Q4MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4NDJdID0gU0Q4MiAvKiBcU0Q4MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4NDNdID0gU0Q4MyAvKiBcU0Q4MyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDRdID0gU0Q4NCAvKiBcU0Q4NCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDVdID0gU0Q4NSAvKiBcU0Q4NSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDZdID0gU0Q4NiAv KiBcU0Q4NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDdd ID0gU0Q4NyAvKiBcU0Q4NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4NDhdID0gU0Q4OCAvKiBcU0Q4OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4NDldID0gU0Q4OSAvKiBcU0Q4OSAqLwogICAgICAgICAgICAgICAg UmV0dXJuIChXR0RZKSAvKiBcX1NCXy5QQzAwLlJQMDguUFhTWC5XR0RZICovCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEVDS1ksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAg ICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0p CiAgICAgICAgICAgIE1ldGhvZCAoRUNLViwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgRGVyZWZPZiAoRUNLWSBbT25lXSkgW09uZV0gPSBDRUNWIC8q IFxDRUNWICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEVDS1kpIC8qIFxfU0JfLlBDMDAu UlAwOC5QWFNYLkVDS1kgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoUFBB WSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMiwg CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDE4KQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgIDB4MTgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAg ICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAg ICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAg ICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAg ICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAg ICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MTgsIAogICAg ICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAg ICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAg ICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAg ICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAg ICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChQUEFHLCAw LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChQ UEFZIFtPbmVdKSBbT25lXSA9IFdBR00gLyogXFdBR00gKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFBQQVkgW09uZV0pIFsweDAyXSA9IEFHQTEgLyogXEFHQTEgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDAzXSA9IEFHQTIgLyogXEFHQTIgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA0XSA9IEFHQTMgLyog XEFHQTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA1XSA9 IEFHQTQgLyogXEFHQTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0p IFsweDA2XSA9IEFHQTUgLyogXEFHQTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQ QVkgW09uZV0pIFsweDA3XSA9IEFHQTYgLyogXEFHQTYgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFBQQVkgW09uZV0pIFsweDA4XSA9IEFHQTcgLyogXEFHQTcgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA5XSA9IEFHQTggLyogXEFHQTggKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBBXSA9IEFHQTkgLyog XEFHQTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBCXSA9 IEFHQUEgLyogXEFHQUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0p IFsweDBDXSA9IEFHQUIgLyogXEFHQUIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQ QVkgW09uZV0pIFsweDBEXSA9IEFHQjEgLyogXEFHQjEgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFBQQVkgW09uZV0pIFsweDBFXSA9IEFHQjIgLyogXEFHQjIgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBGXSA9IEFHQjMgLyogXEFHQjMgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDEwXSA9IEFHQjQgLyog XEFHQjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDExXSA9 IEFHQjUgLyogXEFHQjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0p IFsweDEyXSA9IEFHQjYgLyogXEFHQjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQ QVkgW09uZV0pIFsweDEzXSA9IEFHQjcgLyogXEFHQjcgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKFBQQVkgW09uZV0pIFsweDE0XSA9IEFHQjggLyogXEFHQjggKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE1XSA9IEFHQjkgLyogXEFHQjkgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE2XSA9IEFHQkEgLyog XEFHQkEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE3XSA9 IEFHQkIgLyogXEFHQkIgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoUFBBWSkgLyogXF9T Ql8uUEMwMC5SUDA4LlBYU1guUFBBWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBO YW1lIChXUEZZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdQRkMsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFtPbmVdID0g V1BGQSAvKiBcV1BGQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1BGWSBbT25lXSkg WzB4MDJdID0gV1BGQiAvKiBcV1BGQiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1BG WSBbT25lXSkgWzB4MDNdID0gXFdQRkMKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkg W09uZV0pIFsweDA0XSA9IFdQRkQgLyogXFdQRkQgKi8KICAgICAgICAgICAgICAgIFJldHVy biAoV1BGWSkgLyogXF9TQl8uUEMwMC5SUDA4LlBYU1guV1BGWSAqLwogICAgICAgICAgICB9 CgogICAgICAgICAgICBOYW1lIChXVFNZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgxMykK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1RBUywgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBb T25lXSkgW09uZV0gPSBXVFNFIC8qIFxXVFNFICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXVFNZIFtPbmVdKSBbMHgwMl0gPSBXVExFIC8qIFxXVExFICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwM10gPSBCTDAxIC8qIFxCTDAxICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwNF0gPSBCTDAyIC8qIFxCTDAy ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwNV0gPSBCTDAz IC8qIFxCTDAzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgw Nl0gPSBCTDA0IC8qIFxCTDA0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtP bmVdKSBbMHgwN10gPSBCTDA1IC8qIFxCTDA1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXVFNZIFtPbmVdKSBbMHgwOF0gPSBCTDA2IC8qIFxCTDA2ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwOV0gPSBCTDA3IC8qIFxCTDA3ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQV0gPSBCTDA4IC8qIFxCTDA4 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQl0gPSBCTDA5 IC8qIFxCTDA5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgw Q10gPSBCTDEwIC8qIFxCTDEwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtP bmVdKSBbMHgwRF0gPSBCTDExIC8qIFxCTDExICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXVFNZIFtPbmVdKSBbMHgwRV0gPSBCTDEyIC8qIFxCTDEyICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwRl0gPSBCTDEzIC8qIFxCTDEzICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMF0gPSBCTDE0IC8qIFxCTDE0 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMV0gPSBCTDE1 IC8qIFxCTDE1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgx Ml0gPSBCTDE2IC8qIFxCTDE2ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdUU1kpIC8q IFxfU0JfLlBDMDAuUlAwOC5QWFNYLldUU1kgKi8KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTmFtZSAoV0FJWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0 aG9kIChXQUlTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXQUlZIFtPbmVdKSBbT25lXSA9IFdMQkkgLyogXFdMQkkgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdBSVkgW09uZV0pIFsweDAyXSA9IFdIQkkgLyogXFdIQkkg Ki8KICAgICAgICAgICAgICAgIFJldHVybiAoV0FJWSkgLyogXF9TQl8uUEMwMC5SUDA4LlBY U1guV0FJWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChTQURYLCBQYWNr YWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAgICAgICAg ICAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAg ICAgIE1ldGhvZCAoU0FEUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgRGVyZWZPZiAoU0FEWCBbT25lXSkgW09uZV0gPSBBVERWIC8qIFxBVERWICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChTQURYIFsweDAyXSkgW09uZV0gPSBBVERWIC8q IFxBVERWICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFNBRFgpIC8qIFxfU0JfLlBDMDAu UlAwOC5QWFNYLlNBRFggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoR1BD WCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIDB4MTIsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoR1BDLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQQ1gpIC8qIFxfU0JfLlBDMDAuUlAw OC5QWFNYLkdQQ1ggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoR0xBWCwg UGFja2FnZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAg WmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRo b2QgKEdMQUksIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiQVI6IEdMQUkgbWV0aG9kLiBDR0xTID0gIiwgVG9IZXhT dHJpbmcgKENHTFMpKSkKICAgICAgICAgICAgICAgIERlcmVmT2YgKEdMQVggW09uZV0pIFtP bmVdID0gQ0dMUyAvKiBcQ0dMUyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoR0xBWCBb MHgwMl0pIFtPbmVdID0gQ0dMUyAvKiBcQ0dMUyAqLwogICAgICAgICAgICAgICAgUmV0dXJu IChHTEFYKSAvKiBcX1NCXy5QQzAwLlJQMDguUFhTWC5HTEFYICovCiAgICAgICAgICAgIH0K ICAgICAgICB9CgogICAgICAgIElmICgoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xP VCkpKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChGSFJGLCAxLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEdHT1YgKFBSU1QpICE9 IFdQUlApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERMMjMgKCkK ICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBETDIzKCkgRG9uZSIpCiAgICAgICAg ICAgICAgICAgICAgU0dPViAoUFJTVCwgV1BSUCkKICAgICAgICAgICAgICAgICAgICBBREJH ICgiV1dBTiBQRVJTVDowIERvbmUiKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJB c3N1bWUgV1dBTiBETDIzKCkgaXMgYWxyZWFkeSBkb25lIikKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBTbGVlcCAoVFIyQikKICAgICAgICAgICAgICAgIFNHT1YgKFdC UlMsIFBCUlMpCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBSU1Q6MCBEb25lIikKICAg ICAgICAgICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoVEJURykKICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIlNMUCBUQlRHICIsIFRvRGVjaW1hbFN0cmluZyAoVEJURykpKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSBPbmUp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNQQ08gKFdDTEssIFpl cm8pCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gU0NMSzowIERvbmUiKQogICAg ICAgICAgICAgICAgICAgIFNsZWVwIChUQjJGKQogICAgICAgICAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiU0xQIFRCMkYgIiwgVG9EZWNpbWFsU3RyaW5nIChUQjJGKSkpCiAg ICAgICAgICAgICAgICAgICAgU0dPViAoV0ZDUCwgKH5QRkNQICYgT25lKSkKICAgICAgICAg ICAgICAgICAgICBBREJHICgiV1dBTiBQV1I6MCBEb25lIikKICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoVEZESSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IlNMUCBURkRJICIsIFRvRGVjaW1hbFN0cmluZyAoVEZESSkpKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJVbnN1cHBvcnRlZCBBcmcwIGlzIGRldGVjdGVkLiIpCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU0hSRiwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFNEMCAoU0xP VCkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIE1QSFlQRzowIERvbmUiKQogICAgICAg ICAgICAgICAgU1BDTyAoV0NMSywgT25lKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4g U0NMSzoxIERvbmUiKQogICAgICAgICAgICAgICAgU0dPViAoV0ZDUCwgUEZDUCkKICAgICAg ICAgICAgICAgIEFEQkcgKCJXV0FOIFBXUjoxIERvbmUiKQogICAgICAgICAgICAgICAgU2xl ZXAgKFROMkIpCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlNMUCBUTjJC ICIsIFRvRGVjaW1hbFN0cmluZyAoVE4yQikpKQogICAgICAgICAgICAgICAgU0dPViAoV0JS UywgKH5QQlJTICYgT25lKSkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFJTVDoxIERv bmUiKQogICAgICAgICAgICAgICAgU2xlZXAgKFRCMlIpCiAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIlNMUCBUQjJSICIsIFRvRGVjaW1hbFN0cmluZyAoVEIyUikpKQog ICAgICAgICAgICAgICAgU0dPViAoUFJTVCwgKH5XUFJQICYgT25lKSkKICAgICAgICAgICAg ICAgIEFEQkcgKCJXV0FOIFBFUlNUOjAgRG9uZSIpCiAgICAgICAgICAgICAgICBMMjNEICgp CiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBMMjNEKCkgRG9uZSIpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoRE9TViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAg V2hpbGUgKCgoU1ZJRCAhPSBXU0lEKSAmJiAoTG9jYWwwIDwgV1NUTykpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIkRFVCBUaW1lICIsIFRvRGVjaW1hbFN0cmluZyAoTG9jYWwwKSkp CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwgU2VyaWFsaXpl ZCkgIC8vIF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBBREJHICgiX1JTVCBXV0FOIikKICAgICAgICAgICAgICAgIElmICgoV1dFTiA9PSAweDAy KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1 aXJlIChXV01ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gRkxE UiBNdXRleDogQWNxdWlyZWQgVHJ5IERvbmUiKQogICAgICAgICAgICAgICAgICAgIElmICgo TG9jYWwwID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoIlN0YXJ0IFdXQU4gRkxEUiIpCiAgICAgICAgICAgICAgICAgICAg ICAgIEZIUkYgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIFNIUkYgKCkKICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIkVuZCBXV0FOIEZMRFIiKQogICAgICAgICAgICAg ICAgICAgICAgICBSZWxlYXNlIChXV01UKQogICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiV1dBTiBGTERSIE11dGV4OlJlbGVhc2UgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAg ICAgIERPU1YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU0dPViAoV0JSUywgUEJSUykKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHhDOCkK ICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gsIE9uZSkgLy8gRGV2aWNlIENoZWNr CiAgICAgICAgICAgICAgICAgICAgU0dPViAoUFJTVCwgKH5XUFJQICYgT25lKSkKICAgICAg ICAgICAgICAgICAgICBTR09WIChXQlJTLCAoflBCUlMgJiBPbmUpKQogICAgICAgICAgICAg ICAgICAgIFNsZWVwICgweEM4KQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8K ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MTQp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiRkxEUiBUTyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVl cCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDBBKQogICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUlZQIERlbGF5IFRpbWUgIiwgVG9EZWNp bWFsU3RyaW5nIChMb2NhbDApKSkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gs IE9uZSkgLy8gRGV2aWNlIENoZWNrCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIFBvd2VyUmVzb3VyY2UgKE1SU1QsIDB4MDUsIDB4MDAwMCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAg Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg QURCRyAoIldXQU4gUFIgX1NUQSIpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT04sIDAsIFNl cmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBSIF9PTiIpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBTZXJpYWxpemVkKSAgLy8gX09GRjog UG93ZXIgT2ZmCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAo IldXQU4gUFIgX09GRiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfUlNULCAwLCBTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoV1dN VCwgMHgwM0U4KQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBMRFIgTXV0ZXg6 IEFjcXVpcmVkIFRyeSBEb25lIikKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJTdGFydCBXV0FOIFBMRFIiKQogICAgICAgICAgICAgICAgICAgICAgICBGSFJG IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIFNIUkYgKCkKICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoIkVuZCBXV0FOIFBSIF9SU1QiKQogICAgICAgICAgICAgICAgICAg ICAgICBSZWxlYXNlIChXV01UKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dB TiBQTERSIE11dGV4OiBSZWxlYXNlIERvbmUiKQogICAgICAgICAgICAgICAgICAgICAgICBE T1NWICgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKFdJU1QgKCkgfHwgKChXV0VOICE9IFpl cm8pICYmIChXV1JQID09IFNMT1QpKSkpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2Qg KF9QUlIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJSOiBQb3dlciBSZXNvdXJjZSBmb3Ig UmVzZXQKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoV1JTVCkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFdSU1QKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg KCgoV1dFTiAhPSBaZXJvKSAmJiAoV1dSUCA9PSBTTE9UKSkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoTVJTVCkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4 MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1SU1QKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFdSU1QKICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEZERUws IFplcm8pCiAgICAgICAgICAgIE5hbWUgKFBERUwsIFplcm8pCiAgICAgICAgICAgIE5hbWUg KFZERUwsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoSUZVTiwgNCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDFGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJ2UHJvOiAi LCBDVlBSKSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQ1ZQUiA8PCBaZXJvKQog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIFplcm8sIENNRFQp CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmczLCAweDAyLCBDTURQ KQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQ21kVHlwZSA9ICIs IFRvSGV4U3RyaW5nIChDTURUKSkpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJDbWRQYXlsb2FkID0gIiwgVG9IZXhTdHJpbmcgKENNRFApKSkKICAgICAgICAg ICAgICAgICAgICBJZiAoKENNRFQgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJTVFkpIC8qIFxf U0JfLlBDMDAuUlAwOC5QWFNYLlJTVFkgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkNO VlcuUlNUVCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiR2V0IF9QUlIgTW9kZSA9ICIsIF5eXkNO VlcuUlNUVCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eXkNOVlcu UlNUVCkgLyogXF9TQl8uUEMwMC5DTlZXLlJTVFQgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKChDTURUID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChDTURQICYgT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUlNUWSA9IExvY2FsMAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKENNRFAgJiAweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwxID4+PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZMUkMgPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9 IChDTURQICYgMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA+Pj0g MHgwMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9GQyA9IExvY2FsMgogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoQ29u ZFJlZk9mIChcX1NCLlBDMDAuQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTZXQg X1BSUiBNb2RlID0gIiwgVG9IZXhTdHJpbmcgKENNRFApKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5eXkNOVlcuUlNUVCA9IENNRFAgLyogXF9TQl8uUEMwMC5SUDA4LlBYU1gu SUZVTi5DTURQICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmICgoQ01EVCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5DTlZX LlBSUlMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkdldCBMYXN0X1BSUiBzdGF0dXMgUFJSUyA9 ICIsIFRvSGV4U3RyaW5nICheXl5DTlZXLlBSUlMpKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoXl5eQ05WVy5QUlJTKSAvKiBcX1NCXy5QQzAwLkNOVlcuUFJSUyAq LwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVs c2VJZiAoV0lTVCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJHZXQgTGFzdF9QUlIgc3RhdHVz IERQUlMgPSAiLCBUb0hleFN0cmluZyAoRFBSUykpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChEUFJTKSAvKiBcX1NCXy5QQzAwLlJQMDguUFhTWC5EUFJTICovCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKChDUkZJID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgw NCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChBcmczLCBaZXJvLCBQUlRUKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoQXJnMywgMHgwMiwgUFJURCkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlRpbWVyVHlwZSA9ICIsIFRvSGV4U3RyaW5nIChQUlRUKSkpCiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJUaW1lckR1cmF0aW9uIChtcykgPSAi LCBUb0RlY2ltYWxTdHJpbmcgKFBSVEQpKSkKICAgICAgICAgICAgICAgICAgICBJZiAoKFBS VFQgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEZERUwgPSBQUlREIC8qIFxfU0JfLlBDMDAuUlAwOC5QWFNYLklGVU4uUFJURCAqLwog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChQUlRU ID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUERFTCA9IFBSVEQgLyogXF9TQl8uUEMwMC5SUDA4LlBYU1guSUZVTi5QUlREICovCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFBSVFQg PT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBWREVMID0gUFJURCAvKiBcX1NCXy5QQzAwLlJQMDguUFhTWC5JRlVOLlBSVEQgKi8KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRpbWVyRHVyYXRp b24gbm90IHNldCIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChJRFNNLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNzI2NjE3MmMtMjIwYi00YjI5LTgxNGYt NzVlNGRkMjZiNWZkIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoRUZVTiwgNCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAyKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgMHgx RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBBQ1NEIC8qIFxBQ1NEICovCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IEk1QlMgLyogXEk1QlMgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExv Y2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g MHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g VUhCUyAvKiBcVUhCUyAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA2KSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBWE1VIC8q IFxBWE1VICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIDw8PSBPbmUKICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgfD0gQVhTVSAvKiBcQVhTVSAqLwogICAgICAgICAgICAgICAg ICAgIExvY2FsMSA9IEFYTVIgLyogXEFYTVIgKi8KICAgICAgICAgICAgICAgICAgICBMb2Nh bDEgPDw9IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMSB8PSBBWFNSIC8qIFxBWFNS ICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIDw8PSAweDAyCiAgICAgICAgICAgICAg ICAgICAgTG9jYWwwIHw9IExvY2FsMQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9j YWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAw eDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAweDAzLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLi4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSAweDA1KSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFdGVUMpIC8qIFxXRlVDICovCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDcpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoVU5JNCkgLyogXFVOSTQgKi8KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwOCkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRklDKSAvKiBc V0ZJQyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDA5KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFdGQlMpIC8qIFxXRkJTICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MEEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoV0VEVCkgLyogXFdFRFQgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwQikpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKChDSVJNID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g MHgwQykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChX RjdDKSAvKiBcV0Y3QyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChFRFNNLCAx LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAg PT0gVG9VVUlEICgiZjIxMjAyYmYtOGY3OC00ZGM2LWE1YjMtMWY3MzhlMjg1YWRlIikgLyog VW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKEVEU00gKEFyZzApKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChFRlVOIChBcmcwLCBBcmcxLCBB cmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmIChJRFNNIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoSUZVTiAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm ICgoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xPVCkpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJiYWQwMWI3NS0y MmE4LTRmNDgtODc5Mi1iZGRlOTQ2Nzc0N2QiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpe30KICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcyID09IDB4MDIpKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChXUlRPID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4g UG93ZXIgX0RTTSBEMC9MMS4yIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdSVE8gPT0gMHgwMikpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIldXQU4gUG93ZXIgX0RTTSBEMy9MMS4yIikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdSVE8g PT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUG93ZXIgX0RTTSBEMy9MMiIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIldXQU4gUG93ZXIgX0RTTSBEaXNhYmxlZCIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChXUlRPKSAvKiBcV1JUTyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJl dHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoK ICAgIFNjb3BlIChfU0IuUEMwMC5SUDA5LlBYU1gpCiAgICB7CiAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChSUFhYLCBTeXN0ZW1NZW1vcnksIEdNSU8gKFBCTlUsIF5fQURSICgpLCBfQURS KSwgMHgzMCkKICAgICAgICBGaWVsZCAoUlBYWCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZl KQogICAgICAgIHsKICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAgIE9mZnNl dCAoMHgyQyksIAogICAgICAgICAgICBTVklELCAgIDE2CiAgICAgICAgfQoKICAgICAgICBP cGVyYXRpb25SZWdpb24gKEZMRFIsIFN5c3RlbU1lbW9yeSwgKEdNSU8gKFBCTlUsIF5fQURS ICgpLCBfQURSKSArIFdEQ08pLCAweDA2KQogICAgICAgIEZpZWxkIChGTERSLCBCeXRlQWNj LCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgRENBUCwgICAzMiwg CiAgICAgICAgICAgIERDVFIsICAgMTYKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoVlNFQywgU3lzdGVtTWVtb3J5LCAoR01JTyAoUEJOVSwgXl9BRFIgKCksIF9BRFIp ICsgV1ZITyksIDB4MTApCiAgICAgICAgRmllbGQgKFZTRUMsIEFueUFjYywgTm9Mb2NrLCBQ cmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgwQyksIAogICAgICAg ICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICBCVElFLCAgIDEsIAogICAgICAgICAgICAg ICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAg IDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAog ICAgICAgICAgICBPZmZzZXQgKDB4MEQpLCAKICAgICAgICAgICAgUERSQywgICAxCiAgICAg ICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBCUlIsIFN5c3RlbU1lbW9yeSwgR01J TyAoUEJOVSwgXl9BRFIgKCksIF9BRFIpLCAweDAyQjgpCiAgICAgICAgRmllbGQgKFBCUlIs IEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNl dCAoMHgxOEMpLCAKICAgICAgICAgICAgTVNOTCwgICAzMiwgCiAgICAgICAgICAgIE9mZnNl dCAoMHgxOTgpLCAKICAgICAgICAgICAgTDFDMSwgICAzMiwgCiAgICAgICAgICAgIEwxQzIs ICAgMzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MkI0KSwgCiAgICAgICAgICAgIFBUTVIs ICAgMzIKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoV0lTVCwgMCwgU2VyaWFsaXplZCkK ICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFZESUQpKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoVkRJRCkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgyNTI2ODA4NikKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MUI4 MDg2KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENh c2UgKDB4MjcyMzgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgQ2FzZSAoMHgyNzI1ODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MkI4MDg2KQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1ZEQyA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KICAgICAgICB9Cgog ICAgICAgIE1ldGhvZCAoV1dTVCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFZESUQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBTd2l0Y2ggKFRvSW50ZWdlciAoVkRJRCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHg3MzYwODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDc1NjA4MDg2KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4NEQ3NTE0QzMpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgw ODAwMTRDMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAg ICAgSWYgKFdJU1QgKCkpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChSU1RZLCBaZXJv KQogICAgICAgICAgICBOYW1lIChGTFJDLCBaZXJvKQogICAgICAgICAgICBOYW1lIChCT0ZD LCBaZXJvKQogICAgICAgICAgICBOYW1lIChEUFJTLCBaZXJvKQogICAgICAgICAgICBQb3dl clJlc291cmNlIChXUlNULCAweDA1LCAweDAwMDApCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1 cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFBS IF9TVEEiKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX09OXzogUG93ZXIgT24KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBBREJHICgiV2lmaSBQUiBfT04iKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX09GRiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9m ZgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFBS IF9PRkYiKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JT VCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoUlNUWSA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkgUHJv ZHVjdCBSU1QiKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1aXJlIChD Tk1ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEZMUkMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBEQ1RSIC8qIFxfU0Jf LlBDMDAuUlAwOS5QWFNYLkRDVFIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgfD0gMHg4MDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRENU UiA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChGREVM KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERQUlMgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQk9G QyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQlJNVCA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJUUksgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdWSE8gIT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCVElFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFJETFkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg UERSQyA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFZERUwpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTR09WIChXTFJULCBaZXJvKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKFBERUwpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTR09WIChXTFJULCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEJPRkMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJSTVQgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCVFJLIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdWSE8gIT0gWmVybykpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCVElFID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoUkRMWSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEUFJTID0gMHgwMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoQ05N VCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBBREJHICgiV2lmaSBDb3JlIFJTVCIpCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoRENBUCAmIDB4MTAwMDAwMDApKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBEQ1RSIC8qIFxfU0Jf LlBDMDAuUlAwOS5QWFNYLkRDVFIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCB8PSAweDgwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERDVFIgPSBMb2Nh bDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg RFBSUyA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg U2xlZXAgKDB4MDdEMCkKICAgICAgICAgICAgICAgICAgICBNU05MID0gRFIwMSAvKiBcRFIw MSAqLwogICAgICAgICAgICAgICAgICAgIEwxQzEgPSBEUjAyIC8qIFxEUjAyICovCiAgICAg ICAgICAgICAgICAgICAgTDFDMiA9IERSMDMgLyogXERSMDMgKi8KICAgICAgICAgICAgICAg ICAgICBQVE1SID0gRFIwNCAvKiBcRFIwNCAqLwogICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweDA3RDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE5hbWUgKFNQTFgsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoU1BMQywg MCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAo U1BMWCBbT25lXSkgW1plcm9dID0gRE9NMSAvKiBcRE9NMSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoU1BMWCBbT25lXSkgW09uZV0gPSBMSU0xIC8qIFxMSU0xICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChTUExYIFtPbmVdKSBbMHgwMl0gPSBUSU0xIC8qIFxUSU0xICov CiAgICAgICAgICAgICAgICBSZXR1cm4gKFNQTFgpIC8qIFxfU0JfLlBDMDAuUlAwOS5QWFNY LlNQTFggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV0FOWCwgUGFja2Fn ZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAw MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdBTkQsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFta ZXJvXSA9IFplcm8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFtPbmVd ID0gVFJEMCAvKiBcVFJEMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FOWCBbT25l XSkgWzB4MDJdID0gVFJMMCAvKiBcVFJMMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo V0FOWCBbMHgwMl0pIFtaZXJvXSA9IE9uZQogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FO WCBbMHgwMl0pIFtPbmVdID0gVFJEMSAvKiBcVFJEMSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0FOWCBbMHgwMl0pIFsweDAyXSA9IFRSTDEgLyogXFRSTDEgKi8KICAgICAgICAg ICAgICAgIFJldHVybiAoV0FOWCkgLyogXF9TQl8uUEMwMC5SUDA5LlBYU1guV0FOWCAqLwog ICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXUkRYLCBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHg4 MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1JERCwgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWCBbT25lXSkg W1plcm9dID0gV0RNMSAvKiBcV0RNMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WCBbT25lXSkgW09uZV0gPSBDSUQxIC8qIFxDSUQxICovCiAgICAgICAgICAgICAgICBSZXR1 cm4gKFdSRFgpIC8qIFxfU0JfLlBDMDAuUlAwOS5QWFNYLldSRFggKi8KICAgICAgICAgICAg fQoKICAgICAgICAgICAgTmFtZSAoV1JEWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDJF KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgIDB4ODAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAg ICAgICAgICAgTWV0aG9kIChXUkRTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbT25lXSA9IFNUWEUgLyogXFNU WEUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDAyXSA9IFNU MTAgLyogXFNUMTAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsw eDAzXSA9IFNUMTEgLyogXFNUMTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkg W09uZV0pIFsweDA0XSA9IFNUMTIgLyogXFNUMTIgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdSRFkgW09uZV0pIFsweDA1XSA9IFNUMTMgLyogXFNUMTMgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA2XSA9IFNUMTQgLyogXFNUMTQgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA3XSA9IFNUMTUgLyogXFNU MTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA4XSA9IFNU MTYgLyogXFNUMTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsw eDA5XSA9IFNUMTcgLyogXFNUMTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkg W09uZV0pIFsweDBBXSA9IFNUMTggLyogXFNUMTggKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdSRFkgW09uZV0pIFsweDBCXSA9IFNUMTkgLyogXFNUMTkgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBDXSA9IFNUNTAgLyogXFNUNTAgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBEXSA9IFNUNTEgLyogXFNU NTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBFXSA9IFNU NTIgLyogXFNUNTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsw eDBGXSA9IFNUNTMgLyogXFNUNTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkg W09uZV0pIFsweDEwXSA9IFNUNTQgLyogXFNUNTQgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdSRFkgW09uZV0pIFsweDExXSA9IFNUNTUgLyogXFNUNTUgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDEyXSA9IFNUNTYgLyogXFNUNTYgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDEzXSA9IFNUNTcgLyogXFNU NTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE0XSA9IFNU NTggLyogXFNUNTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsw eDE1XSA9IFNUNTkgLyogXFNUNTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkg W09uZV0pIFsweDE2XSA9IFNUNUEgLyogXFNUNUEgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdSRFkgW09uZV0pIFsweDE3XSA9IFNUNUIgLyogXFNUNUIgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE4XSA9IENEMTAgLyogXENEMTAgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE5XSA9IENEMTEgLyogXENE MTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFBXSA9IENE MTIgLyogXENEMTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsw eDFCXSA9IENEMTMgLyogXENEMTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkg W09uZV0pIFsweDFDXSA9IENEMTQgLyogXENEMTQgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdSRFkgW09uZV0pIFsweDFEXSA9IENEMTUgLyogXENEMTUgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFFXSA9IENEMTYgLyogXENEMTYgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFGXSA9IENEMTcgLyogXENE MTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDIwXSA9IENE MTggLyogXENEMTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsw eDIxXSA9IENEMTkgLyogXENEMTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkg W09uZV0pIFsweDIyXSA9IENEMUEgLyogXENEMUEgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdSRFkgW09uZV0pIFsweDIzXSA9IENEMjAgLyogXENEMjAgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI0XSA9IENEMjEgLyogXENEMjEgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI1XSA9IENEMjIgLyogXENE MjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI2XSA9IENE MjMgLyogXENEMjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsw eDI3XSA9IENEMjQgLyogXENEMjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkg W09uZV0pIFsweDI4XSA9IENEMjUgLyogXENEMjUgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdSRFkgW09uZV0pIFsweDI5XSA9IENEMjYgLyogXENEMjYgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJBXSA9IENEMjcgLyogXENEMjcgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJCXSA9IENEMjggLyogXENE MjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJDXSA9IENE MjkgLyogXENEMjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsw eDJEXSA9IENEMkEgLyogXENEMkEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoV1JEWSkg LyogXF9TQl8uUEMwMC5SUDA5LlBYU1guV1JEWSAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBOYW1lIChFV1JZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4ODcpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKEVXUkQsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFtP bmVdID0gU1RERSAvKiBcU1RERSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MDJdID0gU1RSUyAvKiBcU1RSUyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MDNdID0gU1QyMCAvKiBcU1QyMCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDRdID0gU1QyMSAvKiBcU1QyMSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDVdID0gU1QyMiAvKiBcU1Qy MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDZdID0gU1Qy MyAvKiBcU1QyMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 MDddID0gU1QyNCAvKiBcU1QyNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MDhdID0gU1QyNSAvKiBcU1QyNSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MDldID0gU1QyNiAvKiBcU1QyNiAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MEFdID0gU1QyNyAvKiBcU1QyNyAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MEJdID0gU1QyOCAvKiBcU1Qy OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MENdID0gU1Qy OSAvKiBcU1QyOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 MERdID0gU1Q2MCAvKiBcU1Q2MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MEVdID0gU1Q2MSAvKiBcU1Q2MSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MEZdID0gU1Q2MiAvKiBcU1Q2MiAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTBdID0gU1Q2MyAvKiBcU1Q2MyAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTFdID0gU1Q2NCAvKiBcU1Q2 NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTJdID0gU1Q2 NSAvKiBcU1Q2NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 MTNdID0gU1Q2NiAvKiBcU1Q2NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MTRdID0gU1Q2NyAvKiBcU1Q2NyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MTVdID0gU1Q2OCAvKiBcU1Q2OCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTZdID0gU1Q2OSAvKiBcU1Q2OSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTddID0gU1Q2QSAvKiBcU1Q2 QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MThdID0gU1Q2 QiAvKiBcU1Q2QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 MTldID0gU1QzMCAvKiBcU1QzMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MUFdID0gU1QzMSAvKiBcU1QzMSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MUJdID0gU1QzMiAvKiBcU1QzMiAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUNdID0gU1QzMyAvKiBcU1QzMyAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MURdID0gU1QzNCAvKiBcU1Qz NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUVdID0gU1Qz NSAvKiBcU1QzNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 MUZdID0gU1QzNiAvKiBcU1QzNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MjBdID0gU1QzNyAvKiBcU1QzNyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MjFdID0gU1QzOCAvKiBcU1QzOCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjJdID0gU1QzOSAvKiBcU1QzOSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjNdID0gU1Q3MCAvKiBcU1Q3 MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjRdID0gU1Q3 MSAvKiBcU1Q3MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 MjVdID0gU1Q3MiAvKiBcU1Q3MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MjZdID0gU1Q3MyAvKiBcU1Q3MyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MjddID0gU1Q3NCAvKiBcU1Q3NCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjhdID0gU1Q3NSAvKiBcU1Q3NSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjldID0gU1Q3NiAvKiBcU1Q3 NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkFdID0gU1Q3 NyAvKiBcU1Q3NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 MkJdID0gU1Q3OCAvKiBcU1Q3OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MkNdID0gU1Q3OSAvKiBcU1Q3OSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MkRdID0gU1Q3QSAvKiBcU1Q3QSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkVdID0gU1Q3QiAvKiBcU1Q3QiAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkZdID0gU1Q0MCAvKiBcU1Q0 MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzBdID0gU1Q0 MSAvKiBcU1Q0MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 MzFdID0gU1Q0MiAvKiBcU1Q0MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MzJdID0gU1Q0MyAvKiBcU1Q0MyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MzNdID0gU1Q0NCAvKiBcU1Q0NCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzRdID0gU1Q0NSAvKiBcU1Q0NSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzVdID0gU1Q0NiAvKiBcU1Q0 NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzZdID0gU1Q0 NyAvKiBcU1Q0NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 MzddID0gU1Q0OCAvKiBcU1Q0OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MzhdID0gU1Q0OSAvKiBcU1Q0OSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MzldID0gU1Q4MCAvKiBcU1Q4MCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0FdID0gU1Q4MSAvKiBcU1Q4MSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0JdID0gU1Q4MiAvKiBcU1Q4 MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0NdID0gU1Q4 MyAvKiBcU1Q4MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 M0RdID0gU1Q4NCAvKiBcU1Q4NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4M0VdID0gU1Q4NSAvKiBcU1Q4NSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4M0ZdID0gU1Q4NiAvKiBcU1Q4NiAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDBdID0gU1Q4NyAvKiBcU1Q4NyAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDFdID0gU1Q4OCAvKiBcU1Q4 OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDJdID0gU1Q4 OSAvKiBcU1Q4OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NDNdID0gU1Q4QSAvKiBcU1Q4QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4NDRdID0gU1Q4QiAvKiBcU1Q4QiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4NDVdID0gQ0QzMCAvKiBcQ0QzMCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDZdID0gQ0QzMSAvKiBcQ0QzMSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDddID0gQ0QzMiAvKiBcQ0Qz MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDhdID0gQ0Qz MyAvKiBcQ0QzMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NDldID0gQ0QzNCAvKiBcQ0QzNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4NEFdID0gQ0QzNSAvKiBcQ0QzNSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4NEJdID0gQ0QzNiAvKiBcQ0QzNiAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NENdID0gQ0QzNyAvKiBcQ0QzNyAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NERdID0gQ0QzOCAvKiBcQ0Qz OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NEVdID0gQ0Qz OSAvKiBcQ0QzOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NEZdID0gQ0QzQSAvKiBcQ0QzQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4NTBdID0gQ0QzQiAvKiBcQ0QzQiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4NTFdID0gQ0QzQyAvKiBcQ0QzQyAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTJdID0gQ0QzRCAvKiBcQ0QzRCAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTNdID0gQ0QzRSAvKiBcQ0Qz RSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTRdID0gQ0Qz RiAvKiBcQ0QzRiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NTVdID0gQ0Q0MCAvKiBcQ0Q0MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4NTZdID0gQ0Q0MSAvKiBcQ0Q0MSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4NTddID0gQ0Q0MiAvKiBcQ0Q0MiAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NThdID0gQ0Q0MyAvKiBcQ0Q0MyAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTldID0gQ0Q0NCAvKiBcQ0Q0 NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUFdID0gQ0Q0 NSAvKiBcQ0Q0NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NUJdID0gQ0Q0NiAvKiBcQ0Q0NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4NUNdID0gQ0Q0NyAvKiBcQ0Q0NyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4NURdID0gQ0Q0OCAvKiBcQ0Q0OCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUVdID0gQ0Q0OSAvKiBcQ0Q0OSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUZdID0gQ0Q0QSAvKiBcQ0Q0 QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjBdID0gQ0Q0 QiAvKiBcQ0Q0QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NjFdID0gQ0Q0QyAvKiBcQ0Q0QyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4NjJdID0gQ0Q0RCAvKiBcQ0Q0RCAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4NjNdID0gQ0Q0RSAvKiBcQ0Q0RSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjRdID0gQ0Q0RiAvKiBcQ0Q0RiAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjVdID0gQ0Q1MCAvKiBcQ0Q1 MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjZdID0gQ0Q1 MSAvKiBcQ0Q1MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NjddID0gQ0Q1MiAvKiBcQ0Q1MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4NjhdID0gQ0Q1MyAvKiBcQ0Q1MyAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4NjldID0gQ0Q1NCAvKiBcQ0Q1NCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkFdID0gQ0Q1NSAvKiBcQ0Q1NSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkJdID0gQ0Q1NiAvKiBcQ0Q1 NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkNdID0gQ0Q1 NyAvKiBcQ0Q1NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NkRdID0gQ0Q1OCAvKiBcQ0Q1OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4NkVdID0gQ0Q1OSAvKiBcQ0Q1OSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4NkZdID0gQ0Q1QSAvKiBcQ0Q1QSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzBdID0gQ0Q1QiAvKiBcQ0Q1QiAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzFdID0gQ0Q1QyAvKiBcQ0Q1 QyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzJdID0gQ0Q1 RCAvKiBcQ0Q1RCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NzNdID0gQ0Q1RSAvKiBcQ0Q1RSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4NzRdID0gQ0Q1RiAvKiBcQ0Q1RiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4NzVdID0gQ0Q2MCAvKiBcQ0Q2MCAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzZdID0gQ0Q2MSAvKiBcQ0Q2MSAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzddID0gQ0Q2MiAvKiBcQ0Q2 MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzhdID0gQ0Q2 MyAvKiBcQ0Q2MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NzldID0gQ0Q2NCAvKiBcQ0Q2NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4N0FdID0gQ0Q2NSAvKiBcQ0Q2NSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4N0JdID0gQ0Q2NiAvKiBcQ0Q2NiAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0NdID0gQ0Q2NyAvKiBcQ0Q2NyAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0RdID0gQ0Q2OCAvKiBcQ0Q2 OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0VdID0gQ0Q2 OSAvKiBcQ0Q2OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 N0ZdID0gQ0Q2QSAvKiBcQ0Q2QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4ODBdID0gQ0Q2QiAvKiBcQ0Q2QiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4ODFdID0gQ0Q2QyAvKiBcQ0Q2QyAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODJdID0gQ0Q2RCAvKiBcQ0Q2RCAqLwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODNdID0gQ0Q2RSAvKiBcQ0Q2 RSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODRdID0gQ0Q2 RiAvKiBcQ0Q2RiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 ODVdID0gQ0Q3MCAvKiBcQ0Q3MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4ODZdID0gQ0Q3MSAvKiBcQ0Q3MSAqLwogICAgICAgICAgICAgICAgUmV0dXJu IChFV1JZKSAvKiBcX1NCXy5QQzAwLlJQMDkuUFhTWC5FV1JZICovCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE5hbWUgKFdHRFksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHg0QSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAg ICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAg ICAgICAgIE1ldGhvZCAoV0dEUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgW09uZV0gPSBTREdOIC8qIFxTREdO ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwMl0gPSBTRDEx IC8qIFxTRDExICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgw M10gPSBTRDEyIC8qIFxTRDEyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgwNF0gPSBTRDEzIC8qIFxTRDEzICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgwNV0gPSBTRDE0IC8qIFxTRDE0ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwNl0gPSBTRDE1IC8qIFxTRDE1ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwN10gPSBTRDE2IC8qIFxTRDE2 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwOF0gPSBTRDE3 IC8qIFxTRDE3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgw OV0gPSBTRDE4IC8qIFxTRDE4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgwQV0gPSBTRDE5IC8qIFxTRDE5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgwQl0gPSBTRDIxIC8qIFxTRDIxICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwQ10gPSBTRDIyIC8qIFxTRDIyICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwRF0gPSBTRDIzIC8qIFxTRDIz ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwRV0gPSBTRDI0 IC8qIFxTRDI0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgw Rl0gPSBTRDI1IC8qIFxTRDI1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgxMF0gPSBTRDI2IC8qIFxTRDI2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgxMV0gPSBTRDI3IC8qIFxTRDI3ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxMl0gPSBTRDI4IC8qIFxTRDI4ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxM10gPSBTRDI5IC8qIFxTRDI5 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxNF0gPSBTRDMx IC8qIFxTRDMxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgx NV0gPSBTRDMyIC8qIFxTRDMyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgxNl0gPSBTRDMzIC8qIFxTRDMzICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgxN10gPSBTRDM0IC8qIFxTRDM0ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxOF0gPSBTRDM1IC8qIFxTRDM1ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxOV0gPSBTRDM2IC8qIFxTRDM2 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxQV0gPSBTRDM3 IC8qIFxTRDM3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgx Ql0gPSBTRDM4IC8qIFxTRDM4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgxQ10gPSBTRDM5IC8qIFxTRDM5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgxRF0gPSBTRDQxIC8qIFxTRDQxICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxRV0gPSBTRDQyIC8qIFxTRDQyICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxRl0gPSBTRDQzIC8qIFxTRDQz ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyMF0gPSBTRDQ0 IC8qIFxTRDQ0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgy MV0gPSBTRDQ1IC8qIFxTRDQ1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgyMl0gPSBTRDQ2IC8qIFxTRDQ2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgyM10gPSBTRDQ3IC8qIFxTRDQ3ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyNF0gPSBTRDQ4IC8qIFxTRDQ4ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyNV0gPSBTRDQ5IC8qIFxTRDQ5 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyNl0gPSBTRDUx IC8qIFxTRDUxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgy N10gPSBTRDUyIC8qIFxTRDUyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgyOF0gPSBTRDUzIC8qIFxTRDUzICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgyOV0gPSBTRDU0IC8qIFxTRDU0ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQV0gPSBTRDU1IC8qIFxTRDU1ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQl0gPSBTRDU2IC8qIFxTRDU2 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQ10gPSBTRDU3 IC8qIFxTRDU3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgy RF0gPSBTRDU4IC8qIFxTRDU4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgyRV0gPSBTRDU5IC8qIFxTRDU5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgyRl0gPSBTRDYxIC8qIFxTRDYxICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMF0gPSBTRDYyIC8qIFxTRDYyICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMV0gPSBTRDYzIC8qIFxTRDYz ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMl0gPSBTRDY0 IC8qIFxTRDY0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgz M10gPSBTRDY1IC8qIFxTRDY1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgzNF0gPSBTRDY2IC8qIFxTRDY2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgzNV0gPSBTRDY3IC8qIFxTRDY3ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzNl0gPSBTRDY4IC8qIFxTRDY4ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzN10gPSBTRDY5IC8qIFxTRDY5 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzOF0gPSBTRDcx IC8qIFxTRDcxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgz OV0gPSBTRDcyIC8qIFxTRDcyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgzQV0gPSBTRDczIC8qIFxTRDczICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgzQl0gPSBTRDc0IC8qIFxTRDc0ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzQ10gPSBTRDc1IC8qIFxTRDc1ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRF0gPSBTRDc2IC8qIFxTRDc2 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRV0gPSBTRDc3 IC8qIFxTRDc3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgz Rl0gPSBTRDc4IC8qIFxTRDc4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHg0MF0gPSBTRDc5IC8qIFxTRDc5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHg0MV0gPSBTRDgxIC8qIFxTRDgxICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0Ml0gPSBTRDgyIC8qIFxTRDgyICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0M10gPSBTRDgzIC8qIFxTRDgz ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0NF0gPSBTRDg0 IC8qIFxTRDg0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0 NV0gPSBTRDg1IC8qIFxTRDg1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHg0Nl0gPSBTRDg2IC8qIFxTRDg2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHg0N10gPSBTRDg3IC8qIFxTRDg3ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0OF0gPSBTRDg4IC8qIFxTRDg4ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0OV0gPSBTRDg5IC8qIFxTRDg5 ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdHRFkpIC8qIFxfU0JfLlBDMDAuUlAwOS5Q WFNYLldHRFkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoRUNLWSwgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChFQ0tWLCAwLCBTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFQ0tZIFtP bmVdKSBbT25lXSA9IENFQ1YgLyogXENFQ1YgKi8KICAgICAgICAgICAgICAgIFJldHVybiAo RUNLWSkgLyogXF9TQl8uUEMwMC5SUDA5LlBYU1guRUNLWSAqLwogICAgICAgICAgICB9Cgog ICAgICAgICAgICBOYW1lIChQUEFZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MTgpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgxOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgxOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAg ICAgICAgICAgMHgyOAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAg ICAgICBNZXRob2QgKFBQQUcsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFtPbmVdID0gV0FHTSAvKiBcV0FHTSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDJdID0gQUdBMSAv KiBcQUdBMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDNd ID0gQUdBMiAvKiBcQUdBMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25l XSkgWzB4MDRdID0gQUdBMyAvKiBcQUdBMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo UFBBWSBbT25lXSkgWzB4MDVdID0gQUdBNCAvKiBcQUdBNCAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDZdID0gQUdBNSAvKiBcQUdBNSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDddID0gQUdBNiAvKiBcQUdBNiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDhdID0gQUdBNyAv KiBcQUdBNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDld ID0gQUdBOCAvKiBcQUdBOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25l XSkgWzB4MEFdID0gQUdBOSAvKiBcQUdBOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo UFBBWSBbT25lXSkgWzB4MEJdID0gQUdBQSAvKiBcQUdBQSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MENdID0gQUdBQiAvKiBcQUdBQiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MERdID0gQUdCMSAvKiBcQUdCMSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MEVdID0gQUdCMiAv KiBcQUdCMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MEZd ID0gQUdCMyAvKiBcQUdCMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25l XSkgWzB4MTBdID0gQUdCNCAvKiBcQUdCNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo UFBBWSBbT25lXSkgWzB4MTFdID0gQUdCNSAvKiBcQUdCNSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTJdID0gQUdCNiAvKiBcQUdCNiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTNdID0gQUdCNyAvKiBcQUdCNyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTRdID0gQUdCOCAv KiBcQUdCOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTVd ID0gQUdCOSAvKiBcQUdCOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25l XSkgWzB4MTZdID0gQUdCQSAvKiBcQUdCQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo UFBBWSBbT25lXSkgWzB4MTddID0gQUdCQiAvKiBcQUdCQiAqLwogICAgICAgICAgICAgICAg UmV0dXJuIChQUEFZKSAvKiBcX1NCXy5QQzAwLlJQMDkuUFhTWC5QUEFZICovCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdQRlksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwNSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1BGQywg MCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1BGWSBbT25lXSkgW09uZV0gPSBXUEZBIC8qIFxXUEZBICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUEZZIFtPbmVdKSBbMHgwMl0gPSBXUEZCIC8qIFxXUEZCICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbMHgwM10gPSBcV1BGQwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1BGWSBbT25lXSkgWzB4MDRdID0gV1BGRCAvKiBcV1BGRCAqLwog ICAgICAgICAgICAgICAgUmV0dXJuIChXUEZZKSAvKiBcX1NCXy5QQzAwLlJQMDkuUFhTWC5X UEZZICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdUU1ksIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDEzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAg TWV0aG9kIChXVEFTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbT25lXSA9IFdUU0UgLyogXFdUU0UgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDAyXSA9IFdUTEUgLyogXFdU TEUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDAzXSA9IEJM MDEgLyogXEJMMDEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsw eDA0XSA9IEJMMDIgLyogXEJMMDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kg W09uZV0pIFsweDA1XSA9IEJMMDMgLyogXEJMMDMgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdUU1kgW09uZV0pIFsweDA2XSA9IEJMMDQgLyogXEJMMDQgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA3XSA9IEJMMDUgLyogXEJMMDUgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA4XSA9IEJMMDYgLyogXEJM MDYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA5XSA9IEJM MDcgLyogXEJMMDcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsw eDBBXSA9IEJMMDggLyogXEJMMDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kg W09uZV0pIFsweDBCXSA9IEJMMDkgLyogXEJMMDkgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdUU1kgW09uZV0pIFsweDBDXSA9IEJMMTAgLyogXEJMMTAgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBEXSA9IEJMMTEgLyogXEJMMTEgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBFXSA9IEJMMTIgLyogXEJM MTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBGXSA9IEJM MTMgLyogXEJMMTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsw eDEwXSA9IEJMMTQgLyogXEJMMTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kg W09uZV0pIFsweDExXSA9IEJMMTUgLyogXEJMMTUgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdUU1kgW09uZV0pIFsweDEyXSA9IEJMMTYgLyogXEJMMTYgKi8KICAgICAgICAgICAg ICAgIFJldHVybiAoV1RTWSkgLyogXF9TQl8uUEMwMC5SUDA5LlBYU1guV1RTWSAqLwogICAg ICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXQUlZLCBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywg CiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9KQogICAgICAgICAgICBNZXRob2QgKFdBSVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBSVkgW09uZV0pIFtPbmVdID0gV0xC SSAvKiBcV0xCSSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FJWSBbT25lXSkgWzB4 MDJdID0gV0hCSSAvKiBcV0hCSSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXQUlZKSAv KiBcX1NCXy5QQzAwLlJQMDkuUFhTWC5XQUlZICovCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE5hbWUgKFNBRFgsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAg ICAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MTIs IAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChTQURTLCAwLCBTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChTQURYIFtPbmVdKSBbT25l XSA9IEFURFYgLyogXEFURFYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFNBRFggWzB4 MDJdKSBbT25lXSA9IEFURFYgLyogXEFURFYgKi8KICAgICAgICAgICAgICAgIFJldHVybiAo U0FEWCkgLyogXF9TQl8uUEMwMC5SUDA5LlBYU1guU0FEWCAqLwogICAgICAgICAgICB9Cgog ICAgICAgICAgICBOYW1lIChHUENYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChHUEMsIDAs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoR1BD WCkgLyogXF9TQl8uUEMwMC5SUDA5LlBYU1guR1BDWCAqLwogICAgICAgICAgICB9CgogICAg ICAgICAgICBOYW1lIChHTEFYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAg ICAgICAgWmVybwogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDEyLCAK ICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0pCiAgICAgICAgICAgIE1ldGhvZCAoR0xBSSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBUjogR0xBSSBtZXRo b2QuIENHTFMgPSAiLCBUb0hleFN0cmluZyAoQ0dMUykpKQogICAgICAgICAgICAgICAgRGVy ZWZPZiAoR0xBWCBbT25lXSkgW09uZV0gPSBDR0xTIC8qIFxDR0xTICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChHTEFYIFsweDAyXSkgW09uZV0gPSBDR0xTIC8qIFxDR0xTICovCiAg ICAgICAgICAgICAgICBSZXR1cm4gKEdMQVgpIC8qIFxfU0JfLlBDMDAuUlAwOS5QWFNYLkdM QVggKi8KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKCgoV1dFTiAhPSBa ZXJvKSAmJiAoV1dSUCA9PSBTTE9UKSkpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2Qg KEZIUkYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IElmICgoR0dPViAoUFJTVCkgIT0gV1BSUCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgREwyMyAoKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIERM MjMoKSBEb25lIikKICAgICAgICAgICAgICAgICAgICBTR09WIChQUlNULCBXUFJQKQogICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBFUlNUOjAgRG9uZSIpCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoIkFzc3VtZSBXV0FOIERMMjMoKSBpcyBhbHJlYWR5IGRvbmUi KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFNsZWVwIChUUjJCKQogICAg ICAgICAgICAgICAgU0dPViAoV0JSUywgUEJSUykKICAgICAgICAgICAgICAgIEFEQkcgKCJX V0FOIFJTVDowIERvbmUiKQogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFplcm8pKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNsZWVwIChUQlRHKQogICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRCVEcgIiwgVG9EZWNp bWFsU3RyaW5nIChUQlRHKSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBF bHNlSWYgKChBcmcwID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgU1BDTyAoV0NMSywgWmVybykKICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dB TiBTQ0xLOjAgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFRCMkYpCiAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEIyRiAiLCBUb0RlY2lt YWxTdHJpbmcgKFRCMkYpKSkKICAgICAgICAgICAgICAgICAgICBTR09WIChXRkNQLCAoflBG Q1AgJiBPbmUpKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBXUjowIERvbmUi KQogICAgICAgICAgICAgICAgICAgIFNsZWVwIChURkRJKQogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRGREkgIiwgVG9EZWNpbWFsU3RyaW5nIChURkRJ KSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIlVuc3VwcG9ydGVkIEFyZzAgaXMg ZGV0ZWN0ZWQuIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChTSFJGLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBQU0QwIChTTE9UKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gTVBI WVBHOjAgRG9uZSIpCiAgICAgICAgICAgICAgICBTUENPIChXQ0xLLCBPbmUpCiAgICAgICAg ICAgICAgICBBREJHICgiV1dBTiBTQ0xLOjEgRG9uZSIpCiAgICAgICAgICAgICAgICBTR09W IChXRkNQLCBQRkNQKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFdSOjEgRG9uZSIp CiAgICAgICAgICAgICAgICBTbGVlcCAoVE4yQikKICAgICAgICAgICAgICAgIEFEQkcgKENv bmNhdGVuYXRlICgiU0xQIFROMkIgIiwgVG9EZWNpbWFsU3RyaW5nIChUTjJCKSkpCiAgICAg ICAgICAgICAgICBTR09WIChXQlJTLCAoflBCUlMgJiBPbmUpKQogICAgICAgICAgICAgICAg QURCRyAoIldXQU4gUlNUOjEgRG9uZSIpCiAgICAgICAgICAgICAgICBTbGVlcCAoVEIyUikK ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRCMlIgIiwgVG9EZWNp bWFsU3RyaW5nIChUQjJSKSkpCiAgICAgICAgICAgICAgICBTR09WIChQUlNULCAofldQUlAg JiBPbmUpKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUEVSU1Q6MCBEb25lIikKICAg ICAgICAgICAgICAgIEwyM0QgKCkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIEwyM0Qo KSBEb25lIikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChET1NWLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSBa ZXJvCiAgICAgICAgICAgICAgICBXaGlsZSAoKChTVklEICE9IFdTSUQpICYmIChMb2NhbDAg PCBXU1RPKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWww KysKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiREVUIFRpbWUgIiwgVG9EZWNp bWFsU3RyaW5nIChMb2NhbDApKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChfUlNULCAwLCBTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIEFEQkcgKCJfUlNUIFdXQU4iKQogICAgICAgICAgICAg ICAgSWYgKChXV0VOID09IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIExvY2FsMCA9IEFjcXVpcmUgKFdXTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAg ICAgICBBREJHICgiV1dBTiBGTERSIE11dGV4OiBBY3F1aXJlZCBUcnkgRG9uZSIpCiAgICAg ICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBGTERSIikK ICAgICAgICAgICAgICAgICAgICAgICAgRkhSRiAoWmVybykKICAgICAgICAgICAgICAgICAg ICAgICAgU0hSRiAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRW5kIFdXQU4g RkxEUiIpCiAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFdXTVQpCiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIEZMRFIgTXV0ZXg6UmVsZWFzZSBEb25lIikK ICAgICAgICAgICAgICAgICAgICAgICAgRE9TViAoKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBTR09WIChXQlJTLCBQQlJTKQogICAgICAgICAgICAg ICAgICAgIFNsZWVwICgweEM4KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoUFhTWCwg T25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgICAgICBTR09WIChQUlNULCAo fldQUlAgJiBPbmUpKQogICAgICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsICh+UEJSUyAm IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4QzgpCiAgICAgICAgICAgICAg ICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTEFTWCA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoTG9jYWwwID4gMHgxNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJGTERSIFRPIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDArKwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJSVlAg RGVsYXkgVGltZSAiLCBUb0RlY2ltYWxTdHJpbmcgKExvY2FsMCkpKQogICAgICAgICAgICAg ICAgICAgIE5vdGlmeSAoUFhTWCwgT25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgUG93ZXJSZXNvdXJjZSAoTVJTVCwg MHgwNSwgMHgwMDAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQUiBfU1RBIikKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9PTiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9uCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFIgX09OIikK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9PRkYsIDAsIFNl cmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBBREJHICgiV1dBTiBQUiBfT0ZGIikKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUlNU OiBEZXZpY2UgUmVzZXQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBBY3F1aXJlIChXV01ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgQURC RyAoIldXQU4gUExEUiBNdXRleDogQWNxdWlyZWQgVHJ5IERvbmUiKQogICAgICAgICAgICAg ICAgICAgIElmICgoTG9jYWwwID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlN0YXJ0IFdXQU4gUExEUiIpCiAgICAgICAg ICAgICAgICAgICAgICAgIEZIUkYgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgU0hS RiAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRW5kIFdXQU4gUFIgX1JTVCIp CiAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFdXTVQpCiAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJXV0FOIFBMRFIgTXV0ZXg6IFJlbGVhc2UgRG9uZSIpCiAgICAg ICAgICAgICAgICAgICAgICAgIERPU1YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmICgoV0lT VCAoKSB8fCAoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xPVCkpKSkKICAgICAgICB7 CiAgICAgICAgICAgIE1ldGhvZCAoX1BSUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlI6 IFBvd2VyIFJlc291cmNlIGZvciBSZXNldAogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoV0lTVCAoKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChXUlNUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgV1JTVAogICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBJZiAoKChXV0VOICE9IFplcm8pICYmIChXV1JQID09IFNMT1Qp KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChNUlNUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTVJTVAogICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgV1JTVAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTmFtZSAoRkRFTCwgWmVybykKICAgICAgICAgICAgTmFtZSAoUERFTCwgWmVy bykKICAgICAgICAgICAgTmFtZSAoVkRFTCwgWmVybykKICAgICAgICAgICAgTWV0aG9kIChJ RlVOLCA0LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcxID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoInZQcm86ICIsIENWUFIpKQogICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IChDVlBSIDw8IFplcm8pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDAp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQXJnMywgWmVybywgQ01EVCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmll bGQgKEFyZzMsIDB4MDIsIENNRFApCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJDbWRUeXBlID0gIiwgVG9IZXhTdHJpbmcgKENNRFQpKSkKICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkNtZFBheWxvYWQgPSAiLCBUb0hleFN0cmlu ZyAoQ01EUCkpKQogICAgICAgICAgICAgICAgICAgIElmICgoQ01EVCA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUlNUWSkgLyogXF9TQl8uUEMwMC5SUDA5LlBYU1guUlNUWSAqLwogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoQ29u ZFJlZk9mIChcX1NCLlBDMDAuQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJHZXQg X1BSUiBNb2RlID0gIiwgXl5eQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoXl5eQ05WVy5SU1RUKSAvKiBcX1NCXy5QQzAwLkNOVlcuUlNUVCAqLwog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKENNRFQgPT0gMHgwMikpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoV0lTVCAoKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gKENNRFAgJiBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSU1RZ ID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAoQ01EUCAm IDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPj49IE9uZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRkxSQyA9IExvY2FsMQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwyID0gKENNRFAgJiAweDA0KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwyID4+PSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBC T0ZDID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZUlmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5DTlZXLlJTVFQpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIlNldCBfUFJSIE1vZGUgPSAiLCBUb0hleFN0cmluZyAoQ01EUCkp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eQ05WVy5SU1RUID0gQ01EUCAvKiBc X1NCXy5QQzAwLlJQMDkuUFhTWC5JRlVOLkNNRFAgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChDTURUID09IDB4MDMpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXF9TQi5QQzAwLkNOVlcuUFJSUykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiR2V0IExh c3RfUFJSIHN0YXR1cyBQUlJTID0gIiwgVG9IZXhTdHJpbmcgKF5eXkNOVlcuUFJSUykpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICheXl5DTlZXLlBSUlMpIC8qIFxf U0JfLlBDMDAuQ05WVy5QUlJTICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZUlmIChXSVNUICgpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IkdldCBMYXN0X1BSUiBzdGF0dXMgRFBSUyA9ICIsIFRvSGV4U3RyaW5nIChEUFJTKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERQUlMpIC8qIFxfU0JfLlBDMDAu UlAwOS5QWFNYLkRQUlMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAzKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKENSRkkgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSAweDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIFplcm8sIFBSVFQpCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmczLCAweDAyLCBQUlREKQogICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVGltZXJUeXBlID0gIiwgVG9IZXhTdHJp bmcgKFBSVFQpKSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlRp bWVyRHVyYXRpb24gKG1zKSA9ICIsIFRvRGVjaW1hbFN0cmluZyAoUFJURCkpKQogICAgICAg ICAgICAgICAgICAgIElmICgoUFJUVCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgRkRFTCA9IFBSVEQgLyogXF9TQl8uUEMwMC5SUDA5 LlBYU1guSUZVTi5QUlREICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2VJZiAoKFBSVFQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBQREVMID0gUFJURCAvKiBcX1NCXy5QQzAwLlJQMDku UFhTWC5JRlVOLlBSVEQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZUlmICgoUFJUVCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFZERUwgPSBQUlREIC8qIFxfU0JfLlBDMDAuUlAwOS5Q WFNYLklGVU4uUFJURCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiVGltZXJEdXJhdGlvbiBub3Qgc2V0IikKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKElEU00sIDEsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI3MjY2 MTcyYy0yMjBiLTRiMjktODE0Zi03NWU0ZGQyNmI1ZmQiKSAvKiBVbmtub3duIFVVSUQgKi8p KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChFRlVOLCA0LCBTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGLCAweDFGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEFDU0QgLyogXEFDU0QgKi8KICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gSTVCUyAvKiBcSTVCUyAqLwogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBVSEJTIC8qIFxVSEJTICovCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IEFYTVUgLyogXEFYTVUgKi8KICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPDw9IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSBBWFNVIC8qIFxBWFNV ICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQVhNUiAvKiBcQVhNUiAqLwogICAg ICAgICAgICAgICAgICAgIExvY2FsMSA8PD0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9j YWwxIHw9IEFYU1IgLyogXEFYU1IgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPDw9 IDB4MDIKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gTG9jYWwxCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MDAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDUpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0ZVQykgLyogXFdG VUMgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g MHgwNykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChV Tkk0KSAvKiBcVU5JNCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSAweDA4KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFdGSUMpIC8qIFxXRklDICovCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MDkpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoV0ZCUykgLyogXFdGQlMgKi8KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwQSkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRURUKSAvKiBcV0VEVCAqLwogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBCKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKENJUk0gPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChP bmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIElmICgoQXJnMiA9PSAweDBDKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFdGN0MpIC8qIFxXRjdDICovCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKEVEU00sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJmMjEyMDJiZi04Zjc4LTRkYzYtYTVi My0xZjczOGUyODVhZGUiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNp ZmljIE1ldGhvZAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoV0lTVCAoKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoRURTTSAoQXJnMCkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEVGVU4gKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKElEU00gKEFyZzApKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChJRlVOIChBcmcwLCBBcmcx LCBBcmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKCgoV1dFTiAhPSBaZXJvKSAmJiAoV1dSUCA9PSBTTE9U KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09 IFRvVVVJRCAoImJhZDAxYjc1LTIyYTgtNGY0OC04NzkyLWJkZGU5NDY3NzQ3ZCIpIC8qIFVu a25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSl7fQog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpe30KICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFdSVE8gPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNNIEQwL0wxLjIiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgo V1JUTyA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNNIEQzL0wxLjIi KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZUlmICgoV1JUTyA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dl ciBfRFNNIEQzL0wyIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNN IERpc2FibGVkIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFdSVE8pIC8qIFxXUlRPICovCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg IH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAwLlJQMTAuUFhTWCkKICAg IHsKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFJQWFgsIFN5c3RlbU1lbW9yeSwgR01JTyAo UEJOVSwgXl9BRFIgKCksIF9BRFIpLCAweDMwKQogICAgICAgIEZpZWxkIChSUFhYLCBBbnlB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBWRElELCAgIDMy LCAKICAgICAgICAgICAgT2Zmc2V0ICgweDJDKSwgCiAgICAgICAgICAgIFNWSUQsICAgMTYK ICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoRkxEUiwgU3lzdGVtTWVtb3J5 LCAoR01JTyAoUEJOVSwgXl9BRFIgKCksIF9BRFIpICsgV0RDTyksIDB4MDYpCiAgICAgICAg RmllbGQgKEZMRFIsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAg ICAgICAgICBEQ0FQLCAgIDMyLCAKICAgICAgICAgICAgRENUUiwgICAxNgogICAgICAgIH0K CiAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChWU0VDLCBTeXN0ZW1NZW1vcnksIChHTUlPIChQ Qk5VLCBeX0FEUiAoKSwgX0FEUikgKyBXVkhPKSwgMHgxMCkKICAgICAgICBGaWVsZCAoVlNF QywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zm c2V0ICgweDBDKSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIEJUSUUs ICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwg CiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAg ICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgwRCksIAogICAgICAg ICAgICBQRFJDLCAgIDEKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUEJS UiwgU3lzdGVtTWVtb3J5LCBHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUiksIDB4MDJCOCkK ICAgICAgICBGaWVsZCAoUEJSUiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAg IHsKICAgICAgICAgICAgT2Zmc2V0ICgweDE4QyksIAogICAgICAgICAgICBNU05MLCAgIDMy LCAKICAgICAgICAgICAgT2Zmc2V0ICgweDE5OCksIAogICAgICAgICAgICBMMUMxLCAgIDMy LCAKICAgICAgICAgICAgTDFDMiwgICAzMiwgCiAgICAgICAgICAgIE9mZnNldCAoMHgyQjQp LCAKICAgICAgICAgICAgUFRNUiwgICAzMgogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChX SVNULCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoVkRJRCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRl Z2VyIChWRElEKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDI1MjY4MDg2KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MjcxQjgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgyNzIzODA4NikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MjU4MDg2KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MjcyQjgw ODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVm YXVsdAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChTVkRDID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBF bHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChXV1NULCAwLCBTZXJpYWxpemVk KQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoVkRJRCkpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChWRElEKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlICgweDczNjA4MDg2KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4NzU2 MDgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg Q2FzZSAoMHg0RDc1MTRDMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDA4MDAxNEMzKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAgICB7CiAgICAgICAg ICAgIE5hbWUgKFJTVFksIFplcm8pCiAgICAgICAgICAgIE5hbWUgKEZMUkMsIFplcm8pCiAg ICAgICAgICAgIE5hbWUgKEJPRkMsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKERQUlMsIFpl cm8pCiAgICAgICAgICAgIFBvd2VyUmVzb3VyY2UgKFdSU1QsIDB4MDUsIDB4MDAwMCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQURCRyAoIldpZmkgUFIgX1NUQSIpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT04s IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFBSIF9PTiIpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQURCRyAoIldpZmkgUFIgX09GRiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfUlNULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2 aWNlIFJlc2V0CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChS U1RZID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBBREJHICgiV2lmaSBQcm9kdWN0IFJTVCIpCiAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCA9IEFjcXVpcmUgKENOTVQsIDB4MDNFOCkKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRkxSQyA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IERDVFIgLyogXF9TQl8uUEMwMC5SUDEwLlBYU1guRENUUiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSAweDgwMDAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEQ1RSID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKEZERUwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgRFBSUyA9IE9uZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChCT0ZDID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCUk1UID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQlRSSyAoWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgo V1ZITyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJUSUUgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoUkRMWSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQRFJDID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoVkRFTCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNHT1YgKFdM UlQsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoUERFTCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNHT1YgKFdMUlQsIE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQk9GQyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQlJNVCA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJUUksgKE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlm ICgoV1ZITyAhPSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJUSUUgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNsZWVwIChSRExZKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERQUlMgPSAweDAyCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZWxlYXNlIChDTk1UKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIENvcmUgUlNU IikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChEQ0FQICYgMHgxMDAwMDAwMCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IERDVFIgLyogXF9TQl8uUEMwMC5SUDEwLlBYU1guRENUUiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4ODAwMAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRENUUiA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBEUFJTID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwN0QwKQogICAgICAgICAgICAgICAgICAg IE1TTkwgPSBEUjAxIC8qIFxEUjAxICovCiAgICAgICAgICAgICAgICAgICAgTDFDMSA9IERS MDIgLyogXERSMDIgKi8KICAgICAgICAgICAgICAgICAgICBMMUMyID0gRFIwMyAvKiBcRFIw MyAqLwogICAgICAgICAgICAgICAgICAgIFBUTVIgPSBEUjA0IC8qIFxEUjA0ICovCiAgICAg ICAgICAgICAgICAgICAgU2xlZXAgKDB4MDdEMCkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoU1BMWCwgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAw MDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAg ICAgICAgTWV0aG9kIChTUExDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBEZXJlZk9mIChTUExYIFtPbmVdKSBbWmVyb10gPSBET00xIC8qIFxET00x ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChTUExYIFtPbmVdKSBbT25lXSA9IExJTTEg LyogXExJTTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFsweDAy XSA9IFRJTTEgLyogXFRJTTEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoU1BMWCkgLyog XF9TQl8uUEMwMC5SUDEwLlBYU1guU1BMWCAqLwogICAgICAgICAgICB9CgogICAgICAgICAg ICBOYW1lIChXQU5YLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAw CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAo V0FORCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0FOWCBbT25lXSkgW1plcm9dID0gWmVybwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0FOWCBbT25lXSkgW09uZV0gPSBUUkQwIC8qIFxUUkQwICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChXQU5YIFtPbmVdKSBbMHgwMl0gPSBUUkwwIC8qIFxUUkwwICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXQU5YIFsweDAyXSkgW1plcm9dID0gT25lCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXQU5YIFsweDAyXSkgW09uZV0gPSBUUkQxIC8qIFxUUkQxICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXQU5YIFsweDAyXSkgWzB4MDJdID0gVFJMMSAv KiBcVFJMMSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXQU5YKSAvKiBcX1NCXy5QQzAw LlJQMTAuUFhTWC5XQU5YICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdS RFgsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgw MDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9k IChXUkRELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRYIFtPbmVdKSBbWmVyb10gPSBXRE0xIC8qIFxXRE0xICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRYIFtPbmVdKSBbT25lXSA9IENJRDEgLyogXENJRDEgKi8K ICAgICAgICAgICAgICAgIFJldHVybiAoV1JEWCkgLyogXF9TQl8uUEMwMC5SUDEwLlBYU1gu V1JEWCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXUkRZLCBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MkUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdSRFMsIDAsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0p IFtPbmVdID0gU1RYRSAvKiBcU1RYRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MDJdID0gU1QxMCAvKiBcU1QxMCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MDNdID0gU1QxMSAvKiBcU1QxMSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDRdID0gU1QxMiAvKiBcU1QxMiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDVdID0gU1QxMyAvKiBc U1QxMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDZdID0g U1QxNCAvKiBcU1QxNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MDddID0gU1QxNSAvKiBcU1QxNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MDhdID0gU1QxNiAvKiBcU1QxNiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MDldID0gU1QxNyAvKiBcU1QxNyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MEFdID0gU1QxOCAvKiBcU1QxOCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MEJdID0gU1QxOSAvKiBc U1QxOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MENdID0g U1Q1MCAvKiBcU1Q1MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MERdID0gU1Q1MSAvKiBcU1Q1MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MEVdID0gU1Q1MiAvKiBcU1Q1MiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MEZdID0gU1Q1MyAvKiBcU1Q1MyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTBdID0gU1Q1NCAvKiBcU1Q1NCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTFdID0gU1Q1NSAvKiBc U1Q1NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTJdID0g U1Q1NiAvKiBcU1Q1NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MTNdID0gU1Q1NyAvKiBcU1Q1NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MTRdID0gU1Q1OCAvKiBcU1Q1OCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MTVdID0gU1Q1OSAvKiBcU1Q1OSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTZdID0gU1Q1QSAvKiBcU1Q1QSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTddID0gU1Q1QiAvKiBc U1Q1QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MThdID0g Q0QxMCAvKiBcQ0QxMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MTldID0gQ0QxMSAvKiBcQ0QxMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MUFdID0gQ0QxMiAvKiBcQ0QxMiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MUJdID0gQ0QxMyAvKiBcQ0QxMyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUNdID0gQ0QxNCAvKiBcQ0QxNCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MURdID0gQ0QxNSAvKiBc Q0QxNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUVdID0g Q0QxNiAvKiBcQ0QxNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MUZdID0gQ0QxNyAvKiBcQ0QxNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MjBdID0gQ0QxOCAvKiBcQ0QxOCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MjFdID0gQ0QxOSAvKiBcQ0QxOSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjJdID0gQ0QxQSAvKiBcQ0QxQSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjNdID0gQ0QyMCAvKiBc Q0QyMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjRdID0g Q0QyMSAvKiBcQ0QyMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MjVdID0gQ0QyMiAvKiBcQ0QyMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MjZdID0gQ0QyMyAvKiBcQ0QyMyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MjddID0gQ0QyNCAvKiBcQ0QyNCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjhdID0gQ0QyNSAvKiBcQ0QyNSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjldID0gQ0QyNiAvKiBc Q0QyNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MkFdID0g Q0QyNyAvKiBcQ0QyNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkg WzB4MkJdID0gQ0QyOCAvKiBcQ0QyOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JE WSBbT25lXSkgWzB4MkNdID0gQ0QyOSAvKiBcQ0QyOSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MkRdID0gQ0QyQSAvKiBcQ0QyQSAqLwogICAgICAgICAg ICAgICAgUmV0dXJuIChXUkRZKSAvKiBcX1NCXy5QQzAwLlJQMTAuUFhTWC5XUkRZICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEVXUlksIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgUGFj a2FnZSAoMHg4NykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3 LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgw CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAo RVdSRCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgW09uZV0gPSBTVERFIC8qIFxTVERFICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwMl0gPSBTVFJTIC8qIFxTVFJTICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwM10gPSBTVDIwIC8qIFxT VDIwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwNF0gPSBT VDIxIC8qIFxTVDIxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgwNV0gPSBTVDIyIC8qIFxTVDIyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgwNl0gPSBTVDIzIC8qIFxTVDIzICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgwN10gPSBTVDI0IC8qIFxTVDI0ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwOF0gPSBTVDI1IC8qIFxTVDI1ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwOV0gPSBTVDI2IC8qIFxT VDI2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwQV0gPSBT VDI3IC8qIFxTVDI3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgwQl0gPSBTVDI4IC8qIFxTVDI4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgwQ10gPSBTVDI5IC8qIFxTVDI5ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgwRF0gPSBTVDYwIC8qIFxTVDYwICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwRV0gPSBTVDYxIC8qIFxTVDYxICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwRl0gPSBTVDYyIC8qIFxT VDYyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxMF0gPSBT VDYzIC8qIFxTVDYzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgxMV0gPSBTVDY0IC8qIFxTVDY0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgxMl0gPSBTVDY1IC8qIFxTVDY1ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgxM10gPSBTVDY2IC8qIFxTVDY2ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxNF0gPSBTVDY3IC8qIFxTVDY3ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxNV0gPSBTVDY4IC8qIFxT VDY4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxNl0gPSBT VDY5IC8qIFxTVDY5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgxN10gPSBTVDZBIC8qIFxTVDZBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgxOF0gPSBTVDZCIC8qIFxTVDZCICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgxOV0gPSBTVDMwIC8qIFxTVDMwICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxQV0gPSBTVDMxIC8qIFxTVDMxICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxQl0gPSBTVDMyIC8qIFxT VDMyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxQ10gPSBT VDMzIC8qIFxTVDMzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgxRF0gPSBTVDM0IC8qIFxTVDM0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgxRV0gPSBTVDM1IC8qIFxTVDM1ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgxRl0gPSBTVDM2IC8qIFxTVDM2ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyMF0gPSBTVDM3IC8qIFxTVDM3ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyMV0gPSBTVDM4IC8qIFxT VDM4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyMl0gPSBT VDM5IC8qIFxTVDM5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgyM10gPSBTVDcwIC8qIFxTVDcwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgyNF0gPSBTVDcxIC8qIFxTVDcxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgyNV0gPSBTVDcyIC8qIFxTVDcyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyNl0gPSBTVDczIC8qIFxTVDczICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyN10gPSBTVDc0IC8qIFxT VDc0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyOF0gPSBT VDc1IC8qIFxTVDc1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgyOV0gPSBTVDc2IC8qIFxTVDc2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgyQV0gPSBTVDc3IC8qIFxTVDc3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgyQl0gPSBTVDc4IC8qIFxTVDc4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyQ10gPSBTVDc5IC8qIFxTVDc5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRF0gPSBTVDdBIC8qIFxT VDdBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRV0gPSBT VDdCIC8qIFxTVDdCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgyRl0gPSBTVDQwIC8qIFxTVDQwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgzMF0gPSBTVDQxIC8qIFxTVDQxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgzMV0gPSBTVDQyIC8qIFxTVDQyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzMl0gPSBTVDQzIC8qIFxTVDQzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzM10gPSBTVDQ0IC8qIFxT VDQ0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzNF0gPSBT VDQ1IC8qIFxTVDQ1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgzNV0gPSBTVDQ2IC8qIFxTVDQ2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgzNl0gPSBTVDQ3IC8qIFxTVDQ3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgzN10gPSBTVDQ4IC8qIFxTVDQ4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzOF0gPSBTVDQ5IC8qIFxTVDQ5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzOV0gPSBTVDgwIC8qIFxT VDgwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzQV0gPSBT VDgxIC8qIFxTVDgxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgzQl0gPSBTVDgyIC8qIFxTVDgyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgzQ10gPSBTVDgzIC8qIFxTVDgzICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgzRF0gPSBTVDg0IC8qIFxTVDg0ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzRV0gPSBTVDg1IC8qIFxTVDg1ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzRl0gPSBTVDg2IC8qIFxT VDg2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0MF0gPSBT VDg3IC8qIFxTVDg3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg0MV0gPSBTVDg4IC8qIFxTVDg4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg0Ml0gPSBTVDg5IC8qIFxTVDg5ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg0M10gPSBTVDhBIC8qIFxTVDhBICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0NF0gPSBTVDhCIC8qIFxTVDhCICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0NV0gPSBDRDMwIC8qIFxD RDMwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Nl0gPSBD RDMxIC8qIFxDRDMxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg0N10gPSBDRDMyIC8qIFxDRDMyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg0OF0gPSBDRDMzIC8qIFxDRDMzICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg0OV0gPSBDRDM0IC8qIFxDRDM0ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0QV0gPSBDRDM1IC8qIFxDRDM1ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Ql0gPSBDRDM2IC8qIFxD RDM2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Q10gPSBD RDM3IC8qIFxDRDM3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg0RF0gPSBDRDM4IC8qIFxDRDM4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg0RV0gPSBDRDM5IC8qIFxDRDM5ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg0Rl0gPSBDRDNBIC8qIFxDRDNBICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1MF0gPSBDRDNCIC8qIFxDRDNCICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1MV0gPSBDRDNDIC8qIFxD RDNDICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Ml0gPSBD RDNEIC8qIFxDRDNEICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg1M10gPSBDRDNFIC8qIFxDRDNFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg1NF0gPSBDRDNGIC8qIFxDRDNGICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg1NV0gPSBDRDQwIC8qIFxDRDQwICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Nl0gPSBDRDQxIC8qIFxDRDQxICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1N10gPSBDRDQyIC8qIFxD RDQyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1OF0gPSBD RDQzIC8qIFxDRDQzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg1OV0gPSBDRDQ0IC8qIFxDRDQ0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg1QV0gPSBDRDQ1IC8qIFxDRDQ1ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg1Ql0gPSBDRDQ2IC8qIFxDRDQ2ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1Q10gPSBDRDQ3IC8qIFxDRDQ3ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1RF0gPSBDRDQ4IC8qIFxD RDQ4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1RV0gPSBD RDQ5IC8qIFxDRDQ5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg1Rl0gPSBDRDRBIC8qIFxDRDRBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg2MF0gPSBDRDRCIC8qIFxDRDRCICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg2MV0gPSBDRDRDIC8qIFxDRDRDICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2Ml0gPSBDRDREIC8qIFxDRDREICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2M10gPSBDRDRFIC8qIFxD RDRFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2NF0gPSBD RDRGIC8qIFxDRDRGICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg2NV0gPSBDRDUwIC8qIFxDRDUwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg2Nl0gPSBDRDUxIC8qIFxDRDUxICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg2N10gPSBDRDUyIC8qIFxDRDUyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2OF0gPSBDRDUzIC8qIFxDRDUzICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2OV0gPSBDRDU0IC8qIFxD RDU0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2QV0gPSBD RDU1IC8qIFxDRDU1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg2Ql0gPSBDRDU2IC8qIFxDRDU2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg2Q10gPSBDRDU3IC8qIFxDRDU3ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg2RF0gPSBDRDU4IC8qIFxDRDU4ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2RV0gPSBDRDU5IC8qIFxDRDU5ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2Rl0gPSBDRDVBIC8qIFxD RDVBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3MF0gPSBD RDVCIC8qIFxDRDVCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg3MV0gPSBDRDVDIC8qIFxDRDVDICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg3Ml0gPSBDRDVEIC8qIFxDRDVEICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg3M10gPSBDRDVFIC8qIFxDRDVFICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3NF0gPSBDRDVGIC8qIFxDRDVGICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3NV0gPSBDRDYwIC8qIFxD RDYwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Nl0gPSBD RDYxIC8qIFxDRDYxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg3N10gPSBDRDYyIC8qIFxDRDYyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg3OF0gPSBDRDYzIC8qIFxDRDYzICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg3OV0gPSBDRDY0IC8qIFxDRDY0ICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3QV0gPSBDRDY1IC8qIFxDRDY1ICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Ql0gPSBDRDY2IC8qIFxD RDY2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Q10gPSBD RDY3IC8qIFxDRDY3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg3RF0gPSBDRDY4IC8qIFxDRDY4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg3RV0gPSBDRDY5IC8qIFxDRDY5ICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg3Rl0gPSBDRDZBIC8qIFxDRDZBICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4MF0gPSBDRDZCIC8qIFxDRDZCICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4MV0gPSBDRDZDIC8qIFxD RDZDICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4Ml0gPSBD RDZEIC8qIFxDRDZEICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg4M10gPSBDRDZFIC8qIFxDRDZFICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg4NF0gPSBDRDZGIC8qIFxDRDZGICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg4NV0gPSBDRDcwIC8qIFxDRDcwICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4Nl0gPSBDRDcxIC8qIFxDRDcxICovCiAg ICAgICAgICAgICAgICBSZXR1cm4gKEVXUlkpIC8qIFxfU0JfLlBDMDAuUlAxMC5QWFNYLkVX UlkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV0dEWSwgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDRBKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChXR0RTLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb T25lXSA9IFNER04gLyogXFNER04gKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDAyXSA9IFNEMTEgLyogXFNEMTEgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDAzXSA9IFNEMTIgLyogXFNEMTIgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA0XSA9IFNEMTMgLyogXFNEMTMgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA1XSA9IFNEMTQgLyogXFNE MTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA2XSA9IFNE MTUgLyogXFNEMTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDA3XSA9IFNEMTYgLyogXFNEMTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDA4XSA9IFNEMTcgLyogXFNEMTcgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDA5XSA9IFNEMTggLyogXFNEMTggKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBBXSA9IFNEMTkgLyogXFNEMTkgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBCXSA9IFNEMjEgLyogXFNE MjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBDXSA9IFNE MjIgLyogXFNEMjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDBEXSA9IFNEMjMgLyogXFNEMjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDBFXSA9IFNEMjQgLyogXFNEMjQgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDBGXSA9IFNEMjUgLyogXFNEMjUgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDEwXSA9IFNEMjYgLyogXFNEMjYgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDExXSA9IFNEMjcgLyogXFNE MjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDEyXSA9IFNE MjggLyogXFNEMjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDEzXSA9IFNEMjkgLyogXFNEMjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDE0XSA9IFNEMzEgLyogXFNEMzEgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDE1XSA9IFNEMzIgLyogXFNEMzIgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE2XSA9IFNEMzMgLyogXFNEMzMgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE3XSA9IFNEMzQgLyogXFNE MzQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE4XSA9IFNE MzUgLyogXFNEMzUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDE5XSA9IFNEMzYgLyogXFNEMzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDFBXSA9IFNEMzcgLyogXFNEMzcgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDFCXSA9IFNEMzggLyogXFNEMzggKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFDXSA9IFNEMzkgLyogXFNEMzkgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFEXSA9IFNENDEgLyogXFNE NDEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFFXSA9IFNE NDIgLyogXFNENDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDFGXSA9IFNENDMgLyogXFNENDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDIwXSA9IFNENDQgLyogXFNENDQgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDIxXSA9IFNENDUgLyogXFNENDUgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDIyXSA9IFNENDYgLyogXFNENDYgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDIzXSA9IFNENDcgLyogXFNE NDcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI0XSA9IFNE NDggLyogXFNENDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDI1XSA9IFNENDkgLyogXFNENDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDI2XSA9IFNENTEgLyogXFNENTEgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDI3XSA9IFNENTIgLyogXFNENTIgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI4XSA9IFNENTMgLyogXFNENTMgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI5XSA9IFNENTQgLyogXFNE NTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJBXSA9IFNE NTUgLyogXFNENTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDJCXSA9IFNENTYgLyogXFNENTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDJDXSA9IFNENTcgLyogXFNENTcgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDJEXSA9IFNENTggLyogXFNENTggKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJFXSA9IFNENTkgLyogXFNENTkgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJGXSA9IFNENjEgLyogXFNE NjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDMwXSA9IFNE NjIgLyogXFNENjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDMxXSA9IFNENjMgLyogXFNENjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDMyXSA9IFNENjQgLyogXFNENjQgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDMzXSA9IFNENjUgLyogXFNENjUgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM0XSA9IFNENjYgLyogXFNENjYgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM1XSA9IFNENjcgLyogXFNE NjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM2XSA9IFNE NjggLyogXFNENjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDM3XSA9IFNENjkgLyogXFNENjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDM4XSA9IFNENzEgLyogXFNENzEgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDM5XSA9IFNENzIgLyogXFNENzIgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNBXSA9IFNENzMgLyogXFNENzMgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNCXSA9IFNENzQgLyogXFNE NzQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNDXSA9IFNE NzUgLyogXFNENzUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDNEXSA9IFNENzYgLyogXFNENzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDNFXSA9IFNENzcgLyogXFNENzcgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDNGXSA9IFNENzggLyogXFNENzggKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQwXSA9IFNENzkgLyogXFNENzkgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQxXSA9IFNEODEgLyogXFNE ODEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQyXSA9IFNE ODIgLyogXFNEODIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDQzXSA9IFNEODMgLyogXFNEODMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDQ0XSA9IFNEODQgLyogXFNEODQgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDQ1XSA9IFNEODUgLyogXFNEODUgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ2XSA9IFNEODYgLyogXFNEODYgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ3XSA9IFNEODcgLyogXFNE ODcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ4XSA9IFNE ODggLyogXFNEODggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDQ5XSA9IFNEODkgLyogXFNEODkgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoV0dEWSkg LyogXF9TQl8uUEMwMC5SUDEwLlBYU1guV0dEWSAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBOYW1lIChFQ0tZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAg ICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBN ZXRob2QgKEVDS1YsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVDS1kgW09uZV0pIFtPbmVdID0gQ0VDViAvKiBcQ0VDViAqLwogICAg ICAgICAgICAgICAgUmV0dXJuIChFQ0tZKSAvKiBcX1NCXy5QQzAwLlJQMTAuUFhTWC5FQ0tZ ICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFBQQVksIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgxOCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAweDA3LCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAweDE4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDE4LCAKICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAweDI4CiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoUFBBRywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgW09u ZV0gPSBXQUdNIC8qIFxXQUdNICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtP bmVdKSBbMHgwMl0gPSBBR0ExIC8qIFxBR0ExICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChQUEFZIFtPbmVdKSBbMHgwM10gPSBBR0EyIC8qIFxBR0EyICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwNF0gPSBBR0EzIC8qIFxBR0EzICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwNV0gPSBBR0E0IC8qIFxBR0E0 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwNl0gPSBBR0E1 IC8qIFxBR0E1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgw N10gPSBBR0E2IC8qIFxBR0E2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtP bmVdKSBbMHgwOF0gPSBBR0E3IC8qIFxBR0E3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChQUEFZIFtPbmVdKSBbMHgwOV0gPSBBR0E4IC8qIFxBR0E4ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwQV0gPSBBR0E5IC8qIFxBR0E5ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwQl0gPSBBR0FBIC8qIFxBR0FB ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwQ10gPSBBR0FC IC8qIFxBR0FCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgw RF0gPSBBR0IxIC8qIFxBR0IxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtP bmVdKSBbMHgwRV0gPSBBR0IyIC8qIFxBR0IyICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChQUEFZIFtPbmVdKSBbMHgwRl0gPSBBR0IzIC8qIFxBR0IzICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxMF0gPSBBR0I0IC8qIFxBR0I0ICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxMV0gPSBBR0I1IC8qIFxBR0I1 ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxMl0gPSBBR0I2 IC8qIFxBR0I2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgx M10gPSBBR0I3IC8qIFxBR0I3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtP bmVdKSBbMHgxNF0gPSBBR0I4IC8qIFxBR0I4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9m IChQUEFZIFtPbmVdKSBbMHgxNV0gPSBBR0I5IC8qIFxBR0I5ICovCiAgICAgICAgICAgICAg ICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxNl0gPSBBR0JBIC8qIFxBR0JBICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxN10gPSBBR0JCIC8qIFxBR0JC ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBQQVkpIC8qIFxfU0JfLlBDMDAuUlAxMC5Q WFNYLlBQQVkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV1BGWSwgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAg ICAgICAgTWV0aG9kIChXUEZDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbT25lXSA9IFdQRkEgLyogXFdQRkEg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFsweDAyXSA9IFdQRkIg LyogXFdQRkIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFsweDAz XSA9IFxXUEZDCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbMHgwNF0g PSBXUEZEIC8qIFxXUEZEICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdQRlkpIC8qIFxf U0JfLlBDMDAuUlAxMC5QWFNYLldQRlkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAg TmFtZSAoV1RTWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgT25lLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MTMpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdUQVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFtPbmVdID0g V1RTRSAvKiBcV1RTRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkg WzB4MDJdID0gV1RMRSAvKiBcV1RMRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RT WSBbT25lXSkgWzB4MDNdID0gQkwwMSAvKiBcQkwwMSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1RTWSBbT25lXSkgWzB4MDRdID0gQkwwMiAvKiBcQkwwMiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDVdID0gQkwwMyAvKiBcQkwwMyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDZdID0gQkwwNCAvKiBc QkwwNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDddID0g QkwwNSAvKiBcQkwwNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkg WzB4MDhdID0gQkwwNiAvKiBcQkwwNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RT WSBbT25lXSkgWzB4MDldID0gQkwwNyAvKiBcQkwwNyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1RTWSBbT25lXSkgWzB4MEFdID0gQkwwOCAvKiBcQkwwOCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MEJdID0gQkwwOSAvKiBcQkwwOSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MENdID0gQkwxMCAvKiBc QkwxMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MERdID0g QkwxMSAvKiBcQkwxMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkg WzB4MEVdID0gQkwxMiAvKiBcQkwxMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RT WSBbT25lXSkgWzB4MEZdID0gQkwxMyAvKiBcQkwxMyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1RTWSBbT25lXSkgWzB4MTBdID0gQkwxNCAvKiBcQkwxNCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MTFdID0gQkwxNSAvKiBcQkwxNSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MTJdID0gQkwxNiAvKiBc QkwxNiAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXVFNZKSAvKiBcX1NCXy5QQzAwLlJQ MTAuUFhTWC5XVFNZICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdBSVks IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV0FJUywgMCwg U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FJ WSBbT25lXSkgW09uZV0gPSBXTEJJIC8qIFxXTEJJICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChXQUlZIFtPbmVdKSBbMHgwMl0gPSBXSEJJIC8qIFxXSEJJICovCiAgICAgICAgICAg ICAgICBSZXR1cm4gKFdBSVkpIC8qIFxfU0JfLlBDMDAuUlAxMC5QWFNYLldBSVkgKi8KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoU0FEWCwgUGFja2FnZSAoMHgwMykKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcs IAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFNB RFMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVm T2YgKFNBRFggW09uZV0pIFtPbmVdID0gQVREViAvKiBcQVREViAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoU0FEWCBbMHgwMl0pIFtPbmVdID0gQVREViAvKiBcQVREViAqLwogICAg ICAgICAgICAgICAgUmV0dXJuIChTQURYKSAvKiBcX1NCXy5QQzAwLlJQMTAuUFhTWC5TQURY ICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEdQQ1gsIFBhY2thZ2UgKDB4 MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAweDA3LCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw eDEyLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAg ICAgICBNZXRob2QgKEdQQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgUmV0dXJuIChHUENYKSAvKiBcX1NCXy5QQzAwLlJQMTAuUFhTWC5HUENYICov CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEdMQVgsIFBhY2thZ2UgKDB4MDMp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw eDA3LCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIDB4MTIsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChHTEFJLCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIkFSOiBHTEFJIG1ldGhvZC4gQ0dMUyA9ICIsIFRvSGV4U3RyaW5nIChDR0xTKSkp CiAgICAgICAgICAgICAgICBEZXJlZk9mIChHTEFYIFtPbmVdKSBbT25lXSA9IENHTFMgLyog XENHTFMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEdMQVggWzB4MDJdKSBbT25lXSA9 IENHTFMgLyogXENHTFMgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoR0xBWCkgLyogXF9T Ql8uUEMwMC5SUDEwLlBYU1guR0xBWCAqLwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAg ICAgICBJZiAoKChXV0VOICE9IFplcm8pICYmIChXV1JQID09IFNMT1QpKSkKICAgICAgICB7 CiAgICAgICAgICAgIE1ldGhvZCAoRkhSRiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKChHR09WIChQUlNUKSAhPSBXUFJQKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBETDIzICgpCiAgICAgICAgICAgICAg ICAgICAgQURCRyAoIldXQU4gREwyMygpIERvbmUiKQogICAgICAgICAgICAgICAgICAgIFNH T1YgKFBSU1QsIFdQUlApCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUEVSU1Q6 MCBEb25lIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiQXNzdW1lIFdXQU4gREwy MygpIGlzIGFscmVhZHkgZG9uZSIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgU2xlZXAgKFRSMkIpCiAgICAgICAgICAgICAgICBTR09WIChXQlJTLCBQQlJTKQogICAg ICAgICAgICAgICAgQURCRyAoIldXQU4gUlNUOjAgRG9uZSIpCiAgICAgICAgICAgICAgICBJ ZiAoKEFyZzAgPT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKFRCVEcpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJTTFAgVEJURyAiLCBUb0RlY2ltYWxTdHJpbmcgKFRCVEcpKSkKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gT25lKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBTUENPIChXQ0xLLCBaZXJvKQogICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJXV0FOIFNDTEs6MCBEb25lIikKICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoVEIyRikKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IlNMUCBUQjJGICIsIFRvRGVjaW1hbFN0cmluZyAoVEIyRikpKQogICAgICAgICAgICAgICAg ICAgIFNHT1YgKFdGQ1AsICh+UEZDUCAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgQURC RyAoIldXQU4gUFdSOjAgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFRGREkp CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEZESSAiLCBU b0RlY2ltYWxTdHJpbmcgKFRGREkpKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgi VW5zdXBwb3J0ZWQgQXJnMCBpcyBkZXRlY3RlZC4iKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFNIUkYsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBTRDAgKFNMT1QpCiAgICAgICAgICAg ICAgICBBREJHICgiV1dBTiBNUEhZUEc6MCBEb25lIikKICAgICAgICAgICAgICAgIFNQQ08g KFdDTEssIE9uZSkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFNDTEs6MSBEb25lIikK ICAgICAgICAgICAgICAgIFNHT1YgKFdGQ1AsIFBGQ1ApCiAgICAgICAgICAgICAgICBBREJH ICgiV1dBTiBQV1I6MSBEb25lIikKICAgICAgICAgICAgICAgIFNsZWVwIChUTjJCKQogICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVE4yQiAiLCBUb0RlY2ltYWxT dHJpbmcgKFROMkIpKSkKICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsICh+UEJSUyAmIE9u ZSkpCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBSU1Q6MSBEb25lIikKICAgICAgICAg ICAgICAgIFNsZWVwIChUQjJSKQogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJTTFAgVEIyUiAiLCBUb0RlY2ltYWxTdHJpbmcgKFRCMlIpKSkKICAgICAgICAgICAgICAg IFNHT1YgKFBSU1QsICh+V1BSUCAmIE9uZSkpCiAgICAgICAgICAgICAgICBBREJHICgiV1dB TiBQRVJTVDowIERvbmUiKQogICAgICAgICAgICAgICAgTDIzRCAoKQogICAgICAgICAgICAg ICAgQURCRyAoIldXQU4gTDIzRCgpIERvbmUiKQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKERPU1YsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgIFdoaWxlICgoKFNWSUQg IT0gV1NJRCkgJiYgKExvY2FsMCA8IFdTVE8pKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJERVQgVGltZSAiLCBUb0RlY2ltYWxTdHJpbmcgKExvY2FsMCkpKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUlNUOiBE ZXZpY2UgUmVzZXQKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoIl9SU1Qg V1dBTiIpCiAgICAgICAgICAgICAgICBJZiAoKFdXRU4gPT0gMHgwMikpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoV1dNVCwgMHgw M0U4KQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIEZMRFIgTXV0ZXg6IEFjcXVp cmVkIFRyeSBEb25lIikKICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJTdGFydCBXV0FOIEZMRFIiKQogICAgICAgICAgICAgICAgICAgICAgICBGSFJGIChaZXJv KQogICAgICAgICAgICAgICAgICAgICAgICBTSFJGICgpCiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJFbmQgV1dBTiBGTERSIikKICAgICAgICAgICAgICAgICAgICAgICAgUmVs ZWFzZSAoV1dNVCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gRkxEUiBN dXRleDpSZWxlYXNlIERvbmUiKQogICAgICAgICAgICAgICAgICAgICAgICBET1NWICgpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMs IFBCUlMpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4QzgpCiAgICAgICAgICAgICAg ICAgICAgTm90aWZ5IChQWFNYLCBPbmUpIC8vIERldmljZSBDaGVjawogICAgICAgICAgICAg ICAgICAgIFNHT1YgKFBSU1QsICh+V1BSUCAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAg U0dPViAoV0JSUywgKH5QQlJTICYgT25lKSkKICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHhDOCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgV2hpbGUgKChMQVNYID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDE0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkZMRFIg VE8iKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MTApCiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIlJWUCBEZWxheSBUaW1lICIsIFRvRGVjaW1hbFN0cmluZyAoTG9j YWwwKSkpCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChQWFNYLCBPbmUpIC8vIERldmlj ZSBDaGVjawogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBQ b3dlclJlc291cmNlIChNUlNULCAweDA1LCAweDAwMDApCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1 cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBS IF9TVEEiKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBTZXJpYWxpemVkKSAgLy8g X09OXzogUG93ZXIgT24KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBB REJHICgiV1dBTiBQUiBfT04iKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX09GRiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBSIF9PRkYi KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwg U2VyaWFsaXplZCkgIC8vIF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEFjcXVpcmUgKFdXTVQsIDB4MDNFOCkKICAg ICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQTERSIE11dGV4OiBBY3F1aXJlZCBUcnkg RG9uZSIpCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQg V1dBTiBQTERSIikKICAgICAgICAgICAgICAgICAgICAgICAgRkhSRiAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICBTSFJGICgpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcg KCJFbmQgV1dBTiBQUiBfUlNUIikKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAo V1dNVCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUExEUiBNdXRleDog UmVsZWFzZSBEb25lIikKICAgICAgICAgICAgICAgICAgICAgICAgRE9TViAoKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAg IH0KCiAgICAgICAgSWYgKChXSVNUICgpIHx8ICgoV1dFTiAhPSBaZXJvKSAmJiAoV1dSUCA9 PSBTTE9UKSkpKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfUFJSLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1BSUjogUG93ZXIgUmVzb3VyY2UgZm9yIFJlc2V0CiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFdSU1QpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBXUlNUCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoKFdXRU4gIT0gWmVy bykgJiYgKFdXUlAgPT0gU0xPVCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKE1SU1QpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNUlNUCiAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBXUlNUCiAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChGREVMLCBaZXJvKQogICAgICAg ICAgICBOYW1lIChQREVMLCBaZXJvKQogICAgICAgICAgICBOYW1lIChWREVMLCBaZXJvKQog ICAgICAgICAgICBNZXRob2QgKElGVU4sIDQsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgxRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4K ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgidlBybzogIiwgQ1ZQUikpCiAgICAg ICAgICAgICAgICAgICAgTG9jYWwwID0gKENWUFIgPDwgWmVybykKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmczLCBaZXJvLCBDTURUKQogICAgICAgICAgICAg ICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMywgMHgwMiwgQ01EUCkKICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkNtZFR5cGUgPSAiLCBUb0hleFN0cmluZyAo Q01EVCkpKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQ21kUGF5 bG9hZCA9ICIsIFRvSGV4U3RyaW5nIChDTURQKSkpCiAgICAgICAgICAgICAgICAgICAgSWYg KChDTURUID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSU1RZKSAvKiBcX1NCXy5QQzAwLlJQMTAu UFhTWC5SU1RZICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZUlmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5DTlZXLlJTVFQpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIkdldCBfUFJSIE1vZGUgPSAiLCBeXl5DTlZXLlJTVFQpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICheXl5DTlZXLlJTVFQpIC8qIFxfU0Jf LlBDMDAuQ05WVy5SU1RUICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo Q01EVCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQ01EUCAmIE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJTVFkgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMSA9IChDTURQICYgMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMSA+Pj0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGTFJDID0gTG9j YWwxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoQ01EUCAmIDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPj49IDB4MDIKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJPRkMgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZPZiAoXF9TQi5Q QzAwLkNOVlcuUlNUVCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU2V0IF9QUlIgTW9kZSA9ICIs IFRvSGV4U3RyaW5nIChDTURQKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5D TlZXLlJTVFQgPSBDTURQIC8qIFxfU0JfLlBDMDAuUlAxMC5QWFNYLklGVU4uQ01EUCAqLwog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJ ZiAoKENNRFQgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuQ05WVy5QUlJTKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJHZXQgTGFzdF9QUlIgc3RhdHVzIFBSUlMgPSAiLCBUb0hleFN0cmlu ZyAoXl5eQ05WVy5QUlJTKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KF5eXkNOVlcuUFJSUykgLyogXF9TQl8uUEMwMC5DTlZXLlBSUlMgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKFdJU1QgKCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiR2V0IExhc3RfUFJSIHN0YXR1cyBEUFJTID0gIiwgVG9I ZXhTdHJpbmcgKERQUlMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo RFBSUykgLyogXF9TQl8uUEMwMC5SUDEwLlBYU1guRFBSUyAqLwogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoQ1JGSSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMywgWmVy bywgUFJUVCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIDB4 MDIsIFBSVEQpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJUaW1l clR5cGUgPSAiLCBUb0hleFN0cmluZyAoUFJUVCkpKQogICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiVGltZXJEdXJhdGlvbiAobXMpID0gIiwgVG9EZWNpbWFsU3Ry aW5nIChQUlREKSkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChQUlRUID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBGREVMID0gUFJU RCAvKiBcX1NCXy5QQzAwLlJQMTAuUFhTWC5JRlVOLlBSVEQgKi8KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoUFJUVCA9PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBERUwgPSBQUlRE IC8qIFxfU0JfLlBDMDAuUlAxMC5QWFNYLklGVU4uUFJURCAqLwogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChQUlRUID09IDB4MDMpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVkRFTCA9IFBSVEQg LyogXF9TQl8uUEMwMC5SUDEwLlBYU1guSUZVTi5QUlREICovCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJUaW1lckR1cmF0aW9uIG5vdCBzZXQiKQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoSURT TSwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChB cmcwID09IFRvVVVJRCAoIjcyNjYxNzJjLTIyMGItNGIyOS04MTRmLTc1ZTRkZDI2YjVmZCIp IC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEVGVU4s IDQsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIDB4MUYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g QUNTRCAvKiBcQUNTRCAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBJNUJTIC8q IFxJNUJTICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFVIQlMgLyogXFVIQlMg Ki8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNikpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQVhNVSAvKiBcQVhNVSAqLwogICAg ICAgICAgICAgICAgICAgIExvY2FsMCA8PD0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9j YWwwIHw9IEFYU1UgLyogXEFYU1UgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBB WE1SIC8qIFxBWE1SICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIDw8PSBPbmUKICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgfD0gQVhTUiAvKiBcQVhTUiAqLwogICAgICAgICAg ICAgICAgICAgIExvY2FsMSA8PD0gMHgwMgogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8 PSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgMHgw MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChXRlVDKSAvKiBcV0ZVQyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIElmICgoQXJnMiA9PSAweDA3KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFVOSTQpIC8qIFxVTkk0ICovCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDgpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0ZJQykgLyogXFdGSUMgKi8KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwOSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRkJTKSAvKiBcV0ZC UyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAw eDBBKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdF RFQpIC8qIFxXRURUICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg KChBcmcyID09IDB4MEIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmICgoQ0lSTSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEMpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0Y3QykgLyogXFdGN0Mg Ki8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoRURTTSwgMSwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImYy MTIwMmJmLThmNzgtNGRjNi1hNWIzLTFmNzM4ZTI4NWFkZSIpIC8qIFVua25vd24gVVVJRCAq LykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAv LyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmIChFRFNNIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoRUZVTiAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykpCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoSURTTSAoQXJn MCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKElGVU4gKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKChXV0VOICE9IFpl cm8pICYmIChXV1JQID09IFNMT1QpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiYmFkMDFiNzUtMjJhOC00ZjQ4LTg3OTIt YmRkZTk0Njc3NDdkIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSBPbmUpKXt9CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDAyKSl7fQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoV1JUTyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBvd2VyIF9EU00gRDAv TDEuMiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKChXUlRPID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FO IFBvd2VyIF9EU00gRDMvTDEuMiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChXUlRPID09IDB4MDMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJXV0FOIFBvd2VyIF9EU00gRDMvTDIiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJXV0FOIFBvd2VyIF9EU00gRGlzYWJsZWQiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoV1JUTykgLyog XFdSVE8gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NC LlBDMDAuUlAxMS5QWFNYKQogICAgewogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUlBYWCwg U3lzdGVtTWVtb3J5LCBHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUiksIDB4MzApCiAgICAg ICAgRmllbGQgKFJQWFgsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAg ICAgICAgICAgIFZESUQsICAgMzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MkMpLCAKICAg ICAgICAgICAgU1ZJRCwgICAxNgogICAgICAgIH0KCiAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChGTERSLCBTeXN0ZW1NZW1vcnksIChHTUlPIChQQk5VLCBeX0FEUiAoKSwgX0FEUikgKyBX RENPKSwgMHgwNikKICAgICAgICBGaWVsZCAoRkxEUiwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIERDQVAsICAgMzIsIAogICAgICAgICAgICBE Q1RSLCAgIDE2CiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFZTRUMsIFN5 c3RlbU1lbW9yeSwgKEdNSU8gKFBCTlUsIF5fQURSICgpLCBfQURSKSArIFdWSE8pLCAweDEw KQogICAgICAgIEZpZWxkIChWU0VDLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAg ICAgewogICAgICAgICAgICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgICAgICwgICAx LCAKICAgICAgICAgICAgQlRJRSwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAg ICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAg ICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgT2Zm c2V0ICgweDBEKSwgCiAgICAgICAgICAgIFBEUkMsICAgMQogICAgICAgIH0KCiAgICAgICAg T3BlcmF0aW9uUmVnaW9uIChQQlJSLCBTeXN0ZW1NZW1vcnksIEdNSU8gKFBCTlUsIF5fQURS ICgpLCBfQURSKSwgMHgwMkI4KQogICAgICAgIEZpZWxkIChQQlJSLCBBbnlBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBPZmZzZXQgKDB4MThDKSwgCiAg ICAgICAgICAgIE1TTkwsICAgMzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MTk4KSwgCiAg ICAgICAgICAgIEwxQzEsICAgMzIsIAogICAgICAgICAgICBMMUMyLCAgIDMyLCAKICAgICAg ICAgICAgT2Zmc2V0ICgweDJCNCksIAogICAgICAgICAgICBQVE1SLCAgIDMyCiAgICAgICAg fQoKICAgICAgICBNZXRob2QgKFdJU1QsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChWRElEKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgU3dpdGNoIChUb0ludGVnZXIgKFZESUQpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIENhc2UgKDB4MjUyNjgwODYpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgyNzFCODA4NikKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MjM4MDg2 KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MjcyNTgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgQ2FzZSAoMHgyNzJCODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKFNWREMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg KFdXU1QsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChWRElEKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3dpdGNoIChUb0lu dGVnZXIgKFZESUQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENh c2UgKDB4NzM2MDgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgQ2FzZSAoMHg3NTYwODA4NikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDRENzUxNEMzKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDgwMDE0QzMpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmIChXSVNUICgp KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoUlNUWSwgWmVybykKICAgICAgICAgICAg TmFtZSAoRkxSQywgWmVybykKICAgICAgICAgICAgTmFtZSAoQk9GQywgWmVybykKICAgICAg ICAgICAgTmFtZSAoRFBSUywgWmVybykKICAgICAgICAgICAgUG93ZXJSZXNvdXJjZSAoV1JT VCwgMHgwNSwgMHgwMDAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2Qg KF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiV2lmaSBQUiBfU1RBIikKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9PTiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2Vy IE9uCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpZmkg UFIgX09OIikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9P RkYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiV2lmaSBQUiBfT0ZGIikKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfUlNUOiBEZXZpY2UgUmVzZXQKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKFJTVFkgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXaWZpIFByb2R1Y3QgUlNUIikKICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWlyZSAoQ05NVCwgMHgwM0U4KQog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChGTFJD ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gRENUUiAvKiBcX1NCXy5QQzAwLlJQMTEuUFhT WC5EQ1RSICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IDB4 ODAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERDVFIgPSBMb2NhbDAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoRkRFTCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUFJTID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJPRkMgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEJSTVQgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVFJLIChaZXJvKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKChXVkhPICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRJ RSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChSRExZKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBEUkMgPSBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChWREVMKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU0dPViAoV0xSVCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNsZWVwIChQREVMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0dPViAoV0xS VCwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCT0ZDID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChCUk1UID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRSSyAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlSWYgKChXVkhPICE9IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QlRJRSA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFJETFkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRFBSUyA9IDB4MDIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKENOTVQpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoIldpZmkgQ29yZSBSU1QiKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKERD QVAgJiAweDEwMDAwMDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gRENUUiAvKiBcX1NCXy5QQzAwLlJQMTEuUFhT WC5EQ1RSICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gMHg4MDAw CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQ1RSID0gTG9jYWwwCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIERQUlMgPSBPbmUKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDA3RDAp CiAgICAgICAgICAgICAgICAgICAgTVNOTCA9IERSMDEgLyogXERSMDEgKi8KICAgICAgICAg ICAgICAgICAgICBMMUMxID0gRFIwMiAvKiBcRFIwMiAqLwogICAgICAgICAgICAgICAgICAg IEwxQzIgPSBEUjAzIC8qIFxEUjAzICovCiAgICAgICAgICAgICAgICAgICAgUFRNUiA9IERS MDQgLyogXERSMDQgKi8KICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwN0QwKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChTUExYLCBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAw MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFNQTEMsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFta ZXJvXSA9IERPTTEgLyogXERPTTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFgg W09uZV0pIFtPbmVdID0gTElNMSAvKiBcTElNMSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoU1BMWCBbT25lXSkgWzB4MDJdID0gVElNMSAvKiBcVElNMSAqLwogICAgICAgICAgICAg ICAgUmV0dXJuIChTUExYKSAvKiBcX1NCXy5QQzAwLlJQMTEuUFhTWC5TUExYICovCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdBTlgsIFBhY2thZ2UgKDB4MDMpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDgwMDAw MDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4 ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAg ICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkK ICAgICAgICAgICAgTWV0aG9kIChXQU5ELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXQU5YIFtPbmVdKSBbWmVyb10gPSBaZXJvCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXQU5YIFtPbmVdKSBbT25lXSA9IFRSRDAgLyogXFRS RDAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFsweDAyXSA9IFRS TDAgLyogXFRSTDAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBb WmVyb10gPSBPbmUKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4MDJdKSBbT25l XSA9IFRSRDEgLyogXFRSRDEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggWzB4 MDJdKSBbMHgwMl0gPSBUUkwxIC8qIFxUUkwxICovCiAgICAgICAgICAgICAgICBSZXR1cm4g KFdBTlgpIC8qIFxfU0JfLlBDMDAuUlAxMS5QWFNYLldBTlggKi8KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTmFtZSAoV1JEWCwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAwMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 KQogICAgICAgICAgICBNZXRob2QgKFdSREQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFggW09uZV0pIFtaZXJvXSA9IFdETTEg LyogXFdETTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFggW09uZV0pIFtPbmVd ID0gQ0lEMSAvKiBcQ0lEMSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXUkRYKSAvKiBc X1NCXy5QQzAwLlJQMTEuUFhTWC5XUkRYICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE5hbWUgKFdSRFksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDIsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgyRSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAw eDgwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhv ZCAoV1JEUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg RGVyZWZPZiAoV1JEWSBbT25lXSkgW09uZV0gPSBTVFhFIC8qIFxTVFhFICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwMl0gPSBTVDEwIC8qIFxTVDEwICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwM10gPSBTVDExIC8q IFxTVDExICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwNF0g PSBTVDEyIC8qIFxTVDEyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgwNV0gPSBTVDEzIC8qIFxTVDEzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgwNl0gPSBTVDE0IC8qIFxTVDE0ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwN10gPSBTVDE1IC8qIFxTVDE1ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwOF0gPSBTVDE2IC8qIFxTVDE2ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwOV0gPSBTVDE3IC8q IFxTVDE3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwQV0g PSBTVDE4IC8qIFxTVDE4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgwQl0gPSBTVDE5IC8qIFxTVDE5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgwQ10gPSBTVDUwIC8qIFxTVDUwICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwRF0gPSBTVDUxIC8qIFxTVDUxICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwRV0gPSBTVDUyIC8qIFxTVDUyICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwRl0gPSBTVDUzIC8q IFxTVDUzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxMF0g PSBTVDU0IC8qIFxTVDU0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgxMV0gPSBTVDU1IC8qIFxTVDU1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgxMl0gPSBTVDU2IC8qIFxTVDU2ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxM10gPSBTVDU3IC8qIFxTVDU3ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxNF0gPSBTVDU4IC8qIFxTVDU4ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxNV0gPSBTVDU5IC8q IFxTVDU5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxNl0g PSBTVDVBIC8qIFxTVDVBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgxN10gPSBTVDVCIC8qIFxTVDVCICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgxOF0gPSBDRDEwIC8qIFxDRDEwICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxOV0gPSBDRDExIC8qIFxDRDExICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQV0gPSBDRDEyIC8qIFxDRDEyICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQl0gPSBDRDEzIC8q IFxDRDEzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQ10g PSBDRDE0IC8qIFxDRDE0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgxRF0gPSBDRDE1IC8qIFxDRDE1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgxRV0gPSBDRDE2IC8qIFxDRDE2ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxRl0gPSBDRDE3IC8qIFxDRDE3ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMF0gPSBDRDE4IC8qIFxDRDE4ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMV0gPSBDRDE5IC8q IFxDRDE5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMl0g PSBDRDFBIC8qIFxDRDFBICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgyM10gPSBDRDIwIC8qIFxDRDIwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgyNF0gPSBDRDIxIC8qIFxDRDIxICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyNV0gPSBDRDIyIC8qIFxDRDIyICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyNl0gPSBDRDIzIC8qIFxDRDIzICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyN10gPSBDRDI0IC8q IFxDRDI0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyOF0g PSBDRDI1IC8qIFxDRDI1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgyOV0gPSBDRDI2IC8qIFxDRDI2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX UkRZIFtPbmVdKSBbMHgyQV0gPSBDRDI3IC8qIFxDRDI3ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyQl0gPSBDRDI4IC8qIFxDRDI4ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyQ10gPSBDRDI5IC8qIFxDRDI5ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyRF0gPSBDRDJBIC8q IFxDRDJBICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdSRFkpIC8qIFxfU0JfLlBDMDAu UlAxMS5QWFNYLldSRFkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoRVdS WSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMiwg CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDg3KQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgIDB4ODAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkK ICAgICAgICAgICAgTWV0aG9kIChFV1JELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbT25lXSA9IFNUREUgLyog XFNUREUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDAyXSA9 IFNUUlMgLyogXFNUUlMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDAzXSA9IFNUMjAgLyogXFNUMjAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDA0XSA9IFNUMjEgLyogXFNUMjEgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDA1XSA9IFNUMjIgLyogXFNUMjIgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA2XSA9IFNUMjMgLyogXFNUMjMgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA3XSA9IFNUMjQgLyog XFNUMjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA4XSA9 IFNUMjUgLyogXFNUMjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDA5XSA9IFNUMjYgLyogXFNUMjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDBBXSA9IFNUMjcgLyogXFNUMjcgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDBCXSA9IFNUMjggLyogXFNUMjggKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBDXSA9IFNUMjkgLyogXFNUMjkgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBEXSA9IFNUNjAgLyog XFNUNjAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBFXSA9 IFNUNjEgLyogXFNUNjEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDBGXSA9IFNUNjIgLyogXFNUNjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDEwXSA9IFNUNjMgLyogXFNUNjMgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDExXSA9IFNUNjQgLyogXFNUNjQgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDEyXSA9IFNUNjUgLyogXFNUNjUgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDEzXSA9IFNUNjYgLyog XFNUNjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE0XSA9 IFNUNjcgLyogXFNUNjcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDE1XSA9IFNUNjggLyogXFNUNjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDE2XSA9IFNUNjkgLyogXFNUNjkgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDE3XSA9IFNUNkEgLyogXFNUNkEgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE4XSA9IFNUNkIgLyogXFNUNkIgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDE5XSA9IFNUMzAgLyog XFNUMzAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFBXSA9 IFNUMzEgLyogXFNUMzEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDFCXSA9IFNUMzIgLyogXFNUMzIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDFDXSA9IFNUMzMgLyogXFNUMzMgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDFEXSA9IFNUMzQgLyogXFNUMzQgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFFXSA9IFNUMzUgLyogXFNUMzUgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFGXSA9IFNUMzYgLyog XFNUMzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDIwXSA9 IFNUMzcgLyogXFNUMzcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDIxXSA9IFNUMzggLyogXFNUMzggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDIyXSA9IFNUMzkgLyogXFNUMzkgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDIzXSA9IFNUNzAgLyogXFNUNzAgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI0XSA9IFNUNzEgLyogXFNUNzEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI1XSA9IFNUNzIgLyog XFNUNzIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI2XSA9 IFNUNzMgLyogXFNUNzMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDI3XSA9IFNUNzQgLyogXFNUNzQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDI4XSA9IFNUNzUgLyogXFNUNzUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDI5XSA9IFNUNzYgLyogXFNUNzYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJBXSA9IFNUNzcgLyogXFNUNzcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJCXSA9IFNUNzggLyog XFNUNzggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJDXSA9 IFNUNzkgLyogXFNUNzkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDJEXSA9IFNUN0EgLyogXFNUN0EgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDJFXSA9IFNUN0IgLyogXFNUN0IgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDJGXSA9IFNUNDAgLyogXFNUNDAgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMwXSA9IFNUNDEgLyogXFNUNDEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMxXSA9IFNUNDIgLyog XFNUNDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMyXSA9 IFNUNDMgLyogXFNUNDMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDMzXSA9IFNUNDQgLyogXFNUNDQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDM0XSA9IFNUNDUgLyogXFNUNDUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDM1XSA9IFNUNDYgLyogXFNUNDYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM2XSA9IFNUNDcgLyogXFNUNDcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM3XSA9IFNUNDggLyog XFNUNDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDM4XSA9 IFNUNDkgLyogXFNUNDkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDM5XSA9IFNUODAgLyogXFNUODAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDNBXSA9IFNUODEgLyogXFNUODEgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDNCXSA9IFNUODIgLyogXFNUODIgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNDXSA9IFNUODMgLyogXFNUODMgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNEXSA9IFNUODQgLyog XFNUODQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNFXSA9 IFNUODUgLyogXFNUODUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDNGXSA9IFNUODYgLyogXFNUODYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDQwXSA9IFNUODcgLyogXFNUODcgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDQxXSA9IFNUODggLyogXFNUODggKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQyXSA9IFNUODkgLyogXFNUODkgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQzXSA9IFNUOEEgLyog XFNUOEEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ0XSA9 IFNUOEIgLyogXFNUOEIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDQ1XSA9IENEMzAgLyogXENEMzAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDQ2XSA9IENEMzEgLyogXENEMzEgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDQ3XSA9IENEMzIgLyogXENEMzIgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ4XSA9IENEMzMgLyogXENEMzMgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ5XSA9IENEMzQgLyog XENEMzQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRBXSA9 IENEMzUgLyogXENEMzUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDRCXSA9IENEMzYgLyogXENEMzYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDRDXSA9IENEMzcgLyogXENEMzcgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDREXSA9IENEMzggLyogXENEMzggKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRFXSA9IENEMzkgLyogXENEMzkgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDRGXSA9IENEM0EgLyog XENEM0EgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDUwXSA9 IENEM0IgLyogXENEM0IgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDUxXSA9IENEM0MgLyogXENEM0MgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDUyXSA9IENEM0QgLyogXENEM0QgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDUzXSA9IENEM0UgLyogXENEM0UgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU0XSA9IENEM0YgLyogXENEM0YgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU1XSA9IENENDAgLyog XENENDAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU2XSA9 IENENDEgLyogXENENDEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDU3XSA9IENENDIgLyogXENENDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDU4XSA9IENENDMgLyogXENENDMgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDU5XSA9IENENDQgLyogXENENDQgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVBXSA9IENENDUgLyogXENENDUgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVCXSA9IENENDYgLyog XENENDYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVDXSA9 IENENDcgLyogXENENDcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDVEXSA9IENENDggLyogXENENDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDVFXSA9IENENDkgLyogXENENDkgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDVGXSA9IENENEEgLyogXENENEEgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYwXSA9IENENEIgLyogXENENEIgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYxXSA9IENENEMgLyog XENENEMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYyXSA9 IENENEQgLyogXENENEQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDYzXSA9IENENEUgLyogXENENEUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDY0XSA9IENENEYgLyogXENENEYgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDY1XSA9IENENTAgLyogXENENTAgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY2XSA9IENENTEgLyogXENENTEgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY3XSA9IENENTIgLyog XENENTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY4XSA9 IENENTMgLyogXENENTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDY5XSA9IENENTQgLyogXENENTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDZBXSA9IENENTUgLyogXENENTUgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDZCXSA9IENENTYgLyogXENENTYgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZDXSA9IENENTcgLyogXENENTcgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZEXSA9IENENTggLyog XENENTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDZFXSA9 IENENTkgLyogXENENTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDZGXSA9IENENUEgLyogXENENUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDcwXSA9IENENUIgLyogXENENUIgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDcxXSA9IENENUMgLyogXENENUMgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDcyXSA9IENENUQgLyogXENENUQgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDczXSA9IENENUUgLyog XENENUUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc0XSA9 IENENUYgLyogXENENUYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDc1XSA9IENENjAgLyogXENENjAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDc2XSA9IENENjEgLyogXENENjEgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDc3XSA9IENENjIgLyogXENENjIgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc4XSA9IENENjMgLyogXENENjMgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc5XSA9IENENjQgLyog XENENjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdBXSA9 IENENjUgLyogXENENjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDdCXSA9IENENjYgLyogXENENjYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDdDXSA9IENENjcgLyogXENENjcgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDdEXSA9IENENjggLyogXENENjggKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdFXSA9IENENjkgLyogXENENjkgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdGXSA9IENENkEgLyog XENENkEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDgwXSA9 IENENkIgLyogXENENkIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDgxXSA9IENENkMgLyogXENENkMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDgyXSA9IENENkQgLyogXENENkQgKi8KICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDgzXSA9IENENkUgLyogXENENkUgKi8KICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDg0XSA9IENENkYgLyogXENENkYgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDg1XSA9IENENzAgLyog XENENzAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDg2XSA9 IENENzEgLyogXENENzEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoRVdSWSkgLyogXF9T Ql8uUEMwMC5SUDExLlBYU1guRVdSWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBO YW1lIChXR0RZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAzLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4NEEpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHgw MywgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2Qg KFdHRFMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFtPbmVdID0gU0RHTiAvKiBcU0RHTiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDJdID0gU0QxMSAvKiBcU0QxMSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDNdID0gU0QxMiAvKiBc U0QxMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDRdID0g U0QxMyAvKiBcU0QxMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MDVdID0gU0QxNCAvKiBcU0QxNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MDZdID0gU0QxNSAvKiBcU0QxNSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MDddID0gU0QxNiAvKiBcU0QxNiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDhdID0gU0QxNyAvKiBcU0QxNyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDldID0gU0QxOCAvKiBc U0QxOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEFdID0g U0QxOSAvKiBcU0QxOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MEJdID0gU0QyMSAvKiBcU0QyMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MENdID0gU0QyMiAvKiBcU0QyMiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MERdID0gU0QyMyAvKiBcU0QyMyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEVdID0gU0QyNCAvKiBcU0QyNCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEZdID0gU0QyNSAvKiBc U0QyNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTBdID0g U0QyNiAvKiBcU0QyNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MTFdID0gU0QyNyAvKiBcU0QyNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MTJdID0gU0QyOCAvKiBcU0QyOCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MTNdID0gU0QyOSAvKiBcU0QyOSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTRdID0gU0QzMSAvKiBcU0QzMSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTVdID0gU0QzMiAvKiBc U0QzMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTZdID0g U0QzMyAvKiBcU0QzMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MTddID0gU0QzNCAvKiBcU0QzNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MThdID0gU0QzNSAvKiBcU0QzNSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MTldID0gU0QzNiAvKiBcU0QzNiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MUFdID0gU0QzNyAvKiBcU0QzNyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MUJdID0gU0QzOCAvKiBc U0QzOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MUNdID0g U0QzOSAvKiBcU0QzOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MURdID0gU0Q0MSAvKiBcU0Q0MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MUVdID0gU0Q0MiAvKiBcU0Q0MiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MUZdID0gU0Q0MyAvKiBcU0Q0MyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjBdID0gU0Q0NCAvKiBcU0Q0NCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjFdID0gU0Q0NSAvKiBc U0Q0NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjJdID0g U0Q0NiAvKiBcU0Q0NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MjNdID0gU0Q0NyAvKiBcU0Q0NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MjRdID0gU0Q0OCAvKiBcU0Q0OCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MjVdID0gU0Q0OSAvKiBcU0Q0OSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjZdID0gU0Q1MSAvKiBcU0Q1MSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjddID0gU0Q1MiAvKiBc U0Q1MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjhdID0g U0Q1MyAvKiBcU0Q1MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MjldID0gU0Q1NCAvKiBcU0Q1NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MkFdID0gU0Q1NSAvKiBcU0Q1NSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MkJdID0gU0Q1NiAvKiBcU0Q1NiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkNdID0gU0Q1NyAvKiBcU0Q1NyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkRdID0gU0Q1OCAvKiBc U0Q1OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkVdID0g U0Q1OSAvKiBcU0Q1OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MkZdID0gU0Q2MSAvKiBcU0Q2MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MzBdID0gU0Q2MiAvKiBcU0Q2MiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MzFdID0gU0Q2MyAvKiBcU0Q2MyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzJdID0gU0Q2NCAvKiBcU0Q2NCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzNdID0gU0Q2NSAvKiBc U0Q2NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzRdID0g U0Q2NiAvKiBcU0Q2NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MzVdID0gU0Q2NyAvKiBcU0Q2NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MzZdID0gU0Q2OCAvKiBcU0Q2OCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MzddID0gU0Q2OSAvKiBcU0Q2OSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzhdID0gU0Q3MSAvKiBcU0Q3MSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzldID0gU0Q3MiAvKiBc U0Q3MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0FdID0g U0Q3MyAvKiBcU0Q3MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4M0JdID0gU0Q3NCAvKiBcU0Q3NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4M0NdID0gU0Q3NSAvKiBcU0Q3NSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4M0RdID0gU0Q3NiAvKiBcU0Q3NiAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0VdID0gU0Q3NyAvKiBcU0Q3NyAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4M0ZdID0gU0Q3OCAvKiBc U0Q3OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDBdID0g U0Q3OSAvKiBcU0Q3OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4NDFdID0gU0Q4MSAvKiBcU0Q4MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4NDJdID0gU0Q4MiAvKiBcU0Q4MiAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4NDNdID0gU0Q4MyAvKiBcU0Q4MyAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDRdID0gU0Q4NCAvKiBcU0Q4NCAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDVdID0gU0Q4NSAvKiBc U0Q4NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDZdID0g U0Q4NiAvKiBcU0Q4NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4NDddID0gU0Q4NyAvKiBcU0Q4NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4NDhdID0gU0Q4OCAvKiBcU0Q4OCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4NDldID0gU0Q4OSAvKiBcU0Q4OSAqLwogICAgICAgICAg ICAgICAgUmV0dXJuIChXR0RZKSAvKiBcX1NCXy5QQzAwLlJQMTEuUFhTWC5XR0RZICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEVDS1ksIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3 LCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoRUNLViwgMCwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoRUNLWSBbT25lXSkgW09uZV0gPSBD RUNWIC8qIFxDRUNWICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEVDS1kpIC8qIFxfU0Jf LlBDMDAuUlAxMS5QWFNYLkVDS1kgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFt ZSAoUFBBWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHgwMiwgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDE4KQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgIDB4MTgsIAogICAgICAgICAgICAgICAgICAgIDB4Mjgs IAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4Mjgs IAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4Mjgs IAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4Mjgs IAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4Mjgs IAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MTgs IAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4Mjgs IAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4Mjgs IAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4Mjgs IAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4Mjgs IAogICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgIDB4MjgK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChQ UEFHLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJl Zk9mIChQUEFZIFtPbmVdKSBbT25lXSA9IFdBR00gLyogXFdBR00gKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDAyXSA9IEFHQTEgLyogXEFHQTEgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDAzXSA9IEFHQTIgLyogXEFH QTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA0XSA9IEFH QTMgLyogXEFHQTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsw eDA1XSA9IEFHQTQgLyogXEFHQTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkg W09uZV0pIFsweDA2XSA9IEFHQTUgLyogXEFHQTUgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFBQQVkgW09uZV0pIFsweDA3XSA9IEFHQTYgLyogXEFHQTYgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA4XSA9IEFHQTcgLyogXEFHQTcgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA5XSA9IEFHQTggLyogXEFH QTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBBXSA9IEFH QTkgLyogXEFHQTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsw eDBCXSA9IEFHQUEgLyogXEFHQUEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkg W09uZV0pIFsweDBDXSA9IEFHQUIgLyogXEFHQUIgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFBQQVkgW09uZV0pIFsweDBEXSA9IEFHQjEgLyogXEFHQjEgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBFXSA9IEFHQjIgLyogXEFHQjIgKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDBGXSA9IEFHQjMgLyogXEFH QjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDEwXSA9IEFH QjQgLyogXEFHQjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsw eDExXSA9IEFHQjUgLyogXEFHQjUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkg W09uZV0pIFsweDEyXSA9IEFHQjYgLyogXEFHQjYgKi8KICAgICAgICAgICAgICAgIERlcmVm T2YgKFBQQVkgW09uZV0pIFsweDEzXSA9IEFHQjcgLyogXEFHQjcgKi8KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE0XSA9IEFHQjggLyogXEFHQjggKi8KICAg ICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE1XSA9IEFHQjkgLyogXEFH QjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDE2XSA9IEFH QkEgLyogXEFHQkEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsw eDE3XSA9IEFHQkIgLyogXEFHQkIgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoUFBBWSkg LyogXF9TQl8uUEMwMC5SUDExLlBYU1guUFBBWSAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBOYW1lIChXUEZZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdQRkMsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdQRlkgW09uZV0pIFtP bmVdID0gV1BGQSAvKiBcV1BGQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1BGWSBb T25lXSkgWzB4MDJdID0gV1BGQiAvKiBcV1BGQiAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1BGWSBbT25lXSkgWzB4MDNdID0gXFdQRkMKICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdQRlkgW09uZV0pIFsweDA0XSA9IFdQRkQgLyogXFdQRkQgKi8KICAgICAgICAgICAgICAg IFJldHVybiAoV1BGWSkgLyogXF9TQl8uUEMwMC5SUDExLlBYU1guV1BGWSAqLwogICAgICAg ICAgICB9CgogICAgICAgICAgICBOYW1lIChXVFNZLCBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgUGFja2FnZSAo MHgxMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1RBUywg MCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAo V1RTWSBbT25lXSkgW09uZV0gPSBXVFNFIC8qIFxXVFNFICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwMl0gPSBXVExFIC8qIFxXVExFICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwM10gPSBCTDAxIC8qIFxCTDAxICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwNF0gPSBCTDAyIC8q IFxCTDAyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwNV0g PSBCTDAzIC8qIFxCTDAzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVd KSBbMHgwNl0gPSBCTDA0IC8qIFxCTDA0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX VFNZIFtPbmVdKSBbMHgwN10gPSBCTDA1IC8qIFxCTDA1ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwOF0gPSBCTDA2IC8qIFxCTDA2ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwOV0gPSBCTDA3IC8qIFxCTDA3ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQV0gPSBCTDA4IC8q IFxCTDA4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQl0g PSBCTDA5IC8qIFxCTDA5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVd KSBbMHgwQ10gPSBCTDEwIC8qIFxCTDEwICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX VFNZIFtPbmVdKSBbMHgwRF0gPSBCTDExIC8qIFxCTDExICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwRV0gPSBCTDEyIC8qIFxCTDEyICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwRl0gPSBCTDEzIC8qIFxCTDEzICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMF0gPSBCTDE0IC8q IFxCTDE0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMV0g PSBCTDE1IC8qIFxCTDE1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVd KSBbMHgxMl0gPSBCTDE2IC8qIFxCTDE2ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdU U1kpIC8qIFxfU0JfLlBDMDAuUlAxMS5QWFNYLldUU1kgKi8KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTmFtZSAoV0FJWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAg ICAgTWV0aG9kIChXQUlTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXQUlZIFtPbmVdKSBbT25lXSA9IFdMQkkgLyogXFdMQkkgKi8K ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBSVkgW09uZV0pIFsweDAyXSA9IFdIQkkgLyog XFdIQkkgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoV0FJWSkgLyogXF9TQl8uUEMwMC5S UDExLlBYU1guV0FJWSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChTQURY LCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAog ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAg ICAgICAgICAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIE1ldGhvZCAoU0FEUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgRGVyZWZPZiAoU0FEWCBbT25lXSkgW09uZV0gPSBBVERWIC8qIFxB VERWICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChTQURYIFsweDAyXSkgW09uZV0gPSBB VERWIC8qIFxBVERWICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFNBRFgpIC8qIFxfU0Jf LlBDMDAuUlAxMS5QWFNYLlNBRFggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFt ZSAoR1BDWCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIDB4MTIsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoR1BDLCAwLCBTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQQ1gpIC8qIFxfU0JfLlBD MDAuUlAxMS5QWFNYLkdQQ1ggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAo R0xBWCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAg ICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAg ICBNZXRob2QgKEdMQUksIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQVI6IEdMQUkgbWV0aG9kLiBDR0xTID0gIiwg VG9IZXhTdHJpbmcgKENHTFMpKSkKICAgICAgICAgICAgICAgIERlcmVmT2YgKEdMQVggW09u ZV0pIFtPbmVdID0gQ0dMUyAvKiBcQ0dMUyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo R0xBWCBbMHgwMl0pIFtPbmVdID0gQ0dMUyAvKiBcQ0dMUyAqLwogICAgICAgICAgICAgICAg UmV0dXJuIChHTEFYKSAvKiBcX1NCXy5QQzAwLlJQMTEuUFhTWC5HTEFYICovCiAgICAgICAg ICAgIH0KICAgICAgICB9CgogICAgICAgIElmICgoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAg PT0gU0xPVCkpKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChGSFJGLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEdHT1YgKFBS U1QpICE9IFdQUlApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERM MjMgKCkKICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBETDIzKCkgRG9uZSIpCiAg ICAgICAgICAgICAgICAgICAgU0dPViAoUFJTVCwgV1BSUCkKICAgICAgICAgICAgICAgICAg ICBBREJHICgiV1dBTiBQRVJTVDowIERvbmUiKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFE QkcgKCJBc3N1bWUgV1dBTiBETDIzKCkgaXMgYWxyZWFkeSBkb25lIikKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBTbGVlcCAoVFIyQikKICAgICAgICAgICAgICAgIFNH T1YgKFdCUlMsIFBCUlMpCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBSU1Q6MCBEb25l IikKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoVEJURykKICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlNMUCBUQlRHICIsIFRvRGVjaW1hbFN0cmluZyAoVEJU RykpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9 PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNQQ08gKFdD TEssIFplcm8pCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gU0NMSzowIERvbmUi KQogICAgICAgICAgICAgICAgICAgIFNsZWVwIChUQjJGKQogICAgICAgICAgICAgICAgICAg IEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRCMkYgIiwgVG9EZWNpbWFsU3RyaW5nIChUQjJG KSkpCiAgICAgICAgICAgICAgICAgICAgU0dPViAoV0ZDUCwgKH5QRkNQICYgT25lKSkKICAg ICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQV1I6MCBEb25lIikKICAgICAgICAgICAg ICAgICAgICBTbGVlcCAoVEZESSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIlNMUCBURkRJICIsIFRvRGVjaW1hbFN0cmluZyAoVEZESSkpKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJVbnN1cHBvcnRlZCBBcmcwIGlzIGRldGVjdGVkLiIpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU0hS RiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFNE MCAoU0xPVCkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIE1QSFlQRzowIERvbmUiKQog ICAgICAgICAgICAgICAgU1BDTyAoV0NMSywgT25lKQogICAgICAgICAgICAgICAgQURCRyAo IldXQU4gU0NMSzoxIERvbmUiKQogICAgICAgICAgICAgICAgU0dPViAoV0ZDUCwgUEZDUCkK ICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBXUjoxIERvbmUiKQogICAgICAgICAgICAg ICAgU2xlZXAgKFROMkIpCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlNM UCBUTjJCICIsIFRvRGVjaW1hbFN0cmluZyAoVE4yQikpKQogICAgICAgICAgICAgICAgU0dP ViAoV0JSUywgKH5QQlJTICYgT25lKSkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFJT VDoxIERvbmUiKQogICAgICAgICAgICAgICAgU2xlZXAgKFRCMlIpCiAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlNMUCBUQjJSICIsIFRvRGVjaW1hbFN0cmluZyAoVEIy UikpKQogICAgICAgICAgICAgICAgU0dPViAoUFJTVCwgKH5XUFJQICYgT25lKSkKICAgICAg ICAgICAgICAgIEFEQkcgKCJXV0FOIFBFUlNUOjAgRG9uZSIpCiAgICAgICAgICAgICAgICBM MjNEICgpCiAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBMMjNEKCkgRG9uZSIpCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoRE9TViwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAg ICAgICAgV2hpbGUgKCgoU1ZJRCAhPSBXU0lEKSAmJiAoTG9jYWwwIDwgV1NUTykpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCsrCiAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIkRFVCBUaW1lICIsIFRvRGVjaW1hbFN0cmluZyAoTG9j YWwwKSkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1JTVCwgMCwgU2Vy aWFsaXplZCkgIC8vIF9SU1Q6IERldmljZSBSZXNldAogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBBREJHICgiX1JTVCBXV0FOIikKICAgICAgICAgICAgICAgIElmICgoV1dFTiA9 PSAweDAyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAg PSBBY3F1aXJlIChXV01ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldX QU4gRkxEUiBNdXRleDogQWNxdWlyZWQgVHJ5IERvbmUiKQogICAgICAgICAgICAgICAgICAg IElmICgoTG9jYWwwID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIlN0YXJ0IFdXQU4gRkxEUiIpCiAgICAgICAgICAgICAg ICAgICAgICAgIEZIUkYgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIFNIUkYgKCkK ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkVuZCBXV0FOIEZMRFIiKQogICAgICAg ICAgICAgICAgICAgICAgICBSZWxlYXNlIChXV01UKQogICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiV1dBTiBGTERSIE11dGV4OlJlbGVhc2UgRG9uZSIpCiAgICAgICAgICAgICAg ICAgICAgICAgIERPU1YgKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgU0dPViAoV0JSUywgUEJSUykKICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHhDOCkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFBYU1gsIE9uZSkgLy8gRGV2aWNl IENoZWNrCiAgICAgICAgICAgICAgICAgICAgU0dPViAoUFJTVCwgKH5XUFJQICYgT25lKSkK ICAgICAgICAgICAgICAgICAgICBTR09WIChXQlJTLCAoflBCUlMgJiBPbmUpKQogICAgICAg ICAgICAgICAgICAgIFNsZWVwICgweEM4KQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExBU1ggPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+ IDB4MTQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiRkxEUiBUTyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBC cmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDBBKQogICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUlZQIERlbGF5IFRpbWUgIiwg VG9EZWNpbWFsU3RyaW5nIChMb2NhbDApKSkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkg KFBYU1gsIE9uZSkgLy8gRGV2aWNlIENoZWNrCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIFBvd2VyUmVzb3VyY2UgKE1SU1QsIDB4MDUsIDB4MDAwMCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxp emVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQURCRyAoIldXQU4gUFIgX1NUQSIpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT04s IDAsIFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBSIF9PTiIpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBTZXJpYWxpemVkKSAgLy8g X09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg QURCRyAoIldXQU4gUFIgX09GRiIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChfUlNULCAwLCBTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0 CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQWNxdWly ZSAoV1dNVCwgMHgwM0U4KQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBMRFIg TXV0ZXg6IEFjcXVpcmVkIFRyeSBEb25lIikKICAgICAgICAgICAgICAgICAgICBJZiAoKExv Y2FsMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJTdGFydCBXV0FOIFBMRFIiKQogICAgICAgICAgICAgICAgICAgICAg ICBGSFJGIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIFNIUkYgKCkKICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIkVuZCBXV0FOIFBSIF9SU1QiKQogICAgICAgICAgICAg ICAgICAgICAgICBSZWxlYXNlIChXV01UKQogICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiV1dBTiBQTERSIE11dGV4OiBSZWxlYXNlIERvbmUiKQogICAgICAgICAgICAgICAgICAg ICAgICBET1NWICgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKFdJU1QgKCkgfHwgKChXV0VO ICE9IFplcm8pICYmIChXV1JQID09IFNMT1QpKSkpCiAgICAgICAgewogICAgICAgICAgICBN ZXRob2QgKF9QUlIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJSOiBQb3dlciBSZXNvdXJj ZSBmb3IgUmVzZXQKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo V1JTVCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFdSU1QKICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgSWYgKCgoV1dFTiAhPSBaZXJvKSAmJiAoV1dSUCA9PSBTTE9UKSkpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoTVJTVCkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1SU1QKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQ YWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFdS U1QKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUg KEZERUwsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKFBERUwsIFplcm8pCiAgICAgICAgICAg IE5hbWUgKFZERUwsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoSUZVTiwgNCwgU2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8p KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDFGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4K ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJ2 UHJvOiAiLCBDVlBSKSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQ1ZQUiA8PCBa ZXJvKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIFplcm8s IENNRFQpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmczLCAweDAy LCBDTURQKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQ21kVHlw ZSA9ICIsIFRvSGV4U3RyaW5nIChDTURUKSkpCiAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJDbWRQYXlsb2FkID0gIiwgVG9IZXhTdHJpbmcgKENNRFApKSkKICAg ICAgICAgICAgICAgICAgICBJZiAoKENNRFQgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJTVFkp IC8qIFxfU0JfLlBDMDAuUlAxMS5QWFNYLlJTVFkgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZPZiAoXF9TQi5Q QzAwLkNOVlcuUlNUVCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiR2V0IF9QUlIgTW9kZSA9ICIs IF5eXkNOVlcuUlNUVCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5e XkNOVlcuUlNUVCkgLyogXF9TQl8uUEMwMC5DTlZXLlJTVFQgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChDTURUID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChDTURQ ICYgT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUlNUWSA9IExvY2FsMAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKENNRFAgJiAweDAyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID4+PSBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZMUkMgPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMiA9IChDTURQICYgMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MiA+Pj0gMHgwMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQk9GQyA9IExvY2FsMgog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ ZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJTZXQgX1BSUiBNb2RlID0gIiwgVG9IZXhTdHJpbmcgKENNRFApKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5eXkNOVlcuUlNUVCA9IENNRFAgLyogXF9TQl8uUEMwMC5SUDEx LlBYU1guSUZVTi5DTURQICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmICgoQ01EVCA9PSAweDAzKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMw MC5DTlZXLlBSUlMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkdldCBMYXN0X1BSUiBzdGF0dXMg UFJSUyA9ICIsIFRvSGV4U3RyaW5nICheXl5DTlZXLlBSUlMpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoXl5eQ05WVy5QUlJTKSAvKiBcX1NCXy5QQzAwLkNOVlcu UFJSUyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2VJZiAoV0lTVCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJHZXQgTGFzdF9QUlIg c3RhdHVzIERQUlMgPSAiLCBUb0hleFN0cmluZyAoRFBSUykpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChEUFJTKSAvKiBcX1NCXy5QQzAwLlJQMTEuUFhTWC5EUFJT ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKChDUkZJID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gMHgwNCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl V29yZEZpZWxkIChBcmczLCBaZXJvLCBQUlRUKQogICAgICAgICAgICAgICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoQXJnMywgMHgwMiwgUFJURCkKICAgICAgICAgICAgICAgICAgICBBREJH IChDb25jYXRlbmF0ZSAoIlRpbWVyVHlwZSA9ICIsIFRvSGV4U3RyaW5nIChQUlRUKSkpCiAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJUaW1lckR1cmF0aW9uICht cykgPSAiLCBUb0RlY2ltYWxTdHJpbmcgKFBSVEQpKSkKICAgICAgICAgICAgICAgICAgICBJ ZiAoKFBSVFQgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIEZERUwgPSBQUlREIC8qIFxfU0JfLlBDMDAuUlAxMS5QWFNYLklGVU4uUFJU RCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYg KChQUlRUID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUERFTCA9IFBSVEQgLyogXF9TQl8uUEMwMC5SUDExLlBYU1guSUZVTi5QUlRE ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAo KFBSVFQgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBWREVMID0gUFJURCAvKiBcX1NCXy5QQzAwLlJQMTEuUFhTWC5JRlVOLlBSVEQg Ki8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRpbWVy RHVyYXRpb24gbm90IHNldCIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChJRFNNLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNzI2NjE3MmMtMjIwYi00YjI5 LTgxNGYtNzVlNGRkMjZiNWZkIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoRUZVTiwgNCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAyKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RiwgMHgxRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBBQ1NEIC8qIFxBQ1NEICovCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IEk1QlMgLyogXEk1QlMgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFy ZzIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gVUhCUyAvKiBcVUhCUyAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9j YWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAw eDA2KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBB WE1VIC8qIFxBWE1VICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIDw8PSBPbmUKICAg ICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gQVhTVSAvKiBcQVhTVSAqLwogICAgICAgICAg ICAgICAgICAgIExvY2FsMSA9IEFYTVIgLyogXEFYTVIgKi8KICAgICAgICAgICAgICAgICAg ICBMb2NhbDEgPDw9IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMSB8PSBBWFNSIC8q IFxBWFNSICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxIDw8PSAweDAyCiAgICAgICAg ICAgICAgICAgICAgTG9jYWwwIHw9IExvY2FsMQogICAgICAgICAgICAgICAgICAgIFJldHVy biAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSAweDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAweDAzLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA1KSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdGVUMpIC8qIFxXRlVDICovCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDcpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoVU5JNCkgLyogXFVOSTQg Ki8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgw OCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRklD KSAvKiBcV0ZJQyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSAweDA5KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFdGQlMpIC8qIFxXRkJTICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IDB4MEEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoV0VEVCkgLyogXFdFRFQgKi8KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwQikpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKChDSVJNID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFy ZzIgPT0gMHgwQykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChXRjdDKSAvKiBcV0Y3QyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChF RFNNLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gVG9VVUlEICgiZjIxMjAyYmYtOGY3OC00ZGM2LWE1YjMtMWY3MzhlMjg1YWRl IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RT TSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEVEU00gKEFyZzApKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChFRlVOIChBcmcwLCBB cmcxLCBBcmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmIChJRFNNIChBcmcwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoSUZVTiAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMykp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmICgoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xPVCkpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJiYWQw MWI3NS0yMmE4LTRmNDgtODc5Mi1iZGRlOTQ2Nzc0N2QiKSAvKiBVbmtub3duIFVVSUQgKi8p KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpe30KICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKXt9CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChXUlRPID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IldXQU4gUG93ZXIgX0RTTSBEMC9MMS4yIikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdSVE8gPT0gMHgwMikp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQURCRyAoIldXQU4gUG93ZXIgX0RTTSBEMy9MMS4yIikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAo KFdSVE8gPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUG93ZXIgX0RTTSBEMy9MMiIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUG93ZXIgX0RTTSBEaXNhYmxlZCIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChXUlRPKSAvKiBcV1JUTyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfQog ICAgfQoKICAgIFNjb3BlIChfU0IuUEMwMC5SUDEyLlBYU1gpCiAgICB7CiAgICAgICAgT3Bl cmF0aW9uUmVnaW9uIChSUFhYLCBTeXN0ZW1NZW1vcnksIEdNSU8gKFBCTlUsIF5fQURSICgp LCBfQURSKSwgMHgzMCkKICAgICAgICBGaWVsZCAoUlBYWCwgQW55QWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgVkRJRCwgICAzMiwgCiAgICAgICAgICAg IE9mZnNldCAoMHgyQyksIAogICAgICAgICAgICBTVklELCAgIDE2CiAgICAgICAgfQoKICAg ICAgICBPcGVyYXRpb25SZWdpb24gKEZMRFIsIFN5c3RlbU1lbW9yeSwgKEdNSU8gKFBCTlUs IF5fQURSICgpLCBfQURSKSArIFdEQ08pLCAweDA2KQogICAgICAgIEZpZWxkIChGTERSLCBC eXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgRENBUCwg ICAzMiwgCiAgICAgICAgICAgIERDVFIsICAgMTYKICAgICAgICB9CgogICAgICAgIE9wZXJh dGlvblJlZ2lvbiAoVlNFQywgU3lzdGVtTWVtb3J5LCAoR01JTyAoUEJOVSwgXl9BRFIgKCks IF9BRFIpICsgV1ZITyksIDB4MTApCiAgICAgICAgRmllbGQgKFZTRUMsIEFueUFjYywgTm9M b2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIE9mZnNldCAoMHgwQyksIAog ICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICBCVElFLCAgIDEsIAogICAgICAg ICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAg ICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAgICAgLCAg IDEsIAogICAgICAgICAgICBPZmZzZXQgKDB4MEQpLCAKICAgICAgICAgICAgUERSQywgICAx CiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBCUlIsIFN5c3RlbU1lbW9y eSwgR01JTyAoUEJOVSwgXl9BRFIgKCksIF9BRFIpLCAweDAyQjgpCiAgICAgICAgRmllbGQg KFBCUlIsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAg IE9mZnNldCAoMHgxOEMpLCAKICAgICAgICAgICAgTVNOTCwgICAzMiwgCiAgICAgICAgICAg IE9mZnNldCAoMHgxOTgpLCAKICAgICAgICAgICAgTDFDMSwgICAzMiwgCiAgICAgICAgICAg IEwxQzIsICAgMzIsIAogICAgICAgICAgICBPZmZzZXQgKDB4MkI0KSwgCiAgICAgICAgICAg IFBUTVIsICAgMzIKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoV0lTVCwgMCwgU2VyaWFs aXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFZESUQpKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoVkRJRCkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgyNTI2ODA4NikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDI3MUI4MDg2KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIENhc2UgKDB4MjcyMzgwODYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgQ2FzZSAoMHgyNzI1ODA4NikKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDI3MkI4MDg2KQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU1ZEQyA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KICAgICAg ICB9CgogICAgICAgIE1ldGhvZCAoV1dTVCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFZESUQpKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoVkRJRCkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHg3MzYwODA4NikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDc1NjA4MDg2KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4NEQ3NTE0 QzMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoMHgwODAwMTRDMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQogICAgICAgIH0K CiAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChSU1RZ LCBaZXJvKQogICAgICAgICAgICBOYW1lIChGTFJDLCBaZXJvKQogICAgICAgICAgICBOYW1l IChCT0ZDLCBaZXJvKQogICAgICAgICAgICBOYW1lIChEUFJTLCBaZXJvKQogICAgICAgICAg ICBQb3dlclJlc291cmNlIChXUlNULCAweDA1LCAweDAwMDApCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6 IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJX aWZpIFBSIF9TVEEiKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX09OXzogUG93ZXIgT24KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBBREJHICgiV2lmaSBQUiBfT04iKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX09GRiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PRkY6IFBv d2VyIE9mZgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJX aWZpIFBSIF9PRkYiKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1JTVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9SU1Q6IERldmljZSBSZXNldAogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoUlNUWSA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldp ZmkgUHJvZHVjdCBSU1QiKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBBY3F1 aXJlIChDTk1ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWww ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEZMUkMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBEQ1RSIC8q IFxfU0JfLlBDMDAuUlAxMi5QWFNYLkRDVFIgKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgfD0gMHg4MDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRENUUiA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVw IChGREVMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERQUlMgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoQk9GQyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQlJNVCA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJUUksgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdWSE8gIT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCVElFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFJETFkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUERSQyA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFZE RUwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTR09WIChXTFJULCBaZXJvKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFBERUwpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTR09WIChXTFJULCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEJPRkMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEJSTVQgPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCVFJLIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFdWSE8gIT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCVElFID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoUkRM WSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEUFJTID0gMHgwMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFz ZSAoQ05NVCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBBREJHICgiV2lmaSBDb3JlIFJTVCIpCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoRENBUCAmIDB4MTAwMDAwMDApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBEQ1RSIC8q IFxfU0JfLlBDMDAuUlAxMi5QWFNYLkRDVFIgKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCB8PSAweDgwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERDVFIg PSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgRFBSUyA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgU2xlZXAgKDB4MDdEMCkKICAgICAgICAgICAgICAgICAgICBNU05MID0gRFIwMSAv KiBcRFIwMSAqLwogICAgICAgICAgICAgICAgICAgIEwxQzEgPSBEUjAyIC8qIFxEUjAyICov CiAgICAgICAgICAgICAgICAgICAgTDFDMiA9IERSMDMgLyogXERSMDMgKi8KICAgICAgICAg ICAgICAgICAgICBQVE1SID0gRFIwNCAvKiBcRFIwNCAqLwogICAgICAgICAgICAgICAgICAg IFNsZWVwICgweDA3RDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE5hbWUgKFNQTFgsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAg ICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAw CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAo U1BMQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVy ZWZPZiAoU1BMWCBbT25lXSkgW1plcm9dID0gRE9NMSAvKiBcRE9NMSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoU1BMWCBbT25lXSkgW09uZV0gPSBMSU0xIC8qIFxMSU0xICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChTUExYIFtPbmVdKSBbMHgwMl0gPSBUSU0xIC8qIFxU SU0xICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFNQTFgpIC8qIFxfU0JfLlBDMDAuUlAx Mi5QWFNYLlNQTFggKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV0FOWCwg UGFja2FnZSAoMHgwMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAw MDAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4 MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdBTkQsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09u ZV0pIFtaZXJvXSA9IFplcm8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0p IFtPbmVdID0gVFJEMCAvKiBcVFJEMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FO WCBbT25lXSkgWzB4MDJdID0gVFJMMCAvKiBcVFJMMCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0FOWCBbMHgwMl0pIFtaZXJvXSA9IE9uZQogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0FOWCBbMHgwMl0pIFtPbmVdID0gVFJEMSAvKiBcVFJEMSAqLwogICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0FOWCBbMHgwMl0pIFsweDAyXSA9IFRSTDEgLyogXFRSTDEgKi8KICAg ICAgICAgICAgICAgIFJldHVybiAoV0FOWCkgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1guV0FO WCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXUkRYLCBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MDAwCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1JERCwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWCBb T25lXSkgW1plcm9dID0gV0RNMSAvKiBcV0RNMSAqLwogICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1JEWCBbT25lXSkgW09uZV0gPSBDSUQxIC8qIFxDSUQxICovCiAgICAgICAgICAgICAg ICBSZXR1cm4gKFdSRFgpIC8qIFxfU0JfLlBDMDAuUlAxMi5QWFNYLldSRFggKi8KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoV1JEWSwgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDJFKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDcsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgIDB4ODAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fSkKICAgICAgICAgICAgTWV0aG9kIChXUkRTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbT25lXSA9IFNUWEUg LyogXFNUWEUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDAy XSA9IFNUMTAgLyogXFNUMTAgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDAzXSA9IFNUMTEgLyogXFNUMTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDA0XSA9IFNUMTIgLyogXFNUMTIgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA1XSA9IFNUMTMgLyogXFNUMTMgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA2XSA9IFNUMTQgLyogXFNUMTQg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA3XSA9IFNUMTUg LyogXFNUMTUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA4 XSA9IFNUMTYgLyogXFNUMTYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDA5XSA9IFNUMTcgLyogXFNUMTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDBBXSA9IFNUMTggLyogXFNUMTggKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBCXSA9IFNUMTkgLyogXFNUMTkgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBDXSA9IFNUNTAgLyogXFNUNTAg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBEXSA9IFNUNTEg LyogXFNUNTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBF XSA9IFNUNTIgLyogXFNUNTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDBGXSA9IFNUNTMgLyogXFNUNTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDEwXSA9IFNUNTQgLyogXFNUNTQgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDExXSA9IFNUNTUgLyogXFNUNTUgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDEyXSA9IFNUNTYgLyogXFNUNTYg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDEzXSA9IFNUNTcg LyogXFNUNTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE0 XSA9IFNUNTggLyogXFNUNTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDE1XSA9IFNUNTkgLyogXFNUNTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDE2XSA9IFNUNUEgLyogXFNUNUEgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE3XSA9IFNUNUIgLyogXFNUNUIgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE4XSA9IENEMTAgLyogXENEMTAg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE5XSA9IENEMTEg LyogXENEMTEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFB XSA9IENEMTIgLyogXENEMTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDFCXSA9IENEMTMgLyogXENEMTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDFDXSA9IENEMTQgLyogXENEMTQgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFEXSA9IENEMTUgLyogXENEMTUgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFFXSA9IENEMTYgLyogXENEMTYg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFGXSA9IENEMTcg LyogXENEMTcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDIw XSA9IENEMTggLyogXENEMTggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDIxXSA9IENEMTkgLyogXENEMTkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDIyXSA9IENEMUEgLyogXENEMUEgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDIzXSA9IENEMjAgLyogXENEMjAgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI0XSA9IENEMjEgLyogXENEMjEg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI1XSA9IENEMjIg LyogXENEMjIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI2 XSA9IENEMjMgLyogXENEMjMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDI3XSA9IENEMjQgLyogXENEMjQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdSRFkgW09uZV0pIFsweDI4XSA9IENEMjUgLyogXENEMjUgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI5XSA9IENEMjYgLyogXENEMjYgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJBXSA9IENEMjcgLyogXENEMjcg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJCXSA9IENEMjgg LyogXENEMjggKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJD XSA9IENEMjkgLyogXENEMjkgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDJEXSA9IENEMkEgLyogXENEMkEgKi8KICAgICAgICAgICAgICAgIFJldHVybiAo V1JEWSkgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1guV1JEWSAqLwogICAgICAgICAgICB9Cgog ICAgICAgICAgICBOYW1lIChFV1JZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4ODcpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKEVXUkQsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFtPbmVdID0gU1RERSAvKiBcU1RERSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MDJdID0gU1RSUyAvKiBcU1RSUyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDNdID0gU1QyMCAvKiBcU1QyMCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDRdID0gU1QyMSAvKiBcU1QyMSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDVdID0gU1QyMiAv KiBcU1QyMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDZd ID0gU1QyMyAvKiBcU1QyMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MDddID0gU1QyNCAvKiBcU1QyNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MDhdID0gU1QyNSAvKiBcU1QyNSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDldID0gU1QyNiAvKiBcU1QyNiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MEFdID0gU1QyNyAvKiBcU1QyNyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MEJdID0gU1QyOCAv KiBcU1QyOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MENd ID0gU1QyOSAvKiBcU1QyOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MERdID0gU1Q2MCAvKiBcU1Q2MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MEVdID0gU1Q2MSAvKiBcU1Q2MSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MEZdID0gU1Q2MiAvKiBcU1Q2MiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTBdID0gU1Q2MyAvKiBcU1Q2MyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTFdID0gU1Q2NCAv KiBcU1Q2NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTJd ID0gU1Q2NSAvKiBcU1Q2NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MTNdID0gU1Q2NiAvKiBcU1Q2NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MTRdID0gU1Q2NyAvKiBcU1Q2NyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTVdID0gU1Q2OCAvKiBcU1Q2OCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTZdID0gU1Q2OSAvKiBcU1Q2OSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTddID0gU1Q2QSAv KiBcU1Q2QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MThd ID0gU1Q2QiAvKiBcU1Q2QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MTldID0gU1QzMCAvKiBcU1QzMCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MUFdID0gU1QzMSAvKiBcU1QzMSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUJdID0gU1QzMiAvKiBcU1QzMiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUNdID0gU1QzMyAvKiBcU1QzMyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MURdID0gU1QzNCAv KiBcU1QzNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUVd ID0gU1QzNSAvKiBcU1QzNSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MUZdID0gU1QzNiAvKiBcU1QzNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MjBdID0gU1QzNyAvKiBcU1QzNyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjFdID0gU1QzOCAvKiBcU1QzOCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjJdID0gU1QzOSAvKiBcU1QzOSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjNdID0gU1Q3MCAv KiBcU1Q3MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjRd ID0gU1Q3MSAvKiBcU1Q3MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MjVdID0gU1Q3MiAvKiBcU1Q3MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MjZdID0gU1Q3MyAvKiBcU1Q3MyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjddID0gU1Q3NCAvKiBcU1Q3NCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjhdID0gU1Q3NSAvKiBcU1Q3NSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjldID0gU1Q3NiAv KiBcU1Q3NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkFd ID0gU1Q3NyAvKiBcU1Q3NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MkJdID0gU1Q3OCAvKiBcU1Q3OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MkNdID0gU1Q3OSAvKiBcU1Q3OSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkRdID0gU1Q3QSAvKiBcU1Q3QSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkVdID0gU1Q3QiAvKiBcU1Q3QiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkZdID0gU1Q0MCAv KiBcU1Q0MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzBd ID0gU1Q0MSAvKiBcU1Q0MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MzFdID0gU1Q0MiAvKiBcU1Q0MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MzJdID0gU1Q0MyAvKiBcU1Q0MyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzNdID0gU1Q0NCAvKiBcU1Q0NCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzRdID0gU1Q0NSAvKiBcU1Q0NSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzVdID0gU1Q0NiAv KiBcU1Q0NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzZd ID0gU1Q0NyAvKiBcU1Q0NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MzddID0gU1Q0OCAvKiBcU1Q0OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MzhdID0gU1Q0OSAvKiBcU1Q0OSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzldID0gU1Q4MCAvKiBcU1Q4MCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0FdID0gU1Q4MSAvKiBcU1Q4MSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0JdID0gU1Q4MiAv KiBcU1Q4MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0Nd ID0gU1Q4MyAvKiBcU1Q4MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4M0RdID0gU1Q4NCAvKiBcU1Q4NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4M0VdID0gU1Q4NSAvKiBcU1Q4NSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0ZdID0gU1Q4NiAvKiBcU1Q4NiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDBdID0gU1Q4NyAvKiBcU1Q4NyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDFdID0gU1Q4OCAv KiBcU1Q4OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDJd ID0gU1Q4OSAvKiBcU1Q4OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NDNdID0gU1Q4QSAvKiBcU1Q4QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NDRdID0gU1Q4QiAvKiBcU1Q4QiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDVdID0gQ0QzMCAvKiBcQ0QzMCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDZdID0gQ0QzMSAvKiBcQ0QzMSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDddID0gQ0QzMiAv KiBcQ0QzMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDhd ID0gQ0QzMyAvKiBcQ0QzMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NDldID0gQ0QzNCAvKiBcQ0QzNCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NEFdID0gQ0QzNSAvKiBcQ0QzNSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NEJdID0gQ0QzNiAvKiBcQ0QzNiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NENdID0gQ0QzNyAvKiBcQ0QzNyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NERdID0gQ0QzOCAv KiBcQ0QzOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NEVd ID0gQ0QzOSAvKiBcQ0QzOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NEZdID0gQ0QzQSAvKiBcQ0QzQSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NTBdID0gQ0QzQiAvKiBcQ0QzQiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTFdID0gQ0QzQyAvKiBcQ0QzQyAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTJdID0gQ0QzRCAvKiBcQ0QzRCAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTNdID0gQ0QzRSAv KiBcQ0QzRSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTRd ID0gQ0QzRiAvKiBcQ0QzRiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NTVdID0gQ0Q0MCAvKiBcQ0Q0MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NTZdID0gQ0Q0MSAvKiBcQ0Q0MSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTddID0gQ0Q0MiAvKiBcQ0Q0MiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NThdID0gQ0Q0MyAvKiBcQ0Q0MyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTldID0gQ0Q0NCAv KiBcQ0Q0NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUFd ID0gQ0Q0NSAvKiBcQ0Q0NSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NUJdID0gQ0Q0NiAvKiBcQ0Q0NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NUNdID0gQ0Q0NyAvKiBcQ0Q0NyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NURdID0gQ0Q0OCAvKiBcQ0Q0OCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUVdID0gQ0Q0OSAvKiBcQ0Q0OSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUZdID0gQ0Q0QSAv KiBcQ0Q0QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjBd ID0gQ0Q0QiAvKiBcQ0Q0QiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NjFdID0gQ0Q0QyAvKiBcQ0Q0QyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NjJdID0gQ0Q0RCAvKiBcQ0Q0RCAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjNdID0gQ0Q0RSAvKiBcQ0Q0RSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjRdID0gQ0Q0RiAvKiBcQ0Q0RiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjVdID0gQ0Q1MCAv KiBcQ0Q1MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjZd ID0gQ0Q1MSAvKiBcQ0Q1MSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NjddID0gQ0Q1MiAvKiBcQ0Q1MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NjhdID0gQ0Q1MyAvKiBcQ0Q1MyAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjldID0gQ0Q1NCAvKiBcQ0Q1NCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkFdID0gQ0Q1NSAvKiBcQ0Q1NSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkJdID0gQ0Q1NiAv KiBcQ0Q1NiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkNd ID0gQ0Q1NyAvKiBcQ0Q1NyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NkRdID0gQ0Q1OCAvKiBcQ0Q1OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NkVdID0gQ0Q1OSAvKiBcQ0Q1OSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkZdID0gQ0Q1QSAvKiBcQ0Q1QSAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzBdID0gQ0Q1QiAvKiBcQ0Q1QiAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzFdID0gQ0Q1QyAv KiBcQ0Q1QyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzJd ID0gQ0Q1RCAvKiBcQ0Q1RCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NzNdID0gQ0Q1RSAvKiBcQ0Q1RSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NzRdID0gQ0Q1RiAvKiBcQ0Q1RiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzVdID0gQ0Q2MCAvKiBcQ0Q2MCAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzZdID0gQ0Q2MSAvKiBcQ0Q2MSAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzddID0gQ0Q2MiAv KiBcQ0Q2MiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4Nzhd ID0gQ0Q2MyAvKiBcQ0Q2MyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NzldID0gQ0Q2NCAvKiBcQ0Q2NCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4N0FdID0gQ0Q2NSAvKiBcQ0Q2NSAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0JdID0gQ0Q2NiAvKiBcQ0Q2NiAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0NdID0gQ0Q2NyAvKiBcQ0Q2NyAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0RdID0gQ0Q2OCAv KiBcQ0Q2OCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0Vd ID0gQ0Q2OSAvKiBcQ0Q2OSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4N0ZdID0gQ0Q2QSAvKiBcQ0Q2QSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4ODBdID0gQ0Q2QiAvKiBcQ0Q2QiAqLwogICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODFdID0gQ0Q2QyAvKiBcQ0Q2QyAqLwogICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODJdID0gQ0Q2RCAvKiBcQ0Q2RCAq LwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODNdID0gQ0Q2RSAv KiBcQ0Q2RSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODRd ID0gQ0Q2RiAvKiBcQ0Q2RiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4ODVdID0gQ0Q3MCAvKiBcQ0Q3MCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4ODZdID0gQ0Q3MSAvKiBcQ0Q3MSAqLwogICAgICAgICAgICAgICAg UmV0dXJuIChFV1JZKSAvKiBcX1NCXy5QQzAwLlJQMTIuUFhTWC5FV1JZICovCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdHRFksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgUGFja2FnZSAo MHg0QSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAg ICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAweDgwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0p CiAgICAgICAgICAgIE1ldGhvZCAoV0dEUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgW09uZV0gPSBTREdOIC8q IFxTREdOICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwMl0g PSBTRDExIC8qIFxTRDExICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgwM10gPSBTRDEyIC8qIFxTRDEyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgwNF0gPSBTRDEzIC8qIFxTRDEzICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwNV0gPSBTRDE0IC8qIFxTRDE0ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwNl0gPSBTRDE1IC8qIFxTRDE1ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwN10gPSBTRDE2IC8q IFxTRDE2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwOF0g PSBTRDE3IC8qIFxTRDE3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgwOV0gPSBTRDE4IC8qIFxTRDE4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgwQV0gPSBTRDE5IC8qIFxTRDE5ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwQl0gPSBTRDIxIC8qIFxTRDIxICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwQ10gPSBTRDIyIC8qIFxTRDIyICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwRF0gPSBTRDIzIC8q IFxTRDIzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwRV0g PSBTRDI0IC8qIFxTRDI0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgwRl0gPSBTRDI1IC8qIFxTRDI1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgxMF0gPSBTRDI2IC8qIFxTRDI2ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxMV0gPSBTRDI3IC8qIFxTRDI3ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxMl0gPSBTRDI4IC8qIFxTRDI4ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxM10gPSBTRDI5IC8q IFxTRDI5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxNF0g PSBTRDMxIC8qIFxTRDMxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgxNV0gPSBTRDMyIC8qIFxTRDMyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgxNl0gPSBTRDMzIC8qIFxTRDMzICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxN10gPSBTRDM0IC8qIFxTRDM0ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxOF0gPSBTRDM1IC8qIFxTRDM1ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxOV0gPSBTRDM2IC8q IFxTRDM2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxQV0g PSBTRDM3IC8qIFxTRDM3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgxQl0gPSBTRDM4IC8qIFxTRDM4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgxQ10gPSBTRDM5IC8qIFxTRDM5ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxRF0gPSBTRDQxIC8qIFxTRDQxICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxRV0gPSBTRDQyIC8qIFxTRDQyICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxRl0gPSBTRDQzIC8q IFxTRDQzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyMF0g PSBTRDQ0IC8qIFxTRDQ0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgyMV0gPSBTRDQ1IC8qIFxTRDQ1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgyMl0gPSBTRDQ2IC8qIFxTRDQ2ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyM10gPSBTRDQ3IC8qIFxTRDQ3ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyNF0gPSBTRDQ4IC8qIFxTRDQ4ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyNV0gPSBTRDQ5IC8q IFxTRDQ5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyNl0g PSBTRDUxIC8qIFxTRDUxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgyN10gPSBTRDUyIC8qIFxTRDUyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgyOF0gPSBTRDUzIC8qIFxTRDUzICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyOV0gPSBTRDU0IC8qIFxTRDU0ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQV0gPSBTRDU1IC8qIFxTRDU1ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQl0gPSBTRDU2IC8q IFxTRDU2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQ10g PSBTRDU3IC8qIFxTRDU3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgyRF0gPSBTRDU4IC8qIFxTRDU4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgyRV0gPSBTRDU5IC8qIFxTRDU5ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyRl0gPSBTRDYxIC8qIFxTRDYxICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMF0gPSBTRDYyIC8qIFxTRDYyICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMV0gPSBTRDYzIC8q IFxTRDYzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMl0g PSBTRDY0IC8qIFxTRDY0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgzM10gPSBTRDY1IC8qIFxTRDY1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgzNF0gPSBTRDY2IC8qIFxTRDY2ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzNV0gPSBTRDY3IC8qIFxTRDY3ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzNl0gPSBTRDY4IC8qIFxTRDY4ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzN10gPSBTRDY5IC8q IFxTRDY5ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzOF0g PSBTRDcxIC8qIFxTRDcxICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgzOV0gPSBTRDcyIC8qIFxTRDcyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgzQV0gPSBTRDczIC8qIFxTRDczICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzQl0gPSBTRDc0IC8qIFxTRDc0ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzQ10gPSBTRDc1IC8qIFxTRDc1ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRF0gPSBTRDc2IC8q IFxTRDc2ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRV0g PSBTRDc3IC8qIFxTRDc3ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgzRl0gPSBTRDc4IC8qIFxTRDc4ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHg0MF0gPSBTRDc5IC8qIFxTRDc5ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0MV0gPSBTRDgxIC8qIFxTRDgxICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0Ml0gPSBTRDgyIC8qIFxTRDgyICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0M10gPSBTRDgzIC8q IFxTRDgzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0NF0g PSBTRDg0IC8qIFxTRDg0ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHg0NV0gPSBTRDg1IC8qIFxTRDg1ICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHg0Nl0gPSBTRDg2IC8qIFxTRDg2ICovCiAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0N10gPSBTRDg3IC8qIFxTRDg3ICovCiAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0OF0gPSBTRDg4IC8qIFxTRDg4ICov CiAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0OV0gPSBTRDg5IC8q IFxTRDg5ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFdHRFkpIC8qIFxfU0JfLlBDMDAu UlAxMi5QWFNYLldHRFkgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoRUNL WSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChFQ0tWLCAw LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChF Q0tZIFtPbmVdKSBbT25lXSA9IENFQ1YgLyogXENFQ1YgKi8KICAgICAgICAgICAgICAgIFJl dHVybiAoRUNLWSkgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1guRUNLWSAqLwogICAgICAgICAg ICB9CgogICAgICAgICAgICBOYW1lIChQUEFZLCBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MTgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgMHgxOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgxOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgMHgyOAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQog ICAgICAgICAgICBNZXRob2QgKFBQQUcsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFtPbmVdID0gV0FHTSAvKiBc V0FHTSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDJdID0g QUdBMSAvKiBcQUdBMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkg WzB4MDNdID0gQUdBMiAvKiBcQUdBMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBB WSBbT25lXSkgWzB4MDRdID0gQUdBMyAvKiBcQUdBMyAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoUFBBWSBbT25lXSkgWzB4MDVdID0gQUdBNCAvKiBcQUdBNCAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDZdID0gQUdBNSAvKiBcQUdBNSAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDddID0gQUdBNiAvKiBc QUdBNiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDhdID0g QUdBNyAvKiBcQUdBNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkg WzB4MDldID0gQUdBOCAvKiBcQUdBOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBB WSBbT25lXSkgWzB4MEFdID0gQUdBOSAvKiBcQUdBOSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoUFBBWSBbT25lXSkgWzB4MEJdID0gQUdBQSAvKiBcQUdBQSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MENdID0gQUdBQiAvKiBcQUdBQiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MERdID0gQUdCMSAvKiBc QUdCMSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MEVdID0g QUdCMiAvKiBcQUdCMiAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkg WzB4MEZdID0gQUdCMyAvKiBcQUdCMyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBB WSBbT25lXSkgWzB4MTBdID0gQUdCNCAvKiBcQUdCNCAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoUFBBWSBbT25lXSkgWzB4MTFdID0gQUdCNSAvKiBcQUdCNSAqLwogICAgICAgICAg ICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTJdID0gQUdCNiAvKiBcQUdCNiAqLwog ICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTNdID0gQUdCNyAvKiBc QUdCNyAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MTRdID0g QUdCOCAvKiBcQUdCOCAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkg WzB4MTVdID0gQUdCOSAvKiBcQUdCOSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBB WSBbT25lXSkgWzB4MTZdID0gQUdCQSAvKiBcQUdCQSAqLwogICAgICAgICAgICAgICAgRGVy ZWZPZiAoUFBBWSBbT25lXSkgWzB4MTddID0gQUdCQiAvKiBcQUdCQiAqLwogICAgICAgICAg ICAgICAgUmV0dXJuIChQUEFZKSAvKiBcX1NCXy5QQzAwLlJQMTIuUFhTWC5QUEFZICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdQRlksIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3 LCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBaZXJv CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAo V1BGQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1BGWSBbT25lXSkgW09uZV0gPSBXUEZBIC8qIFxXUEZBICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbMHgwMl0gPSBXUEZCIC8qIFxXUEZCICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbMHgwM10gPSBcV1BGQwogICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1BGWSBbT25lXSkgWzB4MDRdID0gV1BGRCAvKiBcV1BG RCAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChXUEZZKSAvKiBcX1NCXy5QQzAwLlJQMTIu UFhTWC5XUEZZICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdUU1ksIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDEzKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAg ICAgICAgTWV0aG9kIChXVEFTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbT25lXSA9IFdUU0UgLyogXFdUU0Ug Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDAyXSA9IFdUTEUg LyogXFdUTEUgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDAz XSA9IEJMMDEgLyogXEJMMDEgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09u ZV0pIFsweDA0XSA9IEJMMDIgLyogXEJMMDIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdUU1kgW09uZV0pIFsweDA1XSA9IEJMMDMgLyogXEJMMDMgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA2XSA9IEJMMDQgLyogXEJMMDQgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA3XSA9IEJMMDUgLyogXEJMMDUg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA4XSA9IEJMMDYg LyogXEJMMDYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA5 XSA9IEJMMDcgLyogXEJMMDcgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09u ZV0pIFsweDBBXSA9IEJMMDggLyogXEJMMDggKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdUU1kgW09uZV0pIFsweDBCXSA9IEJMMDkgLyogXEJMMDkgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBDXSA9IEJMMTAgLyogXEJMMTAgKi8KICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBEXSA9IEJMMTEgLyogXEJMMTEg Ki8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBFXSA9IEJMMTIg LyogXEJMMTIgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBG XSA9IEJMMTMgLyogXEJMMTMgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09u ZV0pIFsweDEwXSA9IEJMMTQgLyogXEJMMTQgKi8KICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdUU1kgW09uZV0pIFsweDExXSA9IEJMMTUgLyogXEJMMTUgKi8KICAgICAgICAgICAgICAg IERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDEyXSA9IEJMMTYgLyogXEJMMTYgKi8KICAgICAg ICAgICAgICAgIFJldHVybiAoV1RTWSkgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1guV1RTWSAq LwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChXQUlZLCBQYWNrYWdlICgweDAy KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg MHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKFdBSVMsIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBSVkgW09uZV0pIFtPbmVd ID0gV0xCSSAvKiBcV0xCSSAqLwogICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FJWSBbT25l XSkgWzB4MDJdID0gV0hCSSAvKiBcV0hCSSAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChX QUlZKSAvKiBcX1NCXy5QQzAwLlJQMTIuUFhTWC5XQUlZICovCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE5hbWUgKFNBRFgsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAg ICAgICAgICAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IDB4MTIsIAogICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChTQURTLCAwLCBTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXJlZk9mIChTQURYIFtPbmVd KSBbT25lXSA9IEFURFYgLyogXEFURFYgKi8KICAgICAgICAgICAgICAgIERlcmVmT2YgKFNB RFggWzB4MDJdKSBbT25lXSA9IEFURFYgLyogXEFURFYgKi8KICAgICAgICAgICAgICAgIFJl dHVybiAoU0FEWCkgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1guU0FEWCAqLwogICAgICAgICAg ICB9CgogICAgICAgICAgICBOYW1lIChHUENYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChH UEMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVy biAoR1BDWCkgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1guR1BDWCAqLwogICAgICAgICAgICB9 CgogICAgICAgICAgICBOYW1lIChHTEFYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw eDEyLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoR0xBSSwgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJBUjogR0xB SSBtZXRob2QuIENHTFMgPSAiLCBUb0hleFN0cmluZyAoQ0dMUykpKQogICAgICAgICAgICAg ICAgRGVyZWZPZiAoR0xBWCBbT25lXSkgW09uZV0gPSBDR0xTIC8qIFxDR0xTICovCiAgICAg ICAgICAgICAgICBEZXJlZk9mIChHTEFYIFsweDAyXSkgW09uZV0gPSBDR0xTIC8qIFxDR0xT ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEdMQVgpIC8qIFxfU0JfLlBDMDAuUlAxMi5Q WFNYLkdMQVggKi8KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKCgoV1dF TiAhPSBaZXJvKSAmJiAoV1dSUCA9PSBTTE9UKSkpCiAgICAgICAgewogICAgICAgICAgICBN ZXRob2QgKEZIUkYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIElmICgoR0dPViAoUFJTVCkgIT0gV1BSUCkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgREwyMyAoKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJX V0FOIERMMjMoKSBEb25lIikKICAgICAgICAgICAgICAgICAgICBTR09WIChQUlNULCBXUFJQ KQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBFUlNUOjAgRG9uZSIpCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgQURCRyAoIkFzc3VtZSBXV0FOIERMMjMoKSBpcyBhbHJlYWR5 IGRvbmUiKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFNsZWVwIChUUjJC KQogICAgICAgICAgICAgICAgU0dPViAoV0JSUywgUEJSUykKICAgICAgICAgICAgICAgIEFE QkcgKCJXV0FOIFJTVDowIERvbmUiKQogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFpl cm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNsZWVwIChUQlRH KQogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRCVEcgIiwg VG9EZWNpbWFsU3RyaW5nIChUQlRHKSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICBFbHNlSWYgKChBcmcwID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgU1BDTyAoV0NMSywgWmVybykKICAgICAgICAgICAgICAgICAgICBBREJH ICgiV1dBTiBTQ0xLOjAgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFRCMkYp CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTTFAgVEIyRiAiLCBU b0RlY2ltYWxTdHJpbmcgKFRCMkYpKSkKICAgICAgICAgICAgICAgICAgICBTR09WIChXRkNQ LCAoflBGQ1AgJiBPbmUpKQogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBXUjow IERvbmUiKQogICAgICAgICAgICAgICAgICAgIFNsZWVwIChURkRJKQogICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRGREkgIiwgVG9EZWNpbWFsU3RyaW5n IChURkRJKSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIlVuc3VwcG9ydGVkIEFy ZzAgaXMgZGV0ZWN0ZWQuIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChTSFJGLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBQU0QwIChTTE9UKQogICAgICAgICAgICAgICAgQURCRyAoIldX QU4gTVBIWVBHOjAgRG9uZSIpCiAgICAgICAgICAgICAgICBTUENPIChXQ0xLLCBPbmUpCiAg ICAgICAgICAgICAgICBBREJHICgiV1dBTiBTQ0xLOjEgRG9uZSIpCiAgICAgICAgICAgICAg ICBTR09WIChXRkNQLCBQRkNQKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFdSOjEg RG9uZSIpCiAgICAgICAgICAgICAgICBTbGVlcCAoVE4yQikKICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlICgiU0xQIFROMkIgIiwgVG9EZWNpbWFsU3RyaW5nIChUTjJCKSkp CiAgICAgICAgICAgICAgICBTR09WIChXQlJTLCAoflBCUlMgJiBPbmUpKQogICAgICAgICAg ICAgICAgQURCRyAoIldXQU4gUlNUOjEgRG9uZSIpCiAgICAgICAgICAgICAgICBTbGVlcCAo VEIyUikKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiU0xQIFRCMlIgIiwg VG9EZWNpbWFsU3RyaW5nIChUQjJSKSkpCiAgICAgICAgICAgICAgICBTR09WIChQUlNULCAo fldQUlAgJiBPbmUpKQogICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUEVSU1Q6MCBEb25l IikKICAgICAgICAgICAgICAgIEwyM0QgKCkKICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FO IEwyM0QoKSBEb25lIikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChET1NW LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2Nh bDAgPSBaZXJvCiAgICAgICAgICAgICAgICBXaGlsZSAoKChTVklEICE9IFdTSUQpICYmIChM b2NhbDAgPCBXU1RPKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg TG9jYWwwKysKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25lKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiREVUIFRpbWUgIiwg VG9EZWNpbWFsU3RyaW5nIChMb2NhbDApKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChfUlNULCAwLCBTZXJpYWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEFEQkcgKCJfUlNUIFdXQU4iKQogICAgICAg ICAgICAgICAgSWYgKChXV0VOID09IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IEFjcXVpcmUgKFdXTVQsIDB4MDNFOCkKICAgICAgICAg ICAgICAgICAgICBBREJHICgiV1dBTiBGTERSIE11dGV4OiBBY3F1aXJlZCBUcnkgRG9uZSIp CiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBG TERSIikKICAgICAgICAgICAgICAgICAgICAgICAgRkhSRiAoWmVybykKICAgICAgICAgICAg ICAgICAgICAgICAgU0hSRiAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRW5k IFdXQU4gRkxEUiIpCiAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFdXTVQpCiAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIEZMRFIgTXV0ZXg6UmVsZWFzZSBE b25lIikKICAgICAgICAgICAgICAgICAgICAgICAgRE9TViAoKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTR09WIChXQlJTLCBQQlJTKQogICAgICAg ICAgICAgICAgICAgIFNsZWVwICgweEM4KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAo UFhTWCwgT25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgICAgICBTR09WIChQ UlNULCAofldQUlAgJiBPbmUpKQogICAgICAgICAgICAgICAgICAgIFNHT1YgKFdCUlMsICh+ UEJSUyAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4QzgpCiAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgo TEFTWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoTG9jYWwwID4gMHgxNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJGTERSIFRPIikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDEwKQogICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDArKwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJSVlAgRGVsYXkgVGltZSAiLCBUb0RlY2ltYWxTdHJpbmcgKExvY2FsMCkpKQogICAgICAg ICAgICAgICAgICAgIE5vdGlmeSAoUFhTWCwgT25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgUG93ZXJSZXNvdXJjZSAo TVJTVCwgMHgwNSwgMHgwMDAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRo b2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQUiBfU1RBIikKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9PTiwgMCwgU2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9u CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gUFIg X09OIikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9PRkYs IDAsIFNlcmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQUiBfT0ZGIikKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9SU1QsIDAsIFNlcmlhbGl6ZWQpICAv LyBfUlNUOiBEZXZpY2UgUmVzZXQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBBY3F1aXJlIChXV01ULCAweDAzRTgpCiAgICAgICAgICAgICAgICAg ICAgQURCRyAoIldXQU4gUExEUiBNdXRleDogQWNxdWlyZWQgVHJ5IERvbmUiKQogICAgICAg ICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlN0YXJ0IFdXQU4gUExEUiIpCiAg ICAgICAgICAgICAgICAgICAgICAgIEZIUkYgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgU0hSRiAoKQogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRW5kIFdXQU4gUFIg X1JTVCIpCiAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFdXTVQpCiAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFBMRFIgTXV0ZXg6IFJlbGVhc2UgRG9uZSIp CiAgICAgICAgICAgICAgICAgICAgICAgIERPU1YgKCkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElm ICgoV0lTVCAoKSB8fCAoKFdXRU4gIT0gWmVybykgJiYgKFdXUlAgPT0gU0xPVCkpKSkKICAg ICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoX1BSUiwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9QUlI6IFBvd2VyIFJlc291cmNlIGZvciBSZXNldAogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChXUlNUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgV1JTVAogICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKChXV0VOICE9IFplcm8pICYmIChXV1JQID09 IFNMT1QpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChNUlNUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTVJTVAogICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgV1JTVAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTmFtZSAoRkRFTCwgWmVybykKICAgICAgICAgICAgTmFtZSAoUERF TCwgWmVybykKICAgICAgICAgICAgTmFtZSAoVkRFTCwgWmVybykKICAgICAgICAgICAgTWV0 aG9kIChJRlVOLCA0LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoInZQcm86ICIsIENWUFIpKQogICAgICAgICAgICAgICAgICAg IExvY2FsMCA9IChDVlBSIDw8IFplcm8pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChM b2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdv cmRGaWVsZCAoQXJnMywgWmVybywgQ01EVCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVX b3JkRmllbGQgKEFyZzMsIDB4MDIsIENNRFApCiAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJDbWRUeXBlID0gIiwgVG9IZXhTdHJpbmcgKENNRFQpKSkKICAgICAg ICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkNtZFBheWxvYWQgPSAiLCBUb0hl eFN0cmluZyAoQ01EUCkpKQogICAgICAgICAgICAgICAgICAgIElmICgoQ01EVCA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFdJ U1QgKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUlNUWSkgLyogXF9TQl8uUEMwMC5SUDEyLlBYU1guUlNUWSAqLwog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ ZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJHZXQgX1BSUiBNb2RlID0gIiwgXl5eQ05WVy5SU1RUKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoXl5eQ05WVy5SU1RUKSAvKiBcX1NCXy5QQzAwLkNOVlcuUlNU VCAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKENNRFQgPT0gMHgwMikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoV0lT VCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwwID0gKENNRFAgJiBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSU1RZID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAo Q01EUCAmIDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPj49IE9u ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRkxSQyA9IExvY2FsMQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwyID0gKENNRFAgJiAweDA0KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwyID4+PSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCT0ZDID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZUlmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5DTlZXLlJTVFQp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIlNldCBfUFJSIE1vZGUgPSAiLCBUb0hleFN0cmluZyAo Q01EUCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eQ05WVy5SU1RUID0gQ01E UCAvKiBcX1NCXy5QQzAwLlJQMTIuUFhTWC5JRlVOLkNNRFAgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChDTURUID09IDB4 MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoXF9TQi5QQzAwLkNOVlcuUFJSUykpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi R2V0IExhc3RfUFJSIHN0YXR1cyBQUlJTID0gIiwgVG9IZXhTdHJpbmcgKF5eXkNOVlcuUFJS UykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICheXl5DTlZXLlBSUlMp IC8qIFxfU0JfLlBDMDAuQ05WVy5QUlJTICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmIChXSVNUICgpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIkdldCBMYXN0X1BSUiBzdGF0dXMgRFBSUyA9ICIsIFRvSGV4U3RyaW5nIChEUFJT KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERQUlMpIC8qIFxfU0Jf LlBDMDAuUlAxMi5QWFNYLkRQUlMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAzKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKENSRkkgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSAweDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIFplcm8sIFBSVFQpCiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmczLCAweDAyLCBQUlREKQogICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVGltZXJUeXBlID0gIiwgVG9I ZXhTdHJpbmcgKFBSVFQpKSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlRpbWVyRHVyYXRpb24gKG1zKSA9ICIsIFRvRGVjaW1hbFN0cmluZyAoUFJURCkpKQog ICAgICAgICAgICAgICAgICAgIElmICgoUFJUVCA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRkRFTCA9IFBSVEQgLyogXF9TQl8uUEMw MC5SUDEyLlBYU1guSUZVTi5QUlREICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2VJZiAoKFBSVFQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBQREVMID0gUFJURCAvKiBcX1NCXy5QQzAw LlJQMTIuUFhTWC5JRlVOLlBSVEQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgRWxzZUlmICgoUFJUVCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFZERUwgPSBQUlREIC8qIFxfU0JfLlBDMDAu UlAxMi5QWFNYLklGVU4uUFJURCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiVGltZXJEdXJhdGlvbiBub3Qgc2V0IikKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKElEU00sIDEsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQg KCI3MjY2MTcyYy0yMjBiLTRiMjktODE0Zi03NWU0ZGQyNmI1ZmQiKSAvKiBVbmtub3duIFVV SUQgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChFRlVOLCA0LCBTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8p KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEZGLCAweDFGICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEFDU0QgLyogXEFDU0Qg Ki8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gSTVCUyAvKiBcSTVCUyAqLwogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBMb2NhbDAgPSBVSEJTIC8qIFxVSEJTICovCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIExvY2FsMCA9IEFYTVUgLyogXEFYTVUgKi8KICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPDw9IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMCB8PSBBWFNVIC8q IFxBWFNVICovCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQVhNUiAvKiBcQVhNUiAq LwogICAgICAgICAgICAgICAgICAgIExvY2FsMSA8PD0gT25lCiAgICAgICAgICAgICAgICAg ICAgTG9jYWwxIHw9IEFYU1IgLyogXEFYU1IgKi8KICAgICAgICAgICAgICAgICAgICBMb2Nh bDEgPDw9IDB4MDIKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgfD0gTG9jYWwxCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAyKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MDAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDUp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0ZVQykg LyogXFdGVUMgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFy ZzIgPT0gMHgwNykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChVTkk0KSAvKiBcVU5JNCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSAweDA4KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFdGSUMpIC8qIFxXRklDICovCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDkpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0ZCUykgLyogXFdGQlMgKi8KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwQSkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXRURUKSAvKiBcV0VEVCAq LwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBC KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKENJUk0gPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBDKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFdGN0MpIC8qIFxXRjdDICovCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKEVEU00sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJmMjEyMDJiZi04Zjc4LTRk YzYtYTViMy0xZjczOGUyODVhZGUiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNl LVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoV0lT VCAoKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoRURTTSAo QXJnMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEVGVU4gKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKElEU00gKEFyZzApKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChJRlVOIChBcmcw LCBBcmcxLCBBcmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKCgoV1dFTiAhPSBaZXJvKSAmJiAoV1dSUCA9 PSBTTE9UKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcwID09IFRvVVVJRCAoImJhZDAxYjc1LTIyYTgtNGY0OC04NzkyLWJkZGU5NDY3NzQ3ZCIp IC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25l KSl7fQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpe30KICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFdSVE8gPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNNIEQwL0wxLjIiKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZUlmICgoV1JUTyA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dlciBfRFNNIEQz L0wxLjIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZUlmICgoV1JUTyA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dB TiBQb3dlciBfRFNNIEQzL0wyIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBQb3dl ciBfRFNNIERpc2FibGVkIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdSVE8pIC8qIFxXUlRPICovCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQikKICAgIHsKICAgICAg ICBOYW1lIChQREFULCBaZXJvKQogICAgICAgIE5hbWUgKERTU0ksIFplcm8pCiAgICAgICAg RGV2aWNlIChXRkRFKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIlBOUDBD MTQiIC8qIFdpbmRvd3MgTWFuYWdlbWVudCBJbnN0cnVtZW50YXRpb24gRGV2aWNlICovKSAg Ly8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgIkRTYXJEZXYi KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9XREcsIEJ1ZmZlciAo MHgzQykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHhFRiwg MHg5RCwgMHhDNCwgMHgyQiwgMHgxNSwgMHg3QiwgMHgwNSwgMHg0RiwgIC8vIC4uLisuey5P CiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDhCLCAweEI3LCAweEVFLCAweDM3LCAw eEI5LCAweDU0LCAweDdDLCAweDBCLCAgLy8gLi4uNy5UfC4KICAgICAgICAgICAgICAgIC8q IDAwMTAgKi8gIDB4NDQsIDB4NDUsIDB4MDEsIDB4MDIsIDB4M0UsIDB4QTMsIDB4RkUsIDB4 QTYsICAvLyBERS4uPi4uLgogICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHhCRiwgMHhE QSwgMHhGNSwgMHg0NiwgMHhCRiwgMHhDOCwgMHg0NiwgMHgwRCwgIC8vIC4uLkYuLkYuCiAg ICAgICAgICAgICAgICAvKiAwMDIwICovICAweDk2LCAweDFCLCAweEVDLCAweDlGLCAweEQw LCAweDAwLCAweDAxLCAweDA4LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAw MjggKi8gIDB4MjEsIDB4MTIsIDB4OTAsIDB4MDUsIDB4NjYsIDB4RDUsIDB4RDEsIDB4MTEs ICAvLyAhLi4uZi4uLgogICAgICAgICAgICAgICAgLyogMDAzMCAqLyAgMHhCMiwgMHhGMCwg MHgwMCwgMHhBMCwgMHhDOSwgMHgwNiwgMHgyOSwgMHgxMCwgIC8vIC4uLi4uLikuCiAgICAg ICAgICAgICAgICAvKiAwMDM4ICovICAweDQzLCAweDQzLCAweDAxLCAweDAwICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gQ0MuLgogICAgICAgICAgICB9KQogICAgICAgICAgICBN ZXRob2QgKFdNREUsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmICgoQXJnMSA9PSAweDAyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKERTU0kgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBQREFUID0gMHgwMDAxMDAwMQogICAgICAgICAgICAgICAg ICAgICAgICBEU1NJID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBJZiAoKEFyZzEgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQREFUKSAvKiBcX1NCXy5QREFUICovCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9XRUQsIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfV3h4OiBXYWtlIEV2 ZW50LCB4eD0weDAwLTB4RkYKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChB cmcwID09IDB4RDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUERBVCkgLyogXF9TQl8uUERBVCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFt ZSAoV1FDQywgQnVmZmVyICgweDA0ODIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IC8qIDAwMDAgKi8gIDB4NDYsIDB4NEYsIDB4NEQsIDB4NDIsIDB4MDEsIDB4MDAsIDB4MDAs IDB4MDAsICAvLyBGT01CLi4uLgogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg3Miwg MHgwNCwgMHgwMCwgMHgwMCwgMHhGNCwgMHgwRiwgMHgwMCwgMHgwMCwgIC8vIHIuLi4uLi4u CiAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDQ0LCAweDUzLCAweDAwLCAweDAxLCAw eDFBLCAweDdELCAweERBLCAweDU0LCAgLy8gRFMuLi59LlQKICAgICAgICAgICAgICAgIC8q IDAwMTggKi8gIDB4MTgsIDB4QzIsIDB4ODcsIDB4MDAsIDB4MDEsIDB4MDYsIDB4MTgsIDB4 NDIsICAvLyAuLi4uLi4uQgogICAgICAgICAgICAgICAgLyogMDAyMCAqLyAgMHgxMCwgMHgw NSwgMHgxMCwgMHg4QSwgMHhBNCwgMHg4MiwgMHg0MiwgMHgwNCwgIC8vIC4uLi4uLkIuCiAg ICAgICAgICAgICAgICAvKiAwMDI4ICovICAweDhBLCAweDQzLCAweDI0LCAweEMxLCAweDBF LCAweDYwLCAweDMwLCAweDFBLCAgLy8gLkMkLi5gMC4KICAgICAgICAgICAgICAgIC8qIDAw MzAgKi8gIDB4NDAsIDB4MjQsIDB4MDcsIDB4NDIsIDB4MkUsIDB4OTgsIDB4OTgsIDB4MDAs ICAvLyBAJC5CLi4uLgogICAgICAgICAgICAgICAgLyogMDAzOCAqLyAgMHgxMSwgMHgxMCwg MHhGMiwgMHgyQSwgMHhDMCwgMHhBNiwgMHgwMCwgMHg5MywgIC8vIC4uLiouLi4uCiAgICAg ICAgICAgICAgICAvKiAwMDQwICovICAweDIwLCAweEVBLCAweERGLCAweDFGLCAweEEyLCAw eDI0LCAweDM4LCAweDk0LCAgLy8gIC4uLi4kOC4KICAgICAgICAgICAgICAgIC8qIDAwNDgg Ki8gIDB4MTAsIDB4MDgsIDB4NDksIDB4MTQsIDB4NjAsIDB4NUUsIDB4ODAsIDB4NkUsICAv LyAuLkkuYF4ubgogICAgICAgICAgICAgICAgLyogMDA1MCAqLyAgMHgwMSwgMHg4NiwgMHgw NSwgMHhEOCwgMHgxNiwgMHg2MCwgMHg1QSwgMHg4MCwgIC8vIC4uLi4uYFouCiAgICAgICAg ICAgICAgICAvKiAwMDU4ICovICAweDYzLCAweDQ4LCAweDJBLCAweDBELCAweDlDLCAweDEy LCAweDU4LCAweDBBLCAgLy8gY0gqLi4uWC4KICAgICAgICAgICAgICAgIC8qIDAwNjAgKi8g IDB4ODQsIDB4ODQsIDB4MEEsIDB4NTAsIDB4MkUsIDB4QzAsIDB4QjcsIDB4MDAsICAvLyAu Li5QLi4uLgogICAgICAgICAgICAgICAgLyogMDA2OCAqLyAgMHhFRCwgMHg4OCwgMHg5Miwg MHgyQywgMHhDMCwgMHgzMiwgMHg4QywgMHgwOCwgIC8vIC4uLiwuMi4uCiAgICAgICAgICAg ICAgICAvKiAwMDcwICovICAweDNDLCAweDBBLCAweDg2LCAweEM2LCAweEExLCAweEIxLCAw eEMzLCAweEIwLCAgLy8gPC4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwNzggKi8gIDB4 NEMsIDB4MzAsIDB4MEQsIDB4RTIsIDB4MzAsIDB4Q0EsIDB4NDYsIDB4MTYsICAvLyBMMC4u MC5GLgogICAgICAgICAgICAgICAgLyogMDA4MCAqLyAgMHg4MSwgMHg3MSwgMHgzQiwgMHgx NSwgMHgyMCwgMHg1NywgMHg4MCwgMHgzMCwgIC8vIC5xOy4gVy4wCiAgICAgICAgICAgICAg ICAvKiAwMDg4ICovICAweDAxLCAweEUyLCAweDUxLCAweDg1LCAweEQxLCAweDFDLCAweDE0 LCAweDA5LCAgLy8gLi5RLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAwOTAgKi8gIDB4MDAs IDB4OEQsIDB4MTIsIDB4MzMsIDB4MjYsIDB4MDIsIDB4REIsIDB4MzksICAvLyAuLi4zJi4u OQogICAgICAgICAgICAgICAgLyogMDA5OCAqLyAgMHhCNiwgMHg0NiwgMHg3MSwgMHgyQSwg MHg4NSwgMHgwQiwgMHg5MCwgMHg4RSwgIC8vIC5GcSouLi4uCiAgICAgICAgICAgICAgICAv KiAwMEEwICovICAweEExLCAweDExLCAweDFDLCAweDU3LCAweDgyLCAweEU4LCAweEMxLCAw eDgyLCAgLy8gLi4uVy4uLi4KICAgICAgICAgICAgICAgIC8qIDAwQTggKi8gIDB4NDQsIDB4 OEIsIDB4MTMsIDB4QUQsIDB4MjAsIDB4NEMsIDB4Q0QsIDB4MjIsICAvLyBELi4uIEwuIgog ICAgICAgICAgICAgICAgLyogMDBCMCAqLyAgMHg1QywgMHg4OCwgMHgyOCwgMHgzMSwgMHg4 QSwgMHg4NiwgMHgyMSwgMHgyOCwgIC8vIFwuKDEuLiEoCiAgICAgICAgICAgICAgICAvKiAw MEI4ICovICAweDE1LCAweDhFLCAweDQ5LCAweDNFLCAweDQxLCAweDg1LCAweDEyLCAweEQ2 LCAgLy8gLi5JPkEuLi4KICAgICAgICAgICAgICAgIC8qIDAwQzAgKi8gIDB4NDgsIDB4MDYs IDB4OEIsIDB4N0MsIDB4NkUsIDB4NzEsIDB4M0QsIDB4MDcsICAvLyBILi58bnE9LgogICAg ICAgICAgICAgICAgLyogMDBDOCAqLyAgMHg0RiwgMHhFQywgMHhGMCwgMHg4QywgMHg1Mywg MHgyOSwgMHg4OCwgMHhEMCwgIC8vIE8uLi5TKS4uCiAgICAgICAgICAgICAgICAvKiAwMEQw ICovICAweDgyLCAweDk5LCAweEMwLCAweEUzLCAweDNBLCAweDIwLCAweDhDLCAweDBDLCAg Ly8gLi4uLjogLi4KICAgICAgICAgICAgICAgIC8qIDAwRDggKi8gIDB4MDgsIDB4NzksIDB4 MTYsIDB4NjAsIDB4N0QsIDB4QTQsIDB4ODQsIDB4QzAsICAvLyAueS5gfS4uLgogICAgICAg ICAgICAgICAgLyogMDBFMCAqLyAgMHhFRSwgMHgwNSwgMHgyOCwgMHg5QiwgMHg4NSwgMHgx QywgMHhDRSwgMHg0RCwgIC8vIC4uKC4uLi5NCiAgICAgICAgICAgICAgICAvKiAwMEU4ICov ICAweDYzLCAweDNCLCAweDgyLCAweDE2LCAweDA1LCAweDY4LCAweDE0LCAweDYwLCAgLy8g YzsuLi5oLmAKICAgICAgICAgICAgICAgIC8qIDAwRjAgKi8gIDB4NEIsIDB4ODAsIDB4Mzcs IDB4MjQsIDB4MTksIDB4MTMsIDB4NjAsIDB4MEQsICAvLyBLLjckLi5gLgogICAgICAgICAg ICAgICAgLyogMDBGOCAqLyAgMHg0NSwgMHg1OCwgMHg4MSwgMHhDRSwgMHgzMCwgMHg4QSwg MHhDNSwgMHg0MSwgIC8vIEVYLi4wLi5BCiAgICAgICAgICAgICAgICAvKiAwMTAwICovICAw eDA5LCAweDIxLCAweDVBLCAweDk0LCAweDkwLCAweDExLCAweDNBLCAweDgzLCAgLy8gLiFa Li4uOi4KICAgICAgICAgICAgICAgIC8qIDAxMDggKi8gIDB4MjQsIDB4QzgsIDB4RDEsIDB4 MjIsIDB4NDYsIDB4ODksIDB4MUYsIDB4MzIsICAvLyAkLi4iRi4uMgogICAgICAgICAgICAg ICAgLyogMDExMCAqLyAgMHg0RSwgMHhGQiwgMHg4MywgMHgyMCwgMHgxMSwgMHhDRiwgMHgw NSwgMHg5MiwgIC8vIE4uLiAuLi4uCiAgICAgICAgICAgICAgICAvKiAwMTE4ICovICAweDcw LCAweDNDLCAweEYwLCAweDY4LCAweDUwLCAweDY3LCAweDgxLCAweDA0LCAgLy8gcDwuaFBn Li4KICAgICAgICAgICAgICAgIC8qIDAxMjAgKi8gIDB4Q0YsIDB4MDYsIDB4MUUsIDB4REYs IDB4NzksIDB4N0EsIDB4OTQsIDB4MDYsICAvLyAuLi4ueXouLgogICAgICAgICAgICAgICAg LyogMDEyOCAqLyAgMHgzOSwgMHhERiwgMHgxMywgMHhBQiwgMHhGMywgMHg1MCwgMHg0MCwg MHg4NiwgIC8vIDkuLi4uUEAuCiAgICAgICAgICAgICAgICAvKiAwMTMwICovICAweENGLCAw eEIwLCAweDEyLCAweEZDLCAweEZGLCAweEZGLCAweDEzLCAweDdDLCAgLy8gLi4uLi4uLnwK ICAgICAgICAgICAgICAgIC8qIDAxMzggKi8gIDB4NEEsIDB4QzAsIDB4QkIsIDB4MDYsIDB4 RDQsIDB4RjUsIDB4RTAsIDB4RTEsICAvLyBKLi4uLi4uLgogICAgICAgICAgICAgICAgLyog MDE0MCAqLyAgMHg4MCwgMHhDRCwgMHhEMSwgMHg3MCwgMHg3QywgMHg4OCwgMHg5RSwgMHhF QSwgIC8vIC4uLnB8Li4uCiAgICAgICAgICAgICAgICAvKiAwMTQ4ICovICAweDk5LCAweEIy LCAweDkxLCAweDMwLCAweDg4LCAweDMzLCAweDdBLCAweDJFLCAgLy8gLi4uMC4zei4KICAg ICAgICAgICAgICAgIC8qIDAxNTAgKi8gIDB4QzAsIDB4MEUsIDB4RUIsIDB4NjQsIDB4MUUs IDB4MEEsIDB4NEEsIDB4MTUsICAvLyAuLi5kLi5KLgogICAgICAgICAgICAgICAgLyogMDE1 OCAqLyAgMHg2MCwgMHhGNiwgMHg4MCwgMHhBMCwgMHhEMSwgMHgyNSwgMHgzOCwgMHgxRSwg IC8vIGAuLi4uJTguCiAgICAgICAgICAgICAgICAvKiAwMTYwICovICAweENGLCAweERDLCAw eEYzLCAweDM5LCAweEUxLCAweDA0LCAweDk2LCAweDNGLCAgLy8gLi4uOS4uLj8KICAgICAg ICAgICAgICAgIC8qIDAxNjggKi8gIDB4MDgsIDB4RDQsIDB4QzgsIDB4MEMsIDB4NkQsIDB4 ODMsIDB4RDMsIDB4RDIsICAvLyAuLi4ubS4uLgogICAgICAgICAgICAgICAgLyogMDE3MCAq LyAgMHhBNSwgMHhDMCwgMHg1NywgMHgwMCwgMHgxMywgMHg1OCwgMHhFQywgMHg5MSwgIC8v IC4uVy4uWC4uCiAgICAgICAgICAgICAgICAvKiAwMTc4ICovICAweDgyLCAweDhFLCAweDA3 LCAweEZDLCAweDhBLCAweDZGLCAweDA5LCAweDQyLCAgLy8gLi4uLi5vLkIKICAgICAgICAg ICAgICAgIC8qIDAxODAgKi8gIDB4NzgsIDB4NzMsIDB4RjAsIDB4N0MsIDB4NEQsIDB4MTAs IDB4MkQsIDB4MzAsICAvLyB4cy58TS4tMAogICAgICAgICAgICAgICAgLyogMDE4OCAqLyAg MHg3NiwgMHg0MCwgMHhGNiwgMHgyQiwgMHgwMCwgMHgyMSwgMHhGOCwgMHg0QiwgIC8vIHZA LisuIS5LCiAgICAgICAgICAgICAgICAvKiAwMTkwICovICAweEM0LCAweDExLCAweEJELCAw eDI3LCAweDQ0LCAweDc4LCAweDlFLCAweEYwLCAgLy8gLi4uJ0R4Li4KICAgICAgICAgICAg ICAgIC8qIDAxOTggKi8gIDB4OTAsIDB4MUUsIDB4MDgsIDB4NDIsIDB4QzQsIDB4RUEsIDB4 RjEsIDB4REEsICAvLyAuLi5CLi4uLgogICAgICAgICAgICAgICAgLyogMDFBMCAqLyAgMHg0 MCwgMHhDRSwgMHgwOSwgMHhCRSwgMHg1RiwgMHhGOCwgMHhFOCwgMHg4MCwgIC8vIEAuLi5f Li4uCiAgICAgICAgICAgICAgICAvKiAwMUE4ICovICAweEJCLCAweDM5LCAweDcwLCAweDAy LCAweDhCLCAweDNDLCAweDRBLCAweEEwLCAgLy8gLjlwLi48Si4KICAgICAgICAgICAgICAg IC8qIDAxQjAgKi8gIDB4NDcsIDB4QzEsIDB4OEYsIDB4MDIsIDB4MjcsIDB4NzEsIDB4NEMs IDB4NjcsICAvLyBHLi4uJ3FMZwogICAgICAgICAgICAgICAgLyogMDFCOCAqLyAgMHgxNCwg MHhGQywgMHg5OCwgMHhBMiwgMHg5QywgMHhDOCwgMHg0MSwgMHhGOSwgIC8vIC4uLi4uLkEu CiAgICAgICAgICAgICAgICAvKiAwMUMwICovICAweDkwLCAweDYxLCAweDg0LCAweEU4LCAw eENGLCAweDE2LCAweENGLCAweDFBLCAgLy8gLmEuLi4uLi4KICAgICAgICAgICAgICAgIC8q IDAxQzggKi8gIDB4RDYsIDB4M0MsIDB4MDEsIDB4OUQsIDB4MUEsIDB4Q0UsIDB4RUIsIDB4 OEQsICAvLyAuPC4uLi4uLgogICAgICAgICAgICAgICAgLyogMDFEMCAqLyAgMHhDMCwgMHg2 MywgMHg5NCwgMHg4NywgMHgzMywgMHgwMSwgMHgxMywgMHhCRSwgIC8vIC5jLi4zLi4uCiAg ICAgICAgICAgICAgICAvKiAwMUQ4ICovICAweDVDLCAweEQ5LCAweEY4LCAweDQwLCAweEIw LCAweDgxLCAweDkyLCAweDI4LCAgLy8gXC4uQC4uLigKICAgICAgICAgICAgICAgIC8qIDAx RTAgKi8gIDB4RTcsIDB4MDQsIDB4OEQsIDB4MkEsIDB4RTYsIDB4MDksIDB4N0EsIDB4NTIs ICAvLyAuLi4qLi56UgogICAgICAgICAgICAgICAgLyogMDFFOCAqLyAgMHhDNiwgMHgzRCwg MHgyNSwgMHgxQywgMHgxMiwgMHhEMywgMHgzQSwgMHgzMywgIC8vIC49JS4uLjozCiAgICAg ICAgICAgICAgICAvKiAwMUYwICovICAweDgyLCAweEY0LCAweDk0LCAweEMxLCAweDI1LCAw eDQzLCAweEVCLCAweDkwLCAgLy8gLi4uLiVDLi4KICAgICAgICAgICAgICAgIC8qIDAxRjgg Ki8gIDB4QzIsIDB4QzUsIDB4NTIsIDB4NDgsIDB4MkEsIDB4ODQsIDB4ODYsIDB4RTUsICAv LyAuLlJIKi4uLgogICAgICAgICAgICAgICAgLyogMDIwMCAqLyAgMHg1MSwgMHg1OCwgMHgx QywgMHgxQywgMHgwNSwgMHhGMSwgMHg0OSwgMHhDMCwgIC8vIFFYLi4uLkkuCiAgICAgICAg ICAgICAgICAvKiAwMjA4ICovICAweEZGLCAweEZGLCAweEUwLCAweDEwLCAweDcyLCAweDcy LCAweDdBLCAweDQwLCAgLy8gLi4uLnJyekAKICAgICAgICAgICAgICAgIC8qIDAyMTAgKi8g IDB4NEYsIDB4MDQsIDB4MzcsIDB4MEUsIDB4N0MsIDB4NDAsIDB4MDgsIDB4OUQsICAvLyBP LjcufEAuLgogICAgICAgICAgICAgICAgLyogMDIxOCAqLyAgMHgyNSwgMHg3QywgMHg3QSwg MHhDMCwgMHhFMywgMHgxRCwgMHhFMywgMHgyOSwgIC8vICV8ei4uLi4pCiAgICAgICAgICAg ICAgICAvKiAwMjIwICovICAweDdBLCAweDI2LCAweDlFLCAweEVDLCAweEYzLCAweDA4LCAw eDU4LCAweEU2LCAgLy8geiYuLi4uWC4KICAgICAgICAgICAgICAgIC8qIDAyMjggKi8gIDB4 QzcsIDB4OEUsIDB4MjEsIDB4RUMsIDB4NDQsIDB4ODIsIDB4OTksIDB4MEMsICAvLyAuLiEu RC4uLgogICAgICAgICAgICAgICAgLyogMDIzMCAqLyAgMHg3RSwgMHgyQywgMHhFQywgMHg0 NywgMHg0MywgMHg4NywgMHg0MSwgMHg2RSwgIC8vIH4sLkdDLkFuCiAgICAgICAgICAgICAg ICAvKiAwMjM4ICovICAweDBBLCAweDI3LCAweDkxLCAweDgwLCAweDlGLCAweDE4LCAweEUw LCAweERGLCAgLy8gLicuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAyNDAgKi8gIDB4NDYs IDB4M0MsIDB4ODMsIDB4MzMsIDB4NzksIDB4RkYsIDB4NzgsIDB4MUEsICAvLyBGPC4zeS54 LgogICAgICAgICAgICAgICAgLyogMDI0OCAqLyAgMHg0OSwgMHg2MCwgMHg4MSwgMHgyNywg MHgwNiwgMHg1MCwgMHgwMCwgMHhGOSwgIC8vIElgLicuUC4uCiAgICAgICAgICAgICAgICAv KiAwMjUwICovICAweDc2LCAweEUwLCAweDRCLCAweENBLCAweDEzLCAweDAyLCAweDlCLCAw eDQzLCAgLy8gdi5LLi4uLkMKICAgICAgICAgICAgICAgIC8qIDAyNTggKi8gIDB4ODgsIDB4 MzAsIDB4RDEsIDB4MEMsIDB4OEYsIDB4MDksIDB4MzksIDB4MkEsICAvLyAuMC4uLi45Kgog ICAgICAgICAgICAgICAgLyogMDI2MCAqLyAgMHgyQSwgMHg2QiwgMHg1QywgMHhBOCwgMHhC MSwgMHhGQSwgMHg2QywgMHhGMCwgIC8vICprXC4uLmwuCiAgICAgICAgICAgICAgICAvKiAw MjY4ICovICAweEFFLCAweDYzLCAweEVDLCAweEQzLCAweEY0LCAweDA1LCAweEU2LCAweDA0 LCAgLy8gLmMuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAyNzAgKi8gIDB4NUYsIDB4MTUs IDB4MEUsIDB4RUEsIDB4RTUsIDB4QzIsIDB4QTcsIDB4MDEsICAvLyBfLi4uLi4uLgogICAg ICAgICAgICAgICAgLyogMDI3OCAqLyAgMHhDMywgMHg3QSwgMHhGNCwgMHgxQywgMHhENiwg MHg2OCwgMHg2MSwgMHgwRiwgIC8vIC56Li4uaGEuCiAgICAgICAgICAgICAgICAvKiAwMjgw ICovICAweEZBLCAweEMxLCAweEMyLCAweDk3LCAweDEyLCAweENGLCAweENDLCAweDE4LCAg Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAyODggKi8gIDB4NjEsIDB4N0QsIDB4 MDIsIDB4MzAsIDB4RkMsIDB4MTMsIDB4MDAsIDB4NTgsICAvLyBhfS4wLi4uWAogICAgICAg ICAgICAgICAgLyogMDI5MCAqLyAgMHgwRSwgMHgxNywgMHg3QywgMHhGOCwgMHgwRiwgMHgy MiwgMHgwRiwgMHgxNywgIC8vIC4ufC4uIi4uCiAgICAgICAgICAgICAgICAvKiAwMjk4ICov ICAweEZDLCAweERBLCAweDYzLCAweEEwLCAweEI4LCAweDZGLCAweDAxLCAweDM4LCAgLy8g Li5jLi5vLjgKICAgICAgICAgICAgICAgIC8qIDAyQTAgKi8gIDB4M0MsIDB4OUYsIDB4MDUs IDB4N0MsIDB4QjcsIDB4NjEsIDB4RjcsIDB4MDAsICAvLyA8Li58LmEuLgogICAgICAgICAg ICAgICAgLyogMDJBOCAqLyAgMHhDQywgMHhGRiwgMHg1RiwgMHhGNiwgMHg2MSwgMHgwMiwg MHg2NCwgMHg4MywgIC8vIC4uXy5hLmQuCiAgICAgICAgICAgICAgICAvKiAwMkIwICovICAw eDNFLCAweDgwLCAweDY4LCAweEUxLCAweDAzLCAweEZBLCAweDFFLCAweEYyLCAgLy8gPi5o Li4uLi4KICAgICAgICAgICAgICAgIC8qIDAyQjggKi8gIDB4NDAsIDB4QzQsIDB4MEYsIDB4 MTMsIDB4RTAsIDB4REUsIDB4OEUsIDB4MjcsICAvLyBALi4uLi4uJwogICAgICAgICAgICAg ICAgLyogMDJDMCAqLyAgMHg4MiwgMHgxRiwgMHgwOCwgMHgzRSwgMHhERSwgMHg2OSwgMHgw MiwgMHgxNCwgIC8vIC4uLj4uaS4uCiAgICAgICAgICAgICAgICAvKiAwMkM4ICovICAweEY3 LCAweDgzLCAweDg3LCAweDI1LCAweDcwLCAweDBFLCAweDEyLCAweEQ2LCAgLy8gLi4uJXAu Li4KICAgICAgICAgICAgICAgIC8qIDAyRDAgKi8gIDB4NjEsIDB4MDIsIDB4NzAsIDB4MTIs IDB4RjEsIDB4MzAsIDB4MDEsIDB4QkEsICAvLyBhLnAuLjAuLgogICAgICAgICAgICAgICAg LyogMDJEOCAqLyAgMHhCMywgMHg4MCwgMHgwRiwgMHgxMywgMHhFMCwgMHhGOCwgMHhGRiwg MHgxRiwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMkUwICovICAweDI2LCAw eDM4LCAweDg4LCAweDBGLCAweDEzLCAweDYwLCAweDNCLCAweEY4LCAgLy8gJjguLi5gOy4K ICAgICAgICAgICAgICAgIC8qIDAyRTggKi8gIDB4NjAsIDB4MEUsIDB4MTMsIDB4RUMsIDB4 MUEsIDB4MDAsIDB4MDYsIDB4OTksICAvLyBgLi4uLi4uLgogICAgICAgICAgICAgICAgLyog MDJGMCAqLyAgMHg2NywgMHgwOSwgMHhENCwgMHhEOSwgMHhDRCwgMHhEMiwgMHhDRiwgMHgx MiwgIC8vIGcuLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMkY4ICovICAweDkwLCAweDZG LCAweDQyLCAweDE4LCAweEExLCAweDA3LCAweDA5LCAweDk0LCAgLy8gLm9CLi4uLi4KICAg ICAgICAgICAgICAgIC8qIDAzMDAgKi8gIDB4NDQsIDB4MEEsIDB4MDksIDB4M0MsIDB4NDgs IDB4QTAsIDB4MjQsIDB4QzEsICAvLyBELi48SC4kLgogICAgICAgICAgICAgICAgLyogMDMw OCAqLyAgMHg1MSwgMHgxMCwgMHg4RiwgMHhENiwgMHg3MSwgMHgwRiwgMHgxMiwgMHhFOCwg IC8vIFEuLi5xLi4uCiAgICAgICAgICAgICAgICAvKiAwMzEwICovICAweDMxLCAweEZBLCAw eDdDLCAweDA0LCAweDJGLCAweEQ4LCAweDMxLCAweDAyLCAgLy8gMS58Li8uMS4KICAgICAg ICAgICAgICAgIC8qIDAzMTggKi8gIDB4MTQsIDB4MDcsIDB4MDQsIDB4REMsIDB4MTEsIDB4 MEUsIDB4OEMsIDB4NjcsICAvLyAuLi4uLi4uZwogICAgICAgICAgICAgICAgLyogMDMyMCAq LyAgMHgwOCwgMHhDMCwgMHhEMCwgMHhGRiwgMHhGRiwgMHgwQywgMHgwMSwgMHgwRSwgIC8v IC4uLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMzI4ICovICAweDU4LCAweDdFLCAweDg2 LCAweDAwLCAweEE2LCAweEQ3LCAweDI2LCAweDU4LCAgLy8gWH4uLi4uJlgKICAgICAgICAg ICAgICAgIC8qIDAzMzAgKi8gIDB4RTcsIDB4MDMsIDB4NUMsIDB4RDAsIDB4RTcsIDB4ODEs IDB4MDksIDB4MjQsICAvLyAuLlwuLi4uJAogICAgICAgICAgICAgICAgLyogMDMzOCAqLyAg MHhGNywgMHhCOCwgMHhBMCwgMHg2OCwgMHgzMCwgMHgyOCwgMHgwQiwgMHgyNywgIC8vIC4u LmgwKC4nCiAgICAgICAgICAgICAgICAvKiAwMzQwICovICAweDRCLCAweDIwLCAweDhBLCAw eEVDLCAweDkzLCAweDI1LCAweEU2LCAweEYwLCAgLy8gSyAuLi4lLi4KICAgICAgICAgICAg ICAgIC8qIDAzNDggKi8gIDB4RTAsIDB4RDEsIDB4ODIsIDB4RTMsIDB4NEUsIDB4RjAsIDB4 NDIsIDB4RTQsICAvLyAuLi4uTi5CLgogICAgICAgICAgICAgICAgLyogMDM1MCAqLyAgMHhD MSwgMHg3QiwgMHg5MCwgMHg4RiwgMHg4OSwgMHgyMSwgMHhBMiwgMHhCQywgIC8vIC57Li4u IS4uCiAgICAgICAgICAgICAgICAvKiAwMzU4ICovICAweEI0LCAweDE5LCAweEVGLCAweDlE LCAweEVELCAweDkwLCAweEUyLCAweDFDLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAg IC8qIDAzNjAgKi8gIDB4QzgsIDB4NEIsIDB4MjQsIDB4MEUsIDB4MkQsIDB4RDYsIDB4MTEs IDB4RkIsICAvLyAuSyQuLS4uLgogICAgICAgICAgICAgICAgLyogMDM2OCAqLyAgMHg4RSwg MHhFMCwgMHhEQiwgMHhBNCwgMHg2RiwgMHg3RSwgMHgxQywgMHgyMiwgIC8vIC4uLi5vfi4i CiAgICAgICAgICAgICAgICAvKiAwMzcwICovICAweEM4LCAweDgzLCAweEExLCAweDRGLCAw eDkyLCAweEIwLCAweEIxLCAweDZCLCAgLy8gLi4uTy4uLmsKICAgICAgICAgICAgICAgIC8q IDAzNzggKi8gIDB4QkIsIDB4MDcsIDB4NjgsIDB4MzAsIDB4NDEsIDB4MUUsIDB4MjAsIDB4 MjIsICAvLyAuLmgwQS4gIgogICAgICAgICAgICAgICAgLyogMDM4MCAqLyAgMHgwNCwgMHgz OSwgMHg5NywgMHhBMywgMHgwQSwgMHhGMywgMHhGNCwgMHhGOCwgIC8vIC45Li4uLi4uCiAg ICAgICAgICAgICAgICAvKiAwMzg4ICovICAweDJFLCAweEU5LCAweDg5LCAweDg2LCAweEYz LCAweDQ5LCAweEQyLCAweEZGLCAgLy8gLi4uLi5JLi4KICAgICAgICAgICAgICAgIC8qIDAz OTAgKi8gIDB4N0YsIDB4MjAsIDB4MUYsIDB4MjAsIDB4NUUsIDB4MjUsIDB4NDMsIDB4QjEs ICAvLyAuIC4gXiVDLgogICAgICAgICAgICAgICAgLyogMDM5OCAqLyAgMHg0QiwgMHg0NSwg MHhDOCwgMHgxNywgMHhDOSwgMHgyMCwgMHhBRiwgMHg5NCwgIC8vIEtFLi4uIC4uCiAgICAg ICAgICAgICAgICAvKiAwM0EwICovICAweEMxLCAweDIyLCAweDA3LCAweDBCLCAweDEzLCAw eEVGLCAweDQ5LCAweDkyLCAgLy8gLiIuLi4uSS4KICAgICAgICAgICAgICAgIC8qIDAzQTgg Ki8gIDB4ODksIDB4N0QsIDB4MzEsIDB4RTgsIDB4QzAsIDB4RUEsIDB4OTMsIDB4MjQsICAv LyAufTEuLi4uJAogICAgICAgICAgICAgICAgLyogMDNCMCAqLyAgMHhDMCwgMHgwRiwgMHg5 MSwgMHgyNywgMHgwQSwgMHgxRCwgMHg2OCwgMHg3MCwgIC8vIC4uLicuLmhwCiAgICAgICAg ICAgICAgICAvKiAwM0I4ICovICAweEEzLCAweEYwLCAweDgxLCAweEUxLCAweEY1LCAweDAy LCAweDIzLCAweEVBLCAgLy8gLi4uLi4uIy4KICAgICAgICAgICAgICAgIC8qIDAzQzAgKi8g IDB4NjQsIDB4NDEsIDB4NDUsIDB4OUQsIDB4NDcsIDB4NTAsIDB4MjcsIDB4MDksICAvLyBk QUUuR1AnLgogICAgICAgICAgICAgICAgLyogMDNDOCAqLyAgMHgxRiwgMHgyMiwgMHgxOCwg MHgyOCwgMHgzRiwgMHhCRCwgMHg2MSwgMHgwNiwgIC8vIC4iLig/LmEuCiAgICAgICAgICAg ICAgICAvKiAwM0QwICovICAweDA2LCAweDFGLCAweDEwLCAweEVGLCAweDdELCAweENBLCAw eEU0LCAweDRFLCAgLy8gLi4uLn0uLk4KICAgICAgICAgICAgICAgIC8qIDAzRDggKi8gIDB4 NjIsIDB4NDAsIDB4MTYsIDB4RTIsIDB4NTgsIDB4MDEsIDB4RkQsIDB4RkYsICAvLyBiQC4u WC4uLgogICAgICAgICAgICAgICAgLyogMDNFMCAqLyAgMHg3RiwgMHhBQywgMHhFMCwgMHhE NywgMHg4NywgMHgzOCwgMHg2NywgMHg3MSwgIC8vIC4uLi4uOGdxCiAgICAgICAgICAgICAg ICAvKiAwM0U4ICovICAweDNFLCAweDA2LCAweDNDLCAweDhBLCAweEQ3LCAweDEyLCAweEND LCAweDIwLCAgLy8gPi48Li4uLiAKICAgICAgICAgICAgICAgIC8qIDAzRjAgKi8gIDB4Q0Us IDB4QzEsIDB4NzcsIDB4OTYsIDB4MjgsIDB4QzYsIDB4NzgsIDB4RjIsICAvLyAuLncuKC54 LgogICAgICAgICAgICAgICAgLyogMDNGOCAqLyAgMHgzMCwgMHg4QywgMHg5MSwgMHgwQywg MHhFQSwgMHg5MywgMHgxQywgMHg3NiwgIC8vIDAuLi4uLi52CiAgICAgICAgICAgICAgICAv KiAwNDAwICovICAweDAwLCAweEVDLCAweEZFLCAweDZCLCAweDg4LCAweDQwLCAweEFGLCAw eDE4LCAgLy8gLi4uay5ALi4KICAgICAgICAgICAgICAgIC8qIDA0MDggKi8gIDB4N0MsIDB4 NkMsIDB4RUMsIDB4QUMsIDB4MDMsIDB4QkUsIDB4OTMsIDB4RTcsICAvLyB8bC4uLi4uLgog ICAgICAgICAgICAgICAgLyogMDQxMCAqLyAgMHhCMywgMHgyOSwgMHg5OCwgMHg2RSwgMHgy RSwgMHhCOCwgMHhGMywgMHhDNCwgIC8vIC4pLm4uLi4uCiAgICAgICAgICAgICAgICAvKiAw NDE4ICovICAweDQzLCAweDA4LCAweDFGLCAweDlCLCAweDA3LCAweEU1LCAweDg5LCAweEIy LCAgLy8gQy4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDA0MjAgKi8gIDB4RTMsIDB4MDgs IDB4RTYsIDB4NzQsIDB4MEEsIDB4NEMsIDB4QUUsIDB4NDgsICAvLyAuLi50LkwuSAogICAg ICAgICAgICAgICAgLyogMDQyOCAqLyAgMHgxRSwgMHgwMiwgMHgzRiwgMHg2OCwgMHg3OCwg MHgwOCwgMHg3QywgMHgwMCwgIC8vIC4uP2h4LnwuCiAgICAgICAgICAgICAgICAvKiAwNDMw ICovICAweEFELCAweENFLCAweDkyLCAweERDLCAweDRFLCAweENFLCAweDBELCAweDc3LCAg Ly8gLi4uLk4uLncKICAgICAgICAgICAgICAgIC8qIDA0MzggKi8gIDB4NTIsIDB4RTAsIDB4 NTMsIDB4QzIsIDB4MEQsIDB4MDAsIDB4QTMsIDB4RDAsICAvLyBSLlMuLi4uLgogICAgICAg ICAgICAgICAgLyogMDQ0MCAqLyAgMHhBNiwgMHg0RiwgMHg4RCwgMHg0NiwgMHhBRCwgMHgx QSwgMHg5NCwgMHhBOSwgIC8vIC5PLkYuLi4uCiAgICAgICAgICAgICAgICAvKiAwNDQ4ICov ICAweDUxLCAweEE2LCAweDQxLCAweEFELCAweDNFLCAweDk1LCAweDFBLCAweDMzLCAgLy8g US5BLj4uLjMKICAgICAgICAgICAgICAgIC8qIDA0NTAgKi8gIDB4NzYsIDB4NEEsIDB4QjAs IDB4QzAsIDB4ODcsIDB4ODUsIDB4NEUsIDB4MEUsICAvLyB2Si4uLi5OLgogICAgICAgICAg ICAgICAgLyogMDQ1OCAqLyAgMHg4RSwgMHgwNywgMHg0MiwgMHgyMywgMHgxRCwgMHg3NSwg MHg2NCwgMHhFNCwgIC8vIC4uQiMudWQuCiAgICAgICAgICAgICAgICAvKiAwNDYwICovICAw eDQ0LCAweDZBLCAweDEwLCAweDAxLCAweDU5LCAweENBLCAweEU5LCAweDU1LCAgLy8gRGou LlkuLlUKICAgICAgICAgICAgICAgIC8qIDA0NjggKi8gIDB4NDAsIDB4M0UsIDB4QkYsIDB4 NzIsIDB4QzEsIDB4MjYsIDB4ODAsIDB4OTgsICAvLyBAPi5yLiYuLgogICAgICAgICAgICAg ICAgLyogMDQ3MCAqLyAgMHg3QywgMHgxMCwgMHgwMSwgMHg5MywgMHg0NywgMHg4MywgMHg0 MCwgMHgyQywgIC8vIHwuLi5HLkAsCiAgICAgICAgICAgICAgICAvKiAwNDc4ICovICAweEM4 LCAweDA2LCAweDA4LCAweDEzLCAweEFELCAweDAzLCAweDg0LCAweEZELCAgLy8gLi4uLi4u Li4KICAgICAgICAgICAgICAgIC8qIDA0ODAgKi8gIDB4RkYsIDB4MDEgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICB9KQogICAgICAg IH0KCiAgICAgICAgRGV2aWNlIChXRlRFKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAo X0hJRCwgIlBOUDBDMTQiIC8qIFdpbmRvd3MgTWFuYWdlbWVudCBJbnN0cnVtZW50YXRpb24g RGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJ RCwgIlRlc3REZXYiKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9X REcsIEJ1ZmZlciAoMHgyOCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAw MCAqLyAgMHg3RiwgMHhBQiwgMHgxMywgMHgxRiwgMHgyMCwgMHg2MiwgMHgxMCwgMHg0Miwg IC8vIC4uLi4gYi5CCiAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDhGLCAweDhFLCAw eDhCLCAweEI1LCAweEU3LCAweDFFLCAweEU5LCAweDY5LCAgLy8gLi4uLi4uLmkKICAgICAg ICAgICAgICAgIC8qIDAwMTAgKi8gIDB4NDQsIDB4NDUsIDB4MDEsIDB4MDIsIDB4MjEsIDB4 MTIsIDB4OTAsIDB4MDUsICAvLyBERS4uIS4uLgogICAgICAgICAgICAgICAgLyogMDAxOCAq LyAgMHg2NiwgMHhENSwgMHhEMSwgMHgxMSwgMHhCMiwgMHhGMCwgMHgwMCwgMHhBMCwgIC8v IGYuLi4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMDIwICovICAweEM5LCAweDA2LCAweDI5 LCAweDEwLCAweDQzLCAweDQzLCAweDAxLCAweDAwICAgLy8gLi4pLkNDLi4KICAgICAgICAg ICAgfSkKICAgICAgICAgICAgTWV0aG9kIChXTURFLCAzLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQREFUID0gQXJnMgogICAgICAgICAgICAg ICAgICAgIE5vdGlmeSAoV0ZERSwgMHhEMCkgLy8gSGFyZHdhcmUtU3BlY2lmaWMKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFBEQVQpIC8qIFxfU0JfLlBEQVQgKi8KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE5hbWUgKFdRQ0MsIEJ1ZmZlciAoMHgwMkYxKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDQ2LCAweDRGLCAweDRELCAweDQyLCAw eDAxLCAweDAwLCAweDAwLCAweDAwLCAgLy8gRk9NQi4uLi4KICAgICAgICAgICAgICAgIC8q IDAwMDggKi8gIDB4RTEsIDB4MDIsIDB4MDAsIDB4MDAsIDB4QzIsIDB4MDYsIDB4MDAsIDB4 MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHg0NCwgMHg1 MywgMHgwMCwgMHgwMSwgMHgxQSwgMHg3RCwgMHhEQSwgMHg1NCwgIC8vIERTLi4ufS5UCiAg ICAgICAgICAgICAgICAvKiAwMDE4ICovICAweEE4LCAweDVELCAweDgzLCAweDAwLCAweDAx LCAweDA2LCAweDE4LCAweDQyLCAgLy8gLl0uLi4uLkIKICAgICAgICAgICAgICAgIC8qIDAw MjAgKi8gIDB4MjAsIDB4MTQsIDB4MDMsIDB4ODksIDB4QzAsIDB4QTIsIDB4NjksIDB4MjQs ICAvLyAgLi4uLi5pJAogICAgICAgICAgICAgICAgLyogMDAyOCAqLyAgMHhDNywgMHgwMSwg MHgwQywgMHg4NiwgMHhDQiwgMHg3MiwgMHgyMCwgMHhFNCwgIC8vIC4uLi4uciAuCiAgICAg ICAgICAgICAgICAvKiAwMDMwICovICAweDgyLCAweDg5LCAweDA5LCAweDEwLCAweDAxLCAw eDIxLCAweEFGLCAweDAyLCAgLy8gLi4uLi4hLi4KICAgICAgICAgICAgICAgIC8qIDAwMzgg Ki8gIDB4NkMsIDB4MEEsIDB4MzAsIDB4MDksIDB4QTIsIDB4RkUsIDB4RkQsIDB4MjEsICAv LyBsLjAuLi4uIQogICAgICAgICAgICAgICAgLyogMDA0MCAqLyAgMHg0QSwgMHg4MiwgMHg0 MywgMHgwOSwgMHg4MSwgMHg5MCwgMHg2NCwgMHgwMSwgIC8vIEouQy4uLmQuCiAgICAgICAg ICAgICAgICAvKiAwMDQ4ICovICAweEU2LCAweDA1LCAweEU4LCAweDE2LCAweDYwLCAweDU4 LCAweDgwLCAweDZELCAgLy8gLi4uLmBYLm0KICAgICAgICAgICAgICAgIC8qIDAwNTAgKi8g IDB4MDEsIDB4QTYsIDB4MDUsIDB4MzgsIDB4ODYsIDB4QTQsIDB4RDIsIDB4QzAsICAvLyAu Li44Li4uLgogICAgICAgICAgICAgICAgLyogMDA1OCAqLyAgMHgyOSwgMHg4MSwgMHhBNSwg MHg0MCwgMHg0OCwgMHhCOCwgMHgwMCwgMHhFNSwgIC8vICkuLkBILi4uCiAgICAgICAgICAg ICAgICAvKiAwMDYwICovICAweDAyLCAweDdDLCAweDBCLCAweEQwLCAweDhFLCAweDI4LCAw eERDLCAweDk2LCAgLy8gLnwuLi4oLi4KICAgICAgICAgICAgICAgIC8qIDAwNjggKi8gIDB4 NjEsIDB4NDQsIDB4RTAsIDB4NTEsIDB4NDQsIDB4QjYsIDB4NTAsIDB4MzQsICAvLyBhRC5R RC5QNAogICAgICAgICAgICAgICAgLyogMDA3MCAqLyAgMHgwQSwgMHg4RCwgMHgxRCwgMHg4 NiwgMHg2NSwgMHg4MiwgMHg2OSwgMHgxMCwgIC8vIC4uLi5lLmkuCiAgICAgICAgICAgICAg ICAvKiAwMDc4ICovICAweDg3LCAweDUxLCAweDM2LCAweEIyLCAweDA4LCAweDNDLCAweEEx LCAweDRFLCAgLy8gLlE2Li48Lk4KICAgICAgICAgICAgICAgIC8qIDAwODAgKi8gIDB4MDUs IDB4QzgsIDB4MTUsIDB4MjAsIDB4NEMsIDB4ODAsIDB4NzgsIDB4NTQsICAvLyAuLi4gTC54 VAogICAgICAgICAgICAgICAgLyogMDA4OCAqLyAgMHg2MSwgMHgzNCwgMHgwNywgMHg0NSwg MHgyMCwgMHg0MywgMHg2MywgMHhDNCwgIC8vIGE0LkUgQ2MuCiAgICAgICAgICAgICAgICAv KiAwMDkwICovICAweDQwLCAweDQ4LCAweDIyLCAweEFDLCAweDlDLCAweDYzLCAweDZCLCAw eDE0LCAgLy8gQEgiLi5jay4KICAgICAgICAgICAgICAgIC8qIDAwOTggKi8gIDB4QTcsIDB4 NzEsIDB4MzQsIDB4QTUsIDB4NjMsIDB4NjgsIDB4MDQsIDB4QzcsICAvLyAucTQuY2guLgog ICAgICAgICAgICAgICAgLyogMDBBMCAqLyAgMHg3NSwgMHg0MCwgMHgwNiwgMHhFOSwgMHg3 RCwgMHgzQSwgMHg0NCwgMHhEMCwgIC8vIHVALi59OkQuCiAgICAgICAgICAgICAgICAvKiAw MEE4ICovICAweDg0LCAweDM0LCAweDhBLCAweDY4LCAweDIxLCAweEEyLCAweDA0LCAweDNE LCAgLy8gLjQuaCEuLj0KICAgICAgICAgICAgICAgIC8qIDAwQjAgKi8gIDB4OEUsIDB4MjAs IDB4ODEsIDB4MjMsIDB4MjQsIDB4MzAsIDB4Q0MsIDB4MzEsICAvLyAuIC4jJDAuMQogICAg ICAgICAgICAgICAgLyogMDBCOCAqLyAgMHg2MCwgMHg2NCwgMHg0MCwgMHhDOCwgMHhCMywg MHgwMCwgMHhFQiwgMHg4MywgIC8vIGBkQC4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMEMw ICovICAweDIzLCAweDA0LCAweDc2LCAweDJGLCAweEMwLCAweDk4LCAweDAwLCAweDhELCAg Ly8gIy52Ly4uLi4KICAgICAgICAgICAgICAgIC8qIDAwQzggKi8gIDB4MTAsIDB4NzIsIDB4 MjYsIDB4QzAsIDB4QTAsIDB4MDAsIDB4ODUsIDB4MDIsICAvLyAuciYuLi4uLgogICAgICAg ICAgICAgICAgLyogMDBEMCAqLyAgMHhCQywgMHhDMSwgMHhDOCwgMHg5NiwgMHgwMCwgMHg2 RCwgMHgwMiwgMHg5NCwgIC8vIC4uLi4ubS4uCiAgICAgICAgICAgICAgICAvKiAwMEQ4ICov ICAweDIxLCAweDY4LCAweDRBLCAweDUxLCAweDBFLCAweDJBLCAweDQ4LCAweEI4LCAgLy8g IWhKUS4qSC4KICAgICAgICAgICAgICAgIC8qIDAwRTAgKi8gIDB4MjgsIDB4MTYsIDB4ODcs IDB4MjYsIDB4ODgsIDB4MTYsIDB4NTEsIDB4MDgsICAvLyAoLi4mLi5RLgogICAgICAgICAg ICAgICAgLyogMDBFOCAqLyAgMHg2OCwgMHg4NCwgMHhENiwgMHg2MCwgMHg4NCwgMHgxQiwg MHgyRSwgMHg0NiwgIC8vIGguLmAuLi5GCiAgICAgICAgICAgICAgICAvKiAwMEYwICovICAw eDg0LCAweDkzLCAweDhCLCAweDFDLCAweEEyLCAweEZELCAweDQxLCAweDkwLCAgLy8gLi4u Li4uQS4KICAgICAgICAgICAgICAgIC8qIDAwRjggKi8gIDB4NjgsIDB4NDcsIDB4MDEsIDB4 NDksIDB4MDAsIDB4NTEsIDB4QTQsIDB4RDEsICAvLyBoRy5JLlEuLgogICAgICAgICAgICAg ICAgLyogMDEwMCAqLyAgMHhBMCwgMHg4NiwgMHg5RiwgMHhFMCwgMHg3MSwgMHhDMCwgMHg0 NywgMHg4MSwgIC8vIC4uLi5xLkcuCiAgICAgICAgICAgICAgICAvKiAwMTA4ICovICAweDkz LCAweDNCLCAweEE5LCAweDEzLCAweDMzLCAweEM4LCAweDg5LCAweDFELCAgLy8gLjsuLjMu Li4KICAgICAgICAgICAgICAgIC8qIDAxMTAgKi8gIDB4NUQsIDB4OUQsIDB4RTcsIDB4MDAs IDB4MzIsIDB4NjIsIDB4ODYsIDB4OTUsICAvLyBdLi4uMmIuLgogICAgICAgICAgICAgICAg LyogMDExOCAqLyAgMHhFMCwgMHhENywgMHhDMCwgMHgwNywgMHgwMywgMHhCQywgMHg2Qiwg MHg0MCwgIC8vIC4uLi4uLmtACiAgICAgICAgICAgICAgICAvKiAwMTIwICovICAweERELCAw eDA4LCAweDlFLCAweDA3LCAweEQ4LCAweDMwLCAweEMzLCAweDYxLCAgLy8gLi4uLi4wLmEK ICAgICAgICAgICAgICAgIC8qIDAxMjggKi8gIDB4ODYsIDB4RTgsIDB4RDEsIDB4ODYsIDB4 RkIsIDB4RkYsIDB4OUYsIDB4QzAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgLyog MDEzMCAqLyAgMHgyMSwgMHgzMiwgMHg0MCwgMHgwRiwgMHhFRCwgMHg1MSwgMHgwMCwgMHhF QiwgIC8vICEyQC4uUS4uCiAgICAgICAgICAgICAgICAvKiAwMTM4ICovICAweDcwLCAweDMy LCAweDNBLCAweDA3LCAweDk0LCAweDJBLCAweEMwLCAweEVDLCAgLy8gcDI6Li4qLi4KICAg ICAgICAgICAgICAgIC8qIDAxNDAgKi8gIDB4OTksIDB4NDAsIDB4MzMsIDB4NEIsIDB4NzAs IDB4M0MsIDB4M0UsIDB4MDAsICAvLyAuQDNLcDw+LgogICAgICAgICAgICAgICAgLyogMDE0 OCAqLyAgMHg3OCwgMHgzRSwgMHgyNywgMHg5QywgMHhDMCwgMHhGMiwgMHgwNywgMHg4MSwg IC8vIHg+Jy4uLi4uCiAgICAgICAgICAgICAgICAvKiAwMTUwICovICAweDFBLCAweDk5LCAw eEExLCAweDNELCAweEUzLCAweEQzLCAweDdBLCAweDBGLCAgLy8gLi4uPS4uei4KICAgICAg ICAgICAgICAgIC8qIDAxNTggKi8gIDB4RjAsIDB4RjEsIDB4RTAsIDB4QjAsIDB4OTgsIDB4 NTgsIDB4MDgsIDB4MjksICAvLyAuLi4uLlguKQogICAgICAgICAgICAgICAgLyogMDE2MCAq LyAgMHg4MCwgMHhEMCwgMHg3OCwgMHhDMCwgMHhBRiwgMHhGOCwgMHg2OCwgMHgyMCwgIC8v IC4ueC4uLmggCiAgICAgICAgICAgICAgICAvKiAwMTY4ICovICAweDg0LCAweDk3LCAweDA1 LCAweENGLCAweEQ3LCAweDg3LCAweDA0LCAweDAzLCAgLy8gLi4uLi4uLi4KICAgICAgICAg ICAgICAgIC8qIDAxNzAgKi8gIDB4NjMsIDB4MDcsIDB4NjQsIDB4QkYsIDB4MDIsIDB4MTAs IDB4ODIsIDB4QkYsICAvLyBjLmQuLi4uLgogICAgICAgICAgICAgICAgLyogMDE3OCAqLyAg MHgyRSwgMHgxQywgMHhEMSwgMHg0MywgMHg0MywgMHg4NCwgMHgwNCwgMHgyRiwgIC8vIC4u LkNDLi4vCiAgICAgICAgICAgICAgICAvKiAwMTgwICovICAweDAzLCAweDQ3LCAweDUwLCAw eDI5LCAweEJFLCAweEIwLCAweDBFLCAweDIxLCAgLy8gLkdQKS4uLiEKICAgICAgICAgICAg ICAgIC8qIDAxODggKi8gIDB4NDYsIDB4QTQsIDB4MTgsIDB4NTEsIDB4ODIsIDB4RDQsIDB4 MEEsIDB4QTEsICAvLyBGLi5RLi4uLgogICAgICAgICAgICAgICAgLyogMDE5MCAqLyAgMHhF OSwgMHg4NywgMHg0OSwgMHg1MCwgMHhFNCwgMHhDOSwgMHgwMSwgMHgzRCwgIC8vIC4uSVAu Li49CiAgICAgICAgICAgICAgICAvKiAwMTk4ICovICAweDAyLCAweDhFLCAweDc3LCAweDAy LCAweEM3LCAweDEzLCAweEQ5LCAweEUzLCAgLy8gLi53Li4uLi4KICAgICAgICAgICAgICAg IC8qIDAxQTAgKi8gIDB4ODksIDB4NzIsIDB4MTIsIDB4MDcsIDB4RTQsIDB4MzMsIDB4ODUs IDB4MTEsICAvLyAuci4uLjMuLgogICAgICAgICAgICAgICAgLyogMDFBOCAqLyAgMHg0RSwg MHhGMywgMHg1MSwgMHhFMiwgMHhEMSwgMHhDMiwgMHg5QSwgMHg2NywgIC8vIE4uUS4uLi5n CiAgICAgICAgICAgICAgICAvKiAwMUIwICovICAweEE0LCAweDEzLCAweEMzLCAweDM5LCAw eEJELCAweDBELCAweDk4LCAweEEwLCAgLy8gLi4uOS4uLi4KICAgICAgICAgICAgICAgIC8q IDAxQjggKi8gIDB4QjIsIDB4RTcsIDB4ODAsIDB4OEUsIDB4MUYsIDB4NTYsIDB4MDUsIDB4 MjIsICAvLyAuLi4uLlYuIgogICAgICAgICAgICAgICAgLyogMDFDMCAqLyAgMHgxQiwgMHg0 QiwgMHhGNSwgMHgzOSwgMHg4MywgMHg2QSwgMHg1RSwgMHhBRSwgIC8vIC5LLjkual4uCiAg ICAgICAgICAgICAgICAvKiAwMUM4ICovICAweDQ2LCAweDc0LCAweENDLCAweEM3LCAweEVB LCAweDExLCAweDlDLCAweEI0LCAgLy8gRnQuLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAx RDAgKi8gIDB4QTcsIDB4MTcsIDB4RDksIDB4NEEsIDB4QzEsIDB4MDQsIDB4RUMsIDB4NjEs ICAvLyAuLi5KLi4uYQogICAgICAgICAgICAgICAgLyogMDFEOCAqLyAgMHg1QiwgMHgyMywg MHg4NSwgMHhENCwgMHhEMCwgMHg2OCwgMHgzQywgMHgwNiwgIC8vIFsjLi4uaDwuCiAgICAg ICAgICAgICAgICAvKiAwMUUwICovICAweDc3LCAweEZFLCAweDEzLCAweDA5LCAweDA1LCAw eDMxLCAweEEwLCAweEMzLCAgLy8gdy4uLi4xLi4KICAgICAgICAgICAgICAgIC8qIDAxRTgg Ki8gIDB4NDEsIDB4QzgsIDB4QzksIDB4NDksIDB4MDAsIDB4QTUsIDB4NjIsIDB4QkMsICAv LyBBLi5JLi5iLgogICAgICAgICAgICAgICAgLyogMDFGMCAqLyAgMHhFNCwgMHg2OCwgMHhD MSwgMHgwOCwgMHhBNiwgMHg4MSwgMHhEMCwgMHhERCwgIC8vIC5oLi4uLi4uCiAgICAgICAg ICAgICAgICAvKiAwMUY4ICovICAweEMxLCAweEYzLCAweEYzLCAweDNELCAweDgwLCAweERG LCAweDRDLCAweDdDLCAgLy8gLi4uPS4uTHwKICAgICAgICAgICAgICAgIC8qIDAyMDAgKi8g IDB4MzIsIDB4MzAsIDB4QjAsIDB4RUYsIDB4MTMsIDB4NkYsIDB4MUMsIDB4RjAsICAvLyAy MC4uLm8uLgogICAgICAgICAgICAgICAgLyogMDIwOCAqLyAgMHhGRiwgMHhGRiwgMHgzNywg MHgwRSwgMHgzNiwgMHgwOSwgMHg4QywgMHg5QSwgIC8vIC4uNy42Li4uCiAgICAgICAgICAg ICAgICAvKiAwMjEwICovICAweDIzLCAweDA0LCAweDlELCAweDAyLCAweEJGLCAweDAwLCAw eEJDLCAweDBBLCAgLy8gIy4uLi4uLi4KICAgICAgICAgICAgICAgIC8qIDAyMTggKi8gIDB4 OTgsIDB4QzAsIDB4QkEsIDB4MkUsIDB4MDYsIDB4RDAsIDB4NEYsIDB4MUQsICAvLyAuLi4u Li5PLgogICAgICAgICAgICAgICAgLyogMDIyMCAqLyAgMHgxRSwgMHhBOCwgMHhBRiwgMHgx QywgMHg2NywgMHg2MywgMHg3RCwgMHgwNywgIC8vIC4uLi5nY30uCiAgICAgICAgICAgICAg ICAvKiAwMjI4ICovICAweDAzLCAweDUwLCAweDAwLCAweEY5LCAweDIyLCAweEUwLCAweDkz LCAweEMxLCAgLy8gLlAuLiIuLi4KICAgICAgICAgICAgICAgIC8qIDAyMzAgKi8gIDB4QzMs IDB4MDAsIDB4QkIsIDB4MTksIDB4MTgsIDB4MjYsIDB4OUEsIDB4RDEsICAvLyAuLi4uLiYu LgogICAgICAgICAgICAgICAgLyogMDIzOCAqLyAgMHhCOSwgMHhBOCwgMHg2OSwgMHhBMywg MHg2NCwgMHhDMCwgMHg2OCwgMHhEQSwgIC8vIC4uaS5kLmguCiAgICAgICAgICAgICAgICAv KiAwMjQwICovICAweDA2LCAweEYxLCAweEI0LCAweDFELCAweDcxLCAweERBLCAweDY4LCAw eDY4LCAgLy8gLi4uLnEuaGgKICAgICAgICAgICAgICAgIC8qIDAyNDggKi8gIDB4NUYsIDB4 MDUsIDB4N0MsIDB4MTEsIDB4NzAsIDB4QTgsIDB4NjEsIDB4RDMsICAvLyBfLnwucC5hLgog ICAgICAgICAgICAgICAgLyogMDI1MCAqLyAgMHgzQiwgMHgwNywgMHg3RSwgMHhBRSwgMHg2 NywgMHgxNiwgMHhEMCwgMHg5MywgIC8vIDsufi5nLi4uCiAgICAgICAgICAgICAgICAvKiAw MjU4ICovICAweEYwLCAweDkxLCAweEU0LCAweEI4LCAweEMxLCAweDMyLCAweDBBLCAweDA2 LCAgLy8gLi4uLi4yLi4KICAgICAgICAgICAgICAgIC8qIDAyNjAgKi8gIDB4MUUsIDB4MjQs IDB4OEUsIDB4NDcsIDB4QzEsIDB4MjYsIDB4Q0UsIDB4MDcsICAvLyAuJC5HLiYuLgogICAg ICAgICAgICAgICAgLyogMDI2OCAqLyAgMHhFMCwgMHg4OSwgMHhGMywgMHg3MSwgMHhGOSwg MHg4NiwgMHgwMSwgMHg3RiwgIC8vIC4uLnEuLi4uCiAgICAgICAgICAgICAgICAvKiAwMjcw ICovICAweEU0LCAweDU4LCAweDgyLCAweDAyLCAweDY3LCAweDBFLCAweDcyLCAweDc4LCAg Ly8gLlguLmcucngKICAgICAgICAgICAgICAgIC8qIDAyNzggKi8gIDB4NEMsIDB4QjAsIDB4 NTEsIDB4NTEsIDB4NTksIDB4RTMsIDB4NDIsIDB4OEQsICAvLyBMLlFRWS5CLgogICAgICAg ICAgICAgICAgLyogMDI4MCAqLyAgMHhEMiwgMHg1NywgMHgyMCwgMHg4NiwgMHg3RCwgMHg4 MiwgMHgxNiwgMHgzRCwgIC8vIC5XIC59Li49CiAgICAgICAgICAgICAgICAvKiAwMjg4ICov ICAweDQ4LCAweDlELCAweDJGLCAweDBFLCAweEVBLCAweDY5LCAweEM0LCAweDYzLCAgLy8g SC4vLi5pLmMKICAgICAgICAgICAgICAgIC8qIDAyOTAgKi8gIDB4MzMsIDB4QUMsIDB4Qzcs IDB4RkQsIDB4RkYsIDB4MEYsIDB4OEIsIDB4NDEsICAvLyAzLi4uLi4uQQogICAgICAgICAg ICAgICAgLyogMDI5OCAqLyAgMHgwQiwgMHg3QiwgMHhCOCwgMHgyRiwgMHgyMiwgMHgzRSwg MHhDNSwgMHg3OCwgIC8vIC57Li8iPi54CiAgICAgICAgICAgICAgICAvKiAwMkEwICovICAw eDY2LCAweEM2LCAweDA4LCAweEVCLCAweEIxLCAweDdCLCAweDQwLCAweDhGLCAgLy8gZi4u Li57QC4KICAgICAgICAgICAgICAgIC8qIDAyQTggKi8gIDB4MTAsIDB4RTAsIDB4MDEsIDB4 N0IsIDB4MzUsIDB4MzksIDB4RDMsIDB4MDcsICAvLyAuLi57NTkuLgogICAgICAgICAgICAg ICAgLyogMDJCMCAqLyAgMHg5NywgMHgzRiwgMHg4RSwgMHhFQSwgMHgyMCwgMHg3NCwgMHhE RiwgMHhFMCwgIC8vIC4/Li4gdC4uCiAgICAgICAgICAgICAgICAvKiAwMkI4ICovICAweDI4 LCAweDIxLCAweDFFLCAweDM4LCAweDMwLCAweDA0LCAweDE1LCAweERBLCAgLy8gKCEuODAu Li4KICAgICAgICAgICAgICAgIC8qIDAyQzAgKi8gIDB4RjQsIDB4QTksIDB4RDEsIDB4QTgs IDB4NTUsIDB4ODMsIDB4MzIsIDB4MzUsICAvLyAuLi4uVS4yNQogICAgICAgICAgICAgICAg LyogMDJDOCAqLyAgMHhDQSwgMHgzNCwgMHhBOCwgMHhENSwgMHhBNywgMHg1MiwgMHg2Mywg MHhDNiwgIC8vIC40Li4uUmMuCiAgICAgICAgICAgICAgICAvKiAwMkQwICovICAweDNDLCAw eDVDLCAweDhFLCAweEU4LCAweDQxLCAweDgxLCAweEJDLCAweDEzLCAgLy8gPFwuLkEuLi4K ICAgICAgICAgICAgICAgIC8qIDAyRDggKi8gIDB4MzQsIDB4NDIsIDB4ODcsIDB4MDAsIDB4 QTEsIDB4NDIsIDB4OUUsIDB4MDgsICAvLyA0Qi4uLkIuLgogICAgICAgICAgICAgICAgLyog MDJFMCAqLyAgMHgzMiwgMHg3MiwgMHgwRiwgMHgzMSwgMHg4OCwgMHg4MCwgMHhBQywgMHhD QywgIC8vIDJyLjEuLi4uCiAgICAgICAgICAgICAgICAvKiAwMkU4ICovICAweDAyLCAweDEw LCAweEQzLCAweDA5LCAweDIyLCAweDIwLCAweEZGLCAweEZGLCAgLy8gLi4uLiIgLi4KICAg ICAgICAgICAgICAgIC8qIDAyRjAgKi8gIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgIH0pCiAgICAgICAgfQoKICAg ICAgICBNZXRob2QgKFVTU1YsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg ICBQREFUID0gQXJnMAogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChHU1NWLCAwLCBTZXJp YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChQREFUKSAvKiBcX1NCXy5Q REFUICovCiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IuUEMwMC5SUDAxLlBYU1gp CiAgICB7CiAgICAgICAgTmFtZSAoUEVSTiwgIlJQMDEiKQogICAgICAgIE1ldGhvZCAoSVNM TiwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoQkNDWCA9PSAw eDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChTQ0NYID09IFplcm8p KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJQQ0llIExBTiIpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChJ U0RULCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoXERURlMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKChEVEZTID09 IE9uZSkgJiYgKCgoUlBTMCA9PSBTTE9UKSAmJiBSUE4wKSB8fCAoCiAgICAgICAgICAgICAg ICAgICAgKFJQUzEgPT0gU0xPVCkgJiYgUlBOMSkpKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkRUQlQgUEVQIENvbnN0cmFp bnQgaXMgc3VjY2Vzc2Z1bGx5IFNFVCBmb3IgUENIIFJQID0gIiwgVG9EZWNpbWFsU3RyaW5n IChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICB9CgogICAgICAgIE1ldGhvZCAoR1JQVCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUm9vdCBQb3J0IDogIiwgUEVSTikpCiAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKF5eUFJNVikpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmICgoUFJNViA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlIChQRVJOLCAiIG1hcHBlZCB1bmRlciBW TUQiKSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4NjMpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJZiAoKFBBSEMgKCkgfHwgUE5WTSAoKSkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgSWYgKElTR1ggKCkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA0KQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmICgoUFJUUCA9PSAweDAyKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoSVNMTiAoKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKF5XSVNUKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChXSVNUICgp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChJU0RUICgpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA1KQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo V1dTVCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoV1dTVCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuICgweDYz KQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLlBDMDAuUlAwMi5QWFNYKQogICAg ewogICAgICAgIE5hbWUgKFBFUk4sICJSUDAyIikKICAgICAgICBNZXRob2QgKElTTE4sIDAs IFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEJDQ1ggPT0gMHgwMikp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgi UENJZSBMQU4iKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoSVNEVCwg MCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxE VEZTKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoRFRGUyA9PSBPbmUp ICYmICgoKFJQUzAgPT0gU0xPVCkgJiYgUlBOMCkgfHwgKAogICAgICAgICAgICAgICAgICAg IChSUFMxID09IFNMT1QpICYmIFJQTjEpKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJEVEJUIFBFUCBDb25zdHJhaW50IGlz IHN1Y2Nlc3NmdWxseSBTRVQgZm9yIFBDSCBSUCA9ICIsIFRvRGVjaW1hbFN0cmluZyAoU0xP VCkpKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgfQoK ICAgICAgICBNZXRob2QgKEdSUFQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlJvb3QgUG9ydCA6ICIsIFBFUk4pKQogICAgICAg ICAgICBJZiAoQ29uZFJlZk9mICheXlBSTVYpKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoUEVSTiwgIiBtYXBwZWQgdW5kZXIgVk1EIikp CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDYzKQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoUFJFUyAoKSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgSWYgKChQQUhDICgpIHx8IFBOVk0gKCkpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIElmIChJU0dYICgpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNCkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoKFBSVFAgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKElTTE4gKCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mICheV0lTVCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoV0lTVCAoKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoSVNEVCAoKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNSkKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFdXU1Qp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFdX U1QgKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwNikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoMHg2MykKICAg ICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAwLlJQMDMuUFhTWCkKICAgIHsKICAg ICAgICBOYW1lIChQRVJOLCAiUlAwMyIpCiAgICAgICAgTWV0aG9kIChJU0xOLCAwLCBTZXJp YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDIpKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gWmVybykpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBDSWUg TEFOIikKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKElTRFQsIDAsIFNl cmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcRFRGUykp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKERURlMgPT0gT25lKSAmJiAo KChSUFMwID09IFNMT1QpICYmIFJQTjApIHx8ICgKICAgICAgICAgICAgICAgICAgICAoUlBT MSA9PSBTTE9UKSAmJiBSUE4xKSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiRFRCVCBQRVAgQ29uc3RyYWludCBpcyBzdWNj ZXNzZnVsbHkgU0VUIGZvciBQQ0ggUlAgPSAiLCBUb0RlY2ltYWxTdHJpbmcgKFNMT1QpKSkK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgIH0KCiAgICAg ICAgTWV0aG9kIChHUlBULCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJSb290IFBvcnQgOiAiLCBQRVJOKSkKICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoXl5QUk1WKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKChQUk1WID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgQURCRyAoQ29uY2F0ZW5hdGUgKFBFUk4sICIgbWFwcGVkIHVuZGVyIFZNRCIpKQogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHg2MykKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgSWYgKFBSRVMgKCkpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBJZiAoSVNHWCAoKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDQpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKChQUlRQID09IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmIChJU0xOICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXldJU1QpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKElTRFQgKCkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDUpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChXV1NUKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChXV1NUICgp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKDB4NjMpCiAgICAgICAg fQogICAgfQoKICAgIFNjb3BlIChfU0IuUEMwMC5SUDA0LlBYU1gpCiAgICB7CiAgICAgICAg TmFtZSAoUEVSTiwgIlJQMDQiKQogICAgICAgIE1ldGhvZCAoSVNMTiwgMCwgU2VyaWFsaXpl ZCkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoQkNDWCA9PSAweDAyKSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKChTQ0NYID09IFplcm8pKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmICgoUElYWCA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQQ0llIExBTiIp CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChJU0RULCAwLCBTZXJpYWxp emVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXERURlMpKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKChEVEZTID09IE9uZSkgJiYgKCgoUlBT MCA9PSBTTE9UKSAmJiBSUE4wKSB8fCAoCiAgICAgICAgICAgICAgICAgICAgKFJQUzEgPT0g U0xPVCkgJiYgUlBOMSkpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIkRUQlQgUEVQIENvbnN0cmFpbnQgaXMgc3VjY2Vzc2Z1 bGx5IFNFVCBmb3IgUENIIFJQID0gIiwgVG9EZWNpbWFsU3RyaW5nIChTTE9UKSkpCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICB9CgogICAgICAgIE1l dGhvZCAoR1JQVCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIEFEQkcg KENvbmNhdGVuYXRlICgiUm9vdCBQb3J0IDogIiwgUEVSTikpCiAgICAgICAgICAgIElmIChD b25kUmVmT2YgKF5eUFJNVikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgo UFJNViA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFE QkcgKENvbmNhdGVuYXRlIChQRVJOLCAiIG1hcHBlZCB1bmRlciBWTUQiKSkKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4NjMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIElmIChQUkVTICgpKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBJZiAoKFBBSEMgKCkgfHwgUE5WTSAoKSkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgSWYgKElTR1ggKCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDA0KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IElmICgoUFJUUCA9PSAweDAyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoSVNMTiAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKF5XSVNUKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmIChJU0RUICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA1KQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoV1dTVCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoV1dTVCAoKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuICgweDYzKQogICAgICAgIH0KICAg IH0KCiAgICBTY29wZSAoX1NCLlBDMDAuUlAwNS5QWFNYKQogICAgewogICAgICAgIE5hbWUg KFBFUk4sICJSUDA1IikKICAgICAgICBNZXRob2QgKElTTE4sIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgewogICAgICAgICAgICBJZiAoKEJDQ1ggPT0gMHgwMikpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFggPT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUENJZSBMQU4iKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoSVNEVCwgMCwgU2VyaWFsaXplZCkK ICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxEVEZTKSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKCgoRFRGUyA9PSBPbmUpICYmICgoKFJQUzAgPT0g U0xPVCkgJiYgUlBOMCkgfHwgKAogICAgICAgICAgICAgICAgICAgIChSUFMxID09IFNMT1Qp ICYmIFJQTjEpKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJEVEJUIFBFUCBDb25zdHJhaW50IGlzIHN1Y2Nlc3NmdWxseSBT RVQgZm9yIFBDSCBSUCA9ICIsIFRvRGVjaW1hbFN0cmluZyAoU0xPVCkpKQogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CgogICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg KEdSUFQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIlJvb3QgUG9ydCA6ICIsIFBFUk4pKQogICAgICAgICAgICBJZiAoQ29uZFJl Zk9mICheXlBSTVYpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBSTVYg PT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoUEVSTiwgIiBtYXBwZWQgdW5kZXIgVk1EIikpCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDYzKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBJZiAoUFJFUyAoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKChQQUhDICgpIHx8IFBOVk0gKCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmIChJU0dYICgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwNCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo KFBSVFAgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKElTTE4gKCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mICheV0lTVCkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoSVNEVCAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFdXU1QpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFdXU1QgKCkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwNikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoMHg2MykKICAgICAgICB9CiAgICB9Cgog ICAgU2NvcGUgKF9TQi5QQzAwLlJQMDYuUFhTWCkKICAgIHsKICAgICAgICBOYW1lIChQRVJO LCAiUlAwNiIpCiAgICAgICAgTWV0aG9kIChJU0xOLCAwLCBTZXJpYWxpemVkKQogICAgICAg IHsKICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBJZiAoKFNDQ1ggPT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKChQSVhYID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlBDSWUgTEFOIikKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKElTRFQsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcRFRGUykpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmICgoKERURlMgPT0gT25lKSAmJiAoKChSUFMwID09IFNMT1Qp ICYmIFJQTjApIHx8ICgKICAgICAgICAgICAgICAgICAgICAoUlBTMSA9PSBTTE9UKSAmJiBS UE4xKSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENv bmNhdGVuYXRlICgiRFRCVCBQRVAgQ29uc3RyYWludCBpcyBzdWNjZXNzZnVsbHkgU0VUIGZv ciBQQ0ggUlAgPSAiLCBUb0RlY2ltYWxTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChHUlBU LCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJSb290IFBvcnQgOiAiLCBQRVJOKSkKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo Xl5QUk1WKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQUk1WID09IE9u ZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKFBFUk4sICIgbWFwcGVkIHVuZGVyIFZNRCIpKQogICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHg2MykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgSWYgKFBSRVMgKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgo UEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ ZiAoSVNHWCAoKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDQpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChQUlRQ ID09IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChJ U0xOICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXldJU1QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKElTRFQgKCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChXV1NUKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChXV1NUICgpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDYp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICB9CgogICAgICAgICAgICBSZXR1cm4gKDB4NjMpCiAgICAgICAgfQogICAgfQoKICAgIFNj b3BlIChfU0IuUEMwMC5SUDA3LlBYU1gpCiAgICB7CiAgICAgICAgTmFtZSAoUEVSTiwgIlJQ MDciKQogICAgICAgIE1ldGhvZCAoSVNMTiwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIElmICgoQkNDWCA9PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgSWYgKChTQ0NYID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmICgoUElYWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQQ0llIExBTiIpCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgIH0KCiAgICAgICAgTWV0aG9kIChJU0RULCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsK ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXERURlMpKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBJZiAoKChEVEZTID09IE9uZSkgJiYgKCgoUlBTMCA9PSBTTE9UKSAmJiBS UE4wKSB8fCAoCiAgICAgICAgICAgICAgICAgICAgKFJQUzEgPT0gU0xPVCkgJiYgUlBOMSkp KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRl bmF0ZSAoIkRUQlQgUEVQIENvbnN0cmFpbnQgaXMgc3VjY2Vzc2Z1bGx5IFNFVCBmb3IgUENI IFJQID0gIiwgVG9EZWNpbWFsU3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoR1JQVCwgMCwg U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi Um9vdCBQb3J0IDogIiwgUEVSTikpCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKF5eUFJN VikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoUFJNViA9PSBPbmUpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl IChQRVJOLCAiIG1hcHBlZCB1bmRlciBWTUQiKSkKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4NjMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IElmIChQUkVTICgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBBSEMg KCkgfHwgUE5WTSAoKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKElT R1ggKCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDA0KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoUFJUUCA9PSAw eDAyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoSVNMTiAo KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKF5XSVNUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChXSVNUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmIChJU0RUICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDA1KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoV1dTVCkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoV1dTVCAoKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA2KQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgUmV0dXJuICgweDYzKQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAo X1NCLlBDMDAuUlAwOC5QWFNYKQogICAgewogICAgICAgIE5hbWUgKFBFUk4sICJSUDA4IikK ICAgICAgICBNZXRob2QgKElTTE4sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg ICAgICBJZiAoKEJDQ1ggPT0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IElmICgoU0NDWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKFBJWFggPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiUENJZSBMQU4iKQogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICB9 CgogICAgICAgIE1ldGhvZCAoSVNEVCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKFxEVEZTKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgSWYgKCgoRFRGUyA9PSBPbmUpICYmICgoKFJQUzAgPT0gU0xPVCkgJiYgUlBOMCkg fHwgKAogICAgICAgICAgICAgICAgICAgIChSUFMxID09IFNMT1QpICYmIFJQTjEpKSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJEVEJUIFBFUCBDb25zdHJhaW50IGlzIHN1Y2Nlc3NmdWxseSBTRVQgZm9yIFBDSCBSUCA9 ICIsIFRvRGVjaW1hbFN0cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEdSUFQsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlJvb3Qg UG9ydCA6ICIsIFBFUk4pKQogICAgICAgICAgICBJZiAoQ29uZFJlZk9mICheXlBSTVYpKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoUEVS TiwgIiBtYXBwZWQgdW5kZXIgVk1EIikpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDYzKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAo UFJFUyAoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQQUhDICgpIHx8 IFBOVk0gKCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChJU0dYICgp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNCkK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKFBSVFAgPT0gMHgwMikp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKElTTE4gKCkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mICheV0lTVCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoV0lTVCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo SVNEVCAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwNSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFdXU1QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKFdXU1QgKCkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNikKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIFJldHVybiAoMHg2MykKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5Q QzAwLlJQMDkuUFhTWCkKICAgIHsKICAgICAgICBOYW1lIChQRVJOLCAiUlAwOSIpCiAgICAg ICAgTWV0aG9kIChJU0xOLCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg SWYgKChCQ0NYID09IDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo KFNDQ1ggPT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChQSVhYID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlBDSWUgTEFOIikKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgfQoKICAg ICAgICBNZXRob2QgKElTRFQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChcRFRGUykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IElmICgoKERURlMgPT0gT25lKSAmJiAoKChSUFMwID09IFNMT1QpICYmIFJQTjApIHx8ICgK ICAgICAgICAgICAgICAgICAgICAoUlBTMSA9PSBTTE9UKSAmJiBSUE4xKSkpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiRFRC VCBQRVAgQ29uc3RyYWludCBpcyBzdWNjZXNzZnVsbHkgU0VUIGZvciBQQ0ggUlAgPSAiLCBU b0RlY2ltYWxTdHJpbmcgKFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChHUlBULCAwLCBTZXJpYWxpemVk KQogICAgICAgIHsKICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJSb290IFBvcnQg OiAiLCBQRVJOKSkKICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXl5QUk1WKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQUk1WID09IE9uZSkpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKFBFUk4sICIg bWFwcGVkIHVuZGVyIFZNRCIpKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHg2MykK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKFBSRVMg KCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZN ICgpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoSVNHWCAoKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDQpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChQUlRQID09IDB4MDIpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChJU0xOICgpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoXldJU1QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKFdJU1QgKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKElTRFQg KCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChXV1NUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChXV1NUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDYpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAg ICBSZXR1cm4gKDB4NjMpCiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IuUEMwMC5S UDEwLlBYU1gpCiAgICB7CiAgICAgICAgTmFtZSAoUEVSTiwgIlJQMTAiKQogICAgICAgIE1l dGhvZCAoSVNMTiwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmICgo QkNDWCA9PSAweDAyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChTQ0NY ID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgo UElYWCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJQQ0llIExBTiIpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgIH0KCiAgICAgICAg TWV0aG9kIChJU0RULCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoXERURlMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo KChEVEZTID09IE9uZSkgJiYgKCgoUlBTMCA9PSBTTE9UKSAmJiBSUE4wKSB8fCAoCiAgICAg ICAgICAgICAgICAgICAgKFJQUzEgPT0gU0xPVCkgJiYgUlBOMSkpKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkRUQlQgUEVQ IENvbnN0cmFpbnQgaXMgc3VjY2Vzc2Z1bGx5IFNFVCBmb3IgUENIIFJQID0gIiwgVG9EZWNp bWFsU3RyaW5nIChTTE9UKSkpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoR1JQVCwgMCwgU2VyaWFsaXplZCkKICAg ICAgICB7CiAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUm9vdCBQb3J0IDogIiwg UEVSTikpCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKF5eUFJNVikpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIElmICgoUFJNViA9PSBPbmUpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlIChQRVJOLCAiIG1hcHBl ZCB1bmRlciBWTUQiKSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4NjMpCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChQUkVTICgpKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFBBSEMgKCkgfHwgUE5WTSAoKSkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKElTR1ggKCkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA0KQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoUFJUUCA9PSAweDAyKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoSVNMTiAoKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKF5X SVNUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm IChXSVNUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChJU0RUICgpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDA1KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoV1dTVCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoV1dTVCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA2KQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0 dXJuICgweDYzKQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLlBDMDAuUlAxMS5Q WFNYKQogICAgewogICAgICAgIE5hbWUgKFBFUk4sICJSUDExIikKICAgICAgICBNZXRob2Qg KElTTE4sIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEJDQ1gg PT0gMHgwMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoU0NDWCA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFBJWFgg PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiUENJZSBMQU4iKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICB9CgogICAgICAgIE1ldGhv ZCAoSVNEVCwgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFxEVEZTKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoRFRG UyA9PSBPbmUpICYmICgoKFJQUzAgPT0gU0xPVCkgJiYgUlBOMCkgfHwgKAogICAgICAgICAg ICAgICAgICAgIChSUFMxID09IFNMT1QpICYmIFJQTjEpKSkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJEVEJUIFBFUCBDb25z dHJhaW50IGlzIHN1Y2Nlc3NmdWxseSBTRVQgZm9yIFBDSCBSUCA9ICIsIFRvRGVjaW1hbFN0 cmluZyAoU0xPVCkpKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgfQoKICAgICAgICBNZXRob2QgKEdSUFQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ewogICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlJvb3QgUG9ydCA6ICIsIFBFUk4p KQogICAgICAgICAgICBJZiAoQ29uZFJlZk9mICheXlBSTVYpKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBJZiAoKFBSTVYgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoUEVSTiwgIiBtYXBwZWQgdW5k ZXIgVk1EIikpCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDYzKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoUFJFUyAoKSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKChQQUhDICgpIHx8IFBOVk0gKCkpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChJU0dYICgpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNCkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoKFBSVFAgPT0gMHgwMikpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKElTTE4gKCkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mICheV0lTVCkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoV0lT VCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoSVNEVCAoKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFdXU1QpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKFdXU1QgKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNikKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAo MHg2MykKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAwLlJQMTIuUFhTWCkK ICAgIHsKICAgICAgICBOYW1lIChQRVJOLCAiUlAxMiIpCiAgICAgICAgTWV0aG9kIChJU0xO LCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChCQ0NYID09IDB4 MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFNDQ1ggPT0gWmVybykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChQSVhYID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIlBDSWUgTEFOIikKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKElT RFQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChcRFRGUykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKERURlMgPT0g T25lKSAmJiAoKChSUFMwID09IFNMT1QpICYmIFJQTjApIHx8ICgKICAgICAgICAgICAgICAg ICAgICAoUlBTMSA9PSBTTE9UKSAmJiBSUE4xKSkpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiRFRCVCBQRVAgQ29uc3RyYWlu dCBpcyBzdWNjZXNzZnVsbHkgU0VUIGZvciBQQ0ggUlAgPSAiLCBUb0RlY2ltYWxTdHJpbmcg KFNMT1QpKSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg IH0KCiAgICAgICAgTWV0aG9kIChHUlBULCAwLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAg ICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJSb290IFBvcnQgOiAiLCBQRVJOKSkKICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXl5QUk1WKSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSWYgKChQUk1WID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKFBFUk4sICIgbWFwcGVkIHVuZGVyIFZN RCIpKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHg2MykKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKFBSRVMgKCkpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIElmICgoUEFIQyAoKSB8fCBQTlZNICgpKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoSVNHWCAoKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDQpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgSWYgKChQUlRQID09IDB4MDIpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmIChJU0xOICgpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXldJU1QpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFdJU1QgKCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKElTRFQgKCkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDUpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChX V1NUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm IChXV1NUICgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKDB4NjMp CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IpCiAgICB7CiAgICAgICAgRGV2aWNl IChQRVBEKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoREVWQywgWmVybykKICAgICAg ICAgICAgTmFtZSAoREVWUywgWmVybykKICAgICAgICAgICAgTmFtZSAoSVBESSwgWmVybykK ICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDMzQTEiIC8qIEludGVsIFBvd2VyIEVuZ2lu ZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsIEVp c2FJZCAoIlBOUDBEODAiKSAvKiBXaW5kb3dzLWNvbXBhdGlibGUgU3lzdGVtIFBvd2VyIE1h bmFnZW1lbnQgQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAg ICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAg IE5hbWUgKFBDUDAsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUg KFBDUDEsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0pCiAgICAgICAgICAgIE5hbWUgKFBDUDIsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAg ICAgICAgICAgICAgICAweDAyCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIE5hbWUgKFBDUDMsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAg ICAgICAgICAweDAzCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAg ICAgIE5hbWUgKERFVlksIFBhY2thZ2UgKDB4NzgpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQu UmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2Vy dmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAK ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5S ZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVk IiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2 ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNl cnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJl c2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQu UmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2Vy dmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5S ZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2 ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJl c2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQi LCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZl ZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2Vy dmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVz ZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5S ZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg IlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2 ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJl c2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZl ZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVz ZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIs IAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVk LlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2 ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNl cnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJl c2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAz KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAi UmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZl ZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4 MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVz ZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVk LlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAz KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNl cnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwg CiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQu UmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZl ZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2Vy dmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVz ZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJS ZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVk LlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgx CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNl cnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQu UmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2Vy dmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAK ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5S ZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVk IiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2 ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNl cnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJl c2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQu UmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2Vy dmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5S ZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2 ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAog ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJl c2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQi LCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZl ZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2Vy dmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVz ZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5S ZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg IlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2 ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJl c2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZl ZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVz ZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIs IAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVk LlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2 ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNl cnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJl c2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAz KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAi UmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZl ZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4 MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVz ZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVk LlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAz KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNl cnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwg CiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQu UmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZl ZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2Vy dmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVz ZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJS ZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVk LlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgx CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNl cnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQu UmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2Vy dmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAK ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5S ZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVk IiwgCiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHg4MQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2 ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNl cnZlZCIsIAogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlJl c2VydmVkLlJlc2VydmVkLlJlc2VydmVkLlJlc2VydmVkIiwgCiAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQuUmVzZXJ2ZWQuUmVzZXJ2ZWQu UmVzZXJ2ZWQiLCAKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDgxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICJSZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZC5SZXNlcnZlZCIsIAogICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChVUERFLCA0 LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKERF VkMgPCBERVZTKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo KFNpemVPZiAoQXJnMSkgIT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDAgPSBDb25jYXRlbmF0ZSAoQ29uY2F0ZW5hdGUgKEFy ZzAsICIuIiksIEFyZzEpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCA9IEFyZzAKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKERFVlkgW0RFVkNdKSBbWmVyb10gPSBMb2NhbDAKICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzAgPT0gIlJlc2VydmVkIikpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBERVZDKysKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoREVWWSBbREVWQ10pIFtPbmVdID0gQXJnMgogICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKERFVlkgW0RFVkNdKSBbMHgwMl0gPSBQQ1Aw IC8qIFxfU0JfLlBFUEQuUENQMCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKChBcmczID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChERVZZIFtERVZDXSkgWzB4MDJd ID0gUENQMSAvKiBcX1NCXy5QRVBELlBDUDEgKi8KICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMyA9PSAweDAyKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKERFVlkgW0RFVkNd KSBbMHgwMl0gPSBQQ1AyIC8qIFxfU0JfLlBFUEQuUENQMiAqLwogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmczID09IDB4MDMpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoREVW WSBbREVWQ10pIFsweDAyXSA9IFBDUDMgLyogXF9TQl8uUEVQRC5QQ1AzICovCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQRVAgRXJyb3IgISEhIFVu a25vd24gRC0gc3RhdGUgY29uc3RyYWludCBpcyBwYXNzZWQuLiIpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkRFVlkg ZW50cnkgaW5kZXggOiIsIFRvRGVjaW1hbFN0cmluZyAoREVWQykpKQogICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiRGV2aWNlIERlc2NyaXB0b3IgICAgICAgICAg ICAgICAgICA6IiwgRGVyZWZPZiAoRGVyZWZPZiAoREVWWSBbREVWQ10pIFtaZXJvXSkKICAg ICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25j YXRlbmF0ZSAoIkNvbnN0cmFpbnQgKEVuYWJsZS9EaXNhYmxlKSAgICAgICAgOiIsIERlcmVm T2YgKERlcmVmT2YgKERFVlkgW0RFVkNdKSBbT25lXSkKICAgICAgICAgICAgICAgICAgICAg ICAgKSkKICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkNvbnN0cmFp bnQgYXBwbGllZCAoRDAvRDBGMS9EMi9EMykgOiIsIEFyZzMpKQogICAgICAgICAgICAgICAg ICAgIEFEQkcgKCItLS0tLS0tLS0tLS0gIikKICAgICAgICAgICAgICAgICAgICBBREJHICgi IikKICAgICAgICAgICAgICAgICAgICBERVZDKysKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIlBFUCBVUERFIEVycm9yISEhISBERVZZIHNpemUgaXMgZXhj ZWRkZWQsIERFVlkgc2l6ZSA9ICIsIFRvRGVjaW1hbFN0cmluZyAoREVWUykpKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFVQUFIsIDQs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKEFyZzApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IEdSUEMgKEFyZzEpCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgIT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBVUERF IChBcmcyLCBBcmczLCBPbmUsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgVVBERSAoQXJnMiwgQXJnMywgWmVybywgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChHVUNQLCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBJZiAoKChQRVBDICYgQXJnMCkgPT0gQXJnMCkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoUEVQQyAmIChBcmcxIHwgQXJnMCkpID09IChB cmcxIHwgQXJnMAogICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJEMyBGMCBjb25zdHJhaW50 IikKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRDAgRjEgY29uc3RyYWludCIpCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiTm8gY29uc3RyYWludCIpCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEdSUEMsIDEsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBPbmUpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQQ0lFIFN0b3JhZ2UgUEVQIikK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdVQ1AgKDB4NDAwMDAwMDAsIDB4ODAwMDAw MDApKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAw eDAyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiUENJ RSBMQU4gUEVQIikKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdVQ1AgKDB4MDAwMDAw MDEwMDAwMDAwMCwgMHgwMDAwMDAwMjAwMDAwMDAwKSkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgQURCRyAoIlBDSUUgV0xBTiBQRVAiKQogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoR1VDUCAoMHgwMDAwMDAwNDAwMDAwMDAwLCAweDAwMDAwMDA4MDAw MDAwMDApKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSAweDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgi UENJRSBHcmFwaGljcyBQRVAiKQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1VDUCAo MHgwMDAwMDAxMDAwMDAwMDAwLCAweDAwMDAwMDIwMDAwMDAwMDApKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA1KSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiUENIIFBDSUUgRFRCVCBQRVAiKQog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1VDUCAoMHgwMDQwMDAwMCwgMHgwMDQwMDAw MCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4 MDYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJQQ0lF IFdXQU4gUEVQIikKICAgICAgICAgICAgICAgICAgICBJZiAoKFdSVE8gPT0gMHgwMykpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUEVQ IENvbnN0cmFpbnQgPSBEMyIpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw MykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgo V1JUTyA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJQRVAgQ29uc3RyYWludCA9IEQwIikKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJQRVAgQ29uc3RyYWludCA9IG5vIGNvbnN0cmFpbnQiKQogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiUENJRSBPdGhlcnMi KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1VDUCAoMHgwMDAwMDA0MDAwMDAwMDAw LCAweDAwMDAwMDgwMDAwMDAwMDApKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIEFEQkcgKCJQQ0lFIEVQIE5PVCBwcmVzZW50IikKICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChTUERFLCAwLCBT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoIUVTUEMpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMw MC5TQVQwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBVUERFICgi XFxfU0IuUEMwMCIsICJTQVQwLlBSVDAiLCBeXlBDMDAuU0FUMC5QUlQwLlBSRVMgKCksIDB4 MDMpCiAgICAgICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiU0FUMC5QUlQx IiwgXl5QQzAwLlNBVDAuUFJUMS5QUkVTICgpLCAweDAzKQogICAgICAgICAgICAgICAgICAg IFVQREUgKCJcXF9TQi5QQzAwIiwgIlNBVDAuUFJUMiIsIF5eUEMwMC5TQVQwLlBSVDIuUFJF UyAoKSwgMHgwMykKICAgICAgICAgICAgICAgICAgICBVUERFICgiXFxfU0IuUEMwMCIsICJT QVQwLlBSVDMiLCBeXlBDMDAuU0FUMC5QUlQzLlBSRVMgKCksIDB4MDMpCiAgICAgICAgICAg ICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiU0FUMC5QUlQ0IiwgXl5QQzAwLlNBVDAu UFJUNC5QUkVTICgpLCAweDAzKQogICAgICAgICAgICAgICAgICAgIFVQREUgKCJcXF9TQi5Q QzAwIiwgIlNBVDAuUFJUNSIsIF5eUEMwMC5TQVQwLlBSVDUuUFJFUyAoKSwgMHgwMykKICAg ICAgICAgICAgICAgICAgICBVUERFICgiXFxfU0IuUEMwMCIsICJTQVQwLlBSVDYiLCBeXlBD MDAuU0FUMC5QUlQ2LlBSRVMgKCksIDB4MDMpCiAgICAgICAgICAgICAgICAgICAgVVBERSAo IlxcX1NCLlBDMDAiLCAiU0FUMC5QUlQ3IiwgXl5QQzAwLlNBVDAuUFJUNy5QUkVTICgpLCAw eDAzKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo b2QgKFVQRFYsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IERFVlMgPSBTaXplT2YgKERFVlkpCiAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIlBFUCBERVZZIHNpemUgPSAiLCBUb0RlY2ltYWxTdHJpbmcgKERFVlMpKSkKICAgICAg ICAgICAgICAgIFNQREUgKCkKICAgICAgICAgICAgICAgIElmICgoKChQRVBDICYgMHgxMDAw MDAwMCkgPj4gMHgxQykgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKCgoUEVQQyAmIDB4MzAwMDAwMDApID4+IDB4MUMpID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBVUERFICgiXFxf U0IuUEMwMCIsICJTQVQwIiwgKChQRVBDICYgMHgxMDAwMDAwMCkgPj4gMHgxQyksIE9uZSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoKChQ RVBDICYgMHgzMDAwMDAwMCkgPj4gMHgxQykgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBVUERFICgiXFxfU0IuUEMwMCIsICJTQVQw IiwgKChQRVBDICYgMHgxMDAwMDAwMCkgPj4gMHgxQyksIDB4MDMpCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoKChQ RVBDICYgMHgzMDAwMDAwMCkgPj4gMHgxQykgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiU0FUMC5WT0wwIiwg T25lLCBPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJQZXAgVENOVCA6ICIsIFRvSGV4U3RyaW5nIChUQ05UKSkpCiAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICBXaGlsZSAoKExvY2FsMCA8 IFRDTlQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9j YWwwIDwgMHgwQSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBDb25jYXRlbmF0ZSAoIlBSMCIsIExvY2FsMCwgTG9jYWwxKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoIlBSIiwgVG9EZWNpbWFs U3RyaW5nIChMb2NhbDApLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBJZiAoKChQRVBDICYgMHgwMDAxMDAwMCkgPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBVUERFICgiXFxfU0Ii LCBMb2NhbDEsIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFVQREUgKCJcXF9TQiIsIExvY2FsMSwgT25lLCBaZXJvKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IE9uZQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIFVQREUgKCJcXF9TQi5QQzAwIiwgIkdGWDAiLCAo KFBFUEMgJiAweDgwMDApID4+IDB4MEYpLCAweDAzKQogICAgICAgICAgICAgICAgVVBERSAo IlxcX1NCLlBDMDAiLCAiSERBUyIsIE9uZSwgR1VDUCAoMHgwNDAwMDAwMCwgMHgwODAwMDAw MCkpCiAgICAgICAgICAgICAgICBVUERFICgiXFxfU0IuUEMwMCIsICJVQTAwIiwgKChQRVBD ICYgT25lKSA+PiBaZXJvKSwgMHgwMykKICAgICAgICAgICAgICAgIFVQREUgKCJcXF9TQi5Q QzAwIiwgIlVBMDEiLCAoKFBFUEMgJiAweDAyKSA+PiBPbmUpLCAweDAzKQogICAgICAgICAg ICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiVUEwMiIsICgoUEVQQyAmIDB4MDQpID4+IDB4 MDIpLCAweDAzKQogICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiSTJDMCIs ICgoUEVQQyAmIDB4MDgpID4+IDB4MDMpLCAweDAzKQogICAgICAgICAgICAgICAgVVBERSAo IlxcX1NCLlBDMDAiLCAiSTJDMSIsICgoUEVQQyAmIDB4MTApID4+IDB4MDQpLCAweDAzKQog ICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiSTJDMiIsICgoUEVQQyAmIDB4 MjApID4+IDB4MDUpLCAweDAzKQogICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAi LCAiSTJDMyIsICgoUEVQQyAmIDB4NDApID4+IDB4MDYpLCAweDAzKQogICAgICAgICAgICAg ICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiSTJDNCIsICgoUEVQQyAmIDB4ODApID4+IDB4MDcp LCAweDAzKQogICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiSTJDNSIsICgo UEVQQyAmIDB4MDEwMCkgPj4gMHgwOCksIDB4MDMpCiAgICAgICAgICAgICAgICBVUERFICgi XFxfU0IuUEMwMCIsICJJMkM2IiwgKChQRVBDICYgMHgwMjAwKSA+PiAweDA5KSwgMHgwMykK ICAgICAgICAgICAgICAgIFVQREUgKCJcXF9TQi5QQzAwIiwgIkkyQzciLCAoKFBFUEMgJiAw eDA0MDApID4+IDB4MEEpLCAweDAzKQogICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBD MDAiLCAiU1BJMCIsICgoUEVQQyAmIDB4MDgwMCkgPj4gMHgwQiksIDB4MDMpCiAgICAgICAg ICAgICAgICBVUERFICgiXFxfU0IuUEMwMCIsICJTUEkxIiwgKChQRVBDICYgMHgxMDAwKSA+ PiAweDBDKSwgMHgwMykKICAgICAgICAgICAgICAgIFVQREUgKCJcXF9TQi5QQzAwIiwgIlNQ STIiLCAoKFBFUEMgJiAweDIwMDApID4+IDB4MEQpLCAweDAzKQogICAgICAgICAgICAgICAg VVBERSAoIlxcX1NCLlBDMDAiLCAiWEhDSSIsICgoUEVQQyAmIDB4NDAwMCkgPj4gMHgwRSks IDB4MDMpCiAgICAgICAgICAgICAgICBVUERFICgiXFxfU0IuUEMwMCIsICJQRU1DIiwgKChQ RVBDICYgMHgwMDAwMDEwMDAwMDAwMDAwKSA+PiAweDI4KSwgMHgwMykKICAgICAgICAgICAg ICAgIFVQREUgKCJcXF9TQi5QQzAwIiwgIlBTREMiLCAoKFBFUEMgJiAweDAwMDAwMjAwMDAw MDAwMDApID4+IDB4MjkpLCAweDAzKQogICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBD MDAiLCAiSVBVMCIsICgoUEVQQyAmIDB4MDAwMjAwMDApID4+IDB4MTEpLCAweDAzKQogICAg ICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiSEVDSSIsICgoUEVQQyAmIDB4MDAw NDAwMDApID4+IDB4MTIpLCBPbmUpCiAgICAgICAgICAgICAgICBJZiAoKCgoKFBFUEMgJiAw eDAwMDgwMDAwKSA+PiAweDEzKSA9PSBaZXJvKSB8fCAoCiAgICAgICAgICAgICAgICAgICAg R0JFUyA9PSBaZXJvKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg VVBERSAoIlxcX1NCLlBDMDAiLCAiR0xBTiIsIFplcm8sIDB4MDMpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiR0xBTiIsIE9uZSwgMHgwMykKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBVUERFICgiXFxfU0IuUEMwMCIsICJUSEMw IiwgKChQRVBDICYgMHgwMDEwMDAwMCkgPj4gMHgxNCksIDB4MDMpCiAgICAgICAgICAgICAg ICBVUERFICgiXFxfU0IuUEMwMCIsICJUSEMxIiwgKChQRVBDICYgMHgwMDIwMDAwMCkgPj4g MHgxNSksIDB4MDMpCiAgICAgICAgICAgICAgICBJZiAoKFdSVE8gPT0gT25lKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBVUERFICgiVVNCXFxWSURfODA4NyZQ SURfMEFDOSZNSSoiLCAiIiwgT25lLCBXUlRPKQogICAgICAgICAgICAgICAgICAgIEFEQkcg KCJQRVAgQ29uc3RyYWludCBmb3IgQ0RDIE1CSU0gPSBEMEYxIikKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBVUERFICgiVVNCXFxWSURfODA4NyZQSURfMEFDOSZNSSoiLCAiIiwgWmVybywg MHgwMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBVUERFICgiXFxfU0Iu UEMwMCIsICJHTkEwIiwgKChQRVBDICYgMHgwMDgwMDAwMCkgPj4gMHgxNyksIDB4MDMpCiAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuSEVDMykpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIkhFQ0kzIFBFUCIpCiAgICAg ICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiSEVDMyIsICgoUEVQQyAmIDB4 MDIwMDAwMDApID4+IDB4MTkpLCBPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiUFVGMCIsICgoUEVQQyAmIDB4MDAwMDA4MDAw MDAwMDAwMCkgPj4gMHgyQiksIDB4MDMpCiAgICAgICAgICAgICAgICBVUERFICgiXFxfU0Iu UEMwMCIsICJQVUYxIiwgKChQRVBDICYgMHgwMDAwMTAwMDAwMDAwMDAwKSA+PiAweDJDKSwg MHgwMykKICAgICAgICAgICAgICAgIFVQREUgKCJcXF9TQi5QQzAwIiwgIlZQVTAiLCAoKFBF UEMgJiAweDAwMDAwNDAwMDAwMDAwMDApID4+IDB4MkEpLCAweDAzKQogICAgICAgICAgICAg ICAgSWYgKCgoUEVQQyAmIDB4MDA0MDAwMDApICE9IFplcm8pKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoVEhDRSA9PSBPbmUpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAi VFhIQyIsIE9uZSwgMHgwMykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiVFhIQyIsIFplcm8sIDB4MDMpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFREQ0UgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFVQREUgKCJcXF9T Qi5QQzAwIiwgIlRYREMiLCBPbmUsIDB4MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFVQREUgKCJcXF9TQi5QQzAwIiwgIlRYREMiLCBaZXJvLCAweDAzKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgVVBERSAoIlxcX1NC LlBDMDAiLCAiVFJQMCIsIFRSRTAsIDB4MDMpCiAgICAgICAgICAgICAgICAgICAgVVBERSAo IlxcX1NCLlBDMDAiLCAiVFJQMSIsIFRSRTEsIDB4MDMpCiAgICAgICAgICAgICAgICAgICAg VVBERSAoIlxcX1NCLlBDMDAiLCAiVFJQMiIsIFRSRTIsIDB4MDMpCiAgICAgICAgICAgICAg ICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiVFJQMyIsIFRSRTMsIDB4MDMpCiAgICAgICAg ICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiVERNMCIsIERNRTAsIDB4MDMpCiAg ICAgICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiVERNMSIsIERNRTEsIDB4 MDMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiVFhIQyIs IFplcm8sIDB4MDMpCiAgICAgICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAi VFhEQyIsIFplcm8sIDB4MDMpCiAgICAgICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBD MDAiLCAiVFJQMCIsIFplcm8sIDB4MDMpCiAgICAgICAgICAgICAgICAgICAgVVBERSAoIlxc X1NCLlBDMDAiLCAiVFJQMSIsIFplcm8sIDB4MDMpCiAgICAgICAgICAgICAgICAgICAgVVBE RSAoIlxcX1NCLlBDMDAiLCAiVFJQMiIsIFplcm8sIDB4MDMpCiAgICAgICAgICAgICAgICAg ICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiVFJQMyIsIFplcm8sIDB4MDMpCiAgICAgICAgICAg ICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiVERNMCIsIFplcm8sIDB4MDMpCiAgICAg ICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDAiLCAiVERNMSIsIFplcm8sIDB4MDMp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgVVBERSAoIlxcX1NCLlBDMDEi LCAiVFJQMCIsIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICBVUERFICgiXFxfU0IuUEMw MSIsICJUUlAxIiwgWmVybywgWmVybykKICAgICAgICAgICAgICAgIFVQREUgKCJcXF9TQi5Q QzAxIiwgIlRSUDIiLCBaZXJvLCBaZXJvKQogICAgICAgICAgICAgICAgVVBERSAoIlxcX1NC LlBDMDEiLCAiVFJQMyIsIFplcm8sIFplcm8pCiAgICAgICAgICAgICAgICBVUFBSICheXlBD MDAuUlAwMSwgXl5QQzAwLlJQMDEuUFhTWC5HUlBUICgpLCAiXFxfU0IuUEMwMCIsICJSUDAx IikKICAgICAgICAgICAgICAgIFVQUFIgKF5eUEMwMC5SUDAyLCBeXlBDMDAuUlAwMi5QWFNY LkdSUFQgKCksICJcXF9TQi5QQzAwIiwgIlJQMDIiKQogICAgICAgICAgICAgICAgVVBQUiAo Xl5QQzAwLlJQMDMsIF5eUEMwMC5SUDAzLlBYU1guR1JQVCAoKSwgIlxcX1NCLlBDMDAiLCAi UlAwMyIpCiAgICAgICAgICAgICAgICBVUFBSICheXlBDMDAuUlAwNCwgXl5QQzAwLlJQMDQu UFhTWC5HUlBUICgpLCAiXFxfU0IuUEMwMCIsICJSUDA0IikKICAgICAgICAgICAgICAgIFVQ UFIgKF5eUEMwMC5SUDA1LCBeXlBDMDAuUlAwNS5QWFNYLkdSUFQgKCksICJcXF9TQi5QQzAw IiwgIlJQMDUiKQogICAgICAgICAgICAgICAgVVBQUiAoXl5QQzAwLlJQMDYsIF5eUEMwMC5S UDA2LlBYU1guR1JQVCAoKSwgIlxcX1NCLlBDMDAiLCAiUlAwNiIpCiAgICAgICAgICAgICAg ICBVUFBSICheXlBDMDAuUlAwNywgXl5QQzAwLlJQMDcuUFhTWC5HUlBUICgpLCAiXFxfU0Iu UEMwMCIsICJSUDA3IikKICAgICAgICAgICAgICAgIFVQUFIgKF5eUEMwMC5SUDA4LCBeXlBD MDAuUlAwOC5QWFNYLkdSUFQgKCksICJcXF9TQi5QQzAwIiwgIlJQMDgiKQogICAgICAgICAg ICAgICAgVVBQUiAoXl5QQzAwLlJQMDksIF5eUEMwMC5SUDA5LlBYU1guR1JQVCAoKSwgIlxc X1NCLlBDMDAiLCAiUlAwOSIpCiAgICAgICAgICAgICAgICBVUFBSICheXlBDMDAuUlAxMCwg Xl5QQzAwLlJQMTAuUFhTWC5HUlBUICgpLCAiXFxfU0IuUEMwMCIsICJSUDEwIikKICAgICAg ICAgICAgICAgIFVQUFIgKF5eUEMwMC5SUDExLCBeXlBDMDAuUlAxMS5QWFNYLkdSUFQgKCks ICJcXF9TQi5QQzAwIiwgIlJQMTEiKQogICAgICAgICAgICAgICAgVVBQUiAoXl5QQzAwLlJQ MTIsIF5eUEMwMC5SUDEyLlBYU1guR1JQVCAoKSwgIlxcX1NCLlBDMDAiLCAiUlAxMiIpCiAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuQ05WVy5WRElEKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKF5eUEMwMC5DTlZXLlZE SUQgIT0gMHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiQ05WaS0gV2lGSSBQRVAiKQogICAgICAgICAgICAgICAgICAg ICAgICBVUERFICgiXFxfU0IuUEMwMCIsICJDTlZXIiwgT25lLCAweDAzKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBMb2NhbDAg PSBERVZDIC8qIFxfU0JfLlBFUEQuREVWQyAqLwogICAgICAgICAgICAgICAgV2hpbGUgKChM b2NhbDAgPCBERVZTKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBV UERFICgiUmVzZXJ2ZWQiLCBUb0RlY2ltYWxTdHJpbmcgKExvY2FsMCksIFplcm8sIFplcm8p CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IE9uZQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIERFVkMgPSBaZXJvCiAgICAgICAgICAgICAgICBBREJHICgiW1BF UF0gQWxsIFBlcCBDb25zdHJhaW50cyBhcmUgdXBkYXRlZCAiKQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBOYW1lIChCQ0NELCBQYWNrYWdlICgweDAwKXt9KQogICAgICAgICAgICBO YW1lIChEU0RWLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBUb1VVSUQgKCJkYWZmZDgxNC02ZWJhLTRkOGMtOGE5MS1iYzliYmY0YWEzMDEiKSAvKiBE ZXZpY2UgUHJvcGVydGllcyBmb3IgX0RTRCAqLywgCiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAi aW50ZWwtY2VjLXBzb24tc3dpdGNoaW5nLWVuYWJsZWQtaW4tczAiLCAKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfRFNELCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX0RTRDogRGV2aWNlLVNwZWNpZmljIERhdGEKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgV2hpbGUgKChM b2NhbDAgPCBTaXplT2YgKERTRFYpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKERlcmVmT2YgKERTRFYgW0xvY2FsMF0pICE9IFRvVVVJRCAoImRhZmZk ODE0LTZlYmEtNGQ4Yy04YTkxLWJjOWJiZjRhYTMwMSIpIC8qIERldmljZSBQcm9wZXJ0aWVz IGZvciBfRFNEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIENvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBMb2NhbDEgPSBEZXJlZk9mIChEU0RWIFsoTG9jYWwwICsgT25lKV0pCiAgICAgICAg ICAgICAgICAgICAgTG9jYWwyID0gWmVybwogICAgICAgICAgICAgICAgICAgIFdoaWxlICgo TG9jYWwyIDwgU2l6ZU9mIChMb2NhbDEpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IERlcmVmT2YgKExvY2FsMSBbTG9jYWwyXSkK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoImludGVsLWNlYy1wc29uLXN3aXRjaGlu Zy1lbmFibGVkLWluLXMwIiA9PSBEZXJlZk9mIChMb2NhbDMgW1plcm9dKSkgJiYgUFNPTikp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJQRVBEOiBTdG9yaW5nIDEgaW4gRFNEViBPYmplY3QiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgRGVyZWZPZiAoRGVyZWZPZiAoRFNEViBbKExvY2FsMCArIE9uZSld KSBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyXSkgW09uZV0gPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwyKysKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExv Y2FsMCArPSAweDAyCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJu IChEU0RWKSAvKiBcX1NCXy5QRVBELkRTRFYgKi8KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoUzBJRCA9PSBPbmUpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERl dmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJQRVBDID0gIiwgVG9IZXhTdHJpbmcgKFBFUEMpKSkKICAgICAg ICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIxMWUwMGQ1Ni1jZTY0LTQ3Y2UtODM3 Yi0xZjg5OGY5YWE0NjEiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHg4MSwgMHgwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IC4uCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNykpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBGTFYgPT0gMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKEVDT04pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRUNPTiA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChQUE9FID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFxfU0IuUEMwMC5MUENCLk5SVFMpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5eUEMwMC5MUENCLk5SVFMgKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA4KSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEZM ViA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoRUNPTikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChFQ09OID09 IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBQT0UgPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkxQQ0IuTlJUUykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5QQzAwLkxQQ0IuTlJUUyAoT25lKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJjNGViNDBhMC02Y2QyLTExZTItYmNmZC0w ODAwMjAwYzlhNjYiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDdGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgog ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFMwSUQgPT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwMCl7fSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChJUERJID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUERWICgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJUERJID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiUEVQIERFVlkgaXMgYWxyZWFk eSBpbml0aWFsaXplZCAhISEgIikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChERVZZKSAvKiBcX1NCXy5QRVBELkRFVlkgKi8K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQkNDRCkgLyogXF9TQl8uUEVQRC5CQ0NEICovCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChc X1NCLlBDMDAuSU1ORykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5eUEMwMC5JTU5HIChBcmcyKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFMwSUQgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRDhY SCAoWmVybywgMHhDNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQ4WEggKE9uZSwg WmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5Q QzAwLklNTkcpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeXlBDMDAuSU1ORyAoQXJnMikKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTMElEID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQ4WEggKFpl cm8sIDB4QzUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEOFhIIChPbmUsIDB4QUIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXlBDMDAuTFBDQi5RX0VDLkVORVggPSAw eDVFCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzIgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiW1BFUF0gZGVlcCBzdGFuZGJ5IGVudHJ5IikKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChTMElEID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdVQU0gKE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5eUEMwMC5MUENCLlFfRUMuRU5FWCA9IDB4NUQKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXF9TQi5QQzAwLlRYSEMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuVERNMCkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKCheXlBDMDAuVERNMC5fU1RBID09IDB4MEYpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKCheXlBDMDAuVERNMC5TQ01FID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKENvbmNhdGVuYXRlICgiVERNMCBzZXQgRFBPRiB0byAiLCBUb0hleFN0cmlu ZyAoTG9jYWwwKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9T Qi5QQzAwLlRETTEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoXl5QQzAwLlRETTEuX1NUQSA9PSAweDBGKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoXl5QQzAwLlRETTEuU0NNRSA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIlRETTEgc2V0IERQT0YgdG8g IiwgVG9IZXhTdHJpbmcgKExvY2FsMCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo TG9jYWwwID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXl5QQzAwLkRQT0YgPSBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChD b25jYXRlbmF0ZSAoIkFsbCBNb25pdG9yIG9mZiBmbGFnOiAiLCBUb0hleFN0cmluZyAoXl5Q QzAwLkRQT0YpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KFxHUFJWKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBREJHICgiW1BFUF0gYWxsb3cgUFNfT04iKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdQUlYgKDB4MDMsIFplcm8pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoKF5eUEMwMC5MUENCLlFfRUMuV09VQiA9PSBaZXJvKSAmJiAo Xl5QQzAwLlhIQ0kuUE1FRSA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5QQzAwLlhIQ0kuUE1FRSA9IFplcm8KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIltQRVBdIGRlZXAgc3RhbmRieSBleGl0 IikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTMElEID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdVQU0gKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5UWEhDKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5QQzAwLkRQT0YgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFxHUFJWKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIltQRVBdIHZldG8gUFNfT04iKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgR1BSViAoMHgwMywgT25lKQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAg ICAgfQogICAgfQoKICAgIERldmljZSAoUFNNKQogICAgewogICAgICAgIE5hbWUgKF9ISUQs IEVpc2FJZCAoIklOVDM0MjAiKSAvKiBJbnRlbCBCbHVldG9vdGggUkYgS2lsbCAqLykgIC8v IF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgTmFtZSAoX1VJRCwgWmVybykgIC8vIF9VSUQ6 IFVuaXF1ZSBJRAogICAgICAgIE5hbWUgKF9TVFIsIFVuaWNvZGUgKCJQb3dlciBTaGFyaW5n IE1hbmFnZXIiKSkgIC8vIF9TVFI6IERlc2NyaXB0aW9uIFN0cmluZwogICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgIHsK ICAgICAgICAgICAgSWYgKChQU01FID09IE9uZSkpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg fQogICAgICAgIH0KCiAgICAgICAgTmFtZSAoU1BMWCwgUGFja2FnZSAoMHgwMikKICAgICAg ICB7CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAg IDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAgICAgICB9 CiAgICAgICAgfSkKICAgICAgICBNZXRob2QgKFNQTEMsIDAsIFNlcmlhbGl6ZWQpCiAgICAg ICAgewogICAgICAgICAgICBEZXJlZk9mIChTUExYIFtPbmVdKSBbWmVyb10gPSBQRFQxIC8q IFxQRFQxICovCiAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFtPbmVdID0gUExN MSAvKiBcUExNMSAqLwogICAgICAgICAgICBEZXJlZk9mIChTUExYIFtPbmVdKSBbMHgwMl0g PSBQVFcxIC8qIFxQVFcxICovCiAgICAgICAgICAgIFJldHVybiAoU1BMWCkgLyogXFBTTV8u U1BMWCAqLwogICAgICAgIH0KCiAgICAgICAgTmFtZSAoRFBMWCwgUGFja2FnZSAoMHgwMikK ICAgICAgICB7CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBQYWNrYWdlICgweDAz KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAg ICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAw MDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAg ICAgICAweDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE1ldGhvZCAo RFBMQywgMCwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIERlcmVmT2YgKERQ TFggW09uZV0pIFtaZXJvXSA9IEREVDEgLyogXEREVDEgKi8KICAgICAgICAgICAgRGVyZWZP ZiAoRFBMWCBbT25lXSkgW09uZV0gPSBERFAxIC8qIFxERFAxICovCiAgICAgICAgICAgIERl cmVmT2YgKERlcmVmT2YgKERQTFggW09uZV0pIFsweDAyXSkgW1plcm9dCiAgICAgICAgICAg ICAgICAgPSBETEkxIC8qIFxETEkxICovCiAgICAgICAgICAgIERlcmVmT2YgKERlcmVmT2Yg KERQTFggW09uZV0pIFsweDAyXSkgW09uZV0KICAgICAgICAgICAgICAgICA9IERQTDEgLyog XERQTDEgKi8KICAgICAgICAgICAgRGVyZWZPZiAoRGVyZWZPZiAoRFBMWCBbT25lXSkgWzB4 MDJdKSBbMHgwMl0KICAgICAgICAgICAgICAgICA9IERUVzEgLyogXERUVzEgKi8KICAgICAg ICAgICAgRGVyZWZPZiAoRGVyZWZPZiAoRFBMWCBbT25lXSkgWzB4MDJdKSBbMHgwM10KICAg ICAgICAgICAgICAgICA9IERNSTEgLyogXERNSTEgKi8KICAgICAgICAgICAgRGVyZWZPZiAo RGVyZWZPZiAoRFBMWCBbT25lXSkgWzB4MDJdKSBbMHgwNF0KICAgICAgICAgICAgICAgICA9 IERNQTEgLyogXERNQTEgKi8KICAgICAgICAgICAgRGVyZWZPZiAoRGVyZWZPZiAoRFBMWCBb T25lXSkgWzB4MDJdKSBbMHgwNV0KICAgICAgICAgICAgICAgICA9IERNVDEgLyogXERNVDEg Ki8KICAgICAgICAgICAgUmV0dXJuIChEUExYKSAvKiBcUFNNXy5EUExYICovCiAgICAgICAg fQogICAgfQoKICAgIFNjb3BlIChfU0IpCiAgICB7CiAgICAgICAgTWV0aG9kIChXRlJLLCAx LCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKChEV0ZLICE9IFplcm8p KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTR09WIChEV0ZLLCBBcmcwKQogICAg ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEJUUkssIDEsIFNlcmlhbGl6 ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKEdCVEsgIT0gWmVybykpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFNHT1YgKEdCVEssIEFyZzApCiAgICAgICAgICAgIH0K ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoR0JUUiwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICB7CiAgICAgICAgICAgIFJldHVybiAoR0dPViAoR0JUSykpCiAgICAgICAgfQogICAg fQoKICAgIElmICgoQ1JGUCA9PSBPbmUpKQogICAgewogICAgICAgIElmICgoQ1dGQyA9PSBP bmUpKQogICAgICAgIHsKICAgICAgICAgICAgU2NvcGUgKF9TQi5QQzAwLkNOVlcpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFNQTFgsIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDgwMDAwMDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRo b2QgKFNQTEMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgRGVyZWZPZiAoU1BMWCBbT25lXSkgW1plcm9dID0gRE9NMSAvKiBcRE9NMSAq LwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0pIFtPbmVdID0gTElN MSAvKiBcTElNMSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFNQTFggW09uZV0p IFsweDAyXSA9IFRJTTEgLyogXFRJTTEgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFNQTFgpIC8qIFxfU0JfLlBDMDAuQ05WVy5TUExYICovCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTmFtZSAoV0FOWCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAs IAogICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwCiAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgTWV0aG9kIChXQU5ELCAwLCBTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdBTlggW09uZV0pIFtaZXJv XSA9IFplcm8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXQU5YIFtPbmVdKSBbT25l XSA9IFRSRDAgLyogXFRSRDAgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXQU5Y IFtPbmVdKSBbMHgwMl0gPSBUUkwwIC8qIFxUUkwwICovCiAgICAgICAgICAgICAgICAgICAg RGVyZWZPZiAoV0FOWCBbMHgwMl0pIFtaZXJvXSA9IE9uZQogICAgICAgICAgICAgICAgICAg IERlcmVmT2YgKFdBTlggWzB4MDJdKSBbT25lXSA9IFRSRDEgLyogXFRSRDEgKi8KICAgICAg ICAgICAgICAgICAgICBEZXJlZk9mIChXQU5YIFsweDAyXSkgWzB4MDJdID0gVFJMMSAvKiBc VFJMMSAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0FOWCkgLyogXF9TQl8uUEMw MC5DTlZXLldBTlggKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1l IChXUkRYLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoV1JERCwgMCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEZXJlZk9m IChXUkRYIFtPbmVdKSBbWmVyb10gPSBXRE0xIC8qIFxXRE0xICovCiAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWCBbT25lXSkgW09uZV0gPSBDSUQxIC8qIFxDSUQxICovCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChXUkRYKSAvKiBcX1NCXy5QQzAwLkNOVlcuV1JE WCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKFdSRFksIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgw MiwgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgyRSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAs IAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4ODAKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChXUkRTLCAwLCBTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdS RFkgW09uZV0pIFtPbmVdID0gU1RYRSAvKiBcU1RYRSAqLwogICAgICAgICAgICAgICAgICAg IERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDAyXSA9IFNUMTAgLyogXFNUMTAgKi8KICAgICAg ICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwM10gPSBTVDExIC8qIFxT VDExICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDRd ID0gU1QxMiAvKiBcU1QxMiAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkg W09uZV0pIFsweDA1XSA9IFNUMTMgLyogXFNUMTMgKi8KICAgICAgICAgICAgICAgICAgICBE ZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwNl0gPSBTVDE0IC8qIFxTVDE0ICovCiAgICAgICAg ICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MDddID0gU1QxNSAvKiBcU1Qx NSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDA4XSA9 IFNUMTYgLyogXFNUMTYgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtP bmVdKSBbMHgwOV0gPSBTVDE3IC8qIFxTVDE3ICovCiAgICAgICAgICAgICAgICAgICAgRGVy ZWZPZiAoV1JEWSBbT25lXSkgWzB4MEFdID0gU1QxOCAvKiBcU1QxOCAqLwogICAgICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDBCXSA9IFNUMTkgLyogXFNUMTkg Ki8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwQ10gPSBT VDUwIC8qIFxTVDUwICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25l XSkgWzB4MERdID0gU1Q1MSAvKiBcU1Q1MSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVm T2YgKFdSRFkgW09uZV0pIFsweDBFXSA9IFNUNTIgLyogXFNUNTIgKi8KICAgICAgICAgICAg ICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgwRl0gPSBTVDUzIC8qIFxTVDUzICov CiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTBdID0gU1Q1 NCAvKiBcU1Q1NCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0p IFsweDExXSA9IFNUNTUgLyogXFNUNTUgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9m IChXUkRZIFtPbmVdKSBbMHgxMl0gPSBTVDU2IC8qIFxTVDU2ICovCiAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MTNdID0gU1Q1NyAvKiBcU1Q1NyAqLwog ICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE0XSA9IFNUNTgg LyogXFNUNTggKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBb MHgxNV0gPSBTVDU5IC8qIFxTVDU5ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAo V1JEWSBbT25lXSkgWzB4MTZdID0gU1Q1QSAvKiBcU1Q1QSAqLwogICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDE3XSA9IFNUNUIgLyogXFNUNUIgKi8KICAg ICAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxOF0gPSBDRDEwIC8q IFxDRDEwICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4 MTldID0gQ0QxMSAvKiBcQ0QxMSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdS RFkgW09uZV0pIFsweDFBXSA9IENEMTIgLyogXENEMTIgKi8KICAgICAgICAgICAgICAgICAg ICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgxQl0gPSBDRDEzIC8qIFxDRDEzICovCiAgICAg ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUNdID0gQ0QxNCAvKiBc Q0QxNCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDFE XSA9IENEMTUgLyogXENEMTUgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZ IFtPbmVdKSBbMHgxRV0gPSBDRDE2IC8qIFxDRDE2ICovCiAgICAgICAgICAgICAgICAgICAg RGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MUZdID0gQ0QxNyAvKiBcQ0QxNyAqLwogICAgICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDIwXSA9IENEMTggLyogXENE MTggKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyMV0g PSBDRDE5IC8qIFxDRDE5ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBb T25lXSkgWzB4MjJdID0gQ0QxQSAvKiBcQ0QxQSAqLwogICAgICAgICAgICAgICAgICAgIERl cmVmT2YgKFdSRFkgW09uZV0pIFsweDIzXSA9IENEMjAgLyogXENEMjAgKi8KICAgICAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyNF0gPSBDRDIxIC8qIFxDRDIx ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjVdID0g Q0QyMiAvKiBcQ0QyMiAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09u ZV0pIFsweDI2XSA9IENEMjMgLyogXENEMjMgKi8KICAgICAgICAgICAgICAgICAgICBEZXJl Zk9mIChXUkRZIFtPbmVdKSBbMHgyN10gPSBDRDI0IC8qIFxDRDI0ICovCiAgICAgICAgICAg ICAgICAgICAgRGVyZWZPZiAoV1JEWSBbT25lXSkgWzB4MjhdID0gQ0QyNSAvKiBcQ0QyNSAq LwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDI5XSA9IENE MjYgLyogXENEMjYgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVd KSBbMHgyQV0gPSBDRDI3IC8qIFxDRDI3ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1JEWSBbT25lXSkgWzB4MkJdID0gQ0QyOCAvKiBcQ0QyOCAqLwogICAgICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdSRFkgW09uZV0pIFsweDJDXSA9IENEMjkgLyogXENEMjkgKi8K ICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXUkRZIFtPbmVdKSBbMHgyRF0gPSBDRDJB IC8qIFxDRDJBICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXUkRZKSAvKiBcX1NC Xy5QQzAwLkNOVlcuV1JEWSAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE5hbWUgKEVXUlksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHg4NykK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAs IAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAs IAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAs IAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRo b2QgKEVXUkQsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgW09uZV0gPSBTVERFIC8qIFxTVERFICov CiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDJdID0gU1RS UyAvKiBcU1RSUyAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDAzXSA9IFNUMjAgLyogXFNUMjAgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgwNF0gPSBTVDIxIC8qIFxTVDIxICovCiAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MDVdID0gU1QyMiAvKiBcU1QyMiAqLwog ICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA2XSA9IFNUMjMg LyogXFNUMjMgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgwN10gPSBTVDI0IC8qIFxTVDI0ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4MDhdID0gU1QyNSAvKiBcU1QyNSAqLwogICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDA5XSA9IFNUMjYgLyogXFNUMjYgKi8KICAg ICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwQV0gPSBTVDI3IC8q IFxTVDI3ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 MEJdID0gU1QyOCAvKiBcU1QyOCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDBDXSA9IFNUMjkgLyogXFNUMjkgKi8KICAgICAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgwRF0gPSBTVDYwIC8qIFxTVDYwICovCiAgICAg ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MEVdID0gU1Q2MSAvKiBc U1Q2MSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDBG XSA9IFNUNjIgLyogXFNUNjIgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHgxMF0gPSBTVDYzIC8qIFxTVDYzICovCiAgICAgICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTFdID0gU1Q2NCAvKiBcU1Q2NCAqLwogICAgICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDEyXSA9IFNUNjUgLyogXFNU NjUgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxM10g PSBTVDY2IC8qIFxTVDY2ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4MTRdID0gU1Q2NyAvKiBcU1Q2NyAqLwogICAgICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDE1XSA9IFNUNjggLyogXFNUNjggKi8KICAgICAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxNl0gPSBTVDY5IC8qIFxTVDY5 ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MTddID0g U1Q2QSAvKiBcU1Q2QSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDE4XSA9IFNUNkIgLyogXFNUNkIgKi8KICAgICAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHgxOV0gPSBTVDMwIC8qIFxTVDMwICovCiAgICAgICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MUFdID0gU1QzMSAvKiBcU1QzMSAq LwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFCXSA9IFNU MzIgLyogXFNUMzIgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHgxQ10gPSBTVDMzIC8qIFxTVDMzICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4MURdID0gU1QzNCAvKiBcU1QzNCAqLwogICAgICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDFFXSA9IFNUMzUgLyogXFNUMzUgKi8K ICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgxRl0gPSBTVDM2 IC8qIFxTVDM2ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4MjBdID0gU1QzNyAvKiBcU1QzNyAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDIxXSA9IFNUMzggLyogXFNUMzggKi8KICAgICAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyMl0gPSBTVDM5IC8qIFxTVDM5ICovCiAg ICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjNdID0gU1Q3MCAv KiBcU1Q3MCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDI0XSA9IFNUNzEgLyogXFNUNzEgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHgyNV0gPSBTVDcyIC8qIFxTVDcyICovCiAgICAgICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MjZdID0gU1Q3MyAvKiBcU1Q3MyAqLwogICAg ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDI3XSA9IFNUNzQgLyog XFNUNzQgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgy OF0gPSBTVDc1IC8qIFxTVDc1ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4MjldID0gU1Q3NiAvKiBcU1Q3NiAqLwogICAgICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDJBXSA9IFNUNzcgLyogXFNUNzcgKi8KICAgICAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyQl0gPSBTVDc4IC8qIFxT VDc4ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkNd ID0gU1Q3OSAvKiBcU1Q3OSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDJEXSA9IFNUN0EgLyogXFNUN0EgKi8KICAgICAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgyRV0gPSBTVDdCIC8qIFxTVDdCICovCiAgICAgICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MkZdID0gU1Q0MCAvKiBcU1Q0 MCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMwXSA9 IFNUNDEgLyogXFNUNDEgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHgzMV0gPSBTVDQyIC8qIFxTVDQyICovCiAgICAgICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4MzJdID0gU1Q0MyAvKiBcU1Q0MyAqLwogICAgICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDMzXSA9IFNUNDQgLyogXFNUNDQg Ki8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzNF0gPSBT VDQ1IC8qIFxTVDQ1ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4MzVdID0gU1Q0NiAvKiBcU1Q0NiAqLwogICAgICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDM2XSA9IFNUNDcgLyogXFNUNDcgKi8KICAgICAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHgzN10gPSBTVDQ4IC8qIFxTVDQ4ICov CiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4MzhdID0gU1Q0 OSAvKiBcU1Q0OSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDM5XSA9IFNUODAgLyogXFNUODAgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHgzQV0gPSBTVDgxIC8qIFxTVDgxICovCiAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4M0JdID0gU1Q4MiAvKiBcU1Q4MiAqLwog ICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNDXSA9IFNUODMg LyogXFNUODMgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHgzRF0gPSBTVDg0IC8qIFxTVDg0ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4M0VdID0gU1Q4NSAvKiBcU1Q4NSAqLwogICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDNGXSA9IFNUODYgLyogXFNUODYgKi8KICAg ICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0MF0gPSBTVDg3IC8q IFxTVDg3ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NDFdID0gU1Q4OCAvKiBcU1Q4OCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDQyXSA9IFNUODkgLyogXFNUODkgKi8KICAgICAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0M10gPSBTVDhBIC8qIFxTVDhBICovCiAgICAg ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDRdID0gU1Q4QiAvKiBc U1Q4QiAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ1 XSA9IENEMzAgLyogXENEMzAgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg0Nl0gPSBDRDMxIC8qIFxDRDMxICovCiAgICAgICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NDddID0gQ0QzMiAvKiBcQ0QzMiAqLwogICAgICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDQ4XSA9IENEMzMgLyogXENE MzMgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0OV0g PSBDRDM0IC8qIFxDRDM0ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4NEFdID0gQ0QzNSAvKiBcQ0QzNSAqLwogICAgICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDRCXSA9IENEMzYgLyogXENEMzYgKi8KICAgICAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg0Q10gPSBDRDM3IC8qIFxDRDM3 ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NERdID0g Q0QzOCAvKiBcQ0QzOCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDRFXSA9IENEMzkgLyogXENEMzkgKi8KICAgICAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg0Rl0gPSBDRDNBIC8qIFxDRDNBICovCiAgICAgICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTBdID0gQ0QzQiAvKiBcQ0QzQiAq LwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDUxXSA9IENE M0MgLyogXENEM0MgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVd KSBbMHg1Ml0gPSBDRDNEIC8qIFxDRDNEICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZP ZiAoRVdSWSBbT25lXSkgWzB4NTNdID0gQ0QzRSAvKiBcQ0QzRSAqLwogICAgICAgICAgICAg ICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDU0XSA9IENEM0YgLyogXENEM0YgKi8K ICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1NV0gPSBDRDQw IC8qIFxDRDQwICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkg WzB4NTZdID0gQ0Q0MSAvKiBcQ0Q0MSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2Yg KEVXUlkgW09uZV0pIFsweDU3XSA9IENENDIgLyogXENENDIgKi8KICAgICAgICAgICAgICAg ICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1OF0gPSBDRDQzIC8qIFxDRDQzICovCiAg ICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NTldID0gQ0Q0NCAv KiBcQ0Q0NCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsw eDVBXSA9IENENDUgLyogXENENDUgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChF V1JZIFtPbmVdKSBbMHg1Ql0gPSBDRDQ2IC8qIFxDRDQ2ICovCiAgICAgICAgICAgICAgICAg ICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NUNdID0gQ0Q0NyAvKiBcQ0Q0NyAqLwogICAg ICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDVEXSA9IENENDggLyog XENENDggKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg1 RV0gPSBDRDQ5IC8qIFxDRDQ5ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdS WSBbT25lXSkgWzB4NUZdID0gQ0Q0QSAvKiBcQ0Q0QSAqLwogICAgICAgICAgICAgICAgICAg IERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDYwXSA9IENENEIgLyogXENENEIgKi8KICAgICAg ICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2MV0gPSBDRDRDIC8qIFxD RDRDICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjJd ID0gQ0Q0RCAvKiBcQ0Q0RCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkg W09uZV0pIFsweDYzXSA9IENENEUgLyogXENENEUgKi8KICAgICAgICAgICAgICAgICAgICBE ZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2NF0gPSBDRDRGIC8qIFxDRDRGICovCiAgICAgICAg ICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NjVdID0gQ0Q1MCAvKiBcQ0Q1 MCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY2XSA9 IENENTEgLyogXENENTEgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtP bmVdKSBbMHg2N10gPSBDRDUyIC8qIFxDRDUyICovCiAgICAgICAgICAgICAgICAgICAgRGVy ZWZPZiAoRVdSWSBbT25lXSkgWzB4NjhdID0gQ0Q1MyAvKiBcQ0Q1MyAqLwogICAgICAgICAg ICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDY5XSA9IENENTQgLyogXENENTQg Ki8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2QV0gPSBD RDU1IC8qIFxDRDU1ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25l XSkgWzB4NkJdID0gQ0Q1NiAvKiBcQ0Q1NiAqLwogICAgICAgICAgICAgICAgICAgIERlcmVm T2YgKEVXUlkgW09uZV0pIFsweDZDXSA9IENENTcgLyogXENENTcgKi8KICAgICAgICAgICAg ICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg2RF0gPSBDRDU4IC8qIFxDRDU4ICov CiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NkVdID0gQ0Q1 OSAvKiBcQ0Q1OSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0p IFsweDZGXSA9IENENUEgLyogXENENUEgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9m IChFV1JZIFtPbmVdKSBbMHg3MF0gPSBDRDVCIC8qIFxDRDVCICovCiAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4NzFdID0gQ0Q1QyAvKiBcQ0Q1QyAqLwog ICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDcyXSA9IENENUQg LyogXENENUQgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBb MHg3M10gPSBDRDVFIC8qIFxDRDVFICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAo RVdSWSBbT25lXSkgWzB4NzRdID0gQ0Q1RiAvKiBcQ0Q1RiAqLwogICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDc1XSA9IENENjAgLyogXENENjAgKi8KICAg ICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Nl0gPSBDRDYxIC8q IFxDRDYxICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4 NzddID0gQ0Q2MiAvKiBcQ0Q2MiAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVX UlkgW09uZV0pIFsweDc4XSA9IENENjMgLyogXENENjMgKi8KICAgICAgICAgICAgICAgICAg ICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3OV0gPSBDRDY0IC8qIFxDRDY0ICovCiAgICAg ICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0FdID0gQ0Q2NSAvKiBc Q0Q2NSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdC XSA9IENENjYgLyogXENENjYgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZ IFtPbmVdKSBbMHg3Q10gPSBDRDY3IC8qIFxDRDY3ICovCiAgICAgICAgICAgICAgICAgICAg RGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4N0RdID0gQ0Q2OCAvKiBcQ0Q2OCAqLwogICAgICAg ICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09uZV0pIFsweDdFXSA9IENENjkgLyogXENE NjkgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg3Rl0g PSBDRDZBIC8qIFxDRDZBICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBb T25lXSkgWzB4ODBdID0gQ0Q2QiAvKiBcQ0Q2QiAqLwogICAgICAgICAgICAgICAgICAgIERl cmVmT2YgKEVXUlkgW09uZV0pIFsweDgxXSA9IENENkMgLyogXENENkMgKi8KICAgICAgICAg ICAgICAgICAgICBEZXJlZk9mIChFV1JZIFtPbmVdKSBbMHg4Ml0gPSBDRDZEIC8qIFxDRDZE ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODNdID0g Q0Q2RSAvKiBcQ0Q2RSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKEVXUlkgW09u ZV0pIFsweDg0XSA9IENENkYgLyogXENENkYgKi8KICAgICAgICAgICAgICAgICAgICBEZXJl Zk9mIChFV1JZIFtPbmVdKSBbMHg4NV0gPSBDRDcwIC8qIFxDRDcwICovCiAgICAgICAgICAg ICAgICAgICAgRGVyZWZPZiAoRVdSWSBbT25lXSkgWzB4ODZdID0gQ0Q3MSAvKiBcQ0Q3MSAq LwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoRVdSWSkgLyogXF9TQl8uUEMwMC5DTlZX LkVXUlkgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChXR0RZ LCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IDB4MDMsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4NEEpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAs IAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgw LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MAogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKFdHRFMsIDAs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgW09uZV0gPSBTREdOIC8qIFxTREdOICovCiAgICAgICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MDJdID0gU0QxMSAvKiBcU0QxMSAq LwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDAzXSA9IFNE MTIgLyogXFNEMTIgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgwNF0gPSBTRDEzIC8qIFxTRDEzICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4MDVdID0gU0QxNCAvKiBcU0QxNCAqLwogICAgICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDA2XSA9IFNEMTUgLyogXFNEMTUgKi8K ICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwN10gPSBTRDE2 IC8qIFxTRDE2ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4MDhdID0gU0QxNyAvKiBcU0QxNyAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDA5XSA9IFNEMTggLyogXFNEMTggKi8KICAgICAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgwQV0gPSBTRDE5IC8qIFxTRDE5ICovCiAg ICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEJdID0gU0QyMSAv KiBcU0QyMSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDBDXSA9IFNEMjIgLyogXFNEMjIgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHgwRF0gPSBTRDIzIC8qIFxTRDIzICovCiAgICAgICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MEVdID0gU0QyNCAvKiBcU0QyNCAqLwogICAg ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDBGXSA9IFNEMjUgLyog XFNEMjUgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgx MF0gPSBTRDI2IC8qIFxTRDI2ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4MTFdID0gU0QyNyAvKiBcU0QyNyAqLwogICAgICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDEyXSA9IFNEMjggLyogXFNEMjggKi8KICAgICAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxM10gPSBTRDI5IC8qIFxT RDI5ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTRd ID0gU0QzMSAvKiBcU0QzMSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkg W09uZV0pIFsweDE1XSA9IFNEMzIgLyogXFNEMzIgKi8KICAgICAgICAgICAgICAgICAgICBE ZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxNl0gPSBTRDMzIC8qIFxTRDMzICovCiAgICAgICAg ICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MTddID0gU0QzNCAvKiBcU0Qz NCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDE4XSA9 IFNEMzUgLyogXFNEMzUgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtP bmVdKSBbMHgxOV0gPSBTRDM2IC8qIFxTRDM2ICovCiAgICAgICAgICAgICAgICAgICAgRGVy ZWZPZiAoV0dEWSBbT25lXSkgWzB4MUFdID0gU0QzNyAvKiBcU0QzNyAqLwogICAgICAgICAg ICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDFCXSA9IFNEMzggLyogXFNEMzgg Ki8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxQ10gPSBT RDM5IC8qIFxTRDM5ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25l XSkgWzB4MURdID0gU0Q0MSAvKiBcU0Q0MSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVm T2YgKFdHRFkgW09uZV0pIFsweDFFXSA9IFNENDIgLyogXFNENDIgKi8KICAgICAgICAgICAg ICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgxRl0gPSBTRDQzIC8qIFxTRDQzICov CiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjBdID0gU0Q0 NCAvKiBcU0Q0NCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0p IFsweDIxXSA9IFNENDUgLyogXFNENDUgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9m IChXR0RZIFtPbmVdKSBbMHgyMl0gPSBTRDQ2IC8qIFxTRDQ2ICovCiAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MjNdID0gU0Q0NyAvKiBcU0Q0NyAqLwog ICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI0XSA9IFNENDgg LyogXFNENDggKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBb MHgyNV0gPSBTRDQ5IC8qIFxTRDQ5ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAo V0dEWSBbT25lXSkgWzB4MjZdID0gU0Q1MSAvKiBcU0Q1MSAqLwogICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDI3XSA9IFNENTIgLyogXFNENTIgKi8KICAg ICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyOF0gPSBTRDUzIC8q IFxTRDUzICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4 MjldID0gU0Q1NCAvKiBcU0Q1NCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdH RFkgW09uZV0pIFsweDJBXSA9IFNENTUgLyogXFNENTUgKi8KICAgICAgICAgICAgICAgICAg ICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgyQl0gPSBTRDU2IC8qIFxTRDU2ICovCiAgICAg ICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkNdID0gU0Q1NyAvKiBc U0Q1NyAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDJE XSA9IFNENTggLyogXFNENTggKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZ IFtPbmVdKSBbMHgyRV0gPSBTRDU5IC8qIFxTRDU5ICovCiAgICAgICAgICAgICAgICAgICAg RGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MkZdID0gU0Q2MSAvKiBcU0Q2MSAqLwogICAgICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDMwXSA9IFNENjIgLyogXFNE NjIgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzMV0g PSBTRDYzIC8qIFxTRDYzICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBb T25lXSkgWzB4MzJdID0gU0Q2NCAvKiBcU0Q2NCAqLwogICAgICAgICAgICAgICAgICAgIERl cmVmT2YgKFdHRFkgW09uZV0pIFsweDMzXSA9IFNENjUgLyogXFNENjUgKi8KICAgICAgICAg ICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzNF0gPSBTRDY2IC8qIFxTRDY2 ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzVdID0g U0Q2NyAvKiBcU0Q2NyAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09u ZV0pIFsweDM2XSA9IFNENjggLyogXFNENjggKi8KICAgICAgICAgICAgICAgICAgICBEZXJl Zk9mIChXR0RZIFtPbmVdKSBbMHgzN10gPSBTRDY5IC8qIFxTRDY5ICovCiAgICAgICAgICAg ICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4MzhdID0gU0Q3MSAvKiBcU0Q3MSAq LwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDM5XSA9IFNE NzIgLyogXFNENzIgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVd KSBbMHgzQV0gPSBTRDczIC8qIFxTRDczICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZP ZiAoV0dEWSBbT25lXSkgWzB4M0JdID0gU0Q3NCAvKiBcU0Q3NCAqLwogICAgICAgICAgICAg ICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDNDXSA9IFNENzUgLyogXFNENzUgKi8K ICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHgzRF0gPSBTRDc2 IC8qIFxTRDc2ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkg WzB4M0VdID0gU0Q3NyAvKiBcU0Q3NyAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2Yg KFdHRFkgW09uZV0pIFsweDNGXSA9IFNENzggLyogXFNENzggKi8KICAgICAgICAgICAgICAg ICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0MF0gPSBTRDc5IC8qIFxTRDc5ICovCiAg ICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDFdID0gU0Q4MSAv KiBcU0Q4MSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsw eDQyXSA9IFNEODIgLyogXFNEODIgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChX R0RZIFtPbmVdKSBbMHg0M10gPSBTRDgzIC8qIFxTRDgzICovCiAgICAgICAgICAgICAgICAg ICAgRGVyZWZPZiAoV0dEWSBbT25lXSkgWzB4NDRdID0gU0Q4NCAvKiBcU0Q4NCAqLwogICAg ICAgICAgICAgICAgICAgIERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ1XSA9IFNEODUgLyog XFNEODUgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0 Nl0gPSBTRDg2IC8qIFxTRDg2ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0dE WSBbT25lXSkgWzB4NDddID0gU0Q4NyAvKiBcU0Q4NyAqLwogICAgICAgICAgICAgICAgICAg IERlcmVmT2YgKFdHRFkgW09uZV0pIFsweDQ4XSA9IFNEODggLyogXFNEODggKi8KICAgICAg ICAgICAgICAgICAgICBEZXJlZk9mIChXR0RZIFtPbmVdKSBbMHg0OV0gPSBTRDg5IC8qIFxT RDg5ICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChXR0RZKSAvKiBcX1NCXy5QQzAw LkNOVlcuV0dEWSAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUg KEVDS1ksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAg ICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoRUNLViwgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChFQ0tZIFtP bmVdKSBbT25lXSA9IENFQ1YgLyogXENFQ1YgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEVDS1kpIC8qIFxfU0JfLlBDMDAuQ05WVy5FQ0tZICovCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTmFtZSAoUFBBWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDE4KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICAweDE4LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4Mjgs IAogICAgICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTgsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgICAgICAweDI4 LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgICAgICAweDI4LCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDI4CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoUFBBRywgMCwgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZ IFtPbmVdKSBbT25lXSA9IFdBR00gLyogXFdBR00gKi8KICAgICAgICAgICAgICAgICAgICBE ZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwMl0gPSBBR0ExIC8qIFxBR0ExICovCiAgICAgICAg ICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MDNdID0gQUdBMiAvKiBcQUdB MiAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA0XSA9 IEFHQTMgLyogXEFHQTMgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtP bmVdKSBbMHgwNV0gPSBBR0E0IC8qIFxBR0E0ICovCiAgICAgICAgICAgICAgICAgICAgRGVy ZWZPZiAoUFBBWSBbT25lXSkgWzB4MDZdID0gQUdBNSAvKiBcQUdBNSAqLwogICAgICAgICAg ICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDA3XSA9IEFHQTYgLyogXEFHQTYg Ki8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwOF0gPSBB R0E3IC8qIFxBR0E3ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25l XSkgWzB4MDldID0gQUdBOCAvKiBcQUdBOCAqLwogICAgICAgICAgICAgICAgICAgIERlcmVm T2YgKFBQQVkgW09uZV0pIFsweDBBXSA9IEFHQTkgLyogXEFHQTkgKi8KICAgICAgICAgICAg ICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgwQl0gPSBBR0FBIC8qIFxBR0FBICov CiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MENdID0gQUdB QiAvKiBcQUdBQiAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0p IFsweDBEXSA9IEFHQjEgLyogXEFHQjEgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9m IChQUEFZIFtPbmVdKSBbMHgwRV0gPSBBR0IyIC8qIFxBR0IyICovCiAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4MEZdID0gQUdCMyAvKiBcQUdCMyAqLwog ICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDEwXSA9IEFHQjQg LyogXEFHQjQgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBb MHgxMV0gPSBBR0I1IC8qIFxBR0I1ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAo UFBBWSBbT25lXSkgWzB4MTJdID0gQUdCNiAvKiBcQUdCNiAqLwogICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKFBQQVkgW09uZV0pIFsweDEzXSA9IEFHQjcgLyogXEFHQjcgKi8KICAg ICAgICAgICAgICAgICAgICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxNF0gPSBBR0I4IC8q IFxBR0I4ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoUFBBWSBbT25lXSkgWzB4 MTVdID0gQUdCOSAvKiBcQUdCOSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFBQ QVkgW09uZV0pIFsweDE2XSA9IEFHQkEgLyogXEFHQkEgKi8KICAgICAgICAgICAgICAgICAg ICBEZXJlZk9mIChQUEFZIFtPbmVdKSBbMHgxN10gPSBBR0JCIC8qIFxBR0JCICovCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQUEFZKSAvKiBcX1NCXy5QQzAwLkNOVlcuUFBBWSAq LwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKFdQRlksIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1l dGhvZCAoV1BGQywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbT25lXSA9IFdQRkEgLyogXFdQRkEg Ki8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXUEZZIFtPbmVdKSBbMHgwMl0gPSBX UEZCIC8qIFxXUEZCICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV1BGWSBbT25l XSkgWzB4MDNdID0gXFdQRkMKICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXUEZZIFtP bmVdKSBbMHgwNF0gPSBXUEZEIC8qIFxXUEZEICovCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChXUEZZKSAvKiBcX1NCXy5QQzAwLkNOVlcuV1BGWSAqLwogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE5hbWUgKFdUU1ksIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDEzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKFdUQVMsIDAsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGVyZWZP ZiAoV1RTWSBbT25lXSkgW09uZV0gPSBXVFNFIC8qIFxXVFNFICovCiAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MDJdID0gV1RMRSAvKiBcV1RMRSAqLwog ICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDAzXSA9IEJMMDEg LyogXEJMMDEgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBb MHgwNF0gPSBCTDAyIC8qIFxCTDAyICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAo V1RTWSBbT25lXSkgWzB4MDVdID0gQkwwMyAvKiBcQkwwMyAqLwogICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDA2XSA9IEJMMDQgLyogXEJMMDQgKi8KICAg ICAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwN10gPSBCTDA1IC8q IFxCTDA1ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4 MDhdID0gQkwwNiAvKiBcQkwwNiAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdU U1kgW09uZV0pIFsweDA5XSA9IEJMMDcgLyogXEJMMDcgKi8KICAgICAgICAgICAgICAgICAg ICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgwQV0gPSBCTDA4IC8qIFxCTDA4ICovCiAgICAg ICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MEJdID0gQkwwOSAvKiBc QkwwOSAqLwogICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBD XSA9IEJMMTAgLyogXEJMMTAgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZ IFtPbmVdKSBbMHgwRF0gPSBCTDExIC8qIFxCTDExICovCiAgICAgICAgICAgICAgICAgICAg RGVyZWZPZiAoV1RTWSBbT25lXSkgWzB4MEVdID0gQkwxMiAvKiBcQkwxMiAqLwogICAgICAg ICAgICAgICAgICAgIERlcmVmT2YgKFdUU1kgW09uZV0pIFsweDBGXSA9IEJMMTMgLyogXEJM MTMgKi8KICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChXVFNZIFtPbmVdKSBbMHgxMF0g PSBCTDE0IC8qIFxCTDE0ICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV1RTWSBb T25lXSkgWzB4MTFdID0gQkwxNSAvKiBcQkwxNSAqLwogICAgICAgICAgICAgICAgICAgIERl cmVmT2YgKFdUU1kgW09uZV0pIFsweDEyXSA9IEJMMTYgLyogXEJMMTYgKi8KICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFdUU1kpIC8qIFxfU0JfLlBDMDAuQ05WVy5XVFNZICovCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoV0FJWSwgUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBNZXRob2QgKFdBSVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FJWSBbT25lXSkgW09u ZV0gPSBXTEJJIC8qIFxXTEJJICovCiAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoV0FJ WSBbT25lXSkgWzB4MDJdID0gV0hCSSAvKiBcV0hCSSAqLwogICAgICAgICAgICAgICAgICAg IFJldHVybiAoV0FJWSkgLyogXF9TQl8uUEMwMC5DTlZXLldBSVkgKi8KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChTQURYLCBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAw MAogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg MHgxMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChT QURTLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKFNBRFggW09uZV0pIFtPbmVdID0gQVREViAvKiBcQVREViAqLwogICAg ICAgICAgICAgICAgICAgIERlcmVmT2YgKFNBRFggWzB4MDJdKSBbT25lXSA9IEFURFYgLyog XEFURFYgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNBRFgpIC8qIFxfU0JfLlBD MDAuQ05WVy5TQURYICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFt ZSAoR1BDWCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNywgCiAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJv CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIAogICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgIE1ldGhvZCAoR1BDLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BDWCkgLyogXF9TQl8uUEMwMC5D TlZXLkdQQ1ggKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChH TEFYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAg ICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgTWV0aG9kIChHTEFJLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiQVI6IEdMQUkgbWV0aG9kLiBD R0xTID0gIiwgVG9IZXhTdHJpbmcgKENHTFMpKSkKICAgICAgICAgICAgICAgICAgICBEZXJl Zk9mIChHTEFYIFtPbmVdKSBbT25lXSA9IENHTFMgLyogXENHTFMgKi8KICAgICAgICAgICAg ICAgICAgICBEZXJlZk9mIChHTEFYIFsweDAyXSkgW09uZV0gPSBDR0xTIC8qIFxDR0xTICov CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHTEFYKSAvKiBcX1NCXy5QQzAwLkNOVlcu R0xBWCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKEZERUws IFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChQREVMLCBaZXJvKQogICAgICAgICAgICAg ICAgTmFtZSAoVkRFTCwgWmVybykKICAgICAgICAgICAgICAgIE1ldGhvZCAoSUZVTiwgNCwg U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MUYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJ2UHJvOiAiLCBDVlBSKSkKICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKENWUFIgPDwgWmVybykKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMs IFplcm8sIENNRFQpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo QXJnMywgMHgwMiwgQ01EUCkKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0 ZW5hdGUgKCJDbWRUeXBlID0gIiwgVG9IZXhTdHJpbmcgKENNRFQpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJDbWRQYXlsb2FkID0gIiwgVG9IZXhT dHJpbmcgKENNRFApKSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDTURUID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICheXlJQMTIuUFhTWC5XSVNUICgpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlNUWSkgLyog RXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAw LkNOVlcuUlNUVCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJHZXQgX1BSUiBNb2Rl ID0gIiwgUlNUVCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChS U1RUKSAvKiBcX1NCXy5QQzAwLkNOVlcuUlNUVCAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDTURUID09IDB4MDIp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoXl5SUDEyLlBYU1guV0lTVCAoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQ01EUCAmIE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSU1RZID0gTG9jYWwwCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKENNRFAgJiAweDAyKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA+Pj0gT25lCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRkxSQyA9IExvY2FsMQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMiA9IChDTURQICYgMHgwNCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDIgPj49IDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCT0ZDID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAw LkNOVlcuUlNUVCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJTZXQgX1BSUiBNb2Rl ID0gIiwgVG9IZXhTdHJpbmcgKENNRFApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSU1RUID0gQ01EUCAvKiBcX1NCXy5QQzAwLkNOVlcuSUZVTi5DTURQICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKENNRFQgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMw MC5DTlZXLlBSUlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiR2V0IExhc3RfUFJS IHN0YXR1cyBQUlJTID0gIiwgVG9IZXhTdHJpbmcgKFBSUlMpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSUlMpIC8qIFxfU0JfLlBDMDAuQ05WVy5QUlJT ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlSWYgKF5eUlAxMi5QWFNYLldJU1QgKCkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJHZXQgTGFzdF9QUlIgc3RhdHVzIERQUlMgPSAiLCBUb0hleFN0cmluZyAo RFBSUykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFBSUykg LyogRXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQ1JGSSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcz LCBaZXJvLCBQUlRUKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KEFyZzMsIDB4MDIsIFBSVEQpCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiVGltZXJUeXBlID0gIiwgVG9IZXhTdHJpbmcgKFBSVFQpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJUaW1lckR1cmF0aW9uIChtcykg PSAiLCBUb0RlY2ltYWxTdHJpbmcgKFBSVEQpKSkKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChQUlRUID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZERUwgPSBQUlREIC8qIFxfU0JfLlBDMDAuQ05WVy5JRlVO LlBSVEQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICBFbHNlSWYgKChQUlRUID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQREVMID0gUFJURCAvKiBcX1NCXy5QQzAw LkNOVlcuSUZVTi5QUlREICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZUlmICgoUFJUVCA9PSAweDAzKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVkRFTCA9IFBSVEQgLyog XF9TQl8uUEMwMC5DTlZXLklGVU4uUFJURCAqLwogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlRpbWVyRHVyYXRpb24gbm90 IHNldCIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKElEU00sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjcy NjYxNzJjLTIyMGItNGIyOS04MTRmLTc1ZTRkZDI2YjVmZCIpIC8qIFVua25vd24gVVVJRCAq LykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KEVGVU4sIDQsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHhGRiwgMHgxRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQUNTRCAvKiBcQUNTRCAqLwog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEk1QlMg LyogXEk1QlMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g MHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBVSEJTIC8qIFxVSEJTICovCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gQVhNVSAvKiBcQVhNVSAqLwogICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPDw9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg fD0gQVhTVSAvKiBcQVhTVSAqLwogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBB WE1SIC8qIFxBWE1SICovCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA8PD0gT25l CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSB8PSBBWFNSIC8qIFxBWFNSICovCiAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA8PD0gMHgwMgogICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgfD0gTG9jYWwxCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAweDAwICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoV0ZVQykgLyogXFdGVUMgKi8KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA3KSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVU5JNCkgLyog XFVOSTQgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSAweDA4KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoV0ZJQykgLyogXFdGSUMgKi8KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA5KSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoV0ZCUykgLyog XFdGQlMgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSAweDBBKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoV0VEVCkgLyogXFdFRFQgKi8KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBCKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQ0lSTSA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IDB4MEMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChXRjdDKSAvKiBcV0Y3QyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoRURTTSwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiZjIxMjAy YmYtOGY3OC00ZGM2LWE1YjMtMWY3MzhlMjg1YWRlIikgLyogVW5rbm93biBVVUlEICovKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RT TSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoRURTTSAoQXJnMCkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEVG VU4gKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKElEU00gKEFyZzApKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChJRlVOIChBcmcwLCBBcmcxLCBB cmcyLCBBcmczKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKChDQlRDID09IE9uZSkg JiYgKENCVEkgPT0gT25lKSkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKFBVMkMgPT0g MHgwQSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNjb3BlIChfU0IuUEMwMC5Y SENJLlJIVUIuSFMxMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChTQURYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAw MAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MTIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4 MDAwMDAwMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFNBRFMsIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChT QURYIFtPbmVdKSBbT25lXSA9IEFURFYgLyogXEFURFYgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoU0FEWCBbMHgwMl0pIFtPbmVdID0gQVREViAvKiBcQVREViAqLwog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNBRFgpIC8qIFxfU0JfLlBDMDAuWEhD SS5SSFVCLkhTMTAuU0FEWCAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoQlJEWSwgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MTIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg4MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4 MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4ODAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4ODAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChCUkRTLCAwLCBTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRGVy ZWZPZiAoQlJEWSBbT25lXSkgW09uZV0gPSBCVFNFIC8qIFxCVFNFICovCiAgICAgICAgICAg ICAgICAgICAgICAgIERlcmVmT2YgKEJSRFkgW09uZV0pIFsweDAyXSA9IEJJUE0gLyogXEJJ UE0gKi8KICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoQlJEWSBbT25lXSkgWzB4 MDNdID0gQlNQTCAvKiBcQlNQTCAqLwogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9m IChCUkRZIFtPbmVdKSBbMHgwNF0gPSBCVEJSIC8qIFxCVEJSICovCiAgICAgICAgICAgICAg ICAgICAgICAgIERlcmVmT2YgKEJSRFkgW09uZV0pIFsweDA1XSA9IEJFRDIgLyogXEJFRDIg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoQlJEWSBbT25lXSkgWzB4MDZd ID0gQkVEMyAvKiBcQkVEMyAqLwogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChC UkRZIFtPbmVdKSBbMHgwN10gPSBCVExFIC8qIFxCVExFICovCiAgICAgICAgICAgICAgICAg ICAgICAgIERlcmVmT2YgKEJSRFkgW09uZV0pIFsweDA4XSA9IEJUTDIgLyogXEJUTDIgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoQlJEWSBbT25lXSkgWzB4MDldID0g QlRMTCAvKiBcQlRMTCAqLwogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJSRFkp IC8qIFxfU0JfLlBDMDAuWEhDSS5SSFVCLkhTMTAuQlJEWSAqLwogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoRUNLWSwgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChFQ0tWLCAw LCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgRGVyZWZPZiAoRUNLWSBbT25lXSkgW09uZV0gPSBDRUNWIC8qIFxDRUNWICovCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRUNLWSkgLyogXF9TQl8uUEMwMC5YSENJ LlJIVUIuSFMxMC5FQ0tZICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2Ut U3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiYWExMGY0ZTAtODFhYy00MjMzLWFiZjYt M2IyYWM1MGUyOGQ5IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8p KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFCICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJTZXQgUkRMWSAiLCBUb0RlY2ltYWxTdHJpbmcgKEFyZzMpKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSRExZID0gQXJnMwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzMsIFplcm8sIENNRFQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmczLCAw eDAyLCBDTURQKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQ01EVCA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQlJNVCA9IENNRFAgLyogXF9TQl8uUEMwMC5YSENJ LlJIVUIuSFMxMC5fRFNNLkNNRFAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQlJNVCkgLyog RXh0ZXJuYWwgcmVmZXJlbmNlICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0g VG9VVUlEICgiMmQxOWQzZTEtNTcwOC00Njk2LWJkNWItMmMzZGJhZTJkNmE5IikgLyogVW5r bm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJUaWxlIEFjdGl2 YXRpb24gIiwgVG9EZWNpbWFsU3RyaW5nIChBcmczKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIFBvd2VyUmVzb3VyY2UgKEJUUlQsIDB4MDUsIDB4MDAw MCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiQlQg UFIgX1NUQSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfT04sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiQlQg UFIgX09OIikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIg T2ZmCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJCVCBQUiBfT0ZGIikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUlNULCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJCVCBQUiBfUlNUIikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMCA9IEFjcXVpcmUgKENOTVQsIDB4MDNFOCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJCVCBDTk1UIE11dGV4OkFjcXVpcmVkIFRy eSBEb25lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJUUksgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKFJETFkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRSSyAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChSRExZKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlbGVhc2UgKENOTVQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFBvd2VyUmVzb3VyY2UgKERCVFIsIDB4 MDUsIDB4MDAwMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiQlQgUFIgX1NUQSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfT04sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiQlQgUFIgX09OIikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09G RjogUG93ZXIgT2ZmCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJCVCBQUiBfT0ZGIikKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUlNULCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX1JTVDogRGV2aWNlIFJlc2V0CiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJDTlZkIEJUIF9SU1QiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCIgV1ZITyAt ICAiLCBUb0hleFN0cmluZyAoV1ZITykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gQWNxdWlyZSAoQ05NVCwgMHgwM0U4KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIkJUIENOTVQgTXV0ZXg6QWNxdWlyZWQgVHJ5IERvbmUiKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChCUk1UID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkJUIFJGIEtpbGwgT04i KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVFJLIChaZXJvKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlSWYgKChXVkhPICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5S UDEyLlBYU1guQlRJRSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIlNldCBCVElFIERpc2FibGUiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKFJETFkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCUk1UID09IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoIkJUIFJGIEtpbGwgT0ZGIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQlRSSyAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChX VkhPICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5SUDEyLlBYU1guQlRJRSA9IE9u ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU2V0IEJUSUUg RW5hYmxlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChSRExZKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKENOTVQp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSUiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9Q UlI6IFBvd2VyIFJlc291cmNlIGZvciBSZXNldAogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKCgoQ0JUQyA9PSBPbmUpICYmIChDQlRJID09IE9u ZSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlRSVAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQlRS CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChH UENYLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChHUEMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQQ1gpIC8qIFxfU0JfLlBDMDAuWEhDSS5SSFVC LkhTMTAuR1BDWCAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoR0xBWCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8K ICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8K ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChHTEFJLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUg KCJBUjogR0xBSSBtZXRob2QuIENHTFMgPSAiLCBUb0hleFN0cmluZyAoQ0dMUykpKQogICAg ICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChHTEFYIFtPbmVdKSBbT25lXSA9IENHTFMg LyogXENHTFMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoR0xBWCBbMHgw Ml0pIFtPbmVdID0gQ0dMUyAvKiBcQ0dMUyAqLwogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEdMQVgpIC8qIFxfU0JfLlBDMDAuWEhDSS5SSFVCLkhTMTAuR0xBWCAqLwogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlRMWSwgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MEIpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEJUTEMs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBEZXJlZk9mIChCVExZIFtPbmVdKSBbT25lXSA9IFRJTEUgLyogXFRJTEUgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoQlRMWSBbT25lXSkgWzB4MDJdID0g VElTMCAvKiBcVElTMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChCVExZ IFtPbmVdKSBbMHgwM10gPSBUUzBYIC8qIFxUUzBYICovCiAgICAgICAgICAgICAgICAgICAg ICAgIERlcmVmT2YgKEJUTFkgW09uZV0pIFsweDA0XSA9IFRJUzQgLyogXFRJUzQgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoQlRMWSBbT25lXSkgWzB4MDVdID0gVElT NSAvKiBcVElTNSAqLwogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChCVExZIFtP bmVdKSBbMHgwNl0gPSBCTEVDIC8qIFxCTEVDICovCiAgICAgICAgICAgICAgICAgICAgICAg IERlcmVmT2YgKEJUTFkgW09uZV0pIFsweDA3XSA9IEJMUEQgLyogXEJMUEQgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoQlRMWSBbT25lXSkgWzB4MDhdID0gQkxQSSAv KiBcQkxQSSAqLwogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJUTFkpIC8qIFxf U0JfLlBDMDAuWEhDSS5SSFVCLkhTMTAuQlRMWSAqLwogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChBT0xYLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQU9E UywgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDEyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDQlRBID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQ1JGUCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEhEQk8gJiBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQU9EUyBbMHgwMl0gPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQU9EUyBbMHgwMl0gPSBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChBT0RTKSAvKiBcX1NCXy5QQzAwLlhIQ0kuUkhVQi5I UzEwLkFPTFguQU9EUyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChBT0xELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBT0xYICgpKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAg IH0KICAgIH0KCiAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuVUEwMCkpCiAgICB7CiAg ICAgICAgU2NvcGUgKF9TQi5QQzAwLlVBMDApCiAgICAgICAgewogICAgICAgICAgICBEZXZp Y2UgKEJUSDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0hJRCwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiSU5UMzNFMSIpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFNIUE8gKEdCVEksIE9uZSkKICAgICAgICAgICAgICAgICAgICBTSFBPIChHQlRL LCBPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JT LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5n cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKFNCRkcsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFVhcnRTZXJpYWxCdXNWMiAoMHgwMDAxQzIwMCwgRGF0YUJpdHNFaWdodCwg U3RvcEJpdHNPbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwLCBMaXR0bGVF bmRpYW4sIFBhcml0eVR5cGVOb25lLCBGbG93Q29udHJvbEhhcmR3YXJlLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDIwLCAweDAwMjAsICJcXF9TQi5QQzAwLlVBMDAiLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBF eGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAw MDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8g UGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0lu dCAoRWRnZSwgQWN0aXZlTG93LCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxsRGVmYXVsdCwgMHgw MDAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBS ZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoU0JGRywgMHg1RiwgSU5UMykKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKFNCRkcsIDB4M0MsIEtJTDMpCiAgICAgICAgICAgICAgICAgICAgSU5UMyA9IEdO VU0gKEdCVEkpCiAgICAgICAgICAgICAgICAgICAgS0lMMyA9IEdOVU0gKEdCVEspCiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVWFydFNlcmlhbEJ1c1Yy ICgweDAwMDFDMjAwLCBEYXRhQml0c0VpZ2h0LCBTdG9wQml0c09uZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4QzAsIExpdHRsZUVuZGlhbiwgUGFyaXR5VHlwZU5vbmUsIEZs b3dDb250cm9sSGFyZHdhcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAs IDB4MDAyMCwgIlxcX1NCLlBDMDAuVUEwMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0lvIChFeGNsdXNp dmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbk91dHB1dE9u bHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJMCIsIDB4MDAsIFJl c291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIEVk Z2UsIEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgLCwgX1k1MikKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGSSwgXF9TQi5QQzAwLlVBMDAu QlRIMC5fQ1JTLl9ZNTIuX0lOVCwgSU5UNCkgIC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkksIDB4M0MsIEtJTDQpCiAgICAg ICAgICAgICAgICAgICAgSU5UNCA9IElOVU0gKEdCVEkpCiAgICAgICAgICAgICAgICAgICAg S0lMNCA9IEdOVU0gKEdCVEspCiAgICAgICAgICAgICAgICAgICAgSWYgKChTRE05ID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChTQkZHKSAvKiBcX1NCXy5QQzAwLlVBMDAuQlRIMC5fQ1JTLlNCRkcgKi8KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTQkZJKSAvKiBcX1NC Xy5QQzAwLlVBMDAuQlRIMC5fQ1JTLlNCRkkgKi8KICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKChTRFM5ICE9IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDIpICAvLyBfUzBXOiBTMCBE ZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChCUkRZ LCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPbmUsIAog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwLCAKICAgICAg ICAgICAgICAgICAgICAweDgwLCAKICAgICAgICAgICAgICAgICAgICAweDgwCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoQlJEUywgMCwg U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoQlJE WSBbT25lXSkgW09uZV0gPSBCVFNFIC8qIFxCVFNFICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChCUkRZIFtPbmVdKSBbMHgwMl0gPSBCSVBNIC8qIFxCSVBNICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChCUkRZIFtPbmVdKSBbMHgwM10gPSBCU1BMIC8qIFxCU1BMICovCiAg ICAgICAgICAgICAgICBEZXJlZk9mIChCUkRZIFtPbmVdKSBbMHgwNF0gPSBCVEJSIC8qIFxC VEJSICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChCUkRZIFtPbmVdKSBbMHgwNV0gPSBC RUQyIC8qIFxCRUQyICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChCUkRZIFtPbmVdKSBb MHgwNl0gPSBCRUQzIC8qIFxCRUQzICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChCUkRZ IFtPbmVdKSBbMHgwN10gPSBCVExFIC8qIFxCVExFICovCiAgICAgICAgICAgICAgICBEZXJl Zk9mIChCUkRZIFtPbmVdKSBbMHgwOF0gPSBCVEwyIC8qIFxCVEwyICovCiAgICAgICAgICAg ICAgICBEZXJlZk9mIChCUkRZIFtPbmVdKSBbMHgwOV0gPSBCVExMIC8qIFxCVExMICovCiAg ICAgICAgICAgICAgICBSZXR1cm4gKEJSRFkpIC8qIFxfU0JfLlBDMDAuVUEwMC5CUkRZICov CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEVDS1ksIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw eDEyLCAKICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoRUNLViwgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgRGVyZWZPZiAoRUNLWSBbT25lXSkgW09uZV0g PSBDRUNWIC8qIFxDRUNWICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKEVDS1kpIC8qIFxf U0JfLlBDMDAuVUEwMC5FQ0tZICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUg KEdQQ1gsIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKEdQQywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChHUENYKSAvKiBcX1NCXy5QQzAw LlVBMDAuR1BDWCAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChHTEFYLCBQ YWNrYWdlICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAweDEyLCAKICAgICAgICAgICAgICAgICAgICBa ZXJvCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhv ZCAoR0xBSSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJBUjogR0xBSSBtZXRob2QuIENHTFMgPSAiLCBUb0hleFN0 cmluZyAoQ0dMUykpKQogICAgICAgICAgICAgICAgRGVyZWZPZiAoR0xBWCBbT25lXSkgW09u ZV0gPSBDR0xTIC8qIFxDR0xTICovCiAgICAgICAgICAgICAgICBEZXJlZk9mIChHTEFYIFsw eDAyXSkgW09uZV0gPSBDR0xTIC8qIFxDR0xTICovCiAgICAgICAgICAgICAgICBSZXR1cm4g KEdMQVgpIC8qIFxfU0JfLlBDMDAuVUEwMC5HTEFYICovCiAgICAgICAgICAgIH0KICAgICAg ICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAwLkhEQVMpCiAgICB7CiAgICAgICAgTWV0 aG9kIChQUE1TLCAxLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQURCRyAo IlBQTVMgY2FsbGVkIikKICAgICAgICAgICAgQURCRyAoQXJnMCkKICAgICAgICAgICAgSWYg KChBcmcwID09IFRvVVVJRCAoIjdjNzA4MTA2LTNhZmYtNDBmZS04OGJlLThjOTk5YjNmNzQ0 NSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IFJldHVybiAoKEFEUE0gJiAweDA0KSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg KChBcmcwID09IFRvVVVJRCAoImVjNzc0ZmE5LTI4ZDMtNDI0YS05MGU0LTY5Zjk4NGYxZWVi NyIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IFJldHVybiAoKEFEUE0gJiAweDAxMDApKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJ ZiAoKEFyZzAgPT0gQUNDRyAoQUcxTCwgQUcxSCkpKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBBREJHICgiQWxwaGEgcGFzc2VkIikKICAgICAgICAgICAgICAgIFJldHVybiAo KEFEUE0gJiAweDIwMDAwMDAwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChB cmcwID09IEFDQ0cgKEFHMkwsIEFHMkgpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgQURCRyAoIkJldGEgcGFzc2VkIikKICAgICAgICAgICAgICAgIFJldHVybiAoKEFEUE0g JiAweDQwMDAwMDAwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09 IEFDQ0cgKEFHM0wsIEFHM0gpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQURC RyAoIkdhbW1hIHBhc3NlZCIpCiAgICAgICAgICAgICAgICBSZXR1cm4gKChBRFBNICYgMHg4 MDAwMDAwMCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VV SUQgKCJiNDg5YzJkZS0wZjk2LTQyZTEtOGEyZC1jMjViNTA5MWVlNDkiKSAvKiBVbmtub3du IFVVSUQgKi8pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKChBRFBN ICYgT25lKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoImUxMjg0MDUyLTg2NjQtNGZlNC1hMzUzLTM4NzhmNzI3MDRjMyIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoKEFEUE0g JiAweDAyKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoImJkZTJmNGVlLWE1ODgtNDUzNy05MGZiLTM2YThkNjNkNTVhZCIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoKEFEUE0g JiAweDA4KSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoIjM0NzI5N2MzLWE2ZDUtNDBkYi04MTIwLWFjZTY2YmFiZjQ5MSIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoKEFEUE0g JiAweDEwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoImJkNzBjZTY2LTdjZWUtNDI3Ny1hOTFhLWQ2MzY4ZmVhZjgzZCIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoKEFEUE0g JiAweDIwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoImM3NTA2MWYzLWYyYjItNGRjYy04ZjlmLTgyYWJiNDEzMWU2NiIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoKEFEUE0g JiAweDQwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoImIzNTczZWZmLTY0NDEtNGE3NS05MWY3LTQyODFlZWM0NTk3ZCIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoKEFEUE0g JiAweDgwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoImQ0NmY5ZDcyLTgxYTQtNDdmZC1iMzAxLThlMzlkMTdjMDk4MSIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoKEFEUE0g JiAweDAyMDApKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9V VUlEICgiZjM1Nzg5ODYtNDQwMC00YWRmLWFlN2UtY2Q0MzNjZDNmMjZlIikgLyogVW5rbm93 biBVVUlEICovKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgoQURQ TSAmIDB4MDQwMCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJnMCA9PSBU b1VVSUQgKCIyYzA5MzE0NS01ODk1LTQ2OTktOWRkYi02ZmVmZGM3N2U4NWQiKSAvKiBVbmtu b3duIFVVSUQgKi8pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKChB RFBNICYgMHgwODAwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChBcmcwID09 IFRvVVVJRCAoImI1NWViYTI0LTgzNDktNGRhZC1hZmM3LTg0ODlkMjNjOTNlZiIpIC8qIFVu a25vd24gVVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAo KEFEUE0gJiAweDEwMDApKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoKEFyZzAg PT0gVG9VVUlEICgiNzExMTAwMWYtZDM1Zi00NGQ5LTgxZDItN2FjNjg1YmVkM2Q3IikgLyog VW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJu ICgoQURQTSAmIDB4MjAwMCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQXJn MCA9PSBUb1VVSUQgKCI4ODM3M2EwMS0xNmE1LTQ2OWQtYTM5YS1iZGViNTk0MTc4YjgiKSAv KiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1 cm4gKChBRFBNICYgMHg0MDAwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChB cmcwID09IFRvVVVJRCAoIjU0Y2FiMjA2LTgyY2ItNGI2Ny1hMWVlLWZjZDQ1YzEyNmRjOCIp IC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJl dHVybiAoKEFEUE0gJiAweDgwMDApKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAo KEFyZzAgPT0gVG9VVUlEICgiNzAwMDIzMDctZGEzZS00ZTBiLWJhMDMtNGM3MjMxNGIyYWFh IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg UmV0dXJuICgoQURQTSAmIDB4MDAwMTAwMDApKQogICAgICAgICAgICB9CgogICAgICAgICAg ICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiN2FlYTVlMjQtZTVlOS00ZDZkLWI4OGYtYjUwNWMx YWNhYjExIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgUmV0dXJuICgoQURQTSAmIDB4MDAwMjAwMDApKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEFDQ0cs IDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChHQlVGLCBC dWZmZXIgKDB4MTApe30pCiAgICAgICAgICAgIENvbmNhdGVuYXRlIChBcmcwLCBBcmcxLCBH QlVGKSAvKiBcX1NCXy5QQzAwLkhEQVMuQUNDRy5HQlVGICovCiAgICAgICAgICAgIFJldHVy biAoR0JVRikgLyogXF9TQl8uUEMwMC5IREFTLkFDQ0cuR0JVRiAqLwogICAgICAgIH0KICAg IH0KCiAgICBJZiAoKEkyU0IgPT0gWmVybykpCiAgICB7CiAgICAgICAgU2NvcGUgKF9TQi5Q QzAwLkkyQzApCiAgICAgICAgewogICAgICAgICAgICBJZiAoKChJMlNDICE9IDB4MDQpICYm ICgoSTJTQyAhPSAweDAzKSAmJiAKICAgICAgICAgICAgICAgIChJMlNDICE9IDB4MDUpKSkp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERldmljZSAoSERDMSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiMTBFQzEzMDgiKSAg Ly8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgICBOYW1lIChfREROLCAi SW50ZWwoUikgU21hcnQgU291bmQgVGVjaG5vbG9neSBBdWRpbyBDb2RlYyIpICAvLyBfRERO OiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBPbmUp ICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgICAgICBOYW1lIChDRElTLCBa ZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNU ZW1wbGF0ZSAoSUlDQiAoMHgxMCwgSTJTQiksIElOVEIgKEkyU0ksIFplcm8sIFplcm8pKSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BS UywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNldHRp bmdzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKF9DUlMgKCkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKEkyU0Mg PT0gMHgwMikgJiYgKENESVMgIT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JT LCAxLCBTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDRElTID0gWmVybwog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElT LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RJUzogRGlzYWJsZSBEZXZpY2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENESVMgPSBPbmUKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2 aWNlIChIREMyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9ISUQsICJJTlQzNEMyIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0RETiwgIkludGVsKFIpIFNtYXJ0IFNvdW5kIFRlY2hub2xvZ3kgQXVk aW8gQ29kZWMiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoQ0RJUywgWmVybykKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9D UlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRp bmdzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKElJQ0IgKDB4MUMsIEkyU0IpLCBJTlRCIChJ MlNJLCBaZXJvLCBaZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJTOiBQb3Nz aWJsZSBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChfQ1JTICgpKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKChJMlNDID09IE9uZSkgJiYgKENESVMgIT0gT25lKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291 cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBDRElTID0gWmVybwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RJUzogRGlzYWJs ZSBEZXZpY2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IENESVMgPSBPbmUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBFbHNlSWYgKChJMlNCID09IE9uZSkp CiAgICB7CiAgICAgICAgU2NvcGUgKF9TQi5QQzAwLkkyQzEpCiAgICAgICAgewogICAgICAg ICAgICBJZiAoKChJMlNDICE9IDB4MDQpICYmICgoSTJTQyAhPSAweDAzKSAmJiAKICAgICAg ICAgICAgICAgIChJMlNDICE9IDB4MDUpKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIERldmljZSAoSERDMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBOYW1lIChfSElELCAiMTBFQzEzMDgiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg ICAgICAgICAgICAgICBOYW1lIChfREROLCAiSW50ZWwoUikgU21hcnQgU291bmQgVGVjaG5v bG9neSBBdWRpbyBDb2RlYyIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAg ICAgICAgICAgICAgICBOYW1lIChDRElTLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoSUlDQiAoMHgxMCwgSTJTQiks IElOVEIgKEkyU0ksIFplcm8sIFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9Q UlM6IFBvc3NpYmxlIFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF9DUlMgKCkpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoKEkyU0MgPT0gMHgwMikgJiYgKENESVMgIT0gT25lKSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKSAgLy8gX1NSUzog U2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBDRElTID0gWmVybwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RJ UzogRGlzYWJsZSBEZXZpY2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIENESVMgPSBPbmUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChIREMyKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzNEMyIikgIC8vIF9ISUQ6 IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RETiwgIkludGVsKFIp IFNtYXJ0IFNvdW5kIFRlY2hub2xvZ3kgQXVkaW8gQ29kZWMiKSAgLy8gX0RETjogRE9TIERl dmljZSBOYW1lCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJ RDogVW5pcXVlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ0RJUywgWmVybykKICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf Q1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUg KElJQ0IgKDB4MUMsIEkyU0IpLCBJTlRCIChJMlNJLCBaZXJvLCBaZXJvKSkpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfUFJTOiBQb3NzaWJsZSBSZXNvdXJjZSBTZXR0aW5ncwogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChfQ1JT ICgpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChJMlNDID09IE9uZSkg JiYgKENESVMgIT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJp YWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDRElTID0gWmVybwogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX0RJUzogRGlzYWJsZSBEZXZpY2UKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENESVMgPSBPbmUKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9 CiAgICBFbHNlSWYgKChJMlNCID09IDB4MDIpKQogICAgewogICAgICAgIFNjb3BlIChfU0Iu UEMwMC5JMkMyKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKCgoSTJTQyAhPSAweDA0KSAm JiAoKEkyU0MgIT0gMHgwMykgJiYgCiAgICAgICAgICAgICAgICAoSTJTQyAhPSAweDA1KSkp KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXZpY2UgKEhEQzEpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIjEwRUMxMzA4Iikg IC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RETiwg IkludGVsKFIpIFNtYXJ0IFNvdW5kIFRlY2hub2xvZ3kgQXVkaW8gQ29kZWMiKSAgLy8gX0RE TjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25l KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ0RJUywg WmVybykKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVz VGVtcGxhdGUgKElJQ0IgKDB4MTAsIEkyU0IpLCBJTlRCIChJMlNJLCBaZXJvLCBaZXJvKSkp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9Q UlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJTOiBQb3NzaWJsZSBSZXNvdXJjZSBTZXR0 aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChfQ1JTICgpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChJMlND ID09IDB4MDIpICYmIChDRElTICE9IE9uZSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NS UywgMSwgU2VyaWFsaXplZCkgIC8vIF9TUlM6IFNldCBSZXNvdXJjZSBTZXR0aW5ncwogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0RJUyA9IFplcm8K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJ UywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDRElTID0gT25lCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERl dmljZSAoSERDMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfSElELCAiSU5UMzRDMiIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9ERE4sICJJbnRlbChSKSBTbWFydCBTb3VuZCBUZWNobm9sb2d5IEF1 ZGlvIENvZGVjIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAg ICAgICAgIE5hbWUgKENESVMsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf Q1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0 aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJSUNCICgweDFDLCBJMlNCKSwgSU5UQiAo STJTSSwgWmVybywgWmVybykpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9z c2libGUgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoX0NSUyAoKSkKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKCgoSTJTQyA9PSBPbmUpICYmIChDRElTICE9IE9uZSkpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1NSUywgMSwgU2VyaWFsaXplZCkgIC8vIF9TUlM6IFNldCBSZXNv dXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgQ0RJUyA9IFplcm8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2Fi bGUgRGV2aWNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBDRElTID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgRWxzZUlmICgoSTJTQiA9PSAweDAz KSkKICAgIHsKICAgICAgICBTY29wZSAoX1NCLlBDMDAuSTJDMykKICAgICAgICB7CiAgICAg ICAgICAgIElmICgoKEkyU0MgIT0gMHgwNCkgJiYgKChJMlNDICE9IDB4MDMpICYmIAogICAg ICAgICAgICAgICAgKEkyU0MgIT0gMHgwNSkpKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgRGV2aWNlIChIREMxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsICIxMEVDMTMwOCIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRlbChSKSBTbWFydCBTb3VuZCBUZWNo bm9sb2d5IEF1ZGlvIENvZGVjIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgICAgICAgICAgICAgIE5hbWUgKENESVMsIFplcm8pCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNv dXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJSUNCICgweDEwLCBJMlNC KSwgSU5UQiAoSTJTSSwgWmVybywgWmVybykpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoX0NSUyAoKSkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCgoSTJTQyA9PSAweDAyKSAmJiAoQ0RJUyAhPSBPbmUp KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpICAvLyBfU1JT OiBTZXQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIENESVMgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf RElTOiBEaXNhYmxlIERldmljZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQ0RJUyA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKEhEQzIpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDM0QzIiKSAgLy8gX0hJ RDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiSW50ZWwo UikgU21hcnQgU291bmQgVGVjaG5vbG9neSBBdWRpbyBDb2RlYyIpICAvLyBfREROOiBET1Mg RGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBf VUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgICAgICBOYW1lIChDRElTLCBaZXJvKQog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0 ZSAoSUlDQiAoMHgxQywgSTJTQiksIElOVEIgKEkyU0ksIFplcm8sIFplcm8pKSkKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNldHRpbmdzCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF9D UlMgKCkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKEkyU0MgPT0gT25l KSAmJiAoQ0RJUyAhPSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNl cmlhbGl6ZWQpICAvLyBfU1JTOiBTZXQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENESVMgPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfRElTOiBEaXNhYmxlIERldmljZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0RJUyA9IE9uZQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAg IH0KICAgIEVsc2VJZiAoKEkyU0IgPT0gMHgwNCkpCiAgICB7CiAgICAgICAgU2NvcGUgKF9T Qi5QQzAwLkkyQzQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKChJMlNDICE9IDB4MDQp ICYmICgoSTJTQyAhPSAweDAzKSAmJiAKICAgICAgICAgICAgICAgIChJMlNDICE9IDB4MDUp KSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERldmljZSAoSERDMSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiMTBFQzEzMDgi KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgICBOYW1lIChfRERO LCAiSW50ZWwoUikgU21hcnQgU291bmQgVGVjaG5vbG9neSBBdWRpbyBDb2RlYyIpICAvLyBf REROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBP bmUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgICAgICBOYW1lIChDRElT LCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVS ZXNUZW1wbGF0ZSAoSUlDQiAoMHgxMCwgSTJTQiksIElOVEIgKEkyU0ksIFplcm8sIFplcm8p KSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1BSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNl dHRpbmdzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKF9DUlMgKCkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKEky U0MgPT0gMHgwMikgJiYgKENESVMgIT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf U1JTLCAxLCBTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDRElTID0gWmVy bwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf RElTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RJUzogRGlzYWJsZSBEZXZpY2UKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENESVMgPSBPbmUKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg RGV2aWNlIChIREMyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5h bWUgKF9ISUQsICJJTlQzNEMyIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0RETiwgIkludGVsKFIpIFNtYXJ0IFNvdW5kIFRlY2hub2xvZ3kg QXVkaW8gQ29kZWMiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoQ0RJUywgWmVybykKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNl dHRpbmdzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKElJQ0IgKDB4MUMsIEkyU0IpLCBJTlRC IChJMlNJLCBaZXJvLCBaZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJTOiBQ b3NzaWJsZSBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChfQ1JTICgpKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKChJMlNDID09IE9uZSkgJiYgKENESVMgIT0gT25lKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJl c291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBDRElTID0gWmVybwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RJUzogRGlz YWJsZSBEZXZpY2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIENESVMgPSBPbmUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBFbHNlSWYgKChJMlNCID09IDB4 MDUpKQogICAgewogICAgICAgIFNjb3BlIChfU0IuUEMwMC5JMkM1KQogICAgICAgIHsKICAg ICAgICAgICAgSWYgKCgoSTJTQyAhPSAweDA0KSAmJiAoKEkyU0MgIT0gMHgwMykgJiYgCiAg ICAgICAgICAgICAgICAoSTJTQyAhPSAweDA1KSkpKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBEZXZpY2UgKEhEQzEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0hJRCwgIjEwRUMxMzA4IikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0RETiwgIkludGVsKFIpIFNtYXJ0IFNvdW5kIFRl Y2hub2xvZ3kgQXVkaW8gQ29kZWMiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoQ0RJUywgWmVybykKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJl c291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKElJQ0IgKDB4MTAsIEky U0IpLCBJTlRCIChJMlNJLCBaZXJvLCBaZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfUFJTOiBQb3NzaWJsZSBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChfQ1JTICgpKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKChJMlNDID09IDB4MDIpICYmIChDRElTICE9IE9u ZSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgU2VyaWFsaXplZCkgIC8vIF9T UlM6IFNldCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgQ0RJUyA9IFplcm8KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBDRElTID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoSERDMikKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiSU5UMzRDMiIpICAvLyBf SElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRl bChSKSBTbWFydCBTb3VuZCBUZWNobm9sb2d5IEF1ZGlvIENvZGVjIikgIC8vIF9ERE46IERP UyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8v IF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICAgIE5hbWUgKENESVMsIFplcm8p CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBs YXRlIChJSUNCICgweDFDLCBJMlNCKSwgSU5UQiAoSTJTSSwgWmVybywgWmVybykpKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0dGluZ3MK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo X0NSUyAoKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoSTJTQyA9PSBP bmUpICYmIChDRElTICE9IE9uZSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwg U2VyaWFsaXplZCkgIC8vIF9TUlM6IFNldCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ0RJUyA9IFplcm8KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDRElTID0gT25lCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQog ICAgfQoKICAgIFNjb3BlIChfU0IuUEMwMC5IREFTKQogICAgewogICAgICAgIERldmljZSAo UlRLQykKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIE9uZSkgIC8vIF9BRFI6 IEFkZHJlc3MKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoUFhE QyA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgSWYgKChQQ0hB ID09IFplcm8pKQogICAgewogICAgICAgIFNjb3BlIChfU0IuUEMwMCkKICAgICAgICB7CiAg ICAgICAgICAgIElmICgoSTJTRSA9PSBPbmUpKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBEZXZpY2UgKEhEQTEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX0hJRCwgIklOVEMxMEIwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklOVEMxMEIwIikgIC8vIF9DSUQ6IENvbXBh dGlibGUgSUQKICAgICAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiSW50ZWwoUikgU21h cnQgU291bmQgVGVjaG5vbG9neSBBdWRpbyBDb2RlYyIpICAvLyBfREROOiBET1MgRGV2aWNl IE5hbWUKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKSAgLy8gX1VJRDog VW5pcXVlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ0FEUiwgWmVybykKICAgICAg ICAgICAgICAgICAgICBOYW1lIChDRElTLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoR1JJMSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRiwgQnVmZmVyICgweDA5KXt9KQogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEwwRU4gPT0gT25lKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFtaZXJvXSA9IEEw SDAgLyogXEEwSDAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbT25lXSA9 IEEwSDEgLyogXEEwSDEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw Ml0gPSBBMEgyIC8qIFxBMEgyICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYg WzB4MDNdID0gQTBIMyAvKiBcQTBIMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg QlVGIFsweDA0XSA9IEEwSDQgLyogXEEwSDQgKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJVRiBbMHgwNV0gPSBBMEg1IC8qIFxBMEg1ICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MDZdID0gQTBINiAvKiBcQTBINiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQlVGIFsweDA3XSA9IEEwSDcgLyogXEEwSDcgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJVRiBbMHgwOF0gPSBBMEg4IC8qIFxBMEg4ICovCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDFFTiA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCVUYgW1plcm9dID0gQTFIMCAvKiBcQTFIMCAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQlVGIFtPbmVdID0gQTFIMSAvKiBcQTFIMSAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQlVGIFsweDAyXSA9IEExSDIgLyogXEExSDIgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwM10gPSBBMUgzIC8qIFxBMUgzICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDRdID0gQTFINCAvKiBcQTFINCAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA1XSA9IEExSDUgLyogXEExSDUg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwNl0gPSBBMUg2IC8qIFxB MUg2ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDddID0gQTFINyAv KiBcQTFINyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA4XSA9IEEx SDggLyogXEExSDggKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChUb1N0cmluZyAoQlVGLCBPbmVzKSkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoTDBTTSA9PSAweEZFKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9IEdSSTEg KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9DSUQgPSBHUkkxICgpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDFTTSA9 PSAweEZFKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgX0hJRCA9IEdSSTEgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9D SUQgPSBHUkkxICgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChMMFNNID09IDB4MTgpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDBT TSA9PSAweEZFKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwxU00gPT0gMHgxOCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw RikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChMMVNNID09IDB4RkUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDJTTSA9PSAweDE4KSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEwzU00gPT0gMHgxOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMNFNNID09IDB4 MTgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoTDVTTSA9PSAweDE4KSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBJTkosIDMsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEdQSUosIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHcGlvSW50IChFZGdl LCBBY3RpdmVMb3csIFNoYXJlZEFuZFdha2UsIFB1bGxEZWZhdWx0LCAweDAwMDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1l ciwgLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg IHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKFNo YXJlZCwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uSW5wdXRP bmx5LAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJMCIsIDB4MDAsIFJlc291 cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4RkZGRgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChHUElKLCAweDE3LCBXQUsxKQogICAg ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChHUElKLCAweDNBLCBQSU5GKQogICAgICAg ICAgICAgICAgV0FLMSA9IChHSU5GIChBcmcxLCBBcmcyLCAweDA3KSArIEFyZzApCiAgICAg ICAgICAgICAgICBQSU5GID0gKEdJTkYgKEFyZzEsIEFyZzIsIDB4MDcpICsgQXJnMCkKICAg ICAgICAgICAgICAgIFJldHVybiAoR1BJSikgLyogXF9TQl8uUEMwMC5QSU5KLkdQSUogKi8K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQSU5NLCAzLCBTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChHUElJLCBSZXNvdXJjZVRl bXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR3Bpb0lu dCAoRWRnZSwgQWN0aXZlQm90aCwgU2hhcmVkQW5kV2FrZSwgUHVsbERlZmF1bHQsIDB4MDAw MCwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJj ZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg ICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eEZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEdw aW9JbyAoU2hhcmVkLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rp b25JbnB1dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgw MCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHhGRkZGCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEdQSUksIDB4MTcsIFdB SzEpCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEdQSUksIDB4M0EsIFBJTkYp CiAgICAgICAgICAgICAgICBXQUsxID0gKEdJTkYgKEFyZzEsIEFyZzIsIDB4MDcpICsgQXJn MCkKICAgICAgICAgICAgICAgIFBJTkYgPSAoR0lORiAoQXJnMSwgQXJnMiwgMHgwNykgKyBB cmcwKQogICAgICAgICAgICAgICAgUmV0dXJuIChHUElJKSAvKiBcX1NCXy5QQzAwLlBJTk0u R1BJSSAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBJTlIsIDMsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEdQSVIsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jl c3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQ STAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoR1BJUiwg MHgxNywgUElORikKICAgICAgICAgICAgICAgIFBJTkYgPSAoR0lORiAoQXJnMSwgQXJnMiwg MHgwNykgKyBBcmcwKQogICAgICAgICAgICAgICAgUmV0dXJuIChHUElSKSAvKiBcX1NCXy5Q QzAwLlBJTlIuR1BJUiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFZQ SU4sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChB UkxQKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKEFHUFIs IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAw eDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLkhTMDYuVkdQMSIsIDB4MDAsIFJlc291cmNl Q29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChB R1BSLCAweDE3LCBQSU5BKQogICAgICAgICAgICAgICAgICAgIFBJTkEgPSBBcmcwCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChBR1BSKSAvKiBcX1NCXy5QQzAwLlZQSU4uQUdQUiAq LwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKEdQT1IsIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9J byAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rp b25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDMDAu WEhDSS5SSFVCLlZHUE8iLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8g UGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoR1BPUiwgMHgxNywgUElOVikKICAgICAg ICAgICAgICAgICAgICBQSU5WID0gQXJnMAogICAgICAgICAgICAgICAgICAgIFJldHVybiAo R1BPUikgLyogXF9TQl8uUEMwMC5WUElOLkdQT1IgKi8KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChEU01JLCA0LCBTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDMgPSAoQXJnMyA8PCAweDE4KQog ICAgICAgICAgICAgICAgTG9jYWwyID0gKEFyZzIgPDwgMHgxMCkKICAgICAgICAgICAgICAg IExvY2FsMSA9IChBcmcxIDw8IDB4MDgpCiAgICAgICAgICAgICAgICBMb2NhbDAgPSAoTG9j YWwxIHwgQXJnMCkKICAgICAgICAgICAgICAgIExvY2FsMCB8PSBMb2NhbDIKICAgICAgICAg ICAgICAgIExvY2FsMCB8PSBMb2NhbDMKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEdQUEksIDQsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMyA9IChBcmczIDw8IDB4 MTgpCiAgICAgICAgICAgICAgICBMb2NhbDIgPSAoQXJnMiA8PCAweDEwKQogICAgICAgICAg ICAgICAgTG9jYWwxID0gKEFyZzEgPDwgMHgwOCkKICAgICAgICAgICAgICAgIExvY2FsMCA9 IChMb2NhbDEgfCBBcmcwKQogICAgICAgICAgICAgICAgTG9jYWwwIHw9IExvY2FsMgogICAg ICAgICAgICAgICAgTG9jYWwwIHw9IExvY2FsMwogICAgICAgICAgICAgICAgUmV0dXJuIChM b2NhbDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoR1JJRCwgMSwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoQlVGLCBCdWZm ZXIgKDB4MDkpe30pCiAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMCkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbWmVyb10g PSBMMEgwIC8qIFxMMEgwICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbT25lXSA9 IEwwSDEgLyogXEwwSDEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDAyXSA9 IEwwSDIgLyogXEwwSDIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDAzXSA9 IEwwSDMgLyogXEwwSDMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA0XSA9 IEwwSDQgLyogXEwwSDQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA1XSA9 IEwwSDUgLyogXEwwSDUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA2XSA9 IEwwSDYgLyogXEwwSDYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA3XSA9 IEwwSDcgLyogXEwwSDcgKi8KICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA4XSA9 IEwwSDggLyogXEwwSDggKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQlVGIFtaZXJvXSA9IEwxSDAgLyogXEwxSDAgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgQlVGIFtPbmVdID0gTDFIMSAvKiBcTDFIMSAqLwogICAgICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MDJdID0gTDFIMiAvKiBcTDFIMiAqLwogICAgICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MDNdID0gTDFIMyAvKiBcTDFIMyAqLwogICAgICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MDRdID0gTDFINCAvKiBcTDFINCAqLwogICAgICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MDVdID0gTDFINSAvKiBcTDFINSAqLwogICAgICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MDZdID0gTDFINiAvKiBcTDFINiAqLwogICAgICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MDddID0gTDFINyAvKiBcTDFINyAqLwogICAgICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MDhdID0gTDFIOCAvKiBcTDFIOCAqLwogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFtaZXJvXSA9IEwySDAgLyogXEwy SDAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFtPbmVdID0gTDJIMSAvKiBcTDJI MSAqLwogICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDJdID0gTDJIMiAvKiBcTDJI MiAqLwogICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDNdID0gTDJIMyAvKiBcTDJI MyAqLwogICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDRdID0gTDJINCAvKiBcTDJI NCAqLwogICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDVdID0gTDJINSAvKiBcTDJI NSAqLwogICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDZdID0gTDJINiAvKiBcTDJI NiAqLwogICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDddID0gTDJINyAvKiBcTDJI NyAqLwogICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDhdID0gTDJIOCAvKiBcTDJI OCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBEZWZhdWx0 CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCVUYgW1pl cm9dID0gTDNIMCAvKiBcTDNIMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBCVUYgW09u ZV0gPSBMM0gxIC8qIFxMM0gxICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw Ml0gPSBMM0gyIC8qIFxMM0gyICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw M10gPSBMM0gzIC8qIFxMM0gzICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw NF0gPSBMM0g0IC8qIFxMM0g0ICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw NV0gPSBMM0g1IC8qIFxMM0g1ICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw Nl0gPSBMM0g2IC8qIFxMM0g2ICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw N10gPSBMM0g3IC8qIFxMM0g3ICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw OF0gPSBMM0g4IC8qIFxMM0g4ICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFRvU3RyaW5nIChCVUYsIE9uZXMp KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEhDSUQsIDEsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChB cmcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJv KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gTDBTTSAvKiBcTDBTTSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBMMVNNIC8qIFxMMVNNICovCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMMlNNIC8qIFxMMlNNICov CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDMp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg PSBMM1NNIC8qIFxMM1NNICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBMNFNNIC8qIFxMNFNNICovCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEw1U00gLyogXEw1U00gKi8KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IFN3aXRjaCAoVG9JbnRlZ2VyIChMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJTlQzNDcxIikKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiSU5UMzNCRSIpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJTlQzNDc2 IikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgw MykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoIklOVDM0NzciKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBDYXNlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgiSU5UMzQ3NCIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJTlQzNDczIikKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIklOVDM0NzUiKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA3KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiSU5UMzQ3 OCIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4 MDgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKCJJTlQzNDc5IikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHgwOSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoIklOVDM0N0EiKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDBBKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgiSU5UMzQ3QiIpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEIpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJPVlRJMjc0MiIpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEMpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJPVlRJ OTIzNCIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MEQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKCJPVlRJODg1NiIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MEUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKCJPVlRJRjg2MCIpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJTT05ZMzYyQSIpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTApCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJTT05ZNDg4QSIp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTEp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KCJPVlRJMDFBUyIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IENhc2UgKDB4MTIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKCJPVlRJMDFBMCIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MTMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKCJPVlRJNTY3OCIpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJPVlRJOTczOCIpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTUpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJISU1Y MTFCMSIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MTYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKCJPVlRJMDFBRiIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MTcpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKCJPVlRJMTNCMSIpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTgpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJTlRDMTBCMSIpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1JJRCAoQXJnMCkpCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChGSENJLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQXJnMCkpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEYwRk0gLyogXEYwRk0g Ki8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoT25l KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gRjFGTSAvKiBcRjFGTSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gRjJGTSAvKiBcRjJGTSAqLwogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAzKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gRjNGTSAvKiBcRjNGTSAq LwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA0 KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gRjRGTSAvKiBcRjRGTSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBGNUZNIC8qIFxGNUZNICovCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdl ciAoTG9jYWwwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNl IChaZXJvKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgiVFhOVzM2NDMiKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKCJQV1JDMDAwMCIpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoIlRYTlczNjQzIikKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKEZNSUQsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gRjBGTSAvKiBcRjBGTSAqLwogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBGMUZNIC8qIFxG MUZNICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBGMkZNIC8qIFxGMkZNICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDAgPSBGM0ZNIC8qIFxGM0ZNICovCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBGNEZNIC8qIFxG NEZNICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIERlZmF1 bHQKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IEY1Rk0gLyogXEY1Rk0gKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChMb2NhbDApKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJMTTM2 NDMiKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlIChP bmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKCJQTUlDV1JDIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgiTE0zNjQzIikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEZNTFMsIDEsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRl Z2VyIChBcmcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNl IChaZXJvKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChGME1TKSAvKiBcRjBNUyAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEYxTVMpIC8qIFxGMU1TICovCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEYyTVMpIC8qIFxG Mk1TICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEYzTVMpIC8qIFxGM01TICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEY0TVMpIC8qIFxGNE1TICovCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRjVNUykgLyogXEY1TVMg Ki8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKEFHUE4sIDIsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IChBcmcxIDw8IDB4MTApCiAgICAgICAg ICAgICAgICBMb2NhbDAgfD0gQXJnMAogICAgICAgICAgICAgICAgTG9jYWwxID0gR05VTSAo TG9jYWwwKQogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDEpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoQ0RFUCwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFplcm8pKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoQzBUUCA9PSBPbmUpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEww QlMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERTQzAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ MkMwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU0MwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJDMQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTQzAsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJMkMyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRFNDMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEkyQzMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAo MHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE U0MwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJDNAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA1KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTQzAsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJMkM1CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEU0MwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo QzBUUCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRIMAogICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KChDMFRQID4gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xQMAogICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoKEFyZzAgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKEMxVFAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChMMUJTKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEU0MxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJDMAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNDMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyQzEKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEU0MxLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSTJDMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDYXNlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERTQzEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMkMz CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNDMSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyQzQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU0MxLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSTJDNQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRFNDMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEMxVFAgPT0g MHgwNSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExUSDEKICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQzFUUCA+ IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENMUDEKICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgSWYgKChBcmcwID09IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmICgoQzJUUCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEwyQlMpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJv KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTQzIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMkMwCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU0MyLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSTJDMQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERTQzIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJMkMyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RFNDMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyQzMKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU0MyLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJDNAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDYXNlICgweDA1KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo MHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERTQzIsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJMkM1CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEU0MyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQzJUUCA9PSAweDA1KSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTFRIMgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChDMlRQID4gT25lKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ0xQMgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChDM1RQID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoTDNCUykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNDMywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyQzAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERTQzMsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJMkMxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENhc2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRFNDMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEky QzIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU0MzLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJDMwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTQzMsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJMkM0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENhc2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRFNDMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEkyQzUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVs dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTQzMK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChDM1RQID09IDB4MDUpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMVEgzCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEMzVFAgPiBPbmUpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDTFAzCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSAweDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEM0 VFAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChMNEJTKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoWmVybykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU0M0LCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSTJDMAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRFNDNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEkyQzEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEU0M0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJDMgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAzKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTQzMsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMkMzCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRFNDNCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEkyQzQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEU0M0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJD NQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNDNAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBJZiAoKEM0VFAgPT0gMHgwNSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IExUSDQKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIElmICgoQzRUUCA+IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENMUDQKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDUp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQzVUUCA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3dp dGNoIChUb0ludGVnZXIgKEw1QlMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTQzUsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJMkMwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBEU0M1LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg STJDMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTQzUs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMkMyCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFNDNSwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEkyQzMKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEU0M1LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSTJDNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IERTQzUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMkM1CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU0M1CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmICgoQzVUUCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRINQog ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChDNVRQID4gT25lKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xQNQog ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUEMwMAogICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChDREVHLCAxLCBTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdl ciAoQXJnMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAo WmVybykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg Q2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDJEKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDVBKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBDYXNlICgweDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDg3KQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweEI0KQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA1KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweEUxKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxMEUpCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDcpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEz QikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIERldmljZSAoRFNDMCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDM0NzIiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTlQzNDcyIikgIC8vIF9DSUQ6IENvbXBh dGlibGUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJQTUlDLUNSREciKSAgLy8g X0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBaZXJv KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBJZiAoKEMwR1AgIT0gWmVy bykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JT LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5n cwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChD MEdQID4gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IFBJTlIgKEMwUDAsIEMwQzAsIEMwRzApCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzBHUCA+ IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMSA9IFBJTlIgKEMwUDEsIEMwQzEsIEMwRzEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwg TG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QzBHUCA+IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChDMFAyLCBDMEMyLCBDMEcyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBM b2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExv Y2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEMwR1AgPiAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOUiAoQzBQMywgQzBDMywgQzBHMykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExv Y2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChDMEdQID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTlIgKEMwUDQsIEMwQzQs IEMwRzQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBs YXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQzBHUCA+IDB4MDUpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChDMFA1 LCBDMEM1LCBDMEc1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVS ZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RB LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKENMMDApCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEMwVFAgPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBG KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChDTERCLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKFBBUiwgQnVmZmVyICgweDIwKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAq LyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwQywgMHgwMCwgMHgwMCwgIC8v IC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgog ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAxOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICBQQVIgW1plcm9dID0gQzBWRSAvKiBcQzBWRSAqLwogICAg ICAgICAgICAgICAgICAgIFBBUiBbT25lXSA9IEMwVFAgLyogXEMwVFAgKi8KICAgICAgICAg ICAgICAgICAgICBQQVIgWzB4MDNdID0gQzBDViAvKiBcQzBDViAqLwogICAgICAgICAgICAg ICAgICAgIFBBUiBbMHgwNF0gPSBDMElDIC8qIFxDMElDICovCiAgICAgICAgICAgICAgICAg ICAgUEFSIFsweDA2XSA9IEMwU1AgLyogXEMwU1AgKi8KICAgICAgICAgICAgICAgICAgICBQ QVIgWzB4MDhdID0gQzBXMCAvKiBcQzBXMCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBb MHgwOV0gPSBDMFcxIC8qIFxDMFcxICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDBB XSA9IEMwVzIgLyogXEMwVzIgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MEJdID0g QzBXMyAvKiBcQzBXMyAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwQ10gPSBDMFc0 IC8qIFxDMFc0ICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDBEXSA9IEMwVzUgLyog XEMwVzUgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MEVdID0gQzBDUyAvKiBcQzBD UyAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEFSKSAvKiBcX1NCXy5QQzAwLkRT QzAuQ0xEQi5QQVJfICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmlj IE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJn MCA9PSBUb1VVSUQgKCI3OTIzNDY0MC05ZTEwLTRmZWEtYTVjMS1iNWFhOGIxOTc1NmYiKSAv KiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDNGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQzBHUCkgLyogXEMwR1AgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQ UEkgKEMwRjAsICgoMHgyMCAqIEMwRzApICsgQzBQMCksIEMwSTAsIEMwQTApKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoR1BQSSAoQzBGMSwgKCgweDIwICogQzBHMSkgKyBDMFAxKSwg QzBJMSwgQzBBMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDMEYyLCAoKDB4 MjAgKiBDMEcyKSArIEMwUDIpLCBDMEkyLCBDMEEyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEdQUEkgKEMwRjMsICgoMHgyMCAqIEMwRzMpICsgQzBQMyksIEMwSTMsIEMwQTMpKQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gMHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzBGNCwgKCgweDIwICogQzBHNCkgKyBD MFA0KSwgQzBJNCwgQzBBNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDMEY1 LCAoKDB4MjAgKiBDMEc1KSArIEMwUDUpLCBDMEk1LCBDMEE1KSkKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBJZiAoKFBDSFMgIT0gMHgwNCkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgi ODJjMGQxM2EtNzhjNS00MjQ0LTliYjEtZWI4YjUzOWE4ZDExIikgLyogVW5rbm93biBVVUlE ICovKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5e XklDTEsuQ0xLQyAoVG9JbnRlZ2VyIChEZXJlZk9mIChBcmczIFtaZXJvXSkpLCBUb0ludGVn ZXIgKERlcmVmT2YgKEFyZzMgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPbmVdKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eSUNMSy5DTEtG IChUb0ludGVnZXIgKERlcmVmT2YgKEFyZzMgW1plcm9dKSksIFRvSW50ZWdlciAoRGVyZWZP ZiAoQXJnMyBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJdKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2 aWNlIChEU0MxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAi SU5UMzQ3MiIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAo X0NJRCwgIklOVDM0NzIiKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAg ICAgTmFtZSAoX0RETiwgIlBNSUMtQ1JERyIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUK ICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAog ICAgICAgICAgICAgICAgSWYgKChDMUdQICE9IFplcm8pKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzFHUCA+IFplcm8pKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBQ SU5SIChDMVAwLCBDMUMwLCBDMUcwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEMxR1AgPiBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChD MVAxLCBDMUMxLCBDMUcxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5h dGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEMxR1AgPiAweDAyKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g UElOUiAoQzFQMiwgQzFDMiwgQzFHMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv bmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDMUdQID4gMHgwMykpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMSA9IFBJTlIgKEMxUDMsIEMxQzMsIEMxRzMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzFHUCA+IDB4 MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDEgPSBQSU5SIChDMVA0LCBDMUM0LCBDMUc0KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExv Y2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEMx R1AgPiAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwxID0gUElOUiAoQzFQNSwgQzFDNSwgQzFHNSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9j YWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2Nh bDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChDTDAxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChDMVRQID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQ0xE QiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChQQVIsIEJ1ZmZlciAoMHgyMCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDEsIDB4 MDAsIDB4MDAsIDB4MEMsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg ICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAg LyogMDAxMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTggKi8g IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAu Li4uLi4uLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUEFS IFtaZXJvXSA9IEMxVkUgLyogXEMxVkUgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgW09u ZV0gPSBDMVRQIC8qIFxDMVRQICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDAzXSA9 IEMxQ1YgLyogXEMxQ1YgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDRdID0gQzFJ QyAvKiBcQzFJQyAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwNl0gPSBDMVNQIC8q IFxDMVNQICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDA4XSA9IEMxVzAgLyogXEMx VzAgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDldID0gQzFXMSAvKiBcQzFXMSAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwQV0gPSBDMVcyIC8qIFxDMVcyICovCiAg ICAgICAgICAgICAgICAgICAgUEFSIFsweDBCXSA9IEMxVzMgLyogXEMxVzMgKi8KICAgICAg ICAgICAgICAgICAgICBQQVIgWzB4MENdID0gQzFXNCAvKiBcQzFXNCAqLwogICAgICAgICAg ICAgICAgICAgIFBBUiBbMHgwRF0gPSBDMVc1IC8qIFxDMVc1ICovCiAgICAgICAgICAgICAg ICAgICAgUEFSIFsweDBFXSA9IEMxQ1MgLyogXEMxQ1MgKi8KICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBBUikgLyogXF9TQl8uUEMwMC5EU0MxLkNMREIuUEFSXyAqLwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFs aXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNzkyMzQ2NDAt OWUxMC00ZmVhLWE1YzEtYjVhYThiMTk3NTZmIikgLyogVW5rbm93biBVVUlEICovKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vID8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEMxR1ApIC8qIFxDMUdQ ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDMUYwLCAoKDB4MjAgKiBDMUcw KSArIEMxUDApLCBDMUkwLCBDMUEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkg KEMxRjEsICgoMHgyMCAqIEMxRzEpICsgQzFQMSksIEMxSTEsIEMxQTEpKQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoR1BQSSAoQzFGMiwgKCgweDIwICogQzFHMikgKyBDMVAyKSwgQzFJ MiwgQzFBMikpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMiA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDMUYzLCAoKDB4MjAg KiBDMUczKSArIEMxUDMpLCBDMUkzLCBDMUEzKSkKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDYpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEdQUEkgKEMxRjQsICgoMHgyMCAqIEMxRzQpICsgQzFQNCksIEMxSTQsIEMxQTQpKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzIgPT0gMHgwNykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzFGNSwgKCgweDIwICogQzFHNSkgKyBDMVA1 KSwgQzFJNSwgQzFBNSkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoUENIUyAhPSAweDA0KSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSBUb1VVSUQgKCI4MmMwZDEzYS03OGM1LTQyNDQtOWJiMS1lYjhiNTM5YThkMTEiKSAvKiBV bmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcx ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXl5eSUNMSy5DTEtDIChUb0ludGVnZXIgKERlcmVmT2YgKEFyZzMgW1plcm9d KSksIFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE9uZV0pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Xl5JQ0xLLkNMS0YgKFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbWmVyb10pKSwgVG9JbnRl Z2VyIChEZXJlZk9mIChBcmczIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMl0pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg ICAgICAgICBEZXZpY2UgKERTQzIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5h bWUgKF9ISUQsICJJTlQzNDcyIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAg ICAgICBOYW1lIChfQ0lELCAiSU5UMzQ3MiIpICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAg ICAgICAgICAgICAgICBOYW1lIChfREROLCAiUE1JQy1DUkRHIikgIC8vIF9ERE46IERPUyBE ZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikgIC8vIF9VSUQ6 IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgSWYgKChDMkdQICE9IFplcm8pKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzJHUCA+IFplcm8p KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBQSU5SIChDMlAwLCBDMkMwLCBDMkcwKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEMyR1AgPiBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDEgPSBQSU5SIChDMlAxLCBDMkMxLCBDMkcxKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEMyR1AgPiAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwxID0gUElOUiAoQzJQMiwgQzJDMiwgQzJHMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2Nh bDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDMkdQ ID4gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMSA9IFBJTlIgKEMyUDMsIEMyQzMsIEMyRzMpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2Fs MSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwy CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoQzJHUCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChDMlA0LCBDMkM0LCBDMkc0KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWww LCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEMyR1AgPiAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOUiAoQzJQNSwgQzJDNSwgQzJH NSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUg KExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmIChDTDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChDMlRQID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoQ0xEQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOYW1lIChQQVIsIEJ1ZmZlciAoMHgyMCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4 MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MEMsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgog ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwMTggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgUEFSIFtaZXJvXSA9IEMyVkUgLyogXEMyVkUgKi8KICAgICAgICAgICAgICAg ICAgICBQQVIgW09uZV0gPSBDMlRQIC8qIFxDMlRQICovCiAgICAgICAgICAgICAgICAgICAg UEFSIFsweDAzXSA9IEMyQ1YgLyogXEMyQ1YgKi8KICAgICAgICAgICAgICAgICAgICBQQVIg WzB4MDRdID0gQzJJQyAvKiBcQzJJQyAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgw Nl0gPSBDMlNQIC8qIFxDMlNQICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDA4XSA9 IEMyVzAgLyogXEMyVzAgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDldID0gQzJX MSAvKiBcQzJXMSAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwQV0gPSBDMlcyIC8q IFxDMlcyICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDBCXSA9IEMyVzMgLyogXEMy VzMgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MENdID0gQzJXNCAvKiBcQzJXNCAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwRF0gPSBDMlc1IC8qIFxDMlc1ICovCiAg ICAgICAgICAgICAgICAgICAgUEFSIFsweDBFXSA9IEMyQ1MgLyogXEMyQ1MgKi8KICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFBBUikgLyogXF9TQl8uUEMwMC5EU0MyLkNMREIuUEFS XyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwg NCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlE ICgiNzkyMzQ2NDAtOWUxMC00ZmVhLWE1YzEtYjVhYThiMTk3NTZmIikgLyogVW5rbm93biBV VUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgz RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vID8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEMy R1ApIC8qIFxDMkdQICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDMkYwLCAo KDB4MjAgKiBDMkcwKSArIEMyUDApLCBDMkkwLCBDMkEwKSkKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEdQUEkgKEMyRjEsICgoMHgyMCAqIEMyRzEpICsgQzJQMSksIEMySTEsIEMyQTEp KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzJGMiwgKCgweDIwICogQzJHMikg KyBDMlAyKSwgQzJJMiwgQzJBMikpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA1KSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChD MkYzLCAoKDB4MjAgKiBDMkczKSArIEMyUDMpLCBDMkkzLCBDMkEzKSkKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4 MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEdQUEkgKEMyRjQsICgoMHgyMCAqIEMyRzQpICsgQzJQNCksIEMySTQs IEMyQTQpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gMHgwNykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzJGNSwgKCgweDIwICog QzJHNSkgKyBDMlA1KSwgQzJJNSwgQzJBNSkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoUENIUyAh PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSBUb1VVSUQgKCI4MmMwZDEzYS03OGM1LTQyNDQtOWJiMS1lYjhiNTM5 YThkMTEiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIg KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXl5eSUNMSy5DTEtDIChUb0ludGVnZXIgKERlcmVmT2Yg KEFyZzMgW1plcm9dKSksIFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9uZV0pKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeXl5JQ0xLLkNMS0YgKFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbWmVy b10pKSwgVG9JbnRlZ2VyIChEZXJlZk9mIChBcmczIFsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMl0pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKERTQzMpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzNDcyIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElE CiAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAiSU5UMzQ3MiIpICAvLyBfQ0lEOiBDb21w YXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiUE1JQy1DUkRHIikgIC8v IF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgw MykgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgSWYgKChDM0dQICE9IFpl cm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NS UywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGlu Z3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QzNHUCA+IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgPSBQSU5SIChDM1AwLCBDM0MwLCBDM0cwKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEMzR1Ag PiBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDEgPSBQSU5SIChDM1AxLCBDM0MxLCBDM0cxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEs IExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEMzR1AgPiAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwxID0gUElOUiAoQzNQMiwgQzNDMiwgQzNHMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwg TG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBM b2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChDM0dQID4gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTlIgKEMzUDMsIEMzQzMsIEMzRzMp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChM b2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQzNHUCA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChDM1A0LCBDM0M0 LCBDM0c0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1w bGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEMzR1AgPiAweDA1KSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOUiAoQzNQ NSwgQzNDNSwgQzNHNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRl UmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NU QSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmIChDTDAzKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDM1RQID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw RikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoQ0xEQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChQQVIsIEJ1ZmZlciAoMHgyMCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAg Ki8gIDB4MDAsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MEMsIDB4MDAsIDB4MDAsICAv LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4K ICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgUEFSIFtaZXJvXSA9IEMzVkUgLyogXEMzVkUgKi8KICAg ICAgICAgICAgICAgICAgICBQQVIgW09uZV0gPSBDM1RQIC8qIFxDM1RQICovCiAgICAgICAg ICAgICAgICAgICAgUEFSIFsweDAzXSA9IEMzQ1YgLyogXEMzQ1YgKi8KICAgICAgICAgICAg ICAgICAgICBQQVIgWzB4MDRdID0gQzNJQyAvKiBcQzNJQyAqLwogICAgICAgICAgICAgICAg ICAgIFBBUiBbMHgwNl0gPSBDM1NQIC8qIFxDM1NQICovCiAgICAgICAgICAgICAgICAgICAg UEFSIFsweDA4XSA9IEMzVzAgLyogXEMzVzAgKi8KICAgICAgICAgICAgICAgICAgICBQQVIg WzB4MDldID0gQzNXMSAvKiBcQzNXMSAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgw QV0gPSBDM1cyIC8qIFxDM1cyICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDBCXSA9 IEMzVzMgLyogXEMzVzMgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MENdID0gQzNX NCAvKiBcQzNXNCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwRF0gPSBDM1c1IC8q IFxDM1c1ICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDBFXSA9IEMzQ1MgLyogXEMz Q1MgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBBUikgLyogXF9TQl8uUEMwMC5E U0MzLkNMREIuUEFSXyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZp YyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzAgPT0gVG9VVUlEICgiNzkyMzQ2NDAtOWUxMC00ZmVhLWE1YzEtYjVhYThiMTk3NTZmIikg LyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgzRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEMzR1ApIC8qIFxDM0dQICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChH UFBJIChDM0YwLCAoKDB4MjAgKiBDM0cwKSArIEMzUDApLCBDM0kwLCBDM0EwKSkKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEdQUEkgKEMzRjEsICgoMHgyMCAqIEMzRzEpICsgQzNQMSks IEMzSTEsIEMzQTEpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzNGMiwgKCgw eDIwICogQzNHMikgKyBDM1AyKSwgQzNJMiwgQzNBMikpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA1KSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChHUFBJIChDM0YzLCAoKDB4MjAgKiBDM0czKSArIEMzUDMpLCBDM0kzLCBDM0EzKSkK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkgKEMzRjQsICgoMHgyMCAqIEMzRzQpICsg QzNQNCksIEMzSTQsIEMzQTQpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzNG NSwgKCgweDIwICogQzNHNSkgKyBDM1A1KSwgQzNJNSwgQzNBNSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmICgoUENIUyAhPSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI4MmMwZDEzYS03OGM1LTQyNDQt OWJiMS1lYjhiNTM5YThkMTEiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eSUNMSy5DTEtDIChUb0ludGVn ZXIgKERlcmVmT2YgKEFyZzMgW1plcm9dKSksIFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBb CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZV0pKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeXl5JQ0xLLkNMS0YgKFRvSW50ZWdlciAoRGVyZWZP ZiAoQXJnMyBbWmVyb10pKSwgVG9JbnRlZ2VyIChEZXJlZk9mIChBcmczIFsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMl0pKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKERTQzQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzNDcyIikgIC8vIF9ISUQ6 IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAiSU5UMzQ3MiIpICAv LyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiUE1J Qy1DUkRHIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFt ZSAoX1VJRCwgMHgwNCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgSWYg KChDNEdQICE9IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVz b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQzRHUCA+IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBQSU5SIChDNFAwLCBDNEMwLCBD NEcwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEM0R1AgPiBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChDNFAxLCBDNEMxLCBDNEcxKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9j YWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEM0R1AgPiAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOUiAoQzRQMiwgQzRDMiwg QzRHMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxh dGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChDNEdQID4gMHgwMykpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTlIgKEM0UDMs IEM0QzMsIEM0RzMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJl c1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQzRHUCA+IDB4MDQpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5S IChDNFA0LCBDNEM0LCBDNEc0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0 ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEM0R1AgPiAweDA1KSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwx ID0gUElOUiAoQzRQNSwgQzRDNSwgQzRHNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDTDA0KQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDNFRQID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQ0xEQiwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChQQVIsIEJ1 ZmZlciAoMHgyMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MEMsIDB4 MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4 ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAg Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4u CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUEFSIFtaZXJvXSA9IEM0VkUgLyog XEM0VkUgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgW09uZV0gPSBDNFRQIC8qIFxDNFRQ ICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDAzXSA9IEM0Q1YgLyogXEM0Q1YgKi8K ICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDRdID0gQzRJQyAvKiBcQzRJQyAqLwogICAg ICAgICAgICAgICAgICAgIFBBUiBbMHgwNl0gPSBDNFNQIC8qIFxDNFNQICovCiAgICAgICAg ICAgICAgICAgICAgUEFSIFsweDA4XSA9IEM0VzAgLyogXEM0VzAgKi8KICAgICAgICAgICAg ICAgICAgICBQQVIgWzB4MDldID0gQzRXMSAvKiBcQzRXMSAqLwogICAgICAgICAgICAgICAg ICAgIFBBUiBbMHgwQV0gPSBDNFcyIC8qIFxDNFcyICovCiAgICAgICAgICAgICAgICAgICAg UEFSIFsweDBCXSA9IEM0VzMgLyogXEM0VzMgKi8KICAgICAgICAgICAgICAgICAgICBQQVIg WzB4MENdID0gQzRXNCAvKiBcQzRXNCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgw RF0gPSBDNFc1IC8qIFxDNFc1ICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDBFXSA9 IEM0Q1MgLyogXEM0Q1MgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBBUikgLyog XF9TQl8uUEMwMC5EU0M0LkNMREIuUEFSXyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERl dmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNzkyMzQ2NDAtOWUxMC00ZmVhLWE1YzEtYjVh YThiMTk3NTZmIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChC dWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgzRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEM0R1ApIC8qIFxDNEdQICovCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChHUFBJIChDNEYwLCAoKDB4MjAgKiBDNEcwKSArIEM0UDApLCBDNEkwLCBD NEEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkgKEM0RjEsICgoMHgyMCAqIEM0 RzEpICsgQzRQMSksIEM0STEsIEM0QTEpKQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BQ SSAoQzRGMiwgKCgweDIwICogQzRHMikgKyBDNFAyKSwgQzRJMiwgQzRBMikpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChHUFBJIChDNEYzLCAoKDB4MjAgKiBDNEczKSArIEM0UDMpLCBD NEkzLCBDNEEzKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkgKEM0RjQsICgoMHgy MCAqIEM0RzQpICsgQzRQNCksIEM0STQsIEM0QTQpKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNykpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoR1BQSSAoQzRGNSwgKCgweDIwICogQzRHNSkgKyBDNFA1KSwgQzRJNSwgQzRBNSkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmICgoUENIUyAhPSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI4MmMwZDEz YS03OGM1LTQyNDQtOWJiMS1lYjhiNTM5YThkMTEiKSAvKiBVbmtub3duIFVVSUQgKi8pKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eSUNMSy5D TEtDIChUb0ludGVnZXIgKERlcmVmT2YgKEFyZzMgW1plcm9dKSksIFRvSW50ZWdlciAoRGVy ZWZPZiAoQXJnMyBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZV0p KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5JQ0xLLkNMS0YgKFRvSW50 ZWdlciAoRGVyZWZPZiAoQXJnMyBbWmVyb10pKSwgVG9JbnRlZ2VyIChEZXJlZk9mIChBcmcz IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMl0pKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKERT QzUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzNDcy IikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAi SU5UMzQ3MiIpICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1l IChfREROLCAiUE1JQy1DUkRHIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAg ICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAg ICAgICAgICAgSWYgKChDNUdQICE9IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6 IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQzVHUCA+IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBQSU5SIChD NVAwLCBDNUMwLCBDNUcwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEM1R1AgPiBPbmUpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChDNVAxLCBD NUMxLCBDNUcxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNU ZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEM1R1AgPiAweDAyKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOUiAo QzVQMiwgQzVDMiwgQzVHMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVu YXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDNUdQID4gMHgwMykpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9 IFBJTlIgKEM1UDMsIEM1QzMsIEM1RzMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBD b25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzVHUCA+IDB4MDQpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDEgPSBQSU5SIChDNVA0LCBDNUM0LCBDNUc0KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEM1R1AgPiAw eDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwxID0gUElOUiAoQzVQNSwgQzVDNSwgQzVHNSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBM b2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6 IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDTDA1 KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChD NVRQID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQ0xEQiwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChQQVIsIEJ1ZmZlciAoMHgyMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDUsIDB4MDAsIDB4 MDAsIDB4MEMsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAx MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4u LgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUEFSIFtaZXJv XSA9IEM1VkUgLyogXEM1VkUgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgW09uZV0gPSBD NVRQIC8qIFxDNVRQICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDAzXSA9IEM1Q1Yg LyogXEM1Q1YgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDRdID0gQzVJQyAvKiBc QzVJQyAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwNl0gPSBDNVNQIC8qIFxDNVNQ ICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDA4XSA9IEM1VzAgLyogXEM1VzAgKi8K ICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDldID0gQzVXMSAvKiBcQzVXMSAqLwogICAg ICAgICAgICAgICAgICAgIFBBUiBbMHgwQV0gPSBDNVcyIC8qIFxDNVcyICovCiAgICAgICAg ICAgICAgICAgICAgUEFSIFsweDBCXSA9IEM1VzMgLyogXEM1VzMgKi8KICAgICAgICAgICAg ICAgICAgICBQQVIgWzB4MENdID0gQzVXNCAvKiBcQzVXNCAqLwogICAgICAgICAgICAgICAg ICAgIFBBUiBbMHgwRF0gPSBDNVc1IC8qIFxDNVc1ICovCiAgICAgICAgICAgICAgICAgICAg UEFSIFsweDBFXSA9IEM1Q1MgLyogXEM1Q1MgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBBUikgLyogXF9TQl8uUEMwMC5EU0M1LkNMREIuUEFSXyAqLwogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkg IC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNzkyMzQ2NDAtOWUxMC00 ZmVhLWE1YzEtYjVhYThiMTk3NTZmIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vID8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEM1R1ApIC8qIFxDNUdQICovCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDNUYwLCAoKDB4MjAgKiBDNUcwKSArIEM1 UDApLCBDNUkwLCBDNUEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkgKEM1RjEs ICgoMHgyMCAqIEM1RzEpICsgQzVQMSksIEM1STEsIEM1QTEpKQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoR1BQSSAoQzVGMiwgKCgweDIwICogQzVHMikgKyBDNVAyKSwgQzVJMiwgQzVB MikpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDNUYzLCAoKDB4MjAgKiBDNUcz KSArIEM1UDMpLCBDNUkzLCBDNUEzKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkg KEM1RjQsICgoMHgyMCAqIEM1RzQpICsgQzVQNCksIEM1STQsIEM1QTQpKQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g MHgwNykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoR1BQSSAoQzVGNSwgKCgweDIwICogQzVHNSkgKyBDNVA1KSwgQzVJ NSwgQzVBNSkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoUENIUyAhPSAweDA0KSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VV SUQgKCI4MmMwZDEzYS03OGM1LTQyNDQtOWJiMS1lYjhiNTM5YThkMTEiKSAvKiBVbmtub3du IFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXl5eSUNMSy5DTEtDIChUb0ludGVnZXIgKERlcmVmT2YgKEFyZzMgW1plcm9dKSksIFRv SW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9uZV0pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5JQ0xL LkNMS0YgKFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbWmVyb10pKSwgVG9JbnRlZ2VyIChE ZXJlZk9mIChBcmczIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw Ml0pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBEZXZpY2UgKENMUDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAo X0RFUCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDTDAwKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDMElCID09IDB4MDIpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJDMgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChDMElCID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSTJDMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUEMwMAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwQSkgIC8vIF9VSUQ6 IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDM0NzIiKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTlQzNDcy IikgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4s ICJQTUlDLUNSREciKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJl c291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChJSUNCIChDMElBLCBDMElCKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0 dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ0wwMCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKEMwVFAg PiBPbmUpICYmIChDMFRQICE9IDB4MDUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChDTERCLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE5hbWUgKFBBUiwgQnVmZmVyICgweDIwKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwQywgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg ICAgICAgICAvKiAwMDEwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyog MDAxOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICBQQVIgW1plcm9dID0gQzBWRSAvKiBcQzBWRSAqLwogICAgICAgICAgICAgICAgICAg IFBBUiBbT25lXSA9IEMwVFAgLyogXEMwVFAgKi8KICAgICAgICAgICAgICAgICAgICBQQVIg WzB4MDNdID0gQzBDViAvKiBcQzBDViAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgw NF0gPSBDMElDIC8qIFxDMElDICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDA2XSA9 IEMwU1AgLyogXEMwU1AgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDhdID0gQzBX MCAvKiBcQzBXMCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwOV0gPSBDMFcxIC8q IFxDMFcxICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDBBXSA9IEMwVzIgLyogXEMw VzIgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MEJdID0gQzBXMyAvKiBcQzBXMyAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwQ10gPSBDMFc0IC8qIFxDMFc0ICovCiAg ICAgICAgICAgICAgICAgICAgUEFSIFsweDBEXSA9IEMwVzUgLyogXEMwVzUgKi8KICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFBBUikgLyogXF9TQl8uUEMwMC5DTFAwLkNMREIuUEFS XyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwg MCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKFBMREIsIFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4ODIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogMDAwOCAqLyAgMHgyOSwgMHgwRCwgMHgwMCwgMHgwMCwgMHgwMywgMHgw MCwgMHgwMCwgMHgwMCwgIC8vICkuLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDEwICovICAweEZGLCAweEZGLCAweEZGLCAweEZGICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLi4uLgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKERlcmVm T2YgKFBMREIgW1plcm9dKSwgMHgwOCwgQlBPUykKICAgICAgICAgICAgICAgICAgICBCUE9T ID0gQzBQTCAvKiBcQzBQTCAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUExEQikg LyogXF9TQl8uUEMwMC5DTFAwLl9QTEQuUExEQiAqLwogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006 IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMjYyNTc1NDktOTI3MS00Y2E0LWJiNDMt YzQ4OTlkNWE0ODgxIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcxID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChE U01JICgweDBCLCBDMElBLCBaZXJvLCBDMElCKSkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IFRvVVVJRCAoIjU4MTVjNWM4LWM0N2QtNDc3Yi05YThkLTc2MTczMTc2NDE0YiIpIC8q IFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl ciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKERTTUIsIEJ1ZmZlciAoMHgzNCl7fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKERTTUIsIFplcm8sIEkyQ0MpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDA0LCBERVYwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSTJDQyA9IE9uZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgREVWMCA9IERTTUkgKDB4MEIsIEMwSUEsIFplcm8sIEMwSUIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUIpIC8qIFxfU0JfLlBDMDAuQ0xQMC5fRFNN LkRTTUIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERl dmljZSAoQ0xQMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChfREVQ LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENMMDEpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEMxSUIgPT0gMHgwMikpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJMkMyCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEMxSUIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJMkMzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBQQzAwCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiSU5UMzQ3MiIpICAvLyBfSElE OiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklOVDM0NzIiKSAg Ly8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0RETiwgIlBN SUMtQ1JERyIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgIE5h bWUgKF9VSUQsIDB4MEIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKElJQ0IgKEMxSUEsIEMxSUIpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDTDAxKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoQzFUUCA+IE9u ZSkgJiYgKEMxVFAgIT0gMHgwNSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KENMREIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoUEFSLCBCdWZmZXIgKDB4MjApCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDAwLCAweDAx LCAweDAwLCAweDAwLCAweDBDLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAg ICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMTAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDE4 ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAg Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg IFBBUiBbWmVyb10gPSBDMVZFIC8qIFxDMVZFICovCiAgICAgICAgICAgICAgICAgICAgUEFS IFtPbmVdID0gQzFUUCAvKiBcQzFUUCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgw M10gPSBDMUNWIC8qIFxDMUNWICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDA0XSA9 IEMxSUMgLyogXEMxSUMgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDZdID0gQzFT UCAvKiBcQzFTUCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwOF0gPSBDMVcwIC8q IFxDMVcwICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDA5XSA9IEMxVzEgLyogXEMx VzEgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MEFdID0gQzFXMiAvKiBcQzFXMiAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwQl0gPSBDMVczIC8qIFxDMVczICovCiAg ICAgICAgICAgICAgICAgICAgUEFSIFsweDBDXSA9IEMxVzQgLyogXEMxVzQgKi8KICAgICAg ICAgICAgICAgICAgICBQQVIgWzB4MERdID0gQzFXNSAvKiBcQzFXNSAqLwogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUEFSKSAvKiBcX1NCXy5QQzAwLkNMUDEuQ0xEQi5QQVJfICov CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUExELCAwLCBT ZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUExEQiwgUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJ1 ZmZlciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDA4ICovICAweDI5LCAweDBELCAweDAwLCAweDAwLCAweDAzLCAweDAwLCAw eDAwLCAweDAwLCAgLy8gKS4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwMTAgKi8gIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoRGVyZWZPZiAo UExEQiBbWmVyb10pLCAweDA4LCBCUE9TKQogICAgICAgICAgICAgICAgICAgIEJQT1MgPSBD MVBMIC8qIFxDMVBMICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERCKSAvKiBc X1NCXy5QQzAwLkNMUDEuX1BMRC5QTERCICovCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2 aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIyNjI1NzU0OS05MjcxLTRjYTQtYmI0My1jNDg5 OWQ1YTQ4ODEiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEg PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDA3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkg KDB4MEIsIEMxSUEsIFplcm8sIEMxSUIpKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0g VG9VVUlEICgiNTgxNWM1YzgtYzQ3ZC00NzdiLTlhOGQtNzYxNzMxNzY0MTRiIikgLyogVW5r bm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChP bmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo RFNNQiwgQnVmZmVyICgweDM0KXt9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlRFdvcmRGaWVsZCAoRFNNQiwgWmVybywgSTJDQykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MDQsIERFVjApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJMkNDID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBERVYwID0gRFNNSSAoMHgwQiwgQzFJQSwgWmVybywgQzFJQikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoRFNNQikgLyogXF9TQl8uUEMwMC5DTFAxLl9EU00uRFNN QiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNl IChDTFAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9ERVAsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ0wwMikKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzJJQiA9PSAweDAyKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ YWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEkyQzIKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQzJJQiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEky QzMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFBDMDAKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzNDcyIikgIC8vIF9ISUQ6IEhh cmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAiSU5UMzQ3MiIpICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiUE1JQy1D UkRHIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgwQykgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgTWV0aG9k IChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBT ZXR0aW5ncwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo SUlDQiAoQzJJQSwgQzJJQikpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENMMDIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChDMlRQID4gT25lKSAm JiAoQzJUUCAhPSAweDA1KSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQ0xE QiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChQQVIsIEJ1ZmZlciAoMHgyMCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDIsIDB4 MDAsIDB4MDAsIDB4MEMsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAg ICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAg LyogMDAxMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTggKi8g IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAu Li4uLi4uLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUEFS IFtaZXJvXSA9IEMyVkUgLyogXEMyVkUgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgW09u ZV0gPSBDMlRQIC8qIFxDMlRQICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDAzXSA9 IEMyQ1YgLyogXEMyQ1YgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDRdID0gQzJJ QyAvKiBcQzJJQyAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwNl0gPSBDMlNQIC8q IFxDMlNQICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDA4XSA9IEMyVzAgLyogXEMy VzAgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDldID0gQzJXMSAvKiBcQzJXMSAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwQV0gPSBDMlcyIC8qIFxDMlcyICovCiAg ICAgICAgICAgICAgICAgICAgUEFSIFsweDBCXSA9IEMyVzMgLyogXEMyVzMgKi8KICAgICAg ICAgICAgICAgICAgICBQQVIgWzB4MENdID0gQzJXNCAvKiBcQzJXNCAqLwogICAgICAgICAg ICAgICAgICAgIFBBUiBbMHgwRF0gPSBDMlc1IC8qIFxDMlc1ICovCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQQVIpIC8qIFxfU0JfLlBDMDAuQ0xQMi5DTERCLlBBUl8gKi8KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlh bGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChQTERCLCBQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVy ICgweDE0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiAwMDAwICovICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwMDggKi8gIDB4MjksIDB4MEQsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAs IDB4MDAsICAvLyApLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAx MCAqLyAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChEZXJlZk9mIChQTERC IFtaZXJvXSksIDB4MDgsIEJQT1MpCiAgICAgICAgICAgICAgICAgICAgQlBPUyA9IEMyUEwg LyogXEMyUEwgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMREIpIC8qIFxfU0Jf LlBDMDAuQ0xQMi5fUExELlBMREIgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2Ut U3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcwID09IFRvVVVJRCAoIjI2MjU3NTQ5LTkyNzEtNGNhNC1iYjQzLWM0ODk5ZDVh NDg4MSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoMHgw QiwgQzJJQSwgWmVybywgQzJJQikpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VV SUQgKCI1ODE1YzVjOC1jNDdkLTQ3N2ItOWE4ZC03NjE3MzE3NjQxNGIiKSAvKiBVbmtub3du IFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChEU01C LCBCdWZmZXIgKDB4MzQpe30pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChEU01CLCBaZXJvLCBJMkNDKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgwNCwgREVWMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEkyQ0MgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERF VjAgPSBEU01JICgweDBCLCBDMklBLCBaZXJvLCBDMklCKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChEU01CKSAvKiBcX1NCXy5QQzAwLkNMUDIuX0RTTS5EU01CICov CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKENM UDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RFUCwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmIChDTDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChDM0lCID09IDB4MDIpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSTJDMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChDM0lCID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJDMwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ YWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUEMwMAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDM0NzIiKSAgLy8gX0hJRDogSGFyZHdh cmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTlQzNDcyIikgIC8vIF9DSUQ6 IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJQTUlDLUNSREci KSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAgICBOYW1lIChfVUlE LCAweDBEKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBNZXRob2QgKF9D UlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRp bmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChJSUNC IChDM0lBLCBDM0lCKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ0wwMykKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKEMzVFAgPiBPbmUpICYmIChD M1RQICE9IDB4MDUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChDTERCLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE5hbWUgKFBBUiwgQnVmZmVyICgweDIwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMCwgMHgwMCwgMHgwMywgMHgwMCwg MHgwMCwgMHgwQywgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAw MDEwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4u Li4uCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBQQVIgW1pl cm9dID0gQzNWRSAvKiBcQzNWRSAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbT25lXSA9 IEMzVFAgLyogXEMzVFAgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDNdID0gQzND ViAvKiBcQzNDViAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwNF0gPSBDM0lDIC8q IFxDM0lDICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDA2XSA9IEMzU1AgLyogXEMz U1AgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDhdID0gQzNXMCAvKiBcQzNXMCAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwOV0gPSBDM1cxIC8qIFxDM1cxICovCiAg ICAgICAgICAgICAgICAgICAgUEFSIFsweDBBXSA9IEMzVzIgLyogXEMzVzIgKi8KICAgICAg ICAgICAgICAgICAgICBQQVIgWzB4MEJdID0gQzNXMyAvKiBcQzNXMyAqLwogICAgICAgICAg ICAgICAgICAgIFBBUiBbMHgwQ10gPSBDM1c0IC8qIFxDM1c0ICovCiAgICAgICAgICAgICAg ICAgICAgUEFSIFsweDBEXSA9IEMzVzUgLyogXEMzVzUgKi8KICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBBUikgLyogXF9TQl8uUEMwMC5DTFAzLkNMREIuUEFSXyAqLwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXpl ZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKFBMREIsIFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4 MTQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMDAgKi8gIDB4ODIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog MDAwOCAqLyAgMHgyOSwgMHgwRCwgMHgwMCwgMHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHgw MCwgIC8vICkuLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICov ICAweEZGLCAweEZGLCAweEZGLCAweEZGICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g Li4uLgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKERlcmVmT2YgKFBMREIgW1pl cm9dKSwgMHgwOCwgQlBPUykKICAgICAgICAgICAgICAgICAgICBCUE9TID0gQzNQTCAvKiBc QzNQTCAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUExEQikgLyogXF9TQl8uUEMw MC5DTFAzLl9QTEQuUExEQiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVj aWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gVG9VVUlEICgiMjYyNTc1NDktOTI3MS00Y2E0LWJiNDMtYzQ4OTlkNWE0ODgx IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8p KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JICgweDBCLCBD M0lBLCBaZXJvLCBDM0lCKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAo IjU4MTVjNWM4LWM0N2QtNDc3Yi05YThkLTc2MTczMTc2NDE0YiIpIC8qIFVua25vd24gVVVJ RCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKERTTUIsIEJ1 ZmZlciAoMHgzNCl7fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKERTTUIsIFplcm8sIEkyQ0MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChEU01CLCAweDA0LCBERVYwKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSTJDQyA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWMCA9 IERTTUkgKDB4MEIsIEMzSUEsIFplcm8sIEMzSUIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKERTTUIpIC8qIFxfU0JfLlBDMDAuQ0xQMy5fRFNNLkRTTUIgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQ0xQNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChfREVQLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKENMMDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEM0SUIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJMkMyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEM0 SUIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMkMzCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2th Z2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBQQzAwCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBOYW1lIChfSElELCAiSU5UMzQ3MiIpICAvLyBfSElEOiBIYXJkd2FyZSBJ RAogICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklOVDM0NzIiKSAgLy8gX0NJRDogQ29t cGF0aWJsZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0RETiwgIlBNSUMtQ1JERyIpICAv LyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4 MEUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKElJQ0IgKEM0 SUEsIEM0SUIpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo X1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmIChDTDA0KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoQzRUUCA+IE9uZSkgJiYgKEM0VFAg IT0gMHgwNSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKENMREIsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoUEFSLCBCdWZmZXIgKDB4MjApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDAwLCAweDA0LCAweDAwLCAweDAw LCAweDBDLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAg ICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAg Ki8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAv LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4K ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIFBBUiBbWmVyb10g PSBDNFZFIC8qIFxDNFZFICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFtPbmVdID0gQzRU UCAvKiBcQzRUUCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwM10gPSBDNENWIC8q IFxDNENWICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDA0XSA9IEM0SUMgLyogXEM0 SUMgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDZdID0gQzRTUCAvKiBcQzRTUCAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwOF0gPSBDNFcwIC8qIFxDNFcwICovCiAg ICAgICAgICAgICAgICAgICAgUEFSIFsweDA5XSA9IEM0VzEgLyogXEM0VzEgKi8KICAgICAg ICAgICAgICAgICAgICBQQVIgWzB4MEFdID0gQzRXMiAvKiBcQzRXMiAqLwogICAgICAgICAg ICAgICAgICAgIFBBUiBbMHgwQl0gPSBDNFczIC8qIFxDNFczICovCiAgICAgICAgICAgICAg ICAgICAgUEFSIFsweDBDXSA9IEM0VzQgLyogXEM0VzQgKi8KICAgICAgICAgICAgICAgICAg ICBQQVIgWzB4MERdID0gQzRXNSAvKiBcQzRXNSAqLwogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUEFSKSAvKiBcX1NCXy5QQzAwLkNMUDQuQ0xEQi5QQVJfICovCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAg Ly8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUExEQiwgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogMDAwMCAqLyAgMHg4MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4 ICovICAweDI5LCAweDBELCAweDAwLCAweDAwLCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAg Ly8gKS4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4 RkYsIDB4RkYsIDB4RkYsIDB4RkYgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4u CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoRGVyZWZPZiAoUExEQiBbWmVyb10p LCAweDA4LCBCUE9TKQogICAgICAgICAgICAgICAgICAgIEJQT1MgPSBDNFBMIC8qIFxDNFBM ICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERCKSAvKiBcX1NCXy5QQzAwLkNM UDQuX1BMRC5QTERCICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmlj IE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJn MCA9PSBUb1VVSUQgKCIyNjI1NzU0OS05MjcxLTRjYTQtYmI0My1jNDg5OWQ1YTQ4ODEiKSAv KiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKDB4MEIsIEM0SUEs IFplcm8sIEM0SUIpKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNTgx NWM1YzgtYzQ3ZC00NzdiLTlhOGQtNzYxNzMxNzY0MTRiIikgLyogVW5rbm93biBVVUlEICov KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVm ZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoRFNNQiwgQnVmZmVy ICgweDM0KXt9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoRFNNQiwgWmVybywgSTJDQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKERTTUIsIDB4MDQsIERFVjApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJMkNDID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVYwID0gRFNN SSAoMHgwQiwgQzRJQSwgWmVybywgQzRJQikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoRFNNQikgLyogXF9TQl8uUEMwMC5DTFA0Ll9EU00uRFNNQiAqLwogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChDTFA1KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoQ0wwNSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQzVJQiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEkyQzIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzVJQiA9 PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyQzMKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBD MDAKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE5hbWUgKF9ISUQsICJJTlQzNDcyIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAg ICAgICAgICAgICAgICBOYW1lIChfQ0lELCAiSU5UMzQ3MiIpICAvLyBfQ0lEOiBDb21wYXRp YmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiUE1JQy1DUkRHIikgIC8vIF9E RE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwRikg IC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoSUlDQiAoQzVJQSwg QzVJQikpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RB LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKENMMDUpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChDNVRQID4gT25lKSAmJiAoQzVUUCAhPSAw eDA1KSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQ0xEQiwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChQ QVIsIEJ1ZmZlciAoMHgyMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MDAsIDB4 MEMsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4u Li4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUEFSIFtaZXJvXSA9IEM1 VkUgLyogXEM1VkUgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgW09uZV0gPSBDNVRQIC8q IFxDNVRQICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDAzXSA9IEM1Q1YgLyogXEM1 Q1YgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDRdID0gQzVJQyAvKiBcQzVJQyAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwNl0gPSBDNVNQIC8qIFxDNVNQICovCiAg ICAgICAgICAgICAgICAgICAgUEFSIFsweDA4XSA9IEM1VzAgLyogXEM1VzAgKi8KICAgICAg ICAgICAgICAgICAgICBQQVIgWzB4MDldID0gQzVXMSAvKiBcQzVXMSAqLwogICAgICAgICAg ICAgICAgICAgIFBBUiBbMHgwQV0gPSBDNVcyIC8qIFxDNVcyICovCiAgICAgICAgICAgICAg ICAgICAgUEFSIFsweDBCXSA9IEM1VzMgLyogXEM1VzMgKi8KICAgICAgICAgICAgICAgICAg ICBQQVIgWzB4MENdID0gQzVXNCAvKiBcQzVXNCAqLwogICAgICAgICAgICAgICAgICAgIFBB UiBbMHgwRF0gPSBDNVc1IC8qIFxDNVc1ICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQQVIpIC8qIFxfU0JfLlBDMDAuQ0xQNS5DTERCLlBBUl8gKi8KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBf UExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOYW1lIChQTERCLCBQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAw MDAwICovICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8g IDB4MjksIDB4MEQsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAp Li4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwg MHhGRiwgMHhGRiwgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChEZXJlZk9mIChQTERCIFtaZXJvXSksIDB4 MDgsIEJQT1MpCiAgICAgICAgICAgICAgICAgICAgQlBPUyA9IEM1UEwgLyogXEM1UEwgKi8K ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMREIpIC8qIFxfU0JfLlBDMDAuQ0xQNS5f UExELlBMREIgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0 aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09 IFRvVVVJRCAoIjI2MjU3NTQ5LTkyNzEtNGNhNC1iYjQzLWM0ODk5ZDVhNDg4MSIpIC8qIFVu a25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoMHgwQiwgQzVJQSwgWmVy bywgQzVJQikpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI1ODE1YzVj OC1jNDdkLTQ3N2ItOWE4ZC03NjE3MzE3NjQxNGIiKSAvKiBVbmtub3duIFVVSUQgKi8pKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIg KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChEU01CLCBCdWZmZXIgKDB4 MzQpe30pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChE U01CLCBaZXJvLCBJMkNDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoRFNNQiwgMHgwNCwgREVWMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEkyQ0MgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjAgPSBEU01JICgw eDBCLCBDNUlBLCBaZXJvLCBDNUlCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChEU01CKSAvKiBcX1NCXy5QQzAwLkNMUDUuX0RTTS5EU01CICovCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKExUSDApCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzNDcyIikgIC8vIF9ISUQ6 IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAiSU5UMzQ3MiIpICAv LyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiUE1J Qy1MVEgwIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFt ZSAoX1VJRCwgMHgxNCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgSWYg KChDMEdQICE9IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQzBHUCA+IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkxvbnRpdW0gSERN SSAwIElucHV0IHBpbiAjMSBpcyBzZWxlY3RlZCAhISIsIFRvSGV4U3RyaW5nIChDMEYwKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQzBGMCkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ2FzZSAoMHgxMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTkogKEMw UDAsIEMwQzAsIEMwRzApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTQpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDEgPSBQSU5NIChDMFAwLCBDMEMwLCBDMEcwKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChDMFAwLCBDMEMwLCBDMEcwKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwxCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QzBHUCA+IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiTG9udGl1bSBIRE1JIDAgSW5wdXQg cGluICMyIGlzIHNlbGVjdGVkICEhIiwgVG9IZXhTdHJpbmcgKEMwRjEpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChDMEYxKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD YXNlICgweDEzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOSiAoQzBQMSwgQzBDMSwg QzBHMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9 IFBJTk0gKEMwUDEsIEMwQzEsIEMwRzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMSA9IFBJTlIgKEMwUDEsIEMwQzEsIEMwRzEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2Nh bDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQzBHUCA+IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkxvbnRpdW0g SERNSSAwIElucHV0IHBpbiAjMyBpcyBzZWxlY3RlZCAhISIsIFRvSGV4U3RyaW5nIChDMEYy KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQzBG MikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgxMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTkog KEMwUDIsIEMwQzIsIEMwRzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTQpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDEgPSBQSU5NIChDMFAyLCBDMEMyLCBDMEcyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZh dWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChDMFAyLCBDMEMyLCBDMEcyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNU ZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEMwR1AgPiAweDAzKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5h dGUgKCJMb250aXVtIEhETUkgMCBJbnB1dCBwaW4gIzQgaXMgc2VsZWN0ZWQgISEiLCBUb0hl eFN0cmluZyAoQzBGMykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChU b0ludGVnZXIgKEMwRjMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTMpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDEgPSBQSU5KIChDMFAzLCBDMEMzLCBDMEczKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDE0 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOTSAoQzBQMywgQzBDMywgQzBHMykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOUiAoQzBQMywg QzBDMywgQzBHMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv bmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChDTDAwKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDMFRQID09IDB4MDUpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKENMREIsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUEFSLCBCdWZm ZXIgKDB4MjApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDAwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDBDLCAweDAw LCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAq LyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8v IC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgog ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIFBBUiBbWmVyb10gPSBDMFZFIC8qIFxD MFZFICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFtPbmVdID0gQzBUUCAvKiBcQzBUUCAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgwM10gPSBDMENWIC8qIFxDMENWICovCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQVIpIC8qIFxfU0JfLlBDMDAuTFRIMC5DTERC LlBBUl8gKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9E U00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9k CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRv VVVJRCAoIjc5MjM0NjQwLTllMTAtNGZlYS1hNWMxLWI1YWE4YjE5NzU2ZiIpIC8qIFVua25v d24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4M0YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA/ CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChDMEdQKSAvKiBcQzBHUCAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzBG MCwgKCgweDIwICogQzBHMCkgKyBDMFAwKSwgQzBJMCwgQzBBMCkpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAz KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChHUFBJIChDMEYxLCAoKDB4MjAgKiBDMEcxKSArIEMwUDEpLCBDMEkxLCBD MEExKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkgKEMwRjIsICgoMHgyMCAqIEMw RzIpICsgQzBQMiksIEMwSTIsIEMwQTIpKQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BQ SSAoQzBGMywgKCgweDIwICogQzBHMykgKyBDMFAzKSwgQzBJMywgQzBBMykpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVm ZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjgyYzBk MTNhLTc4YzUtNDI0NC05YmIxLWViOGI1MzlhOGQxMSIpIC8qIFVua25vd24gVVVJRCAqLykp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl ciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5JQ0xLLkNMS0MgKFRvSW50ZWdlciAo RGVyZWZPZiAoQXJnMyBbWmVyb10pKSwgVG9JbnRlZ2VyIChEZXJlZk9mIChBcmczIFsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmVdKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeXl5JQ0xLLkNMS0YgKFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbWmVy b10pKSwgVG9JbnRlZ2VyIChEZXJlZk9mIChBcmczIFsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyXSkpKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChMVEgxKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBOYW1lIChfSElELCAiSU5UMzQ3MiIpICAvLyBfSElEOiBIYXJkd2Fy ZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklOVDM0NzIiKSAgLy8gX0NJRDog Q29tcGF0aWJsZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0RETiwgIlBNSUMtTFRIMSIp ICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQs IDB4MTUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgIElmICgoQzFHUCAh PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRp bmdzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEMxR1AgPiBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJMb250aXVtIEhETUkgMSBJbnB1 dCBwaW4gIzEgaXMgc2VsZWN0ZWQgISEiLCBUb0hleFN0cmluZyAoQzFGMCkpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEMxRjApKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENhc2UgKDB4MTMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5KIChDMVAwLCBDMUMw LCBDMUcwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDE0KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwx ID0gUElOTSAoQzFQMCwgQzFDMCwgQzFHMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwxID0gUElOUiAoQzFQMCwgQzFDMCwgQzFHMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEMxR1AgPiBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkxvbnRpdW0gSERNSSAxIElucHV0IHBpbiAjMiBp cyBzZWxlY3RlZCAhISIsIFRvSGV4U3RyaW5nIChDMUYxKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQzFGMSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgx MykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTkogKEMxUDEsIEMxQzEsIEMxRzEpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENhc2UgKDB4MTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5NIChD MVAxLCBDMUMxLCBDMUcxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDEgPSBQSU5SIChDMVAxLCBDMUMxLCBDMUcxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2Nh bDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2Fs MgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEMxR1AgPiAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJMb250aXVtIEhETUkgMSBJ bnB1dCBwaW4gIzMgaXMgc2VsZWN0ZWQgISEiLCBUb0hleFN0cmluZyAoQzFGMikpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEMxRjIpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENhc2UgKDB4MTMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5KIChDMVAyLCBD MUMyLCBDMUcyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDE0KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwxID0gUElOTSAoQzFQMiwgQzFDMiwgQzFHMikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwxID0gUElOUiAoQzFQMiwgQzFDMiwgQzFHMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUg KExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChDMUdQID4gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiTG9u dGl1bSBIRE1JIDEgSW5wdXQgcGluICM0IGlzIHNlbGVjdGVkICEhIiwgVG9IZXhTdHJpbmcg KEMxRjMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2Vy IChDMUYzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDYXNlICgweDEzKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g UElOSiAoQzFQMywgQzFDMywgQzFHMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgxNCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMSA9IFBJTk0gKEMxUDMsIEMxQzMsIEMxRzMpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTlIgKEMxUDMsIEMxQzMsIEMx RzMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0 ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoQ0wwMSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzFUUCA9PSAweDA1KSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChDTERCLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKFBBUiwgQnVmZmVyICgweDIw KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAw MCAqLyAgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwQywgMHgwMCwgMHgwMCwg IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4u LgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAg ICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICBQQVIgW1plcm9dID0gQzFWRSAvKiBcQzFWRSAqLwog ICAgICAgICAgICAgICAgICAgIFBBUiBbT25lXSA9IEMxVFAgLyogXEMxVFAgKi8KICAgICAg ICAgICAgICAgICAgICBQQVIgWzB4MDNdID0gQzFDViAvKiBcQzFDViAqLwogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUEFSKSAvKiBcX1NCXy5QQzAwLkxUSDEuQ0xEQi5QQVJfICov CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBO b3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI3 OTIzNDY0MC05ZTEwLTRmZWEtYTVjMS1iNWFhOGIxOTc1NmYiKSAvKiBVbmtub3duIFVVSUQg Ki8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gPwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQzFHUCkg LyogXEMxR1AgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkgKEMxRjAsICgoMHgy MCAqIEMxRzApICsgQzFQMCksIEMxSTAsIEMxQTApKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoR1BQSSAoQzFGMSwgKCgweDIwICogQzFHMSkgKyBDMVAxKSwgQzFJMSwgQzFBMSkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDMUYyLCAoKDB4MjAgKiBDMUcyKSArIEMx UDIpLCBDMUkyLCBDMUEyKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkgKEMxRjMs ICgoMHgyMCAqIEMxRzMpICsgQzFQMyksIEMxSTMsIEMxQTMpKQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI4MmMwZDEzYS03OGM1 LTQyNDQtOWJiMS1lYjhiNTM5YThkMTEiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgXl5eSUNMSy5DTEtDIChUb0ludGVnZXIgKERlcmVmT2Yg KEFyZzMgW1plcm9dKSksIFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT25lXSkpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXl5eSUNMSy5DTEtGIChUb0ludGVnZXIgKERlcmVmT2YgKEFyZzMgW1plcm9dKSksIFRv SW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMl0pKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g LgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIERldmljZSAoTFRIMikKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgTmFtZSAoX0hJRCwgIklOVDM0NzIiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAg ICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTlQzNDcyIikgIC8vIF9DSUQ6IENvbXBhdGli bGUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJQTUlDLUxUSDIiKSAgLy8gX0RE TjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDE2KSAg Ly8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBJZiAoKEMyR1AgIT0gWmVybykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAw LCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDMkdQID4g WmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiTG9udGl1bSBIRE1JIDIgSW5wdXQgcGluICMx IGlzIHNlbGVjdGVkICEhIiwgVG9IZXhTdHJpbmcgKEMyRjApKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChDMkYwKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDEzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOSiAoQzJQMCwgQzJDMCwgQzJHMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTk0g KEMyUDAsIEMyQzAsIEMyRzApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMSA9IFBJTlIgKEMyUDAsIEMyQzAsIEMyRzApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDEKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDMkdQID4gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJMb250aXVtIEhETUkgMiBJbnB1dCBwaW4gIzIgaXMgc2VsZWN0 ZWQgISEiLCBUb0hleFN0cmluZyAoQzJGMSkpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3dpdGNoIChUb0ludGVnZXIgKEMyRjEpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTMpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDEgPSBQSU5KIChDMlAxLCBDMkMxLCBDMkcxKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDYXNlICgweDE0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOTSAoQzJQMSwgQzJD MSwgQzJHMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g UElOUiAoQzJQMSwgQzJDMSwgQzJHMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2Nh bDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDMkdQ ID4gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiTG9udGl1bSBIRE1JIDIgSW5wdXQgcGlu ICMzIGlzIHNlbGVjdGVkICEhIiwgVG9IZXhTdHJpbmcgKEMyRjIpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChDMkYyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDEzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOSiAoQzJQMiwgQzJDMiwgQzJH MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ2FzZSAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJ Tk0gKEMyUDIsIEMyQzIsIEMyRzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMSA9IFBJTlIgKEMyUDIsIEMyQzIsIEMyRzIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAs IExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g TG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQzJHUCA+IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkxvbnRpdW0gSERN SSAyIElucHV0IHBpbiAjNCBpcyBzZWxlY3RlZCAhISIsIFRvSGV4U3RyaW5nIChDMkYzKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQzJGMykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ2FzZSAoMHgxMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTkogKEMy UDMsIEMyQzMsIEMyRzMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTQpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDEgPSBQSU5NIChDMlAzLCBDMkMzLCBDMkczKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChDMlAzLCBDMkMzLCBDMkczKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1w bGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKENMMDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEMyVFAgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoQ0xEQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChQQVIsIEJ1ZmZlciAoMHgyMCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4 MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MEMsIDB4MDAsIDB4MDAsICAvLyAuLi4u Li4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAg ICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwMTggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgUEFSIFtaZXJvXSA9IEMyVkUgLyogXEMyVkUgKi8KICAgICAgICAg ICAgICAgICAgICBQQVIgW09uZV0gPSBDMlRQIC8qIFxDMlRQICovCiAgICAgICAgICAgICAg ICAgICAgUEFSIFsweDAzXSA9IEMyQ1YgLyogXEMyQ1YgKi8KICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBBUikgLyogXF9TQl8uUEMwMC5MVEgyLkNMREIuUEFSXyAqLwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFs aXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNzkyMzQ2NDAt OWUxMC00ZmVhLWE1YzEtYjVhYThiMTk3NTZmIikgLyogVW5rbm93biBVVUlEICovKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzRiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vID8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEMyR1ApIC8qIFxDMkdQ ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDMkYwLCAoKDB4MjAgKiBDMkcw KSArIEMyUDApLCBDMkkwLCBDMkEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkg KEMyRjEsICgoMHgyMCAqIEMyRzEpICsgQzJQMSksIEMySTEsIEMyQTEpKQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoR1BQSSAoQzJGMiwgKCgweDIwICogQzJHMikgKyBDMlAyKSwgQzJJ MiwgQzJBMikpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMiA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDMkYzLCAoKDB4MjAg KiBDMkczKSArIEMyUDMpLCBDMkkzLCBDMkEzKSkKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiODJjMGQxM2EtNzhjNS00MjQ0LTli YjEtZWI4YjUzOWE4ZDExIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcxID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5eXklDTEsuQ0xLQyAoVG9JbnRlZ2VyIChEZXJlZk9mIChBcmczIFta ZXJvXSkpLCBUb0ludGVnZXIgKERlcmVmT2YgKEFyZzMgWwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE9uZV0pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXklD TEsuQ0xLRiAoVG9JbnRlZ2VyIChEZXJlZk9mIChBcmczIFtaZXJvXSkpLCBUb0ludGVnZXIg KERlcmVmT2YgKEFyZzMgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJd KSkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg ICAgICAgICBEZXZpY2UgKExUSDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5h bWUgKF9ISUQsICJJTlQzNDcyIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAg ICAgICBOYW1lIChfQ0lELCAiSU5UMzQ3MiIpICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAg ICAgICAgICAgICAgICBOYW1lIChfREROLCAiUE1JQy1MVEgzIikgIC8vIF9ERE46IERPUyBE ZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgxNykgIC8vIF9VSUQ6 IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgSWYgKChDM0dQICE9IFplcm8pKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFs aXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzNHUCA+IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIkxvbnRpdW0gSERNSSAzIElucHV0IHBpbiAjMSBpcyBzZWxl Y3RlZCAhISIsIFRvSGV4U3RyaW5nIChDM0YwKSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQzNGMCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgxMykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMSA9IFBJTkogKEMzUDAsIEMzQzAsIEMzRzApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENhc2UgKDB4MTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5NIChDM1AwLCBD M0MwLCBDM0cwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEg PSBQSU5SIChDM1AwLCBDM0MwLCBDM0cwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwxCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzNHUCA+IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiTG9udGl1bSBIRE1JIDMgSW5wdXQgcGluICMyIGlzIHNlbGVjdGVkICEhIiwg VG9IZXhTdHJpbmcgKEMzRjEpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRj aCAoVG9JbnRlZ2VyIChDM0YxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDEzKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwxID0gUElOSiAoQzNQMSwgQzNDMSwgQzNHMSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAo MHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTk0gKEMzUDEsIEMzQzEsIEMzRzEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTlIgKEMz UDEsIEMzQzEsIEMzRzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzNHUCA+IDB4MDIp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIkxvbnRpdW0gSERNSSAzIElucHV0IHBpbiAjMyBpcyBz ZWxlY3RlZCAhISIsIFRvSGV4U3RyaW5nIChDM0YyKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQzNGMikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgxMykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTkogKEMzUDIsIEMzQzIsIEMzRzIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENhc2UgKDB4MTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5NIChDM1Ay LCBDM0MyLCBDM0cyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDEgPSBQSU5SIChDM1AyLCBDM0MyLCBDM0cyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEs IExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEMzR1AgPiAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJMb250aXVtIEhETUkgMyBJbnB1 dCBwaW4gIzQgaXMgc2VsZWN0ZWQgISEiLCBUb0hleFN0cmluZyAoQzNGMykpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEMzRjMpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENhc2UgKDB4MTMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5KIChDM1AzLCBDM0Mz LCBDM0czKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDE0KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwx ID0gUElOTSAoQzNQMywgQzNDMywgQzNHMykKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwxID0gUElOUiAoQzNQMywgQzNDMywgQzNHMykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExv Y2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmIChDTDAzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChDM1RQID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKENMREIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoUEFSLCBCdWZmZXIgKDB4MjApCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDAw LCAweDAzLCAweDAwLCAweDAwLCAweDBDLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDE4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwICAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgIFBBUiBbWmVyb10gPSBDM1ZFIC8qIFxDM1ZFICovCiAgICAgICAgICAgICAgICAg ICAgUEFSIFtPbmVdID0gQzNUUCAvKiBcQzNUUCAqLwogICAgICAgICAgICAgICAgICAgIFBB UiBbMHgwM10gPSBDM0NWIC8qIFxDM0NWICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQQVIpIC8qIFxfU0JfLlBDMDAuTFRIMy5DTERCLlBBUl8gKi8KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAv LyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjc5MjM0NjQwLTllMTAtNGZl YS1hNWMxLWI1YWE4YjE5NzU2ZiIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0YgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA/CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDM0dQKSAvKiBcQzNHUCAqLwogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzNGMCwgKCgweDIwICogQzNHMCkgKyBDM1Aw KSwgQzNJMCwgQzNBMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJIChDM0YxLCAo KDB4MjAgKiBDM0cxKSArIEMzUDEpLCBDM0kxLCBDM0ExKSkKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDQpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEdQUEkgKEMzRjIsICgoMHgyMCAqIEMzRzIpICsgQzNQMiksIEMzSTIsIEMzQTIp KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzIgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzNGMywgKCgweDIwICogQzNHMykg KyBDM1AzKSwgQzNJMywgQzNBMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjgyYzBkMTNhLTc4YzUtNDI0NC05YmIxLWViOGI1 MzlhOGQxMSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeXl5JQ0xLLkNMS0MgKFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbWmVyb10pKSwg VG9JbnRlZ2VyIChEZXJlZk9mIChBcmczIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBPbmVdKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5JQ0xLLkNMS0Yg KFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBbWmVyb10pKSwgVG9JbnRlZ2VyIChEZXJlZk9m IChBcmczIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyXSkpKQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg RGV2aWNlIChMVEg0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfSElE LCAiSU5UMzQ3MiIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFt ZSAoX0NJRCwgIklOVDM0NzIiKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAg ICAgICAgTmFtZSAoX0RETiwgIlBNSUMtTFRINCIpICAvLyBfREROOiBET1MgRGV2aWNlIE5h bWUKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MTgpICAvLyBfVUlEOiBVbmlxdWUg SUQKICAgICAgICAgICAgICAgIElmICgoQzRHUCAhPSBaZXJvKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAv LyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEM0R1AgPiBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJMb250aXVtIEhETUkgNCBJbnB1dCBwaW4gIzEgaXMgc2VsZWN0ZWQgISEi LCBUb0hleFN0cmluZyAoQzRGMCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dp dGNoIChUb0ludGVnZXIgKEM0RjApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTMpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDEgPSBQSU5KIChDNFAwLCBDNEMwLCBDNEcwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDE0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOTSAoQzRQMCwgQzRDMCwgQzRH MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOUiAo QzRQMCwgQzRDMCwgQzRHMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IExvY2FsMQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEM0R1AgPiBPbmUpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAo IkxvbnRpdW0gSERNSSA0IElucHV0IHBpbiAjMiBpcyBzZWxlY3RlZCAhISIsIFRvSGV4U3Ry aW5nIChDNEYxKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd2l0Y2ggKFRvSW50 ZWdlciAoQzRGMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgxMykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MSA9IFBJTkogKEM0UDEsIEM0QzEsIEM0RzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5NIChDNFAxLCBDNEMxLCBDNEcxKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChDNFAxLCBDNEMx LCBDNEcxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0 ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEM0R1AgPiAweDAyKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJMb250aXVtIEhETUkgNCBJbnB1dCBwaW4gIzMgaXMgc2VsZWN0ZWQg ISEiLCBUb0hleFN0cmluZyAoQzRGMikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3dpdGNoIChUb0ludGVnZXIgKEM0RjIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MTMpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDEgPSBQSU5KIChDNFAyLCBDNEMyLCBDNEcyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD YXNlICgweDE0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOTSAoQzRQMiwgQzRDMiwg QzRHMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElO UiAoQzRQMiwgQzRDMiwgQzRHMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDNEdQID4g MHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiTG9udGl1bSBIRE1JIDQgSW5wdXQgcGluICM0 IGlzIHNlbGVjdGVkICEhIiwgVG9IZXhTdHJpbmcgKEM0RjMpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChDNEYzKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDEzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOSiAoQzRQMywgQzRDMywgQzRHMykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTk0g KEM0UDMsIEM0QzMsIEM0RzMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMSA9IFBJTlIgKEM0UDMsIEM0QzMsIEM0RzMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExv Y2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9j YWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoQ0wwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQzRUUCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChD TERCLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE5hbWUgKFBBUiwgQnVmZmVyICgweDIwKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMCwgMHgwMCwgMHgwNCwg MHgwMCwgMHgwMCwgMHgwQywgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDEwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxOCAq LyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8v IC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBQ QVIgW1plcm9dID0gQzRWRSAvKiBcQzRWRSAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBb T25lXSA9IEM0VFAgLyogXEM0VFAgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MDNd ID0gQzRDViAvKiBcQzRDViAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEFSKSAv KiBcX1NCXy5QQzAwLkxUSDQuQ0xEQi5QQVJfICovCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTog RGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI3OTIzNDY0MC05ZTEwLTRmZWEtYTVjMS1i NWFhOGIxOTc1NmYiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDNGICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQzRHUCkgLyogXEM0R1AgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEdQUEkgKEM0RjAsICgoMHgyMCAqIEM0RzApICsgQzRQMCksIEM0STAs IEM0QTApKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzRGMSwgKCgweDIwICog QzRHMSkgKyBDNFAxKSwgQzRJMSwgQzRBMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA0KSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChH UFBJIChDNEYyLCAoKDB4MjAgKiBDNEcyKSArIEM0UDIpLCBDNEkyLCBDNEEyKSkKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEdQUEkgKEM0RjMsICgoMHgyMCAqIEM0RzMpICsgQzRQMyks IEM0STMsIEM0QTMpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBUb1VVSUQgKCI4MmMwZDEzYS03OGM1LTQyNDQtOWJiMS1lYjhiNTM5YThkMTEi KSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5e SUNMSy5DTEtDIChUb0ludGVnZXIgKERlcmVmT2YgKEFyZzMgW1plcm9dKSksIFRvSW50ZWdl ciAoRGVyZWZPZiAoQXJnMyBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25l XSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eSUNMSy5DTEtGIChUb0ludGVn ZXIgKERlcmVmT2YgKEFyZzMgW1plcm9dKSksIFRvSW50ZWdlciAoRGVyZWZPZiAoQXJnMyBb CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMl0pKSkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAo TFRINSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDM0 NzIiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQs ICJJTlQzNDcyIikgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAgIE5h bWUgKF9ERE4sICJQTUlDLUxUSDUiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAg ICAgICAgICAgICBOYW1lIChfVUlELCAweDE5KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAg ICAgICAgICAgICBJZiAoKEM1R1AgIT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzog Q3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChDNUdQID4gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiTG9udGl1bSBIRE1JIDUgSW5wdXQgcGluICMxIGlzIHNlbGVjdGVkICEhIiwgVG9IZXhT dHJpbmcgKEM1RjApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9J bnRlZ2VyIChDNUYwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDEzKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwxID0gUElOSiAoQzVQMCwgQzVDMCwgQzVHMCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgxNCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTk0gKEM1UDAsIEM1QzAsIEM1RzApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTlIgKEM1UDAsIEM1 QzAsIEM1RzApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChDNUdQID4gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJMb250aXVt IEhETUkgNSBJbnB1dCBwaW4gIzIgaXMgc2VsZWN0ZWQgISEiLCBUb0hleFN0cmluZyAoQzVG MSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEM1 RjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MTMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5K IChDNVAxLCBDNUMxLCBDNUcxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDE0KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwxID0gUElOTSAoQzVQMSwgQzVDMSwgQzVHMSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVm YXVsdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOUiAoQzVQMSwgQzVDMSwgQzVHMSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVz VGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChDNUdQID4gMHgwMikpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiTG9udGl1bSBIRE1JIDUgSW5wdXQgcGluICMzIGlzIHNlbGVjdGVkICEhIiwgVG9I ZXhTdHJpbmcgKEM1RjIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCAo VG9JbnRlZ2VyIChDNUYyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDEzKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwxID0gUElOSiAoQzVQMiwgQzVDMiwgQzVHMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgx NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTk0gKEM1UDIsIEM1QzIsIEM1RzIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTlIgKEM1UDIs IEM1QzIsIEM1RzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBD b25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQzVHUCA+IDB4MDMpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIkxvbnRpdW0gSERNSSA1IElucHV0IHBpbiAjNCBpcyBzZWxl Y3RlZCAhISIsIFRvSGV4U3RyaW5nIChDNUYzKSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoQzVGMykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgxMykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMSA9IFBJTkogKEM1UDMsIEM1QzMsIEM1RzMpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENhc2UgKDB4MTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5NIChDNVAzLCBD NUMzLCBDNUczKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEg PSBQSU5SIChDNVAzLCBDNUMzLCBDNUczKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExv Y2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTog U3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKENMMDUp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEM1 VFAgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoQ0xEQiwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChQQVIsIEJ1ZmZlciAoMHgyMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4MDUsIDB4MDAsIDB4 MDAsIDB4MEMsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAx MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4u LgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUEFSIFtaZXJv XSA9IEM1VkUgLyogXEM1VkUgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgW09uZV0gPSBD NVRQIC8qIFxDNVRQICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDAzXSA9IEM1Q1Yg LyogXEM1Q1YgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBBUikgLyogXF9TQl8u UEMwMC5MVEg1LkNMREIuUEFSXyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1T cGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzAgPT0gVG9VVUlEICgiNzkyMzQ2NDAtOWUxMC00ZmVhLWE1YzEtYjVhYThiMTk3 NTZmIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIg KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgzRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEM1R1ApIC8qIFxDNUdQICovCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChHUFBJIChDNUYwLCAoKDB4MjAgKiBDNUcwKSArIEM1UDApLCBDNUkwLCBDNUEwKSkK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkgKEM1RjEsICgoMHgyMCAqIEM1RzEpICsg QzVQMSksIEM1STEsIEM1QTEpKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BQSSAoQzVG MiwgKCgweDIwICogQzVHMikgKyBDNVAyKSwgQzVJMiwgQzVBMikpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA1 KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChHUFBJIChDNUYzLCAoKDB4MjAgKiBDNUczKSArIEM1UDMpLCBDNUkzLCBD NUEzKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0g VG9VVUlEICgiODJjMGQxM2EtNzhjNS00MjQ0LTliYjEtZWI4YjUzOWE4ZDExIikgLyogVW5r bm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXklDTEsuQ0xL QyAoVG9JbnRlZ2VyIChEZXJlZk9mIChBcmczIFtaZXJvXSkpLCBUb0ludGVnZXIgKERlcmVm T2YgKEFyZzMgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZV0pKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5eXklDTEsuQ0xLRiAoVG9JbnRlZ2VyIChEZXJl Zk9mIChBcmczIFtaZXJvXSkpLCBUb0ludGVnZXIgKERlcmVmT2YgKEFyZzMgWwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDJdKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKExOSzApCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmIChMMEVOKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RFUCwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmIChMMEVOKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChDREVQIChMMENMKSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQzAwCiAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIFplcm8pICAvLyBfVUlEOiBVbmlx dWUgSUQKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0hJRCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChIQ0lEIChaZXJvKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9DSUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ0lEOiBDb21w YXRpYmxlIElECiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChIQ0lEIChaZXJvKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9ERE4sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUYsIEJ1ZmZl ciAoMHgxMCl7fSkKICAgICAgICAgICAgICAgICAgICBCVUYgW1plcm9dID0gTDBNMCAvKiBc TDBNMCAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbT25lXSA9IEwwTTEgLyogXEwwTTEg Ki8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDJdID0gTDBNMiAvKiBcTDBNMiAqLwog ICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwM10gPSBMME0zIC8qIFxMME0zICovCiAgICAg ICAgICAgICAgICAgICAgQlVGIFsweDA0XSA9IEwwTTQgLyogXEwwTTQgKi8KICAgICAgICAg ICAgICAgICAgICBCVUYgWzB4MDVdID0gTDBNNSAvKiBcTDBNNSAqLwogICAgICAgICAgICAg ICAgICAgIEJVRiBbMHgwNl0gPSBMME02IC8qIFxMME02ICovCiAgICAgICAgICAgICAgICAg ICAgQlVGIFsweDA3XSA9IEwwTTcgLyogXEwwTTcgKi8KICAgICAgICAgICAgICAgICAgICBC VUYgWzB4MDhdID0gTDBNOCAvKiBcTDBNOCAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBb MHgwOV0gPSBMME05IC8qIFxMME05ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBB XSA9IEwwTUEgLyogXEwwTUEgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEJdID0g TDBNQiAvKiBcTDBNQiAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwQ10gPSBMME1D IC8qIFxMME1DICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBEXSA9IEwwTUQgLyog XEwwTUQgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEVdID0gTDBNRSAvKiBcTDBN RSAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwRl0gPSBMME1GIC8qIFxMME1GICov CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb1N0cmluZyAoQlVGLCBPbmVzKSkKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlh bGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChQTERCLCBQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVy ICgweDE0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiAwMDAwICovICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwMDggKi8gIDB4NjksIDB4MEUsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAs IDB4MDAsICAvLyBpLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAx MCAqLyAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChEZXJlZk9mIChQTERC IFtaZXJvXSksIDB4MDgsIEJQT1MpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRmllbGQg KERlcmVmT2YgKFBMREIgW1plcm9dKSwgMHg3MywgMHgwNCwgUlBPUykKICAgICAgICAgICAg ICAgICAgICBCUE9TID0gTDBQTCAvKiBcTDBQTCAqLwogICAgICAgICAgICAgICAgICAgIFJQ T1MgPSBMMERHIC8qIFxMMERHICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERC KSAvKiBcX1NCXy5QQzAwLkxOSzAuX1BMRC5QTERCICovCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NS UzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmICgoTDBESSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChaZXJvKXt9KQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwwREkgPiBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gSUlDQiAoTDBBMCwgTDBCUykKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMERJID4gT25lKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gSUlD QiAoTDBBMSwgTDBCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRl UmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMERJID4gMHgwMikpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IElJ Q0IgKEwwQTIsIEwwQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0 ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDBESSA+IDB4MDMpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBJ SUNCIChMMEEzLCBMMEJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5h dGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwwREkgPiAweDA0KSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g SUlDQiAoTDBBNCwgTDBCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVu YXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMERJID4gMHgwNSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9 IElJQ0IgKEwwQTUsIEwwQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRl bmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDBESSA+IDB4MDYpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEg PSBJSUNCIChMMEE2LCBMMEJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0 ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwwREkgPiAweDA3KSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwx ID0gSUlDQiAoTDBBNywgTDBCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNh dGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMERJID4gMHgwOCkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MSA9IElJQ0IgKEwwQTgsIEwwQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25j YXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDBESSA+IDB4MDkpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDEgPSBJSUNCIChMMEE5LCBMMEJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29u Y2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwwREkgPiAweDBBKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwxID0gSUlDQiAoTDBBQSwgTDBCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv bmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMERJID4gMHgwQikpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMSA9IElJQ0IgKEwwQUIsIEwwQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBD b25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKFNTREIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoUEFSLCBCdWZmZXIgKDB4NkMpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDAw LCAweDY5LCAweDU2LCAweDM5LCAweDhBLCAweEY3LCAweDExLCAgLy8gLi5pVjkuLi4KICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHhBOSwgMHg0RSwgMHg5QywgMHg3 RCwgMHgyMCwgMHhFRSwgMHgwQSwgMHhCNSwgIC8vIC5OLn0gLi4uCiAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwMTAgKi8gIDB4Q0EsIDB4NDAsIDB4QTMsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsICAvLyAuQC4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDE4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAyMCAqLyAg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4u Li4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAg ICAgICAgICAgICAgICAgICAgICAvKiAwMDMwICovICAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAg ICAgICAgICAgLyogMDAzOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwNDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQ4ICovICAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4u Li4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA1MCAqLyAgMHgxMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwNTggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg ICAgICAgICAvKiAwMDYwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyog MDA2OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIC4uLi4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg IFBBUiBbWmVyb10gPSBMMERWIC8qIFxMMERWICovCiAgICAgICAgICAgICAgICAgICAgUEFS IFtPbmVdID0gTDBDViAvKiBcTDBDViAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgx OF0gPSBMMExDIC8qIFxMMExDICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDFDXSA9 IEwwTFUgLyogXEwwTFUgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MURdID0gTDBO TCAvKiBcTDBOTCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHg0RV0gPSBMMEVFIC8q IFxMMEVFICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDRGXSA9IEwwVkMgLyogXEww VkMgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4NTJdID0gTDBGUyAvKiBcTDBGUyAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHg1M10gPSBMMExFIC8qIFxMMExFICovCiAg ICAgICAgICAgICAgICAgICAgUEFSIFsweDU0XSA9IENERUcgKEwwREcpCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUEFSLCAweDU2LCBEQVQpCiAgICAgICAgICAg ICAgICAgICAgREFUID0gTDBDSyAvKiBcTDBDSyAqLwogICAgICAgICAgICAgICAgICAgIFBB UiBbMHg1QV0gPSBMMENMIC8qIFxMMENMICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsw eDVGXSA9IEwwUFAgLyogXEwwUFAgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4NjBd ID0gTDBWUiAvKiBcTDBWUiAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHg2M10gPSBM MEZJIC8qIFxMMEZJICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQQVIpIC8qIFxf U0JfLlBDMDAuTE5LMC5TU0RCLlBBUl8gKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZp Y2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjgyMmFjZThmLTI4MTQtNDE3NC1hNTZiLTVmMDI5 ZmUwNzllZSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5hbWUgKEJVRiwgQnVmZmVyICgweDEwKXt9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQlVGIFtaZXJvXSA9IEwwTTAgLyogXEwwTTAgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJVRiBbT25lXSA9IEwwTTEgLyogXEwwTTEgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwMl0gPSBMME0yIC8qIFxMME0yICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDNdID0gTDBNMyAvKiBcTDBNMyAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA0XSA9IEwwTTQgLyogXEwwTTQg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwNV0gPSBMME01IC8qIFxM ME01ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDZdID0gTDBNNiAv KiBcTDBNNiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA3XSA9IEww TTcgLyogXEwwTTcgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwOF0g PSBMME04IC8qIFxMME04ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4 MDldID0gTDBNOSAvKiBcTDBNOSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVG IFsweDBBXSA9IEwwTUEgLyogXEwwTUEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJVRiBbMHgwQl0gPSBMME1CIC8qIFxMME1CICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCVUYgWzB4MENdID0gTDBNQyAvKiBcTDBNQyAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQlVGIFsweDBEXSA9IEwwTUQgLyogXEwwTUQgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJVRiBbMHgwRV0gPSBMME1FIC8qIFxMME1FICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCVUYgWzB4MEZdID0gTDBNRiAvKiBcTDBNRiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb1N0cmluZyAoQlVGLCBPbmVzKSkKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjU4MTVjNWM4LWM0N2QtNDc3Yi05 YThkLTc2MTczMTc2NDE0YiIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKERTTUIsIEJ1ZmZlciAoMHgzNCl7fSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIFplcm8sIEky Q0MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01C LCAweDA0LCBERVYwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoRFNNQiwgMHgwOCwgREVWMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MEMsIERFVjIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDEwLCBERVYzKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgxNCwgREVWNCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4 MTgsIERFVjUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChEU01CLCAweDFDLCBERVY2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoRFNNQiwgMHgyMCwgREVWNykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MjQsIERFVjgpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDI4LCBERVY5KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgyQywg REVWQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERT TUIsIDB4MzAsIERFVkIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMkNDID0gTDBE SSAvKiBcTDBESSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWMCA9IERTTUkg KEwwRDAsIEwwQTAsIFplcm8sIEwwQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBE RVYxID0gRFNNSSAoTDBEMSwgTDBBMSwgWmVybywgTDBCUykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERFVjIgPSBEU01JIChMMEQyLCBMMEEyLCBaZXJvLCBMMEJTKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgREVWMyA9IERTTUkgKEwwRDMsIEwwQTMsIFplcm8sIEww QlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVY0ID0gRFNNSSAoTDBENCwgTDBB NCwgWmVybywgTDBCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjUgPSBEU01J IChMMEQ1LCBMMEE1LCBaZXJvLCBMMEJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg REVWNiA9IERTTUkgKEwwRDYsIEwwQTYsIFplcm8sIEwwQlMpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBERVY3ID0gRFNNSSAoTDBENywgTDBBNywgWmVybywgTDBCUykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERFVjggPSBEU01JIChMMEQ4LCBMMEE4LCBaZXJvLCBM MEJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWOSA9IERTTUkgKEwwRDksIEww QTksIFplcm8sIEwwQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVZBID0gRFNN SSAoTDBEQSwgTDBBQSwgWmVybywgTDBCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IERFVkIgPSBEU01JIChMMERCLCBMMEFCLCBaZXJvLCBMMEJTKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChEU01CKSAvKiBcX1NCXy5QQzAwLkxOSzAuX0RTTS5EU01C ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRv VVVJRCAoIjI2MjU3NTQ5LTkyNzEtNGNhNC1iYjQzLWM0ODk5ZDVhNDg4MSIpIC8qIFVua25v d24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEZGLCAweDFGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEwwREkpIC8qIFxMMERJICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMERJID4gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChEU01JIChMMEQwLCBMMEEwLCBaZXJvLCBMMEJTKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChMMERJID4gT25lKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KERTTUkgKEwwRDEsIEwwQTEsIFplcm8sIEwwQlMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDQp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEwwREkgPiAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwwRDIsIEwwQTIs IFplcm8sIEwwQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDUpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwwREkgPiAweDAz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwwRDMsIEwwQTMsIFplcm8sIEwwQlMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEwwREkgPiAweDA0KSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KERTTUkgKEwwRDQsIEwwQTQsIFplcm8sIEwwQlMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDcp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEwwREkgPiAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwwRDUsIEwwQTUs IFplcm8sIEwwQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDgpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwwREkgPiAweDA2 KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwwRDYsIEwwQTYsIFplcm8sIEwwQlMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEwwREkgPiAweDA3KSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KERTTUkgKEwwRDcsIEwwQTcsIFplcm8sIEwwQlMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEEp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEwwREkgPiAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwwRDgsIEwwQTgs IFplcm8sIEwwQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEIpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwwREkgPiAweDA5 KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwwRDksIEwwQTksIFplcm8sIEwwQlMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MEMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEwwREkgPiAweDBBKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KERTTUkgKEwwREEsIEwwQUEsIFplcm8sIEwwQlMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEQp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEwwREkgPiAweDBCKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwwREIsIEwwQUIs IFplcm8sIEwwQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoTE5LMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoQ1ZTQiwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAiXFxfU0IuUEMwMC5DVlNTIgogICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgIE5hbWUgKFBVU0IsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDMDAuU1BGRC5DVkZEIiwgCiAgICAgICAg ICAgICAgICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLlZJQzAiCiAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKEwxRU4pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfREVQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKEwxRU4pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKENWRlMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFSTFApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDVlNC KSAvKiBcX1NCXy5QQzAwLkxOSzEuQ1ZTQiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UFVTQikgLyogXF9TQl8uUEMwMC5MTksxLlBVU0IgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQ0RFUCAoTDFDTCkpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNr YWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQQzAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9V SUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgTWV0aG9kIChf SElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEhDSUQgKE9uZSkpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ0lELCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoSENJRCAoT25lKSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9ERE4sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf REROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChCVUYsIEJ1ZmZlciAoMHgxMCl7fSkKICAgICAgICAgICAgICAgICAgICBC VUYgW1plcm9dID0gTDFNMCAvKiBcTDFNMCAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBb T25lXSA9IEwxTTEgLyogXEwxTTEgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDJd ID0gTDFNMiAvKiBcTDFNMiAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwM10gPSBM MU0zIC8qIFxMMU0zICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA0XSA9IEwxTTQg LyogXEwxTTQgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDVdID0gTDFNNSAvKiBc TDFNNSAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwNl0gPSBMMU02IC8qIFxMMU02 ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA3XSA9IEwxTTcgLyogXEwxTTcgKi8K ICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDhdID0gTDFNOCAvKiBcTDFNOCAqLwogICAg ICAgICAgICAgICAgICAgIEJVRiBbMHgwOV0gPSBMMU05IC8qIFxMMU05ICovCiAgICAgICAg ICAgICAgICAgICAgQlVGIFsweDBBXSA9IEwxTUEgLyogXEwxTUEgKi8KICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MEJdID0gTDFNQiAvKiBcTDFNQiAqLwogICAgICAgICAgICAgICAg ICAgIEJVRiBbMHgwQ10gPSBMMU1DIC8qIFxMMU1DICovCiAgICAgICAgICAgICAgICAgICAg QlVGIFsweDBEXSA9IEwxTUQgLyogXEwxTUQgKi8KICAgICAgICAgICAgICAgICAgICBCVUYg WzB4MEVdID0gTDFNRSAvKiBcTDFNRSAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw Rl0gPSBMMU1GIC8qIFxMMU1GICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb1N0 cmluZyAoQlVGLCBPbmVzKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlv biBvZiBEZXZpY2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChQTERCLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDgyLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4NjksIDB4MEUsIDB4MDAsIDB4 MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyBpLi4uLi4uLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0 ZUZpZWxkIChEZXJlZk9mIChQTERCIFtaZXJvXSksIDB4MDgsIEJQT1MpCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlRmllbGQgKERlcmVmT2YgKFBMREIgW1plcm9dKSwgMHg3MywgMHgw NCwgUlBPUykKICAgICAgICAgICAgICAgICAgICBCUE9TID0gTDFQTCAvKiBcTDFQTCAqLwog ICAgICAgICAgICAgICAgICAgIFJQT1MgPSBMMURHIC8qIFxMMURHICovCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQTERCKSAvKiBcX1NCXy5QQzAwLkxOSzEuX1BMRC5QTERCICov CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQVJMUCA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQ1ZG UyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiUmV0dXJzIFZpcnR1YWwgSTJDIHdoZW4gVVNCIGJhc2VkIENW RiBpcyBlbmFibGVkIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVklJ QyAoTDFBMCwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoTDFESSA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVm ZmVyIChaZXJvKXt9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEwxREkgPiBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gSUlDQiAoTDFBMCwgTDFCUykKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMURJID4g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwxID0gSUlDQiAoTDFBMSwgTDFCUykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMURJID4g MHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMSA9IElJQ0IgKEwxQTIsIEwxQlMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDFESSA+ IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDEgPSBJSUNCIChMMUEzLCBMMUJTKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2Fs MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwxREkg PiAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDFBNCwgTDFCUykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2Nh bDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMURJ ID4gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEwxQTUsIEwxQlMpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9j YWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDFE SSA+IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDEgPSBJSUNCIChMMUE2LCBMMUJTKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExv Y2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwx REkgPiAweDA3KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDFBNywgTDFCUykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBM b2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM MURJID4gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEwxQTgsIEwxQlMpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwg TG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo TDFESSA+IDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDEgPSBJSUNCIChMMUE5LCBMMUJTKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEs IExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEwxREkgPiAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDFBQSwgTDFCUykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwx LCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChMMURJID4gMHgwQikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEwxQUIsIEwxQlMpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2Fs MSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwy CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKFNTREIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUEFSLCBCdWZmZXIgKDB4 NkMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAvKiAw MDAwICovICAweDAwLCAweDAwLCAweDY5LCAweDU2LCAweDM5LCAweDhBLCAweEY3LCAweDEx LCAgLy8gLi5pVjkuLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHhB OSwgMHg0RSwgMHg5QywgMHg3RCwgMHgyMCwgMHhFRSwgMHgwQSwgMHhCNSwgIC8vIC5OLn0g Li4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4Q0EsIDB4NDAsIDB4 QTMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuQC4uLi4uLgogICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAyMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MjggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs ICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDMwICovICAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4u Li4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAzOCAqLyAgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDQ4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA1 MCAqLyAgMHgxMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwg IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNTggKi8gIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4u LgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDYwICovICAweDAwLCAweDAwLCAweDAw LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAg ICAgICAgICAgICAgICAgLyogMDA2OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgIFBBUiBbWmVyb10gPSBMMURWIC8qIFxMMURWICovCiAgICAg ICAgICAgICAgICAgICAgUEFSIFtPbmVdID0gTDFDViAvKiBcTDFDViAqLwogICAgICAgICAg ICAgICAgICAgIFBBUiBbMHgxOF0gPSBMMUxDIC8qIFxMMUxDICovCiAgICAgICAgICAgICAg ICAgICAgUEFSIFsweDFDXSA9IEwxTFUgLyogXEwxTFUgKi8KICAgICAgICAgICAgICAgICAg ICBQQVIgWzB4MURdID0gTDFOTCAvKiBcTDFOTCAqLwogICAgICAgICAgICAgICAgICAgIFBB UiBbMHg0RV0gPSBMMUVFIC8qIFxMMUVFICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsw eDRGXSA9IEwxVkMgLyogXEwxVkMgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4NTJd ID0gTDFGUyAvKiBcTDFGUyAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHg1M10gPSBM MUxFIC8qIFxMMUxFICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDU0XSA9IENERUcg KEwxREcpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUEFSLCAweDU2 LCBEQVQpCiAgICAgICAgICAgICAgICAgICAgREFUID0gTDFDSyAvKiBcTDFDSyAqLwogICAg ICAgICAgICAgICAgICAgIFBBUiBbMHg1QV0gPSBMMUNMIC8qIFxMMUNMICovCiAgICAgICAg ICAgICAgICAgICAgUEFSIFsweDVGXSA9IEwxUFAgLyogXEwxUFAgKi8KICAgICAgICAgICAg ICAgICAgICBQQVIgWzB4NjBdID0gTDFWUiAvKiBcTDFWUiAqLwogICAgICAgICAgICAgICAg ICAgIFBBUiBbMHg2M10gPSBMMUZJIC8qIFxMMUZJICovCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQQVIpIC8qIFxfU0JfLlBDMDAuTE5LMS5TU0RCLlBBUl8gKi8KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjgyMmFjZThmLTI4 MTQtNDE3NC1hNTZiLTVmMDI5ZmUwNzllZSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRiwgQnVmZmVyICgweDEwKXt9 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFtaZXJvXSA9IEwxTTAgLyogXEwx TTAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbT25lXSA9IEwxTTEgLyog XEwxTTEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwMl0gPSBMMU0y IC8qIFxMMU0yICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDNdID0g TDFNMyAvKiBcTDFNMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA0 XSA9IEwxTTQgLyogXEwxTTQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBb MHgwNV0gPSBMMU01IC8qIFxMMU01ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBC VUYgWzB4MDZdID0gTDFNNiAvKiBcTDFNNiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQlVGIFsweDA3XSA9IEwxTTcgLyogXEwxTTcgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJVRiBbMHgwOF0gPSBMMU04IC8qIFxMMU04ICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCVUYgWzB4MDldID0gTDFNOSAvKiBcTDFNOSAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQlVGIFsweDBBXSA9IEwxTUEgLyogXEwxTUEgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwQl0gPSBMMU1CIC8qIFxMMU1CICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MENdID0gTDFNQyAvKiBcTDFNQyAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBEXSA9IEwxTUQgLyogXEwxTUQg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwRV0gPSBMMU1FIC8qIFxM MU1FICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEZdID0gTDFNRiAv KiBcTDFNRiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb1N0cmlu ZyAoQlVGLCBPbmVzKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjU4 MTVjNWM4LWM0N2QtNDc3Yi05YThkLTc2MTczMTc2NDE0YiIpIC8qIFVua25vd24gVVVJRCAq LykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKERTTUIsIEJ1ZmZl ciAoMHgzNCl7fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKERTTUIsIFplcm8sIEkyQ0MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChEU01CLCAweDA0LCBERVYwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgwOCwgREVWMSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MEMsIERFVjIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDEw LCBERVYzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo RFNNQiwgMHgxNCwgREVWNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKERTTUIsIDB4MTgsIERFVjUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDFDLCBERVY2KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgyMCwgREVWNykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MjQsIERF VjgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01C LCAweDI4LCBERVY5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoRFNNQiwgMHgyQywgREVWQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MzAsIERFVkIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJMkNDID0gTDFESSAvKiBcTDFESSAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgREVWMCA9IERTTUkgKEwxRDAsIEwxQTAsIFplcm8sIEwxQlMpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBERVYxID0gRFNNSSAoTDFEMSwgTDFBMSwgWmVybywgTDFCUykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjIgPSBEU01JIChMMUQyLCBMMUEyLCBa ZXJvLCBMMUJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWMyA9IERTTUkgKEwx RDMsIEwxQTMsIFplcm8sIEwxQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVY0 ID0gRFNNSSAoTDFENCwgTDFBNCwgWmVybywgTDFCUykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERFVjUgPSBEU01JIChMMUQ1LCBMMUE1LCBaZXJvLCBMMUJTKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgREVWNiA9IERTTUkgKEwxRDYsIEwxQTYsIFplcm8sIEwxQlMp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVY3ID0gRFNNSSAoTDFENywgTDFBNywg WmVybywgTDFCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjggPSBEU01JIChM MUQ4LCBMMUE4LCBaZXJvLCBMMUJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVW OSA9IERTTUkgKEwxRDksIEwxQTksIFplcm8sIEwxQlMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBERVZBID0gRFNNSSAoTDFEQSwgTDFBQSwgWmVybywgTDFCUykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERFVkIgPSBEU01JIChMMURCLCBMMUFCLCBaZXJvLCBMMUJT KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01CKSAvKiBcX1NCXy5Q QzAwLkxOSzEuX0RTTS5EU01CICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjI2MjU3NTQ5LTkyNzEtNGNhNC1iYjQzLWM0ODk5 ZDVhNDg4MSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVm ZmVyICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweEZGLCAweDFGICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEwxREkpIC8qIFxMMURJICovCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChMMURJID4gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMMUQwLCBMMUEw LCBaZXJvLCBMMUJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMURJID4gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwxRDEsIEwxQTEsIFplcm8sIEwxQlMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEwxREkgPiAweDAyKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KERTTUkgKEwxRDIsIEwxQTIsIFplcm8sIEwxQlMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDUp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEwxREkgPiAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwxRDMsIEwxQTMs IFplcm8sIEwxQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwxREkgPiAweDA0 KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwxRDQsIEwxQTQsIFplcm8sIEwxQlMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDcpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEwxREkgPiAweDA1KSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KERTTUkgKEwxRDUsIEwxQTUsIFplcm8sIEwxQlMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDgp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEwxREkgPiAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwxRDYsIEwxQTYs IFplcm8sIEwxQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDkpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwxREkgPiAweDA3 KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwxRDcsIEwxQTcsIFplcm8sIEwxQlMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MEEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEwxREkgPiAweDA4KSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KERTTUkgKEwxRDgsIEwxQTgsIFplcm8sIEwxQlMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEIp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEwxREkgPiAweDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwxRDksIEwxQTks IFplcm8sIEwxQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEMpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwxREkgPiAweDBB KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwxREEsIEwxQUEsIFplcm8sIEwxQlMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MEQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEwxREkgPiAweDBCKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KERTTUkgKEwxREIsIEwxQUIsIFplcm8sIEwxQlMpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcwID09IFRvVVVJRCAoIjAyZjU1ZjBjLTJlNjMtNGYwNS04NGYzLWJmMTk4MGY5 YWY3OSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVy IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChDVkZTKSAvKiBcQ1ZGUyAqLwogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChMTksyKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RB OiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTDJF TikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfREVQOiBE ZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo TDJFTikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQ0RFUCAoTDJDTCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUEMwMAogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBOYW1lIChfVUlELCAweDAyKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAg ICAgICAgICBNZXRob2QgKF9ISUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJk d2FyZSBJRAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo SENJRCAoMHgwMikpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChfQ0lELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoSENJRCAoMHgwMikp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfREROLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGLCBCdWZmZXIgKDB4MTApe30pCiAg ICAgICAgICAgICAgICAgICAgQlVGIFtaZXJvXSA9IEwyTTAgLyogXEwyTTAgKi8KICAgICAg ICAgICAgICAgICAgICBCVUYgW09uZV0gPSBMMk0xIC8qIFxMMk0xICovCiAgICAgICAgICAg ICAgICAgICAgQlVGIFsweDAyXSA9IEwyTTIgLyogXEwyTTIgKi8KICAgICAgICAgICAgICAg ICAgICBCVUYgWzB4MDNdID0gTDJNMyAvKiBcTDJNMyAqLwogICAgICAgICAgICAgICAgICAg IEJVRiBbMHgwNF0gPSBMMk00IC8qIFxMMk00ICovCiAgICAgICAgICAgICAgICAgICAgQlVG IFsweDA1XSA9IEwyTTUgLyogXEwyTTUgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4 MDZdID0gTDJNNiAvKiBcTDJNNiAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwN10g PSBMMk03IC8qIFxMMk03ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA4XSA9IEwy TTggLyogXEwyTTggKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDldID0gTDJNOSAv KiBcTDJNOSAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwQV0gPSBMMk1BIC8qIFxM Mk1BICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBCXSA9IEwyTUIgLyogXEwyTUIg Ki8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MENdID0gTDJNQyAvKiBcTDJNQyAqLwog ICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwRF0gPSBMMk1EIC8qIFxMMk1EICovCiAgICAg ICAgICAgICAgICAgICAgQlVGIFsweDBFXSA9IEwyTUUgLyogXEwyTUUgKi8KICAgICAgICAg ICAgICAgICAgICBCVUYgWzB4MEZdID0gTDJNRiAvKiBcTDJNRiAqLwogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoVG9TdHJpbmcgKEJVRiwgT25lcykpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BM RDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoUExEQiwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAw MCAqLyAgMHg4MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAw eDY5LCAweDBFLCAweDAwLCAweDAwLCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAgLy8gaS4u Li4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4RkYsIDB4 RkYsIDB4RkYsIDB4RkYgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoRGVyZWZPZiAoUExEQiBbWmVyb10pLCAweDA4 LCBCUE9TKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUZpZWxkIChEZXJlZk9mIChQTERC IFtaZXJvXSksIDB4NzMsIDB4MDQsIFJQT1MpCiAgICAgICAgICAgICAgICAgICAgQlBPUyA9 IEwyUEwgLyogXEwyUEwgKi8KICAgICAgICAgICAgICAgICAgICBSUE9TID0gTDJERyAvKiBc TDJERyAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUExEQikgLyogXF9TQl8uUEMw MC5MTksyLl9QTEQuUExEQiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVz b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoKEwyREkgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoWmVybyl7fSkKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChMMkRJID4gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IElJQ0Ig KEwyQTAsIEwyQlMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoTDJESSA+IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEwyQTEsIEwyQlMp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChM b2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoTDJESSA+IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBJSUNCIChMMkEyLCBMMkJT KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAo TG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEwyREkgPiAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDJBMywgTDJC UykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUg KExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMMkRJID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEwyQTQsIEwy QlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRl IChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoTDJESSA+IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBJSUNCIChMMkE1LCBM MkJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0 ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEwyREkgPiAweDA2KSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDJBNiwg TDJCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxh dGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChMMkRJID4gMHgwNykpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEwyQTcs IEwyQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBs YXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoTDJESSA+IDB4MDgpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBJSUNCIChMMkE4 LCBMMkJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1w bGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEwyREkgPiAweDA5KSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDJB OSwgTDJCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVt cGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChMMkRJID4gMHgwQSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEwy QUEsIEwyQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1Rl bXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoTDJESSA+IDB4MEIpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBJSUNCIChM MkFCLCBMMkJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNU ZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChTU0RCLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE5hbWUgKFBBUiwgQnVmZmVyICgweDZDKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwMCwgMHgwMCwgMHg2OSwgMHg1Niwg MHgzOSwgMHg4QSwgMHhGNywgMHgxMSwgIC8vIC4uaVY5Li4uCiAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwMDggKi8gIDB4QTksIDB4NEUsIDB4OUMsIDB4N0QsIDB4MjAsIDB4RUUs IDB4MEEsIDB4QjUsICAvLyAuTi59IC4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAw MDEwICovICAweENBLCAweDQwLCAweEEzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAgLy8gLkAuLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4u Li4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMjAgKi8gIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDI4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAzMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MzggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs ICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQwICovICAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4u Li4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA0OCAqLyAgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwNTAgKi8gIDB4MTAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDEsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDU4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA2 MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNjggKi8gIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBQQVIgW1plcm9dID0g TDJEViAvKiBcTDJEViAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbT25lXSA9IEwyQ1Yg LyogXEwyQ1YgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MThdID0gTDJMQyAvKiBc TDJMQyAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgxQ10gPSBMMkxVIC8qIFxMMkxV ICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDFEXSA9IEwyTkwgLyogXEwyTkwgKi8K ICAgICAgICAgICAgICAgICAgICBQQVIgWzB4NEVdID0gTDJFRSAvKiBcTDJFRSAqLwogICAg ICAgICAgICAgICAgICAgIFBBUiBbMHg0Rl0gPSBMMlZDIC8qIFxMMlZDICovCiAgICAgICAg ICAgICAgICAgICAgUEFSIFsweDUyXSA9IEwyRlMgLyogXEwyRlMgKi8KICAgICAgICAgICAg ICAgICAgICBQQVIgWzB4NTNdID0gTDJMRSAvKiBcTDJMRSAqLwogICAgICAgICAgICAgICAg ICAgIFBBUiBbMHg1NF0gPSBDREVHIChMMkRHKQogICAgICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKFBBUiwgMHg1NiwgREFUKQogICAgICAgICAgICAgICAgICAgIERBVCA9 IEwyQ0sgLyogXEwyQ0sgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4NUFdID0gTDJD TCAvKiBcTDJDTCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHg1Rl0gPSBMMlBQIC8q IFxMMlBQICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDYwXSA9IEwyVlIgLyogXEwy VlIgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4NjNdID0gTDJGSSAvKiBcTDJGSSAq LwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEFSKSAvKiBcX1NCXy5QQzAwLkxOSzIu U1NEQi5QQVJfICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1l dGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSBUb1VVSUQgKCI4MjJhY2U4Zi0yODE0LTQxNzQtYTU2Yi01ZjAyOWZlMDc5ZWUiKSAvKiBV bmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIg KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1l IChCVUYsIEJ1ZmZlciAoMHgxMCl7fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJV RiBbWmVyb10gPSBMMk0wIC8qIFxMMk0wICovCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCVUYgW09uZV0gPSBMMk0xIC8qIFxMMk0xICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCVUYgWzB4MDJdID0gTDJNMiAvKiBcTDJNMiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQlVGIFsweDAzXSA9IEwyTTMgLyogXEwyTTMgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJVRiBbMHgwNF0gPSBMMk00IC8qIFxMMk00ICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCVUYgWzB4MDVdID0gTDJNNSAvKiBcTDJNNSAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA2XSA9IEwyTTYgLyogXEwyTTYgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwN10gPSBMMk03IC8qIFxMMk03ICov CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDhdID0gTDJNOCAvKiBcTDJN OCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA5XSA9IEwyTTkgLyog XEwyTTkgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwQV0gPSBMMk1B IC8qIFxMMk1BICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEJdID0g TDJNQiAvKiBcTDJNQiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBD XSA9IEwyTUMgLyogXEwyTUMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBb MHgwRF0gPSBMMk1EIC8qIFxMMk1EICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBC VUYgWzB4MEVdID0gTDJNRSAvKiBcTDJNRSAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQlVGIFsweDBGXSA9IEwyTUYgLyogXEwyTUYgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoVG9TdHJpbmcgKEJVRiwgT25lcykpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMCA9PSBUb1VVSUQgKCI1ODE1YzVjOC1jNDdkLTQ3N2ItOWE4ZC03NjE3MzE3NjQx NGIiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAz ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOYW1lIChEU01CLCBCdWZmZXIgKDB4MzQpe30pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCBaZXJvLCBJMkNDKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgwNCwgREVWMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4 MDgsIERFVjEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChEU01CLCAweDBDLCBERVYyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoRFNNQiwgMHgxMCwgREVWMykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MTQsIERFVjQpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDE4LCBERVY1KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgxQywg REVWNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERT TUIsIDB4MjAsIERFVjcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChEU01CLCAweDI0LCBERVY4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgyOCwgREVWOSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MkMsIERFVkEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDMwLCBERVZC KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJDQyA9IEwyREkgLyogXEwyREkgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjAgPSBEU01JIChMMkQwLCBMMkEwLCBa ZXJvLCBMMkJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWMSA9IERTTUkgKEwy RDEsIEwyQTEsIFplcm8sIEwyQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVYy ID0gRFNNSSAoTDJEMiwgTDJBMiwgWmVybywgTDJCUykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERFVjMgPSBEU01JIChMMkQzLCBMMkEzLCBaZXJvLCBMMkJTKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgREVWNCA9IERTTUkgKEwyRDQsIEwyQTQsIFplcm8sIEwyQlMp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVY1ID0gRFNNSSAoTDJENSwgTDJBNSwg WmVybywgTDJCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjYgPSBEU01JIChM MkQ2LCBMMkE2LCBaZXJvLCBMMkJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVW NyA9IERTTUkgKEwyRDcsIEwyQTcsIFplcm8sIEwyQlMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBERVY4ID0gRFNNSSAoTDJEOCwgTDJBOCwgWmVybywgTDJCUykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERFVjkgPSBEU01JIChMMkQ5LCBMMkE5LCBaZXJvLCBMMkJT KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWQSA9IERTTUkgKEwyREEsIEwyQUEs IFplcm8sIEwyQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVZCID0gRFNNSSAo TDJEQiwgTDJBQiwgWmVybywgTDJCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoRFNNQikgLyogXF9TQl8uUEMwMC5MTksyLl9EU00uRFNNQiAqLwogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl ciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIyNjI1NzU0 OS05MjcxLTRjYTQtYmI0My1jNDg5OWQ1YTQ4ODEiKSAvKiBVbmtub3duIFVVSUQgKi8pKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgMHgxRiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMMkRJKSAvKiBc TDJESSAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDJESSA+IFplcm8pKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoRFNNSSAoTDJEMCwgTDJBMCwgWmVybywgTDJCUykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g MHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoTDJESSA+IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMMkQxLCBM MkExLCBaZXJvLCBMMkJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMkRJID4g MHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMMkQyLCBMMkEyLCBaZXJvLCBMMkJTKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMkRJID4gMHgwMykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChEU01JIChMMkQzLCBMMkEzLCBaZXJvLCBMMkJTKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAw eDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChMMkRJID4gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMMkQ0LCBM MkE0LCBaZXJvLCBMMkJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA3KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMkRJID4g MHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMMkQ1LCBMMkE1LCBaZXJvLCBMMkJTKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMkRJID4gMHgwNikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChEU01JIChMMkQ2LCBMMkE2LCBaZXJvLCBMMkJTKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAw eDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChMMkRJID4gMHgwNykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMMkQ3LCBM MkE3LCBaZXJvLCBMMkJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBBKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMkRJID4g MHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMMkQ4LCBMMkE4LCBaZXJvLCBMMkJTKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSAweDBCKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMkRJID4gMHgwOSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChEU01JIChMMkQ5LCBMMkE5LCBaZXJvLCBMMkJTKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAw eDBDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChMMkRJID4gMHgwQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMMkRBLCBM MkFBLCBaZXJvLCBMMkJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBEKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMMkRJID4g MHgwQikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMMkRCLCBMMkFCLCBaZXJvLCBMMkJTKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZp Y2UgKExOSzMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmIChMM0VOKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RFUCwgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmIChMM0VOKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDREVQIChMM0NMKSkKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ QzAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDMpICAv LyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0hJRCwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChIQ0lEICgweDAzKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DSUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChIQ0lEICgweDAzKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9ERE4sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfREROOiBET1Mg RGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChCVUYsIEJ1ZmZlciAoMHgxMCl7fSkKICAgICAgICAgICAgICAgICAgICBCVUYgW1plcm9d ID0gTDNNMCAvKiBcTDNNMCAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbT25lXSA9IEwz TTEgLyogXEwzTTEgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDJdID0gTDNNMiAv KiBcTDNNMiAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwM10gPSBMM00zIC8qIFxM M00zICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA0XSA9IEwzTTQgLyogXEwzTTQg Ki8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDVdID0gTDNNNSAvKiBcTDNNNSAqLwog ICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwNl0gPSBMM002IC8qIFxMM002ICovCiAgICAg ICAgICAgICAgICAgICAgQlVGIFsweDA3XSA9IEwzTTcgLyogXEwzTTcgKi8KICAgICAgICAg ICAgICAgICAgICBCVUYgWzB4MDhdID0gTDNNOCAvKiBcTDNNOCAqLwogICAgICAgICAgICAg ICAgICAgIEJVRiBbMHgwOV0gPSBMM005IC8qIFxMM005ICovCiAgICAgICAgICAgICAgICAg ICAgQlVGIFsweDBBXSA9IEwzTUEgLyogXEwzTUEgKi8KICAgICAgICAgICAgICAgICAgICBC VUYgWzB4MEJdID0gTDNNQiAvKiBcTDNNQiAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBb MHgwQ10gPSBMM01DIC8qIFxMM01DICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBE XSA9IEwzTUQgLyogXEwzTUQgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEVdID0g TDNNRSAvKiBcTDNNRSAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwRl0gPSBMM01G IC8qIFxMM01GICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb1N0cmluZyAoQlVG LCBPbmVzKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9Q TEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZp Y2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChQTERCLCBQ YWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDgyLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4NjksIDB4MEUsIDB4MDAsIDB4MDAsIDB4MDMs IDB4MDAsIDB4MDAsIDB4MDAsICAvLyBpLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChE ZXJlZk9mIChQTERCIFtaZXJvXSksIDB4MDgsIEJQT1MpCiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlRmllbGQgKERlcmVmT2YgKFBMREIgW1plcm9dKSwgMHg3MywgMHgwNCwgUlBPUykK ICAgICAgICAgICAgICAgICAgICBCUE9TID0gTDNQTCAvKiBcTDNQTCAqLwogICAgICAgICAg ICAgICAgICAgIFJQT1MgPSBMM0RHIC8qIFxMM0RHICovCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQTERCKSAvKiBcX1NCXy5QQzAwLkxOSzMuX1BMRC5QTERCICovCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTDNESSA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICha ZXJvKXt9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwz REkgPiBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gSUlDQiAoTDNBMCwgTDNCUykKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMM0RJID4gT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwxID0gSUlDQiAoTDNBMSwgTDNCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMM0RJID4gMHgwMikp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMSA9IElJQ0IgKEwzQTIsIEwzQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDNESSA+IDB4MDMp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDEgPSBJSUNCIChMM0EzLCBMM0JTKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwzREkgPiAweDA0 KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwxID0gSUlDQiAoTDNBNCwgTDNCUykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMM0RJID4gMHgw NSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMSA9IElJQ0IgKEwzQTUsIEwzQlMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDNESSA+IDB4 MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDEgPSBJSUNCIChMM0E2LCBMM0JTKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwzREkgPiAw eDA3KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwxID0gSUlDQiAoTDNBNywgTDNCUykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMM0RJID4g MHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMSA9IElJQ0IgKEwzQTgsIEwzQlMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDNESSA+ IDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDEgPSBJSUNCIChMM0E5LCBMM0JTKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2Fs MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwzREkg PiAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDNBQSwgTDNCUykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2Nh bDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMM0RJ ID4gMHgwQikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEwzQUIsIEwzQlMpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9j YWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo TG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKFNTREIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUEFSLCBCdWZmZXIgKDB4NkMpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICov ICAweDAwLCAweDAwLCAweDY5LCAweDU2LCAweDM5LCAweDhBLCAweEY3LCAweDExLCAgLy8g Li5pVjkuLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHhBOSwgMHg0 RSwgMHg5QywgMHg3RCwgMHgyMCwgMHhFRSwgMHgwQSwgMHhCNSwgIC8vIC5OLn0gLi4uCiAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4Q0EsIDB4NDAsIDB4QTMsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuQC4uLi4uLgogICAgICAgICAgICAg ICAgICAgICAgICAvKiAwMDE4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAg LyogMDAyMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMjggKi8g IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAu Li4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDMwICovICAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAzOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwNDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDQ4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA1MCAqLyAg MHgxMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgIC8vIC4u Li4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNTggKi8gIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAg ICAgICAgICAgICAgICAgICAgICAvKiAwMDYwICovICAweDAwLCAweDAwLCAweDAwLCAweDAz LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAg ICAgICAgICAgLyogMDA2OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIFBBUiBbWmVyb10gPSBMM0RWIC8qIFxMM0RWICovCiAgICAgICAgICAg ICAgICAgICAgUEFSIFtPbmVdID0gTDNDViAvKiBcTDNDViAqLwogICAgICAgICAgICAgICAg ICAgIFBBUiBbMHgxOF0gPSBMM0xDIC8qIFxMM0xDICovCiAgICAgICAgICAgICAgICAgICAg UEFSIFsweDFDXSA9IEwzTFUgLyogXEwzTFUgKi8KICAgICAgICAgICAgICAgICAgICBQQVIg WzB4MURdID0gTDNOTCAvKiBcTDNOTCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHg0 RV0gPSBMM0VFIC8qIFxMM0VFICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDRGXSA9 IEwzVkMgLyogXEwzVkMgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4NTJdID0gTDNG UyAvKiBcTDNGUyAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHg1M10gPSBMM0xFIC8q IFxMM0xFICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDU0XSA9IENERUcgKEwzREcp CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUEFSLCAweDU2LCBEQVQp CiAgICAgICAgICAgICAgICAgICAgREFUID0gTDNDSyAvKiBcTDNDSyAqLwogICAgICAgICAg ICAgICAgICAgIFBBUiBbMHg1QV0gPSBMM0NMIC8qIFxMM0NMICovCiAgICAgICAgICAgICAg ICAgICAgUEFSIFsweDVGXSA9IEwzUFAgLyogXEwzUFAgKi8KICAgICAgICAgICAgICAgICAg ICBQQVIgWzB4NjBdID0gTDNWUiAvKiBcTDNWUiAqLwogICAgICAgICAgICAgICAgICAgIFBB UiBbMHg2M10gPSBMM0ZJIC8qIFxMM0ZJICovCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQQVIpIC8qIFxfU0JfLlBDMDAuTE5LMy5TU0RCLlBBUl8gKi8KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAv LyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjgyMmFjZThmLTI4MTQtNDE3 NC1hNTZiLTVmMDI5ZmUwNzllZSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRiwgQnVmZmVyICgweDEwKXt9KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFtaZXJvXSA9IEwzTTAgLyogXEwzTTAgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbT25lXSA9IEwzTTEgLyogXEwzTTEg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwMl0gPSBMM00yIC8qIFxM M00yICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDNdID0gTDNNMyAv KiBcTDNNMyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA0XSA9IEwz TTQgLyogXEwzTTQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwNV0g PSBMM001IC8qIFxMM001ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4 MDZdID0gTDNNNiAvKiBcTDNNNiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVG IFsweDA3XSA9IEwzTTcgLyogXEwzTTcgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJVRiBbMHgwOF0gPSBMM004IC8qIFxMM004ICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCVUYgWzB4MDldID0gTDNNOSAvKiBcTDNNOSAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQlVGIFsweDBBXSA9IEwzTUEgLyogXEwzTUEgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJVRiBbMHgwQl0gPSBMM01CIC8qIFxMM01CICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCVUYgWzB4MENdID0gTDNNQyAvKiBcTDNNQyAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBEXSA9IEwzTUQgLyogXEwzTUQgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwRV0gPSBMM01FIC8qIFxMM01FICov CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEZdID0gTDNNRiAvKiBcTDNN RiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUb1N0cmluZyAoQlVG LCBPbmVzKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjU4MTVjNWM4 LWM0N2QtNDc3Yi05YThkLTc2MTczMTc2NDE0YiIpIC8qIFVua25vd24gVVVJRCAqLykpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAo T25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKERTTUIsIEJ1ZmZlciAoMHgz NCl7fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERT TUIsIFplcm8sIEkyQ0MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChEU01CLCAweDA0LCBERVYwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgwOCwgREVWMSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MEMsIERFVjIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDEwLCBERVYz KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwg MHgxNCwgREVWNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKERTTUIsIDB4MTgsIERFVjUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChEU01CLCAweDFDLCBERVY2KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgyMCwgREVWNykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MjQsIERFVjgpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDI4 LCBERVY5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo RFNNQiwgMHgyQywgREVWQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKERTTUIsIDB4MzAsIERFVkIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJMkNDID0gTDNESSAvKiBcTDNESSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg REVWMCA9IERTTUkgKEwzRDAsIEwzQTAsIFplcm8sIEwzQlMpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBERVYxID0gRFNNSSAoTDNEMSwgTDNBMSwgWmVybywgTDNCUykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERFVjIgPSBEU01JIChMM0QyLCBMM0EyLCBaZXJvLCBM M0JTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWMyA9IERTTUkgKEwzRDMsIEwz QTMsIFplcm8sIEwzQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVY0ID0gRFNN SSAoTDNENCwgTDNBNCwgWmVybywgTDNCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IERFVjUgPSBEU01JIChMM0Q1LCBMM0E1LCBaZXJvLCBMM0JTKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgREVWNiA9IERTTUkgKEwzRDYsIEwzQTYsIFplcm8sIEwzQlMpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBERVY3ID0gRFNNSSAoTDNENywgTDNBNywgWmVybywg TDNCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjggPSBEU01JIChMM0Q4LCBM M0E4LCBaZXJvLCBMM0JTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWOSA9IERT TUkgKEwzRDksIEwzQTksIFplcm8sIEwzQlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBERVZBID0gRFNNSSAoTDNEQSwgTDNBQSwgWmVybywgTDNCUykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERFVkIgPSBEU01JIChMM0RCLCBMM0FCLCBaZXJvLCBMM0JTKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01CKSAvKiBcX1NCXy5QQzAwLkxO SzMuX0RTTS5EU01CICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcwID09IFRvVVVJRCAoIjI2MjU3NTQ5LTkyNzEtNGNhNC1iYjQzLWM0ODk5ZDVhNDg4 MSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgw eDAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEZGLCAweDFGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEwzREkpIC8qIFxMM0RJICovCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChMM0RJID4gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMM0QwLCBMM0EwLCBaZXJv LCBMM0JTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMM0RJID4gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKERTTUkgKEwzRDEsIEwzQTEsIFplcm8sIEwzQlMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEwzREkgPiAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkg KEwzRDIsIEwzQTIsIFplcm8sIEwzQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEwzREkgPiAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwzRDMsIEwzQTMsIFplcm8s IEwzQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwzREkgPiAweDA0KSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKERTTUkgKEwzRDQsIEwzQTQsIFplcm8sIEwzQlMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MDcpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEwzREkgPiAweDA1KSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkg KEwzRDUsIEwzQTUsIFplcm8sIEwzQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDgpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEwzREkgPiAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwzRDYsIEwzQTYsIFplcm8s IEwzQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwzREkgPiAweDA3KSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKERTTUkgKEwzRDcsIEwzQTcsIFplcm8sIEwzQlMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MEEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEwzREkgPiAweDA4KSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkg KEwzRDgsIEwzQTgsIFplcm8sIEwzQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEIpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEwzREkgPiAweDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKEwzRDksIEwzQTksIFplcm8s IEwzQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MEMpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEwzREkgPiAweDBBKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKERTTUkgKEwzREEsIEwzQUEsIFplcm8sIEwzQlMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MEQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEwzREkgPiAweDBCKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkg KEwzREIsIEwzQUIsIFplcm8sIEwzQlMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoTE5LNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTog U3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEw0RU4p CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfREVQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVw ZW5kZW5jaWVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEw0 RU4pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKENERVAgKEw0Q0wpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBDMDAKICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTmFtZSAoX1VJRCwgMHgwNCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAg ICAgICAgTWV0aG9kIChfSElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hJRDogSGFyZHdh cmUgSUQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEhD SUQgKDB4MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo X0NJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEhDSUQgKDB4MDQpKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RETiwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRiwgQnVmZmVyICgweDEwKXt9KQogICAg ICAgICAgICAgICAgICAgIEJVRiBbWmVyb10gPSBMNE0wIC8qIFxMNE0wICovCiAgICAgICAg ICAgICAgICAgICAgQlVGIFtPbmVdID0gTDRNMSAvKiBcTDRNMSAqLwogICAgICAgICAgICAg ICAgICAgIEJVRiBbMHgwMl0gPSBMNE0yIC8qIFxMNE0yICovCiAgICAgICAgICAgICAgICAg ICAgQlVGIFsweDAzXSA9IEw0TTMgLyogXEw0TTMgKi8KICAgICAgICAgICAgICAgICAgICBC VUYgWzB4MDRdID0gTDRNNCAvKiBcTDRNNCAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBb MHgwNV0gPSBMNE01IC8qIFxMNE01ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA2 XSA9IEw0TTYgLyogXEw0TTYgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDddID0g TDRNNyAvKiBcTDRNNyAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwOF0gPSBMNE04 IC8qIFxMNE04ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA5XSA9IEw0TTkgLyog XEw0TTkgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEFdID0gTDRNQSAvKiBcTDRN QSAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwQl0gPSBMNE1CIC8qIFxMNE1CICov CiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBDXSA9IEw0TUMgLyogXEw0TUMgKi8KICAg ICAgICAgICAgICAgICAgICBCVUYgWzB4MERdID0gTDRNRCAvKiBcTDRNRCAqLwogICAgICAg ICAgICAgICAgICAgIEJVRiBbMHgwRV0gPSBMNE1FIC8qIFxMNE1FICovCiAgICAgICAgICAg ICAgICAgICAgQlVGIFsweDBGXSA9IEw0TUYgLyogXEw0TUYgKi8KICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFRvU3RyaW5nIChCVUYsIE9uZXMpKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6 IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE5hbWUgKFBMREIsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAg Ki8gIDB4ODIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAv LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg2 OSwgMHgwRSwgMHgwMCwgMHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIGkuLi4u Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweEZGLCAweEZG LCAweEZGLCAweEZGICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCeXRlRmllbGQgKERlcmVmT2YgKFBMREIgW1plcm9dKSwgMHgwOCwg QlBPUykKICAgICAgICAgICAgICAgICAgICBDcmVhdGVGaWVsZCAoRGVyZWZPZiAoUExEQiBb WmVyb10pLCAweDczLCAweDA0LCBSUE9TKQogICAgICAgICAgICAgICAgICAgIEJQT1MgPSBM NFBMIC8qIFxMNFBMICovCiAgICAgICAgICAgICAgICAgICAgUlBPUyA9IEw0REcgLyogXEw0 REcgKi8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMREIpIC8qIFxfU0JfLlBDMDAu TE5LNC5fUExELlBMREIgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291 cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KChMNERJID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKFplcm8pe30pCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoTDRESSA+IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBJSUNCIChM NEEwLCBMNEJTKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEw0REkgPiBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBJSUNCIChMNEExLCBMNEJTKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9j YWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEw0REkgPiAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDRBMiwgTDRCUykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExv Y2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChMNERJID4gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEw0QTMsIEw0QlMp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChM b2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoTDRESSA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBJSUNCIChMNEE0LCBMNEJT KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAo TG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEw0REkgPiAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDRBNSwgTDRC UykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUg KExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMNERJID4gMHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEw0QTYsIEw0 QlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRl IChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoTDRESSA+IDB4MDcpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBJSUNCIChMNEE3LCBM NEJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0 ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEw0REkgPiAweDA4KSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDRBOCwg TDRCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxh dGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChMNERJID4gMHgwOSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IElJQ0IgKEw0QTks IEw0QlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBs YXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoTDRESSA+IDB4MEEpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBJSUNCIChMNEFB LCBMNEJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1w bGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEw0REkgPiAweDBCKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gSUlDQiAoTDRB QiwgTDRCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVt cGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoU1NEQiwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChQQVIsIEJ1ZmZlciAoMHg2QykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MDAsIDB4NjksIDB4NTYsIDB4 MzksIDB4OEEsIDB4RjcsIDB4MTEsICAvLyAuLmlWOS4uLgogICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDA4ICovICAweEE5LCAweDRFLCAweDlDLCAweDdELCAweDIwLCAweEVFLCAw eDBBLCAweEI1LCAgLy8gLk4ufSAuLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAx MCAqLyAgMHhDQSwgMHg0MCwgMHhBMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg IC8vIC5ALi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4u LgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDIwICovICAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAg ICAgICAgICAgICAgICAgLyogMDAyOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMzAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDM4 ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAg Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA0MCAqLyAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4u CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDggKi8gIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDUwICovICAweDEwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAxLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAg ICAgLyogMDA1OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNjAg Ki8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAv LyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDY4ICovICAweDAwLCAw eDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUEFSIFtaZXJvXSA9IEw0 RFYgLyogXEw0RFYgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgW09uZV0gPSBMNENWIC8q IFxMNENWICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDE4XSA9IEw0TEMgLyogXEw0 TEMgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4MUNdID0gTDRMVSAvKiBcTDRMVSAq LwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHgxRF0gPSBMNE5MIC8qIFxMNE5MICovCiAg ICAgICAgICAgICAgICAgICAgUEFSIFsweDRFXSA9IEw0RUUgLyogXEw0RUUgKi8KICAgICAg ICAgICAgICAgICAgICBQQVIgWzB4NEZdID0gTDRWQyAvKiBcTDRWQyAqLwogICAgICAgICAg ICAgICAgICAgIFBBUiBbMHg1Ml0gPSBMNEZTIC8qIFxMNEZTICovCiAgICAgICAgICAgICAg ICAgICAgUEFSIFsweDUzXSA9IEw0TEUgLyogXEw0TEUgKi8KICAgICAgICAgICAgICAgICAg ICBQQVIgWzB4NTRdID0gQ0RFRyAoTDRERykKICAgICAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChQQVIsIDB4NTYsIERBVCkKICAgICAgICAgICAgICAgICAgICBEQVQgPSBM NENLIC8qIFxMNENLICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDVBXSA9IEw0Q0wg LyogXEw0Q0wgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4NUZdID0gTDRQUCAvKiBc TDRQUCAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHg2MF0gPSBMNFZSIC8qIFxMNFZS ICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDYzXSA9IEw0RkkgLyogXEw0RkkgKi8K ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBBUikgLyogXF9TQl8uUEMwMC5MTks0LlNT REIuUEFSXyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo X0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRo b2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0g VG9VVUlEICgiODIyYWNlOGYtMjgxNC00MTc0LWE1NmItNWYwMjlmZTA3OWVlIikgLyogVW5r bm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChP bmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo QlVGLCBCdWZmZXIgKDB4MTApe30pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYg W1plcm9dID0gTDRNMCAvKiBcTDRNMCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg QlVGIFtPbmVdID0gTDRNMSAvKiBcTDRNMSAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQlVGIFsweDAyXSA9IEw0TTIgLyogXEw0TTIgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJVRiBbMHgwM10gPSBMNE0zIC8qIFxMNE0zICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCVUYgWzB4MDRdID0gTDRNNCAvKiBcTDRNNCAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQlVGIFsweDA1XSA9IEw0TTUgLyogXEw0TTUgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwNl0gPSBMNE02IC8qIFxMNE02ICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDddID0gTDRNNyAvKiBcTDRNNyAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA4XSA9IEw0TTggLyogXEw0TTgg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwOV0gPSBMNE05IC8qIFxM NE05ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEFdID0gTDRNQSAv KiBcTDRNQSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBCXSA9IEw0 TUIgLyogXEw0TUIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwQ10g PSBMNE1DIC8qIFxMNE1DICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4 MERdID0gTDRNRCAvKiBcTDRNRCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVG IFsweDBFXSA9IEw0TUUgLyogXEw0TUUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJVRiBbMHgwRl0gPSBMNE1GIC8qIFxMNE1GICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFRvU3RyaW5nIChCVUYsIE9uZXMpKQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gVG9VVUlEICgiNTgxNWM1YzgtYzQ3ZC00NzdiLTlhOGQtNzYxNzMxNzY0MTRi IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8p KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTmFtZSAoRFNNQiwgQnVmZmVyICgweDM0KXt9KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgWmVybywgSTJDQykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MDQsIERFVjApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDA4 LCBERVYxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo RFNNQiwgMHgwQywgREVWMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKERTTUIsIDB4MTAsIERFVjMpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDE0LCBERVY0KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgxOCwgREVWNSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MUMsIERF VjYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01C LCAweDIwLCBERVY3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoRFNNQiwgMHgyNCwgREVWOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MjgsIERFVjkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDJDLCBERVZBKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgzMCwgREVWQikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyQ0MgPSBMNERJIC8qIFxMNERJICovCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBERVYwID0gRFNNSSAoTDREMCwgTDRBMCwgWmVy bywgTDRCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjEgPSBEU01JIChMNEQx LCBMNEExLCBaZXJvLCBMNEJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWMiA9 IERTTUkgKEw0RDIsIEw0QTIsIFplcm8sIEw0QlMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBERVYzID0gRFNNSSAoTDREMywgTDRBMywgWmVybywgTDRCUykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERFVjQgPSBEU01JIChMNEQ0LCBMNEE0LCBaZXJvLCBMNEJTKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWNSA9IERTTUkgKEw0RDUsIEw0QTUsIFpl cm8sIEw0QlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVY2ID0gRFNNSSAoTDRE NiwgTDRBNiwgWmVybywgTDRCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjcg PSBEU01JIChMNEQ3LCBMNEE3LCBaZXJvLCBMNEJTKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgREVWOCA9IERTTUkgKEw0RDgsIEw0QTgsIFplcm8sIEw0QlMpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBERVY5ID0gRFNNSSAoTDREOSwgTDRBOSwgWmVybywgTDRCUykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVkEgPSBEU01JIChMNERBLCBMNEFBLCBa ZXJvLCBMNEJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWQiA9IERTTUkgKEw0 REIsIEw0QUIsIFplcm8sIEw0QlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKERTTUIpIC8qIFxfU0JfLlBDMDAuTE5LNC5fRFNNLkRTTUIgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIg KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMjYyNTc1NDkt OTI3MS00Y2E0LWJiNDMtYzQ4OTlkNWE0ODgxIikgLyogVW5rbm93biBVVUlEICovKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIDB4MUYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTDRESSkgLyogXEw0 REkgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEw0REkgPiBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKERTTUkgKEw0RDAsIEw0QTAsIFplcm8sIEw0QlMpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4 MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEw0REkgPiBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoTDREMSwgTDRB MSwgWmVybywgTDRCUykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDRESSA+IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoTDREMiwgTDRBMiwgWmVybywgTDRCUykpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoTDRESSA+IDB4MDMpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoRFNNSSAoTDREMywgTDRBMywgWmVybywgTDRCUykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgw NikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoTDRESSA+IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoTDRENCwgTDRB NCwgWmVybywgTDRCUykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNykpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDRESSA+IDB4 MDUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoTDRENSwgTDRBNSwgWmVybywgTDRCUykpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoTDRESSA+IDB4MDYpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoRFNNSSAoTDRENiwgTDRBNiwgWmVybywgTDRCUykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgw OSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoTDRESSA+IDB4MDcpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoTDRENywgTDNB NywgWmVybywgTDNCUykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwQSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDRESSA+IDB4 MDgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoTDREOCwgTDNBOCwgWmVybywgTDNCUykpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzIgPT0gMHgwQikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoTDRESSA+IDB4MDkpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoRFNNSSAoTDREOSwgTDRBOSwgWmVybywgTDRCUykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgw QykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoTDRESSA+IDB4MEEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoTDREQSwgTDRB QSwgWmVybywgTDRCUykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwRCkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDRESSA+IDB4 MEIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoTDREQiwgTDRBQiwgWmVybywgTDRCUykpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNl IChMTks1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJZiAoTDVFTikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9ERVAsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoTDVFTikKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ0RFUCAoTDVDTCkpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEMw MAogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA1KSAgLy8g X1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBNZXRob2QgKF9ISUQsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoSENJRCAoMHgwNSkpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ0lELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoSENJRCAoMHgwNSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfREROLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RETjogRE9TIERl dmljZSBOYW1lCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAo QlVGLCBCdWZmZXIgKDB4MTApe30pCiAgICAgICAgICAgICAgICAgICAgQlVGIFtaZXJvXSA9 IEw1TTAgLyogXEw1TTAgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgW09uZV0gPSBMNU0x IC8qIFxMNU0xICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDAyXSA9IEw1TTIgLyog XEw1TTIgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDNdID0gTDVNMyAvKiBcTDVN MyAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwNF0gPSBMNU00IC8qIFxMNU00ICov CiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA1XSA9IEw1TTUgLyogXEw1TTUgKi8KICAg ICAgICAgICAgICAgICAgICBCVUYgWzB4MDZdID0gTDVNNiAvKiBcTDVNNiAqLwogICAgICAg ICAgICAgICAgICAgIEJVRiBbMHgwN10gPSBMNU03IC8qIFxMNU03ICovCiAgICAgICAgICAg ICAgICAgICAgQlVGIFsweDA4XSA9IEw1TTggLyogXEw1TTggKi8KICAgICAgICAgICAgICAg ICAgICBCVUYgWzB4MDldID0gTDVNOSAvKiBcTDVNOSAqLwogICAgICAgICAgICAgICAgICAg IEJVRiBbMHgwQV0gPSBMNU1BIC8qIFxMNU1BICovCiAgICAgICAgICAgICAgICAgICAgQlVG IFsweDBCXSA9IEw1TUIgLyogXEw1TUIgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4 MENdID0gTDVNQyAvKiBcTDVNQyAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwRF0g PSBMNU1EIC8qIFxMNU1EICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBFXSA9IEw1 TUUgLyogXEw1TUUgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEZdID0gTDVNRiAv KiBcTDVNRiAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoVG9TdHJpbmcgKEJVRiwg T25lcykpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUExE LCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNl CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUExEQiwgUGFj a2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MiwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiAwMDA4ICovICAweDY5LCAweDBFLCAweDAwLCAweDAwLCAweDAzLCAw eDAwLCAweDAwLCAweDAwLCAgLy8gaS4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMTAgKi8gIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoRGVy ZWZPZiAoUExEQiBbWmVyb10pLCAweDA4LCBCUE9TKQogICAgICAgICAgICAgICAgICAgIENy ZWF0ZUZpZWxkIChEZXJlZk9mIChQTERCIFtaZXJvXSksIDB4NzMsIDB4MDQsIFJQT1MpCiAg ICAgICAgICAgICAgICAgICAgQlBPUyA9IEw1UEwgLyogXEw1UEwgKi8KICAgICAgICAgICAg ICAgICAgICBSUE9TID0gTDVERyAvKiBcTDVERyAqLwogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUExEQikgLyogXF9TQl8uUEMwMC5MTks1Ll9QTEQuUExEQiAqLwogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEw1REkgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoWmVy byl7fSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMNURJ ID4gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMCA9IElJQ0IgKEw1QTAsIEw1QlMpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDVESSA+IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMSA9IElJQ0IgKEw1QTEsIEw1QlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBD b25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDVESSA+IDB4MDIpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDEgPSBJSUNCIChMNUEyLCBMNUJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Q29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEw1REkgPiAweDAzKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwxID0gSUlDQiAoTDVBMywgTDVCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMNURJID4gMHgwNCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMSA9IElJQ0IgKEw1QTQsIEw1QlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDVESSA+IDB4MDUp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDEgPSBJSUNCIChMNUE1LCBMNUJTKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEw1REkgPiAweDA2 KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwxID0gSUlDQiAoTDVBNiwgTDVCUykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMNURJID4gMHgw NykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMSA9IElJQ0IgKEw1QTcsIEw1QlMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDVESSA+IDB4 MDgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDEgPSBJSUNCIChMNUE4LCBMNUJTKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEw1REkgPiAw eDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwxID0gSUlDQiAoTDVBOSwgTDVCUykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMNURJID4g MHgwQSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMSA9IElJQ0IgKEw1QUEsIEw1QlMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDVESSA+ IDB4MEIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDEgPSBJSUNCIChMNUFCLCBMNUJTKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2Fs MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExv Y2FsMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChTU0RCLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKFBBUiwgQnVmZmVyICgweDZDKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAg MHgwMCwgMHgwMCwgMHg2OSwgMHg1NiwgMHgzOSwgMHg4QSwgMHhGNywgMHgxMSwgIC8vIC4u aVY5Li4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4QTksIDB4NEUs IDB4OUMsIDB4N0QsIDB4MjAsIDB4RUUsIDB4MEEsIDB4QjUsICAvLyAuTi59IC4uLgogICAg ICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweENBLCAweDQwLCAweEEzLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLkAuLi4uLi4KICAgICAgICAgICAgICAg ICAgICAgICAgLyogMDAxOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwMjAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDI4ICovICAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4u Li4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAzMCAqLyAgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwMzggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAg ICAgICAgICAvKiAwMDQwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyog MDA0OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNTAgKi8gIDB4 MTAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsICAvLyAuLi4u Li4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDU4ICovICAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAg ICAgICAgICAgICAgICAgICAgLyogMDA2MCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNSwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwNjggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICBQQVIgW1plcm9dID0gTDVEViAvKiBcTDVEViAqLwogICAgICAgICAgICAg ICAgICAgIFBBUiBbT25lXSA9IEw1Q1YgLyogXEw1Q1YgKi8KICAgICAgICAgICAgICAgICAg ICBQQVIgWzB4MThdID0gTDVMQyAvKiBcTDVMQyAqLwogICAgICAgICAgICAgICAgICAgIFBB UiBbMHgxQ10gPSBMNUxVIC8qIFxMNUxVICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsw eDFEXSA9IEw1TkwgLyogXEw1TkwgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4NEVd ID0gTDVFRSAvKiBcTDVFRSAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHg0Rl0gPSBM NVZDIC8qIFxMNVZDICovCiAgICAgICAgICAgICAgICAgICAgUEFSIFsweDUyXSA9IEw1RlMg LyogXEw1RlMgKi8KICAgICAgICAgICAgICAgICAgICBQQVIgWzB4NTNdID0gTDVMRSAvKiBc TDVMRSAqLwogICAgICAgICAgICAgICAgICAgIFBBUiBbMHg1NF0gPSBDREVHIChMNURHKQog ICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFBBUiwgMHg1NiwgREFUKQog ICAgICAgICAgICAgICAgICAgIERBVCA9IEw1Q0sgLyogXEw1Q0sgKi8KICAgICAgICAgICAg ICAgICAgICBQQVIgWzB4NUFdID0gTDVDTCAvKiBcTDVDTCAqLwogICAgICAgICAgICAgICAg ICAgIFBBUiBbMHg1Rl0gPSBMNVBQIC8qIFxMNVBQICovCiAgICAgICAgICAgICAgICAgICAg UEFSIFsweDYwXSA9IEw1VlIgLyogXEw1VlIgKi8KICAgICAgICAgICAgICAgICAgICBQQVIg WzB4NjNdID0gTDVGSSAvKiBcTDVGSSAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAo UEFSKSAvKiBcX1NCXy5QQzAwLkxOSzUuU1NEQi5QQVJfICovCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8g X0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI4MjJhY2U4Zi0yODE0LTQxNzQt YTU2Yi01ZjAyOWZlMDc5ZWUiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUYsIEJ1ZmZlciAoMHgxMCl7fSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJVRiBbWmVyb10gPSBMNU0wIC8qIFxMNU0wICovCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgW09uZV0gPSBMNU0xIC8qIFxMNU0xICov CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDJdID0gTDVNMiAvKiBcTDVN MiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDAzXSA9IEw1TTMgLyog XEw1TTMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwNF0gPSBMNU00 IC8qIFxMNU00ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDVdID0g TDVNNSAvKiBcTDVNNSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA2 XSA9IEw1TTYgLyogXEw1TTYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRiBb MHgwN10gPSBMNU03IC8qIFxMNU03ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBC VUYgWzB4MDhdID0gTDVNOCAvKiBcTDVNOCAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQlVGIFsweDA5XSA9IEw1TTkgLyogXEw1TTkgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJVRiBbMHgwQV0gPSBMNU1BIC8qIFxMNU1BICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCVUYgWzB4MEJdID0gTDVNQiAvKiBcTDVNQiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQlVGIFsweDBDXSA9IEw1TUMgLyogXEw1TUMgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwRF0gPSBMNU1EIC8qIFxMNU1EICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEVdID0gTDVNRSAvKiBcTDVNRSAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBGXSA9IEw1TUYgLyogXEw1TUYg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVG9TdHJpbmcgKEJVRiwg T25lcykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI1ODE1YzVjOC1j NDdkLTQ3N2ItOWE4ZC03NjE3MzE3NjQxNGIiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChEU01CLCBCdWZmZXIgKDB4MzQp e30pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01C LCBaZXJvLCBJMkNDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoRFNNQiwgMHgwNCwgREVWMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MDgsIERFVjEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDBDLCBERVYyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgxMCwgREVWMykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4 MTQsIERFVjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChEU01CLCAweDE4LCBERVY1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoRFNNQiwgMHgxQywgREVWNikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKERTTUIsIDB4MjAsIERFVjcpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChEU01CLCAweDI0LCBERVY4KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoRFNNQiwgMHgyOCwg REVWOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKERT TUIsIDB4MkMsIERFVkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChEU01CLCAweDMwLCBERVZCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg STJDQyA9IEw1REkgLyogXEw1REkgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERF VjAgPSBEU01JIChMNUQwLCBMNUEwLCBaZXJvLCBMNUJTKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgREVWMSA9IERTTUkgKEw1RDEsIEw1QTEsIFplcm8sIEw1QlMpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBERVYyID0gRFNNSSAoTDVEMiwgTDVBMiwgWmVybywgTDVC UykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjMgPSBEU01JIChMNUQzLCBMNUEz LCBaZXJvLCBMNUJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWNCA9IERTTUkg KEw1RDQsIEw1QTQsIFplcm8sIEw1QlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBE RVY1ID0gRFNNSSAoTDVENSwgTDVBNSwgWmVybywgTDVCUykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERFVjYgPSBEU01JIChMNUQ2LCBMNUE2LCBaZXJvLCBMNUJTKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgREVWNyA9IERTTUkgKEw1RDcsIEw1QTcsIFplcm8sIEw1 QlMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVY4ID0gRFNNSSAoTDVEOCwgTDVB OCwgWmVybywgTDVCUykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVjkgPSBEU01J IChMNUQ5LCBMNUE5LCBaZXJvLCBMNUJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg REVWQSA9IERTTUkgKEw1REEsIEw1QUEsIFplcm8sIEw1QlMpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBERVZCID0gRFNNSSAoTDVEQiwgTDVBQiwgWmVybywgTDVCUykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFNNQikgLyogXF9TQl8uUEMwMC5MTks1 Ll9EU00uRFNNQiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBUb1VVSUQgKCIyNjI1NzU0OS05MjcxLTRjYTQtYmI0My1jNDg5OWQ1YTQ4ODEi KSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRiwgMHgxRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIC4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMNURJKSAvKiBcTDVESSAqLwogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo TDVESSA+IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoTDVEMCwgTDVBMCwgWmVybywg TDVCUykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTDVESSA+IE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChEU01JIChMNUQxLCBMNUExLCBaZXJvLCBMNUJTKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMNURJID4gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChM NUQyLCBMNUEyLCBaZXJvLCBMNUJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA1KSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM NURJID4gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMNUQzLCBMNUEzLCBaZXJvLCBM NUJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMNURJID4gMHgwNCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChEU01JIChMNUQ0LCBMNUE0LCBaZXJvLCBMNUJTKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMNURJID4gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChM NUQ1LCBMNUE1LCBaZXJvLCBMNUJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA4KSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM NURJID4gMHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMNUQ2LCBMNUE2LCBaZXJvLCBM NUJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSAweDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMNURJID4gMHgwNykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChEU01JIChMNUQ3LCBMNUE3LCBaZXJvLCBMNUJTKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMNURJID4gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChM NUQ4LCBMNUE4LCBaZXJvLCBMNUJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDBCKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM NURJID4gMHgwOSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChMNUQ5LCBMNUE5LCBaZXJvLCBM NUJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMiA9PSAweDBDKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMNURJID4gMHgwQSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChEU01JIChMNURBLCBMNUFBLCBaZXJvLCBMNUJTKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSAweDBEKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMNURJID4gMHgwQikpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChM NURCLCBMNUFCLCBaZXJvLCBMNUJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEZMTTApCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0 YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChMMEZEKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBGKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0RFUCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ERVA6IERlcGVu ZGVuY2llcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChMMEVO KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChDREVQIChMMENMKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMTkswCiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIFplcm8pICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0hJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJl IElECiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChGSENJ IChaZXJvKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9D SUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChGSENJIChaZXJvKSkKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9ERE4sIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUYsIEJ1ZmZlciAoMHgxMCl7fSkKICAgICAg ICAgICAgICAgICAgICBCVUYgW1plcm9dID0gRjBNMCAvKiBcRjBNMCAqLwogICAgICAgICAg ICAgICAgICAgIEJVRiBbT25lXSA9IEYwTTEgLyogXEYwTTEgKi8KICAgICAgICAgICAgICAg ICAgICBCVUYgWzB4MDJdID0gRjBNMiAvKiBcRjBNMiAqLwogICAgICAgICAgICAgICAgICAg IEJVRiBbMHgwM10gPSBGME0zIC8qIFxGME0zICovCiAgICAgICAgICAgICAgICAgICAgQlVG IFsweDA0XSA9IEYwTTQgLyogXEYwTTQgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4 MDVdID0gRjBNNSAvKiBcRjBNNSAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwNl0g PSBGME02IC8qIFxGME02ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA3XSA9IEYw TTcgLyogXEYwTTcgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDhdID0gRjBNOCAv KiBcRjBNOCAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwOV0gPSBGME05IC8qIFxG ME05ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBBXSA9IEYwTUEgLyogXEYwTUEg Ki8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEJdID0gRjBNQiAvKiBcRjBNQiAqLwog ICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwQ10gPSBGME1DIC8qIFxGME1DICovCiAgICAg ICAgICAgICAgICAgICAgQlVGIFsweDBEXSA9IEYwTUQgLyogXEYwTUQgKi8KICAgICAgICAg ICAgICAgICAgICBCVUYgWzB4MEVdID0gRjBNRSAvKiBcRjBNRSAqLwogICAgICAgICAgICAg ICAgICAgIEJVRiBbMHgwRl0gPSBGME1GIC8qIFxGME1GICovCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChUb1N0cmluZyAoQlVGLCBPbmVzKSkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQ aHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBOYW1lIChQTERCLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICov ICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8g Li4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4Njks IDB4MEMsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyBpLi4uLi4u LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwg MHhGRiwgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQTERCKSAvKiBcX1NCXy5QQzAwLkZMTTAuX1BMRC5QTERCICovCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IElJQ0IgKEYwQUIsIEYw QlMpCiAgICAgICAgICAgICAgICAgICAgSWYgKChGME1TICE9IDB4MDMpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gUElOUiAoRjBH UCwgRjBDUCwgRjBHRykKICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGVSZXNU ZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2Ut U3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcwID09IFRvVVVJRCAoIjM3N2JhNzZhLWYzOTAtNGFmZi1hYjM4LTliMWJmMzNh MzAxNSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEZIQ0kgKFplcm8pKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjgy MmFjZThmLTI4MTQtNDE3NC1hNTZiLTVmMDI5ZmUwNzllZSIpIC8qIFVua25vd24gVVVJRCAq LykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEZNSUQgKFplcm8pKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjdkY2Q5ZjdiLTkwODAtNGY1Yi1hMjZjLTM0 NzBiZTJjYWE3YSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEZNTFMgKFplcm8pKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoIjI5NTk1MTJhLTAyOGMtNDY0Ni1iNzNkLTRkMWI1NjcyZmFkOCIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKCJMS0YiKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjI2MjU3NTQ5LTkyNzEtNGNhNC1iYjQzLWM0 ODk5ZDVhNDg4MSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChG MEJTKSAvKiBcRjBCUyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFNNSSAoWmVybywg RjBBQiwgWmVybywgRjBCUykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQg KCI3OTIzNDY0MC05ZTEwLTRmZWEtYTVjMS1iNWFhOGIxOTc1NmYiKSAvKiBVbmtub3duIFVV SUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoR1BQSSAoMHgwNCwgKEFHUE4gKEYwR1AsIEYwR0cpICYgMHhGRiksIEYwSVYsIEYwQVYp KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNWU5ZTAwNzUtYTdhMC00 MDY3LWE4MjMtYjkzOWY3NWNkMmNhIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBU b1VVSUQgKCI2NjY1ZDFjZS0yMGEzLTQwZDAtOTlhMS1lNDg4ZGI1YWY5MDgiKSAvKiBVbmtu b3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTDBGSSkgLyogXEwwRkkgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoRkxNMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoUEtHMCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAiXFxfU0IuUEMwMC5YSENJLlJIVUIuVklDMCIKICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoTDFGRCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf REVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBJZiAoTDFFTikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoKENWRlMgPT0gT25lKSAmJiAoQVJMUCA9PSBaZXJvKSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtH MCkgLyogXF9TQl8uUEMwMC5GTE0xLlBLRzAgKi8KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ0RFUCAoTDFDTCkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTksxCiAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgICAgICAgICAgTWV0aG9kIChfSElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hJRDog SGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEZIQ0kgKE9uZSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfQ0lELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoRkhDSSAoT25l KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9ERE4sIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUYsIEJ1ZmZlciAoMHgxMCl7fSkK ICAgICAgICAgICAgICAgICAgICBCVUYgW1plcm9dID0gRjFNMCAvKiBcRjFNMCAqLwogICAg ICAgICAgICAgICAgICAgIEJVRiBbT25lXSA9IEYxTTEgLyogXEYxTTEgKi8KICAgICAgICAg ICAgICAgICAgICBCVUYgWzB4MDJdID0gRjFNMiAvKiBcRjFNMiAqLwogICAgICAgICAgICAg ICAgICAgIEJVRiBbMHgwM10gPSBGMU0zIC8qIFxGMU0zICovCiAgICAgICAgICAgICAgICAg ICAgQlVGIFsweDA0XSA9IEYxTTQgLyogXEYxTTQgKi8KICAgICAgICAgICAgICAgICAgICBC VUYgWzB4MDVdID0gRjFNNSAvKiBcRjFNNSAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBb MHgwNl0gPSBGMU02IC8qIFxGMU02ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA3 XSA9IEYxTTcgLyogXEYxTTcgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDhdID0g RjFNOCAvKiBcRjFNOCAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwOV0gPSBGMU05 IC8qIFxGMU05ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBBXSA9IEYxTUEgLyog XEYxTUEgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEJdID0gRjFNQiAvKiBcRjFN QiAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwQ10gPSBGMU1DIC8qIFxGMU1DICov CiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBEXSA9IEYxTUQgLyogXEYxTUQgKi8KICAg ICAgICAgICAgICAgICAgICBCVUYgWzB4MEVdID0gRjFNRSAvKiBcRjFNRSAqLwogICAgICAg ICAgICAgICAgICAgIEJVRiBbMHgwRl0gPSBGMU1GIC8qIFxGMU1GICovCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChUb1N0cmluZyAoQlVGLCBPbmVzKSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBf UExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOYW1lIChQTERCLCBQYWNrYWdlICgweDAxKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAw MDAwICovICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8g IDB4NjksIDB4MEMsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyBp Li4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwg MHhGRiwgMHhGRiwgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQTERCKSAvKiBcX1NCXy5QQzAwLkZMTTEuX1BMRC5QTERC ICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKENWRlMgPT0gT25l KSAmJiAoQVJMUCA9PSBaZXJvKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgPSBWSUlDIChGMUFCLCBaZXJvKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBJSUNCIChGMUFCLCBGMUJTKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChGMU1TICE9 IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChDVkZTID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFZQSU4gKDB4MDMpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5S IChGMUdQLCBGMUNQLCBGMUdHKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChMb2NhbDAsIExvY2Fs MSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBMb2NhbDIKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg Tm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgi Mzc3YmE3NmEtZjM5MC00YWZmLWFiMzgtOWIxYmYzM2EzMDE1IikgLyogVW5rbm93biBVVUlE ICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoRkhDSSAoT25lKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI4MjJhY2U4Zi0yODE0LTQxNzQtYTU2Yi01 ZjAyOWZlMDc5ZWUiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChGTUlEIChPbmUpKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoIjdkY2Q5ZjdiLTkwODAtNGY1Yi1hMjZjLTM0NzBiZTJjYWE3YSIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEZNTFMgKE9uZSkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMjk1OTUxMmEtMDI4Yy00NjQ2LWI3 M2QtNGQxYjU2NzJmYWQ4IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIkxLRiIpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlE ICgiMjYyNTc1NDktOTI3MS00Y2E0LWJiNDMtYzQ4OTlkNWE0ODgxIikgLyogVW5rbm93biBV VUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEYxQlMpIC8qIFxGMUJTICovCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChEU01JIChaZXJvLCBGMUFCLCBaZXJvLCBGMUJTKSkKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjc5MjM0NjQwLTllMTAtNGZlYS1hNWMx LWI1YWE4YjE5NzU2ZiIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFBJICgweDA0LCAoQUdQTiAoRjFH UCwgRjFHRykgJiAweEZGKSwgRjFJViwgRjFBVikpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJn MCA9PSBUb1VVSUQgKCI1ZTllMDA3NS1hN2EwLTQwNjctYTgyMy1iOTM5Zjc1Y2QyY2EiKSAv KiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjY2NjVkMWNlLTIwYTMtNDBk MC05OWExLWU0ODhkYjVhZjkwOCIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMMUZJKSAvKiBcTDFGSSAqLwogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChGTE0yKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJZiAoTDJGRCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoTDJFTikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQ0RFUCAoTDJDTCkpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTE5LMgogICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKSAgLy8gX1VJRDogVW5p cXVlIElECiAgICAgICAgICAgICAgICBNZXRob2QgKF9ISUQsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoRkhDSSAoMHgwMikpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfQ0lELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NJRDogQ29t cGF0aWJsZSBJRAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoRkhDSSAoMHgwMikpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfREROLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1l CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGLCBCdWZm ZXIgKDB4MTApe30pCiAgICAgICAgICAgICAgICAgICAgQlVGIFtaZXJvXSA9IEYyTTAgLyog XEYyTTAgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgW09uZV0gPSBGMk0xIC8qIFxGMk0x ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDAyXSA9IEYyTTIgLyogXEYyTTIgKi8K ICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDNdID0gRjJNMyAvKiBcRjJNMyAqLwogICAg ICAgICAgICAgICAgICAgIEJVRiBbMHgwNF0gPSBGMk00IC8qIFxGMk00ICovCiAgICAgICAg ICAgICAgICAgICAgQlVGIFsweDA1XSA9IEYyTTUgLyogXEYyTTUgKi8KICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MDZdID0gRjJNNiAvKiBcRjJNNiAqLwogICAgICAgICAgICAgICAg ICAgIEJVRiBbMHgwN10gPSBGMk03IC8qIFxGMk03ICovCiAgICAgICAgICAgICAgICAgICAg QlVGIFsweDA4XSA9IEYyTTggLyogXEYyTTggKi8KICAgICAgICAgICAgICAgICAgICBCVUYg WzB4MDldID0gRjJNOSAvKiBcRjJNOSAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw QV0gPSBGMk1BIC8qIFxGMk1BICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBCXSA9 IEYyTUIgLyogXEYyTUIgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MENdID0gRjJN QyAvKiBcRjJNQyAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwRF0gPSBGMk1EIC8q IFxGMk1EICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBFXSA9IEYyTUUgLyogXEYy TUUgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEZdID0gRjJNRiAvKiBcRjJNRiAq LwogICAgICAgICAgICAgICAgICAgIFJldHVybiAoVG9TdHJpbmcgKEJVRiwgT25lcykpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJp YWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUExEQiwgUGFja2FnZSAoMHgw MSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZl ciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogMDAwMCAqLyAgMHg4MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDA4ICovICAweDY5LCAweDBDLCAweDAwLCAweDAwLCAweDAzLCAweDAwLCAweDAw LCAweDAwLCAgLy8gaS4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MTAgKi8gIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyAuLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUExEQikgLyogXF9TQl8uUEMwMC5G TE0yLl9QTEQuUExEQiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPSBJSUNCIChGMkFCLCBGMkJTKQogICAgICAgICAgICAgICAgICAgIElmICgoRjJNUyAh PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMSA9IFBJTlIgKEYyR1AsIEYyQ1AsIEYyR0cpCiAgICAgICAgICAgICAgICAgICAg ICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IExvY2FsMgogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVk KSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIzNzdiYTc2YS1mMzkw LTRhZmYtYWIzOC05YjFiZjMzYTMwMTUiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChGSENJICgw eDAyKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBUb1VVSUQgKCI4MjJhY2U4Zi0yODE0LTQxNzQtYTU2Yi01ZjAyOWZlMDc5ZWUi KSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChGTUlEICgweDAyKSkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI3ZGNkOWY3 Yi05MDgwLTRmNWItYTI2Yy0zNDcwYmUyY2FhN2EiKSAvKiBVbmtub3duIFVVSUQgKi8pKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChG TUxTICgweDAyKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSBUb1VVSUQgKCIyOTU5NTEyYS0wMjhjLTQ2NDYtYjczZC00ZDFiNTY3 MmZhZDgiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiTEtGIikKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIyNjI1NzU0 OS05MjcxLTRjYTQtYmI0My1jNDg5OWQ1YTQ4ODEiKSAvKiBVbmtub3duIFVVSUQgKi8pKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoRjJCUykgLyogXEYyQlMgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKERTTUkgKFplcm8sIEYyQUIsIFplcm8sIEYyQlMpKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzAgPT0gVG9VVUlEICgiNzkyMzQ2NDAtOWUxMC00ZmVhLWE1YzEtYjVhYThiMTk3 NTZmIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkgKDB4MDQsIChBR1BOIChGMkdQLCBGMkdHKSAm IDB4RkYpLCBGMklWLCBGMkFWKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoIjVlOWUwMDc1LWE3YTAtNDA2Ny1hODIzLWI5MzlmNzVjZDJjYSIpIC8qIFVua25vd24g VVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNjY2NWQxY2UtMjBhMy00MGQwLTk5YTEtZTQ4 OGRiNWFmOTA4IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChC dWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEwyRkkpIC8qIFxMMkZJICovCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEZMTTMpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChMM0ZEKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RFUCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9E RVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmIChMM0VOKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChDREVQIChMM0NMKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTkszCiAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDMpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0hJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ISUQ6 IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChGSENJICgweDAzKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9DSUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ0lEOiBDb21wYXRpYmxlIElE CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChGSENJICgw eDAzKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9ERE4s IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUYsIEJ1ZmZlciAoMHgxMCl7 fSkKICAgICAgICAgICAgICAgICAgICBCVUYgW1plcm9dID0gRjNNMCAvKiBcRjNNMCAqLwog ICAgICAgICAgICAgICAgICAgIEJVRiBbT25lXSA9IEYzTTEgLyogXEYzTTEgKi8KICAgICAg ICAgICAgICAgICAgICBCVUYgWzB4MDJdID0gRjNNMiAvKiBcRjNNMiAqLwogICAgICAgICAg ICAgICAgICAgIEJVRiBbMHgwM10gPSBGM00zIC8qIFxGM00zICovCiAgICAgICAgICAgICAg ICAgICAgQlVGIFsweDA0XSA9IEYzTTQgLyogXEYzTTQgKi8KICAgICAgICAgICAgICAgICAg ICBCVUYgWzB4MDVdID0gRjNNNSAvKiBcRjNNNSAqLwogICAgICAgICAgICAgICAgICAgIEJV RiBbMHgwNl0gPSBGM002IC8qIFxGM002ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsw eDA3XSA9IEYzTTcgLyogXEYzTTcgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDhd ID0gRjNNOCAvKiBcRjNNOCAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwOV0gPSBG M005IC8qIFxGM005ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBBXSA9IEYzTUEg LyogXEYzTUEgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEJdID0gRjNNQiAvKiBc RjNNQiAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwQ10gPSBGM01DIC8qIFxGM01D ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDBEXSA9IEYzTUQgLyogXEYzTUQgKi8K ICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEVdID0gRjNNRSAvKiBcRjNNRSAqLwogICAg ICAgICAgICAgICAgICAgIEJVRiBbMHgwRl0gPSBGM01GIC8qIFxGM01GICovCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChUb1N0cmluZyAoQlVGLCBPbmVzKSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAv LyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBOYW1lIChQTERCLCBQYWNrYWdlICgweDAxKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDE0KQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDAwICovICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDgg Ki8gIDB4NjksIDB4MEMsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsICAv LyBpLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhG RiwgMHhGRiwgMHhGRiwgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4K ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQTERCKSAvKiBcX1NCXy5QQzAwLkZMTTMuX1BMRC5Q TERCICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JT LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5n cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IElJQ0Ig KEYzQUIsIEYzQlMpCiAgICAgICAgICAgICAgICAgICAgSWYgKChGM01TICE9IDB4MDMpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g UElOUiAoRjNHUCwgRjNDUCwgRjNHRykKICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0 ZW5hdGVSZXNUZW1wbGF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMikKICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gTG9jYWwyCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNN OiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjM3N2JhNzZhLWYzOTAtNGFmZi1hYjM4 LTliMWJmMzNhMzAxNSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEZIQ0kgKDB4MDMpKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRv VVVJRCAoIjgyMmFjZThmLTI4MTQtNDE3NC1hNTZiLTVmMDI5ZmUwNzllZSIpIC8qIFVua25v d24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEZNSUQgKDB4MDMpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjdkY2Q5ZjdiLTkwODAtNGY1 Yi1hMjZjLTM0NzBiZTJjYWE3YSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEZNTFMgKDB4MDMp KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IFRvVVVJRCAoIjI5NTk1MTJhLTAyOGMtNDY0Ni1iNzNkLTRkMWI1NjcyZmFkOCIpIC8q IFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKCJMS0YiKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjI2MjU3NTQ5LTkyNzEtNGNh NC1iYjQzLWM0ODk5ZDVhNDg4MSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChGM0JTKSAvKiBcRjNCUyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRFNN SSAoWmVybywgRjNBQiwgWmVybywgRjNCUykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSBUb1VVSUQgKCI3OTIzNDY0MC05ZTEwLTRmZWEtYTVjMS1iNWFhOGIxOTc1NmYiKSAvKiBV bmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgw MikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoR1BQSSAoMHgwNCwgKEFHUE4gKEYzR1AsIEYzR0cpICYgMHhGRiksIEYz SVYsIEYzQVYpKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNWU5ZTAw NzUtYTdhMC00MDY3LWE4MjMtYjkzOWY3NWNkMmNhIikgLyogVW5rbm93biBVVUlEICovKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBUb1VVSUQgKCI2NjY1ZDFjZS0yMGEzLTQwZDAtOTlhMS1lNDg4ZGI1YWY5MDgi KSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoTDNGSSkgLyogXEwzRkkgKi8KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChC dWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIERldmljZSAoRkxNNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3Rh dHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEw0RkQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEYpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfREVQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVwZW5k ZW5jaWVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEw0RU4p CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KENERVAgKEw0Q0wpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExOSzQKICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTmFtZSAoX1VJRCwgMHgwNCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAg ICAgTWV0aG9kIChfSElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hJRDogSGFyZHdhcmUg SUQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEZIQ0kg KDB4MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NJ RCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEZIQ0kgKDB4MDQpKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RETiwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRiwgQnVmZmVyICgweDEwKXt9KQogICAgICAg ICAgICAgICAgICAgIEJVRiBbWmVyb10gPSBGNE0wIC8qIFxGNE0wICovCiAgICAgICAgICAg ICAgICAgICAgQlVGIFtPbmVdID0gRjRNMSAvKiBcRjRNMSAqLwogICAgICAgICAgICAgICAg ICAgIEJVRiBbMHgwMl0gPSBGNE0yIC8qIFxGNE0yICovCiAgICAgICAgICAgICAgICAgICAg QlVGIFsweDAzXSA9IEY0TTMgLyogXEY0TTMgKi8KICAgICAgICAgICAgICAgICAgICBCVUYg WzB4MDRdID0gRjRNNCAvKiBcRjRNNCAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgw NV0gPSBGNE01IC8qIFxGNE01ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA2XSA9 IEY0TTYgLyogXEY0TTYgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDddID0gRjRN NyAvKiBcRjRNNyAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwOF0gPSBGNE04IC8q IFxGNE04ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA5XSA9IEY0TTkgLyogXEY0 TTkgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MEFdID0gRjRNQSAvKiBcRjRNQSAq LwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwQl0gPSBGNE1CIC8qIFxGNE1CICovCiAg ICAgICAgICAgICAgICAgICAgQlVGIFsweDBDXSA9IEY0TUMgLyogXEY0TUMgKi8KICAgICAg ICAgICAgICAgICAgICBCVUYgWzB4MERdID0gRjRNRCAvKiBcRjRNRCAqLwogICAgICAgICAg ICAgICAgICAgIEJVRiBbMHgwRV0gPSBGNE1FIC8qIFxGNE1FICovCiAgICAgICAgICAgICAg ICAgICAgQlVGIFsweDBGXSA9IEY0TUYgLyogXEY0TUYgKi8KICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFRvU3RyaW5nIChCVUYsIE9uZXMpKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBo eXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIE5hbWUgKFBMREIsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8g IDB4ODIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAu Li4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg2OSwg MHgwQywgMHgwMCwgMHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIGkuLi4uLi4u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweEZGLCAweEZGLCAw eEZGLCAweEZGICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uLgogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBMREIpIC8qIFxfU0JfLlBDMDAuRkxNNC5fUExELlBMREIgKi8KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gSUlDQiAoRjRBQiwgRjRC UykKICAgICAgICAgICAgICAgICAgICBJZiAoKEY0TVMgIT0gMHgwMykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBQSU5SIChGNEdQ LCBGNENQLCBGNEdHKQogICAgICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZVJlc1Rl bXBsYXRlIChMb2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBMb2NhbDIKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1T cGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzAgPT0gVG9VVUlEICgiMzc3YmE3NmEtZjM5MC00YWZmLWFiMzgtOWIxYmYzM2Ez MDE1IikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoRkhDSSAoMHgwNCkpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiODIy YWNlOGYtMjgxNC00MTc0LWE1NmItNWYwMjlmZTA3OWVlIikgLyogVW5rbm93biBVVUlEICov KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoRk1JRCAoMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiN2RjZDlmN2ItOTA4MC00ZjViLWEyNmMtMzQ3 MGJlMmNhYTdhIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRk1MUyAoMHgwNCkpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlE ICgiMjk1OTUxMmEtMDI4Yy00NjQ2LWI3M2QtNGQxYjU2NzJmYWQ4IikgLyogVW5rbm93biBV VUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoIkxLRiIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMjYyNTc1NDktOTI3MS00Y2E0LWJiNDMtYzQ4 OTlkNWE0ODgxIikgLyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEY0 QlMpIC8qIFxGNEJTICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEU01JIChaZXJvLCBG NEFCLCBaZXJvLCBGNEJTKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAo Ijc5MjM0NjQwLTllMTAtNGZlYS1hNWMxLWI1YWE4YjE5NzU2ZiIpIC8qIFVua25vd24gVVVJ RCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChHUFBJICgweDA0LCAoQUdQTiAoRjRHUCwgRjRHRykgJiAweEZGKSwgRjRJViwgRjRBVikp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI1ZTllMDA3NS1hN2EwLTQw NjctYTgyMy1iOTM5Zjc1Y2QyY2EiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRv VVVJRCAoIjY2NjVkMWNlLTIwYTMtNDBkMC05OWExLWU0ODhkYjVhZjkwOCIpIC8qIFVua25v d24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChMNEZJKSAvKiBcTDRGSSAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25l KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgRGV2aWNlIChGTE01KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBN ZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTDVGRCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTDVFTikKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ0RFUCAoTDVD TCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFj a2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTE5LNQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChf VUlELCAweDA1KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBNZXRob2Qg KF9ISUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoRkhDSSAoMHgwNSkpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ0lELCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoRkhDSSAoMHgwNSkpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfREROLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoQlVGLCBCdWZmZXIgKDB4MTApe30pCiAgICAgICAgICAgICAgICAg ICAgQlVGIFtaZXJvXSA9IEY1TTAgLyogXEY1TTAgKi8KICAgICAgICAgICAgICAgICAgICBC VUYgW09uZV0gPSBGNU0xIC8qIFxGNU0xICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsw eDAyXSA9IEY1TTIgLyogXEY1TTIgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDNd ID0gRjVNMyAvKiBcRjVNMyAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwNF0gPSBG NU00IC8qIFxGNU00ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA1XSA9IEY1TTUg LyogXEY1TTUgKi8KICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDZdID0gRjVNNiAvKiBc RjVNNiAqLwogICAgICAgICAgICAgICAgICAgIEJVRiBbMHgwN10gPSBGNU03IC8qIFxGNU03 ICovCiAgICAgICAgICAgICAgICAgICAgQlVGIFsweDA4XSA9IEY1TTggLyogXEY1TTggKi8K ICAgICAgICAgICAgICAgICAgICBCVUYgWzB4MDldID0gRjVNOSAvKiBcRjVNOSAqLwogICAg ICAgICAgICAgICAgICAgIEJVRiBbMHgwQV0gPSBGNU1BIC8qIFxGNU1BICovCiAgICAgICAg ICAgICAgICAgICAgQlVGIFsweDBCXSA9IEY1TUIgLyogXEY1TUIgKi8KICAgICAgICAgICAg ICAgICAgICBCVUYgWzB4MENdID0gRjVNQyAvKiBcRjVNQyAqLwogICAgICAgICAgICAgICAg ICAgIEJVRiBbMHgwRF0gPSBGNU1EIC8qIFxGNU1EICovCiAgICAgICAgICAgICAgICAgICAg QlVGIFsweDBFXSA9IEY1TUUgLyogXEY1TUUgKi8KICAgICAgICAgICAgICAgICAgICBCVUYg WzB4MEZdID0gRjVNRiAvKiBcRjVNRiAqLwogICAgICAgICAgICAgICAgICAgIFJldHVybiAo VG9TdHJpbmcgKEJVRiwgT25lcykpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9j YXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg TmFtZSAoUExEQiwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MiwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDY5LCAweDBDLCAweDAw LCAweDAwLCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAgLy8gaS4uLi4uLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4uCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUExEQikgLyogXF9TQl8uUEMwMC5GTE01Ll9QTEQuUExEQiAqLwogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBJSUNCIChGNUFCLCBGNUJTKQogICAgICAg ICAgICAgICAgICAgIElmICgoRjVNUyAhPSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBJTlIgKEY1R1AsIEY1Q1AsIEY1 R0cpCiAgICAgICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKExv Y2FsMCwgTG9jYWwxLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IExvY2FsMgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1l dGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSBUb1VVSUQgKCIzNzdiYTc2YS1mMzkwLTRhZmYtYWIzOC05YjFiZjMzYTMwMTUiKSAvKiBV bmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChGSENJICgweDA1KSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI4MjJhY2U4Zi0yODE0 LTQxNzQtYTU2Yi01ZjAyOWZlMDc5ZWUiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChGTUlEICgw eDA1KSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBUb1VVSUQgKCI3ZGNkOWY3Yi05MDgwLTRmNWItYTI2Yy0zNDcwYmUyY2FhN2Ei KSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChGTUxTICgweDA1KSkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIyOTU5NTEy YS0wMjhjLTQ2NDYtYjczZC00ZDFiNTY3MmZhZDgiKSAvKiBVbmtub3duIFVVSUQgKi8pKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgi TEtGIikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBUb1VVSUQgKCIyNjI1NzU0OS05MjcxLTRjYTQtYmI0My1jNDg5OWQ1YTQ4ODEi KSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRjVCUykgLyogXEY1 QlMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERTTUkgKFplcm8sIEY1QUIsIFplcm8s IEY1QlMpKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNzkyMzQ2NDAt OWUxMC00ZmVhLWE1YzEtYjVhYThiMTk3NTZmIikgLyogVW5rbm93biBVVUlEICovKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUEkgKDB4 MDQsIChBR1BOIChGNUdQLCBGNUdHKSAmIDB4RkYpLCBGNUlWLCBGNUFWKSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjVlOWUwMDc1LWE3YTAtNDA2Ny1hODIzLWI5 MzlmNzVjZDJjYSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNjY2 NWQxY2UtMjBhMy00MGQwLTk5YTEtZTQ4OGRiNWFmOTA4IikgLyogVW5rbm93biBVVUlEICov KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEw1RkkpIC8q IFxMNUZJICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAg ICAgICBTY29wZSAoX1NCLlBDMDAuSTJDMikKICAgICAgICB7CiAgICAgICAgICAgIERldmlj ZSAoQ0FNMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklO VDM0NzEiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9D SUQsICJJTlQzNDcxIikgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAg IE5hbWUgKF9ERE4sICJJTVgxMzUtQ1JERzIiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1l CiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAiMCIpICAvLyBfVUlEOiBVbmlxdWUgSUQK ICAgICAgICAgICAgICAgIE5hbWUgKF9ERVAsIFBhY2thZ2UgKDB4MDEpICAvLyBfREVQOiBE ZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQTUlD CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoX1BMRCwgUGFja2Fn ZSAoMHgwMSkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFRvUExEICgKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1JldmlzaW9uICAgICAgICAgICA9IDB4MiwKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX0lnbm9yZUNvbG9yICAgICAgICA9IDB4MSwKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1JlZCAgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX0dyZWVuICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX0JsdWUgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1dpZHRoICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX0hlaWdodCAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1VzZXJWaXNpYmxlICAgICAgICA9IDB4MSwKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX0RvY2sgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX0xpZCAgICAgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1BhbmVsICAgICAgICAgICAgICA9ICJCQUNLIiwKICAgICAgICAgICAg ICAgICAgICAgICAgUExEX1ZlcnRpY2FsUG9zaXRpb24gICA9ICJDRU5URVIiLAogICAgICAg ICAgICAgICAgICAgICAgICBQTERfSG9yaXpvbnRhbFBvc2l0aW9uID0gIlJJR0hUIiwKICAg ICAgICAgICAgICAgICAgICAgICAgUExEX1NoYXBlICAgICAgICAgICAgICA9ICJWRVJUSUNB TFJFQ1RBTkdMRSIsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cE9yaWVudGF0 aW9uICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFRva2VuICAg ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFBvc2l0aW9u ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9CYXkgICAgICAgICAg ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9FamVjdGFibGUgICAg ICAgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9FamVjdFJlcXVpcmVk ICAgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYWJpbmV0TnVtYmVy ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYXJkQ2FnZU51bWJl ciAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9SZWZlcmVuY2UgICAg ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Sb3RhdGlvbiAgICAg ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9PcmRlciAgICAgICAg ICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9WZXJ0aWNhbE9mZnNl dCAgICAgPSAweEZGRkYsCiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFs T2Zmc2V0ICAgPSAweEZGRkYpCgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVz b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChTQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDEwLCBDb250cm9s bGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg QWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMC5JMkMyIiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJMmNT ZXJpYWxCdXNWMiAoMHgwMDBFLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0Iu UEMwMC5JMkMyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNl Q29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDUwLCBDb250cm9s bGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg QWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMC5JMkMyIiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJMmNT ZXJpYWxCdXNWMiAoMHgwMDUxLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0Iu UEMwMC5JMkMyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNl Q29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDUyLCBDb250cm9s bGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg QWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMC5JMkMyIiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJMmNT ZXJpYWxCdXNWMiAoMHgwMDUzLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0Iu UEMwMC5JMkMyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNl Q29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTQlVG KSAvKiBcX1NCXy5QQzAwLkkyQzIuQ0FNMC5fQ1JTLlNCVUYgKi8KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoKFNDU1MgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFNTREIsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUEFSLCBC dWZmZXIgKDB4NkMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDAwICovICAweDAwLCAweDUwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAgLy8gLlAuLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAw OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg IC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4u LgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDA0LCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAg ICAgICAgICAgICAgICAgLyogMDAyMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMjggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDMw ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAg Ly8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAzOCAqLyAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4u CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDQ4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDA4LCAweDAzLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAg ICAgLyogMDA1MCAqLyAgMHgwOSwgMHgwMCwgMHgwMiwgMHgwMSwgMHgwMCwgMHgwMSwgMHgw MCwgMHgzNiwgIC8vIC4uLi4uLi42CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNTgg Ki8gIDB4NkUsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAv LyBuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDYwICovICAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4K ICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA2OCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEFSKSAvKiBcX1NCXy5QQzAw LkkyQzIuQ0FNMC5TU0RCLlBBUl8gKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2Ut U3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcwID09IFRvVVVJRCAoIjgyMmFjZThmLTI4MTQtNDE3NC1hNTZiLTVmMDI5ZmUw NzllZSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCIxM1AyQkFEMzMiKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjI2 MjU3NTQ5LTkyNzEtNGNhNC1iYjQzLWM0ODk5ZDVhNDg4MSIpIC8qIFVua25vd24gVVVJRCAq LykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwMjAwMTAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIwMDBFMDEpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDAyMDA1MDAyKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwMjAwNTEwMykKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIwMDUyMDQpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAyMDA1MzA1KQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKF9TQi5QQzAwLkkyQzQpCiAg ICAgICAgewogICAgICAgICAgICBEZXZpY2UgKENBTTEpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzNDc0IikgIC8vIF9ISUQ6IEhhcmR3YXJlIElE CiAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAiSU5UMzQ3NCIpICAvLyBfQ0lEOiBDb21w YXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiT1YyNzQwLUNSREcyIikg IC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwg IjAiKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREVQLCBQ YWNrYWdlICgweDAxKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgXl5JMkMyLlBNSUMKICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICBOYW1lIChfUExELCBQYWNrYWdlICgweDAxKSAgLy8gX1BMRDogUGh5 c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgVG9QTEQgKAogICAgICAgICAgICAgICAgICAgICAgICBQTERfUmV2aXNpb24g ICAgICAgICAgID0gMHgyLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfSWdub3JlQ29s b3IgICAgICAgID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfUmVkICAgICAg ICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JlZW4gICAg ICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfQmx1ZSAgICAg ICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfV2lkdGggICAg ICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfSGVpZ2h0ICAg ICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfVXNlclZpc2li bGUgICAgICAgID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfRG9jayAgICAg ICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfTGlkICAgICAg ICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfUGFuZWwgICAg ICAgICAgICAgID0gIkZST05UIiwKICAgICAgICAgICAgICAgICAgICAgICAgUExEX1ZlcnRp Y2FsUG9zaXRpb24gICA9ICJDRU5URVIiLAogICAgICAgICAgICAgICAgICAgICAgICBQTERf SG9yaXpvbnRhbFBvc2l0aW9uID0gIlJJR0hUIiwKICAgICAgICAgICAgICAgICAgICAgICAg UExEX1NoYXBlICAgICAgICAgICAgICA9ICJWRVJUSUNBTFJFQ1RBTkdMRSIsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9Hcm91cE9yaWVudGF0aW9uICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9Hcm91cFRva2VuICAgICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9Hcm91cFBvc2l0aW9uICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9CYXkgICAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9FamVjdGFibGUgICAgICAgICAgPSAweDEsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9FamVjdFJlcXVpcmVkICAgICAgPSAweDEsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9DYWJpbmV0TnVtYmVyICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9DYXJkQ2FnZU51bWJlciAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9SZWZlcmVuY2UgICAgICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9Sb3RhdGlvbiAgICAgICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9PcmRlciAgICAgICAgICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9WZXJ0aWNhbE9mZnNldCAgICAgPSAweEZGRkYsCiAgICAg ICAgICAgICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFsT2Zmc2V0ICAgPSAweEZGRkYpCgog ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChTQlVGLCBSZXNvdXJjZVRl bXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJMmNTZXJpYWxCdXNWMiAoMHgwMDM2LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYx QTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAi XFxfU0IuUEMwMC5JMkM0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJl c291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChTQlVGKSAvKiBcX1NCXy5QQzAwLkkyQzQuQ0FNMS5fQ1JTLlNCVUYgKi8KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKFNDU1MgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFNTREIsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAo UEFSLCBCdWZmZXIgKDB4NkMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDUwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAgLy8gLlAuLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAg LyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8g IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAu Li4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAyMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwMjggKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDMwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAzOCAqLyAg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIC4u Li4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvLyAuLi4uLi4uLgogICAg ICAgICAgICAgICAgICAgICAgICAvKiAwMDQ4ICovICAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uLi4uLi4KICAgICAgICAgICAgICAg ICAgICAgICAgLyogMDA1MCAqLyAgMHgwOSwgMHgwMCwgMHgwMiwgMHgwMSwgMHgwMCwgMHgw MSwgMHgwMCwgMHhGOCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwNTggKi8gIDB4MjQsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsICAvLyAkLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDYwICovICAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4u Li4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA2OCAqLyAgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEFSKSAvKiBcX1NC Xy5QQzAwLkkyQzQuQ0FNMS5TU0RCLlBBUl8gKi8KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBE ZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjgyMmFjZThmLTI4MTQtNDE3NC1hNTZiLTVm MDI5ZmUwNzllZSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCI0U0YyNTlUMiIpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlE ICgiMjYyNTc1NDktOTI3MS00Y2E0LWJiNDMtYzQ4OTlkNWE0ODgxIikgLyogVW5rbm93biBV VUlEICovKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDQwMDM2MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAg fQoKICAgICAgICBTY29wZSAoX1NCLlBDMDAuSTJDMikKICAgICAgICB7CiAgICAgICAgICAg IERldmljZSAoUE1JQykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIklOVDM0NzIiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5h bWUgKF9DSUQsICJJTlQzNDcyIikgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAg ICAgICAgIE5hbWUgKF9ERE4sICJQTUlDLUNSREcyIikgIC8vIF9ERE46IERPUyBEZXZpY2Ug TmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgIjAiKSAgLy8gX1VJRDogVW5pcXVl IElECiAgICAgICAgICAgICAgICBOYW1lIChfUExELCBQYWNrYWdlICgweDAxKSAgLy8gX1BM RDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgVG9QTEQgKAogICAgICAgICAgICAgICAgICAgICAgICBQTERfUmV2 aXNpb24gICAgICAgICAgID0gMHgyLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfSWdu b3JlQ29sb3IgICAgICAgID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfUmVk ICAgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfR3Jl ZW4gICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfQmx1 ZSAgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfV2lk dGggICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfSGVp Z2h0ICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfVXNl clZpc2libGUgICAgICAgID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfRG9j ayAgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfTGlk ICAgICAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICBQTERfUGFu ZWwgICAgICAgICAgICAgID0gIkZST05UIiwKICAgICAgICAgICAgICAgICAgICAgICAgUExE X1ZlcnRpY2FsUG9zaXRpb24gICA9ICJVUFBFUiIsCiAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9Ib3Jpem9udGFsUG9zaXRpb24gPSAiQ0VOVEVSIiwKICAgICAgICAgICAgICAgICAg ICAgICAgUExEX1NoYXBlICAgICAgICAgICAgICA9ICJWRVJUSUNBTFJFQ1RBTkdMRSIsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cE9yaWVudGF0aW9uICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFRva2VuICAgICAgICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFBvc2l0aW9uICAgICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9CYXkgICAgICAgICAgICAgICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9FamVjdGFibGUgICAgICAgICAgPSAweDEsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9FamVjdFJlcXVpcmVkICAgICAgPSAweDEsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYWJpbmV0TnVtYmVyICAgICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYXJkQ2FnZU51bWJlciAgICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9SZWZlcmVuY2UgICAgICAgICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9Sb3RhdGlvbiAgICAgICAgICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9PcmRlciAgICAgICAgICAgICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9WZXJ0aWNhbE9mZnNldCAgICAgPSAweEZGRkYs CiAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFsT2Zmc2V0ICAgPSAweEZG RkYpCgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChTQlVGLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDRDLCBDb250cm9sbGVySW5pdGlhdGVkLCAw eDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3 Qml0LCAiXFxfU0IuUEMwMC5JMkMyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChTQlVGKSAvKiBcX1NCXy5QQzAwLkkyQzIuUE1JQy5fQ1JTLlNCVUYgKi8KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoKFNDU1MgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKENMREIsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg TmFtZSAoUEFSLCBCdWZmZXIgKDB4MjApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDAwLCAweDAyLCAweDAwLCAweDUwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gLi4uUC4uLi4KICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgIC8vIC4uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MTAgKi8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs ICAvLyAuLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4u Li4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAo UEFSKSAvKiBcX1NCXy5QQzAwLkkyQzIuUE1JQy5DTERCLlBBUl8gKi8KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjI2MjU3NTQ5LTkyNzEt NGNhNC1iYjQzLWM0ODk5ZDVhNDg4MSIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMjAwNEMwQikKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChC dWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KICAgICAgICB9CgogICAgICAgIE5hbWUgKERFVk0sIDB4RkYpCiAgICAgICAgU2Nv cGUgKF9TQikKICAgICAgICB7CiAgICAgICAgICAgIERldmljZSAoV0NDRCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVEMxMDkyIikgIC8vIF9ISUQ6 IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfU1RSLCBVbmljb2RlICgiV2ly ZWxlc3MgQ29ubmVjdGl2aXR5IENvbmZpZ3VyYXRpb24gRGV2aWNlIikpICAvLyBfU1RSOiBE ZXNjcmlwdGlvbiBTdHJpbmcKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBERVZNID0gWmVybwogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0 YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFdXRU4g IT0gWmVybykgJiYgKFdDRU4gPT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoV0NTMCwgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAg ICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgIE9u ZQogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg MHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAg ICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFdD UzEsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgT25lLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAg ICAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IE5hbWUgKFdDUzIsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAg T25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMgogICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAg ICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAg ICAgIE9uZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICBOYW1lIChXRE1DLCBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgIDB4MDMs IAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJv CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxp emVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI4MjczN2U3Mi0z YTMzLTRjNDUtYTljNy01N2MwNDExYTVmMTMiKSAvKiBVbmtub3duIFVVSUQgKi8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwNwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4ODAwMDAwMDcKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIkRldmljZSBNb2RlICIsIFRvRGVjaW1h bFN0cmluZyAoREVWTSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChE RVZNKSAvKiBcREVWTSAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi R2V0IFdETUMgVGFibGUgd2l0aCBXQ1MiLCBUb0hleFN0cmluZyAoQXJnMykpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmczID09IFplcm8pKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdETUMg WzB4MDJdID0gV0NTMCAvKiBcX1NCXy5XQ0NELldDUzAgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzMg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBXRE1DIFsweDAyXSA9IFdDUzEgLyogXF9TQl8uV0NDRC5XQ1Mx ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlSWYgKChBcmczID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdETUMgWzB4MDJdID0g V0NTMiAvKiBcX1NCXy5XQ0NELldDUzIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiVW5z dXBwb3J0ZWQgcmVndWxhdG9yeSBpcyBkZXRlY3RlZCEhIikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdETUMp IC8qIFxfU0JfLldDQ0QuV0RNQyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgxRikpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiU2V0IERldmljZSBNb2RlICIsIFRvRGVjaW1hbFN0cmluZyAoQXJnMykpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgREVWTSA9IEFyZzMKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5vdGlmeSAoV0NDRCwgMHg4MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9 CgogICAgICAgIFNjb3BlIChfU0IpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChDMFBG LCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBCdWZmZXIg KDB4MTQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAq LyAgMHg4MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMCwgMHgwMywgMHhEMCwgMHgwNywgIC8v IC4uLi4gLi4uCiAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg0MSwgMHgwRSwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwMSwgIC8vIEEuLi4uLi4uCiAgICAg ICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLi4KICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoQzFQRiwgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4ODIsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MjAsIDB4MDMsIDB4RDAsIDB4MDcsICAvLyAuLi4uIC4uLgogICAgICAgICAgICAg ICAgICAgIC8qIDAwMDggKi8gIDB4NDEsIDB4MEUsIDB4MDAsIDB4MDAsIDB4MDQsIDB4MDAs IDB4ODAsIDB4MDEsICAvLyBBLi4uLi4uLgogICAgICAgICAgICAgICAgICAgIC8qIDAwMTAg Ki8gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAuLi4uCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgfQoKICAg ICAgICBTY29wZSAoXCkKICAgICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoUExEMSwgMCwg U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChcX1NC LkMwUEYpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChcKQogICAg ICAgIHsKICAgICAgICAgICAgTWV0aG9kIChQTEQyLCAwLCBTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFxfU0IuQzFQRikKICAgICAgICAgICAg fQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKF9TQi5QQzAwLlRIQzApCiAgICAgICAgewog ICAgICAgICAgICBEZXZpY2UgKFRMQzEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIE9uZSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9u IG9mIERldmljZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoQzBQRikgLyogXF9TQl8uQzBQRiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1 cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChU TEMyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAyKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJp YWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDMFBGKSAvKiBcX1NCXy5D MFBGICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RB LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFRMQzMpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDMpICAvLyBfQURSOiBBZGRyZXNzCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQ aHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEMwUEYpIC8qIFxfU0JfLkMwUEYgKi8KICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg ICB9CgogICAgICAgIFNjb3BlIChfU0IuUEMwMC5USEMxKQogICAgICAgIHsKICAgICAgICAg ICAgRGV2aWNlIChUTEMxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf QURSLCBPbmUpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBNZXRob2QgKF9Q TEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZp Y2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEMxUEYp IC8qIFxfU0JfLkMxUEYgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoVExDMikKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMikgIC8vIF9BRFI6 IEFkZHJlc3MKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BMRCwgMCwgU2VyaWFsaXplZCkg IC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQzFQRikgLyogXF9TQl8uQzFQRiAqLwog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgRGV2aWNlIChUTEMzKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAzKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwg TG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChDMVBGKSAvKiBcX1NCXy5DMVBGICovCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU QTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBGKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAg fQoKICAgIElmICgoUENIQSA9PSBaZXJvKSkKICAgIHsKICAgICAgICBTY29wZSAoX1NCLlBD MDApCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChISURHLCBUb1VVSUQgKCIzY2RmZjZm Ny00MjY3LTQ1NTUtYWQwNS1iMzBhM2Q4OTM4ZGUiKSAvKiBISUQgSTJDIERldmljZSAqLykK ICAgICAgICAgICAgTmFtZSAoVFA3RywgVG9VVUlEICgiZWY4N2ViODItZjk1MS00NmRhLTg0 ZWMtMTQ4NzFhYzZmODRiIikgLyogVW5rbm93biBVVUlEICovKQogICAgICAgICAgICBNZXRo b2QgKEhJREQsIDUsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSBISURHKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChBcmc0KQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChUUDdELCA2LCBTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVFA3Rykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQXJnNCwgQXJnNSkpCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoQnVm ZmVyIChPbmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEkyQ00s IDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAo VG9JbnRlZ2VyIChBcmcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoSUlDMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAo MHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJD MCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25z dW1lciwgX1k1MywgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlV29yZEZpZWxkIChJSUMwLCBcX1NCLlBDMDAuSTJDTS5fWTUzLl9BRFIsIERBRDAp ICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKElJQzAsIFxfU0IuUEMwMC5JMkNNLl9ZNTMuX1NQRSwgRFNQMCkgIC8vIF9TUEU6 IFNwZWVkCiAgICAgICAgICAgICAgICAgICAgICAgIERBRDAgPSBBcmcxCiAgICAgICAgICAg ICAgICAgICAgICAgIERTUDAgPSBBcmcyCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoSUlDMCkgLyogXF9TQl8uUEMwMC5JMkNNLklJQzAgKi8KICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlDMSwgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAw MDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2Rl N0JpdCwgIlxcX1NCLlBDMDAuSTJDMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1k1NCwgRXhjbHVzaXZlLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJSUMxLCBcX1NCLlBDMDAu STJDTS5fWTU0Ll9BRFIsIERBRDEpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElJQzEsIFxfU0IuUEMwMC5JMkNNLl9ZNTQu X1NQRSwgRFNQMSkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICAgICAgICAgIERB RDEgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIERTUDEgPSBBcmcyCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoSUlDMSkgLyogXF9TQl8uUEMwMC5JMkNNLklJQzEg Ki8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUg KElJQzIsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29u dHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAwLkkyQzIiLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZNTUs IEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoSUlDMiwgXF9TQi5QQzAwLkkyQ00uX1k1NS5fQURSLCBEQUQyKSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChJSUMy LCBcX1NCLlBDMDAuSTJDTS5fWTU1Ll9TUEUsIERTUDIpICAvLyBfU1BFOiBTcGVlZAogICAg ICAgICAgICAgICAgICAgICAgICBEQUQyID0gQXJnMQogICAgICAgICAgICAgICAgICAgICAg ICBEU1AyID0gQXJnMgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKElJQzIpIC8q IFxfU0JfLlBDMDAuSTJDTS5JSUMyICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChJSUMzLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1Nl cmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxf U0IuUEMwMC5JMkMzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBS ZXNvdXJjZUNvbnN1bWVyLCBfWTU2LCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElJQzMsIFxfU0IuUEMwMC5JMkNNLl9ZNTYu X0FEUiwgREFEMykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoSUlDMywgXF9TQi5QQzAwLkkyQ00uX1k1Ni5fU1BFLCBEU1Az KSAgLy8gX1NQRTogU3BlZWQKICAgICAgICAgICAgICAgICAgICAgICAgREFEMyA9IEFyZzEK ICAgICAgICAgICAgICAgICAgICAgICAgRFNQMyA9IEFyZzIKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChJSUMzKSAvKiBcX1NCXy5QQzAwLkkyQ00uSUlDMyAqLwogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlDNCwgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5p dGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFk ZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDNCIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1k1NywgRXhjbHVzaXZl LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJSUM0 LCBcX1NCLlBDMDAuSTJDTS5fWTU3Ll9BRFIsIERBRDQpICAvLyBfQURSOiBBZGRyZXNzCiAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElJQzQsIFxfU0IuUEMw MC5JMkNNLl9ZNTcuX1NQRSwgRFNQNCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAg ICAgICAgICAgIERBRDQgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIERTUDQgPSBB cmcyCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSUlDNCkgLyogXF9TQl8uUEMw MC5JMkNNLklJQzQgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIE5hbWUgKElJQzUsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIg KDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAwLkky QzUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29u c3VtZXIsIF9ZNTgsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoSUlDNSwgXF9TQi5QQzAwLkkyQ00uX1k1OC5fQURSLCBEQUQ1 KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChJSUM1LCBcX1NCLlBDMDAuSTJDTS5fWTU4Ll9TUEUsIERTUDUpICAvLyBfU1BF OiBTcGVlZAogICAgICAgICAgICAgICAgICAgICAgICBEQUQ1ID0gQXJnMQogICAgICAgICAg ICAgICAgICAgICAgICBEU1A1ID0gQXJnMgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKElJQzUpIC8qIFxfU0JfLlBDMDAuSTJDTS5JSUM1ICovCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MEMpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChJSUM2LCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4 MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01v ZGU3Qml0LCAiXFxfU0IuUEMwMC5JMkM2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTU5LCBFeGNsdXNpdmUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElJQzYsIFxfU0IuUEMw MC5JMkNNLl9ZNTkuX0FEUiwgREFENikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoSUlDNiwgXF9TQi5QQzAwLkkyQ00uX1k1 OS5fU1BFLCBEU1A2KSAgLy8gX1NQRTogU3BlZWQKICAgICAgICAgICAgICAgICAgICAgICAg REFENiA9IEFyZzEKICAgICAgICAgICAgICAgICAgICAgICAgRFNQNiA9IEFyZzIKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChJSUM2KSAvKiBcX1NCXy5QQzAwLkkyQ00uSUlD NiAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgw eDBEKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoSUlDNywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBD b250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDNyIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1k1 QSwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29y ZEZpZWxkIChJSUM3LCBcX1NCLlBDMDAuSTJDTS5fWTVBLl9BRFIsIERBRDcpICAvLyBfQURS OiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElJ QzcsIFxfU0IuUEMwMC5JMkNNLl9ZNUEuX1NQRSwgRFNQNykgIC8vIF9TUEU6IFNwZWVkCiAg ICAgICAgICAgICAgICAgICAgICAgIERBRDcgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAg ICAgIERTUDcgPSBBcmcyCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSUlDNykg LyogXF9TQl8uUEMwMC5JMkNNLklJQzcgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU1BJ TSwgMywgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3dpdGNo IChUb0ludGVnZXIgKEFyZzApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIENhc2UgKDB4MDcpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBOYW1lIChJSUM3LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwaVNlcmlhbEJ1c1Yy ICgweDAwMDAsIFBvbGFyaXR5TG93LCBGb3VyV2lyZU1vZGUsIDB4MDgsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDk4OTY4MCwg Q2xvY2tQb2xhcml0eUxvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9j a1BoYXNlRmlyc3QsICJcXF9TQi5QQzAwLlNQSTEiLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZNUIsIEV4Y2x1c2l2ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoSUlDNywgXF9T Qi5QQzAwLlNQSU0uX1k1Qi5fUEhBLCBEUEg3KSAgLy8gX1BIQTogQ2xvY2sgUGhhc2UKICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoSUlDNywgXF9TQi5QQzAw LlNQSU0uX1k1Qi5fU1BFLCBEU1A3KSAgLy8gX1NQRTogU3BlZWQKICAgICAgICAgICAgICAg ICAgICAgICAgRFBINyA9IEFyZzEKICAgICAgICAgICAgICAgICAgICAgICAgRFNQNyA9IEFy ZzIKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChJSUM3KSAvKiBcX1NCXy5QQzAw LlNQSU0uSUlDNyAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBDYXNlICgweDA4KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoSUlDOCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGlTZXJpYWxCdXNWMiAo MHgwMDAwLCBQb2xhcml0eUxvdywgRm91cldpcmVNb2RlLCAweDA4LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDA5ODk2ODAsIENs b2NrUG9sYXJpdHlMb3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvY2tQ aGFzZUZpcnN0LCAiXFxfU0IuUEMwMC5TUEkyIiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTVDLCBFeGNsdXNpdmUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKElJQzgsIFxfU0Iu UEMwMC5TUElNLl9ZNUMuX1BIQSwgRFBIOCkgIC8vIF9QSEE6IENsb2NrIFBoYXNlCiAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElJQzgsIFxfU0IuUEMwMC5T UElNLl9ZNUMuX1NQRSwgRFNQOCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICAg ICAgICAgIERQSDggPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIERTUDggPSBBcmcy CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSUlDOCkgLyogXF9TQl8uUEMwMC5T UElNLklJQzggKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg RGVmYXVsdAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDc5LCAweDAwICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8geS4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKFVDTU0sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcwKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoVUNNMCwgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDM4LCBDb250cm9sbGVySW5pdGlhdGVkLCAw eDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdN b2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJj U2VyaWFsQnVzVjIgKDB4MDAzRiwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJc XF9TQi5QQzAwLkkyQzAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1Yy ICgweDAwMjAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMC5J MkMwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNv bnN1bWVyLCAsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDI3LCBD b250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDMCIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBF eGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVDTTAp IC8qIFxfU0JfLlBDMDAuVUNNTS5VQ00wICovCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIENhc2UgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKFVDTTEsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJj U2VyaWFsQnVzVjIgKDB4MDAzOCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJc XF9TQi5QQzAwLkkyQzEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1Yy ICgweDAwM0YsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMC5J MkMxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNv bnN1bWVyLCAsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDIwLCBD b250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDMSIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBF eGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAyNywgQ29udHJvbGxlcklu aXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB ZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAwLkkyQzEiLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVQ00xKSAvKiBcX1NCXy5Q QzAwLlVDTU0uVUNNMSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgTmFtZSAoVUNNMiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNW MiAoMHgwMDM4LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAu STJDMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VD b25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAzRiwg Q29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAwLkkyQzIiLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwg RXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMjAsIENvbnRyb2xsZXJJ bml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMC5JMkMyIiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4Y2x1c2l2ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDI3LCBDb250cm9sbGVySW5pdGlhdGVkLCAw eDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdN b2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVDTTIpIC8qIFxfU0JfLlBDMDAuVUNNTS5V Q00yICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBO YW1lIChVQ00zLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMzgs IENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMC5JMkMzIiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAs IEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDNGLCBDb250cm9sbGVy SW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDMyIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAyMCwgQ29udHJvbGxlckluaXRpYXRlZCwg MHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5n TW9kZTdCaXQsICJcXF9TQi5QQzAwLkkyQzMiLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEky Y1NlcmlhbEJ1c1YyICgweDAwMjcsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAi XFxfU0IuUEMwMC5JMkMzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw LCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoVUNNMykgLyogXF9TQl8uUEMwMC5VQ01NLlVDTTMgKi8KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFVDTTQs IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAzOCwgQ29udHJvbGxl ckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAwLkkyQzQiLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZl LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwM0YsIENvbnRyb2xsZXJJbml0aWF0ZWQs IDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2lu Z01vZGU3Qml0LCAiXFxfU0IuUEMwMC5JMkM0IiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4Y2x1c2l2ZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ MmNTZXJpYWxCdXNWMiAoMHgwMDIwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwg IlxcX1NCLlBDMDAuSTJDNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgUmVzb3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVz VjIgKDB4MDAyNywgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAw LkkyQzQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNl Q29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChVQ000KSAvKiBcX1NCXy5QQzAwLlVDTU0uVUNNNCAqLwogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA1KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoVUNNNSwgUmVzb3VyY2VU ZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDM4LCBDb250cm9sbGVySW5pdGlhdGVk LCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3Np bmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDNSIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg STJjU2VyaWFsQnVzVjIgKDB4MDAzRiwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4 MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQs ICJcXF9TQi5QQzAwLkkyQzUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1 c1YyICgweDAwMjAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMw MC5JMkM1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJj ZUNvbnN1bWVyLCAsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDI3 LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDNSIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwg LCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVD TTUpIC8qIFxfU0JfLlBDMDAuVUNNTS5VQ001ICovCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBT Y29wZSAoX1NCLlBDMDAuSTJDMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKEkyQ04s IFplcm8pCiAgICAgICAgICAgIE5hbWUgKEkyQ1gsIFplcm8pCiAgICAgICAgICAgIE5hbWUg KEkyQ0ksIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg STJDTiA9IFNEUzAgLyogXFNEUzAgKi8KICAgICAgICAgICAgICAgIEkyQ1ggPSBaZXJvCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoVFBEMCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoSElEMiwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUg KFNCRkIsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVk LCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdC aXQsICJOVUxMIiwKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25z dW1lciwgX1k1RCwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoU0JGRywgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdwaW9JbnQg KExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZUFuZFdha2UsIFB1bGxEZWZhdWx0LCAweDAw MDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3Vy Y2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICBOYW1lIChTQkZJLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1 bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmVBbmRXYWtlLCAsLCBfWTVFKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChTQkZCLCBcX1NCLlBDMDAuSTJDMC5UUEQwLl9ZNUQuX0FE UiwgQkFEUikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKFNCRkIsIFxfU0IuUEMwMC5JMkMwLlRQRDAuX1k1RC5fU1BFLCBTUEVEKSAgLy8g X1NQRTogU3BlZWQKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JGRywgMHgx NywgSU5UMSkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFNCRkksIFxfU0Iu UEMwMC5JMkMwLlRQRDAuX1k1RS5fSU5ULCBJTlQyKSAgLy8gX0lOVDogSW50ZXJydXB0cwog ICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lO STogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoUENIQSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNSWE8gKEdQREksIE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMSA9IEdO VU0gKEdQREkpCiAgICAgICAgICAgICAgICAgICAgICAgIElOVDIgPSBJTlVNIChHUERJKQog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQRE0gPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIUE8gKEdQREks IE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eUEdQSS5TUlhPIChH UERJLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElOVDEgPSBeXl5eUEdQSS5HTlVNIChHUERJKQogICAgICAgICAgICAgICAgICAg ICAgICBJTlQyID0gXl5eXlBHUEkuSU5VTSAoR1BESSkKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChUUERNID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeXl5eUEdQSS5TSFBPIChHUERJLCBPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIF9ISUQgPSAiR1hUUDczMDAiCiAgICAgICAgICAgICAgICAgICAgSElEMiA9 IDB4MjAKICAgICAgICAgICAgICAgICAgICBCQURSID0gMHgyQwogICAgICAgICAgICAgICAg ICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJYWFhY MDAwMCIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJ RCwgIlBOUDBDNTAiIC8qIEhJRCBQcm90b2NvbCBEZXZpY2UgKEkyQyBidXMpICovKSAgLy8g X0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX1MwVywgMHgwMykg IC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9k CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IEhJ REcpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChISUREIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCBISUQyKSkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUUDdHKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVFA3 RCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgU0JGQiwgU0JGRykpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNCRkkpIC8qIFxfU0Jf LlBDMDAuSTJDMC5UUEQwLlNCRkkgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmICgoVFBETSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0 ZSAoSTJDTSAoSTJDWCwgQkFEUiwgU1BFRCksIFNCRkcpKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRl IChJMkNNIChJMkNYLCBCQURSLCBTUEVEKSwgU0JGSSkpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoTkZDKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBOYW1lIChfSElELCAiTlRBRzUzMzIiKSAgLy8gX0hJRDogSGFyZHdh cmUgSUQKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNl IFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAo U0JVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDA1NCwgQ29udHJvbGxlcklu aXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJl c3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDAuSTJDMCIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4Y2x1c2l2ZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAo RWRnZSwgQWN0aXZlQm90aCwgRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNv bnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKFNCRkksIFJlc291cmNl VGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgRWRnZSwgQWN0aXZlSGlnaCwgU2hh cmVkLCAsLCBfWTVGKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChCQlVGLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgw MDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8v IFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCVUYsIDB4MzgsIElOVDEpCiAgICAg ICAgICAgICAgICAgICAgSU5UMSA9IEdOVU0gKDB4MDAxNDA4MDUpCiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGSSwgXF9TQi5QQzAwLkkyQzAuTkZDLl9DUlMu X1k1Ri5fSU5ULCBJTlQyKSAgLy8gX0lOVDogSW50ZXJydXB0cwogICAgICAgICAgICAgICAg ICAgIElOVDIgPSBJTlVNICgweDAwMTQwODA1KQogICAgICAgICAgICAgICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoQkJVRiwgMHgxNywgUlNUMSkKICAgICAgICAgICAgICAgICAgICBSU1Qx ID0gR05VTSAoMHgwMDE0MDgwNCkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNh dGVuYXRlUmVzVGVtcGxhdGUgKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKFNCVUYsIFNCRkkp LCBCQlVGKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg TmFtZSAoX0RTRCwgUGFja2FnZSAoMHgwMikgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBE YXRhCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRvVVVJRCAoImY4N2E2ZDIzLTI4 ODQtNGZlNC1hNTVmLTYzM2Q5ZTMzOWNlMSIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAiaWRsZS1sYXRlbmN5LXRvbGVyYW5jZSIsIAogICAgICAgICAg ICAgICAgICAgICAgICAweEZGRkYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICJTUy1hY3RpdmUtbGF0ZW5jeS10b2xlcmFuY2UiLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAiRk0tYWN0aXZlLWxhdGVuY3ktdG9sZXJhbmNl IiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIkZNUC1hY3RpdmUtbGF0ZW5jeS10 b2xlcmFuY2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0K CiAgICAgICAgU2NvcGUgKF9TQi5QQzAwLkkyQzEpCiAgICAgICAgewogICAgICAgICAgICBO YW1lIChJMkNOLCBaZXJvKQogICAgICAgICAgICBOYW1lIChJMkNYLCBaZXJvKQogICAgICAg ICAgICBOYW1lIChJMkNJLCBPbmUpCiAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSTJDTiA9IFNEUzEgLyogXFNEUzEgKi8KICAgICAgICAgICAgICAgIEkyQ1gg PSBPbmUKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChUUEQwKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChISUQyLCBaZXJvKQogICAgICAgICAgICAg ICAgTmFtZSAoU0JGQiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJ bml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3Np bmdNb2RlN0JpdCwgIk5VTEwiLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNv dXJjZUNvbnN1bWVyLCBfWTYwLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChTQkZHLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg R3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbERlZmF1 bHQsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAw LCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFNCRkksIFJlc291cmNlVGVtcGxhdGUgKCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291 cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZUFuZFdha2UsICwsIF9Z NjEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAw MDAwMDAwLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkIsIFxfU0IuUEMwMC5JMkMxLlRQRDAu X1k2MC5fQURSLCBCQURSKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgQ3Jl YXRlRFdvcmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAwLkkyQzEuVFBEMC5fWTYwLl9TUEUsIFNQ RUQpICAvLyBfU1BFOiBTcGVlZAogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChT QkZHLCAweDE3LCBJTlQxKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JG SSwgXF9TQi5QQzAwLkkyQzEuVFBEMC5fWTYxLl9JTlQsIElOVDIpICAvLyBfSU5UOiBJbnRl cnJ1cHRzCiAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKChQQ0hBID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1JYTyAoR1BESSwgT25l KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJ TlQxID0gR05VTSAoR1BESSkKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMiA9IElOVU0g KEdQREkpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBETSA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hQ TyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5QR1BJ LlNSWE8gKEdQREksIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSU5UMSA9IF5eXl5QR1BJLkdOVU0gKEdQREkpCiAgICAgICAgICAg ICAgICAgICAgICAgIElOVDIgPSBeXl5eUEdQSS5JTlVNIChHUERJKQogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFRQRE0gPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5QR1BJLlNIUE8gKEdQREksIE9u ZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgX0hJRCA9ICJHWFRQNzMwMCIKICAgICAgICAgICAgICAgICAg ICBISUQyID0gMHgyMAogICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDJDCiAgICAgICAg ICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIlhYWFgwMDAwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBO YW1lIChfQ0lELCAiUE5QMEM1MCIgLyogSElEIFByb3RvY29sIERldmljZSAoSTJDIGJ1cykg Ki8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfUzBX LCAweDAzKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZp YyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzAgPT0gSElERykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEhJREQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIEhJRDIpKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRQ N0cpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChUUDdEIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCBTQkZCLCBTQkZHKSkKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChP bmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0JGSSkg LyogXF9TQl8uUEMwMC5JMkMxLlRQRDAuU0JGSSAqLwogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChUUERNID09IFplcm8pKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJl c1RlbXBsYXRlIChJMkNNIChJMkNYLCBCQURSLCBTUEVEKSwgU0JGRykpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVz VGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZJKSkKICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChUUEwxKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChISUQyLCBaZXJvKQogICAgICAgICAgICAg ICAgTmFtZSAoVFBHSSwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKFNCRkIsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ MmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgw LAogICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJOVUxMIiwK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1k2Miwg RXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgTmFtZSAoU0JGRywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdwaW9JbnQgKExldmVsLCBBY3Rp dmVMb3csIEV4Y2x1c2l2ZSwgUHVsbFVwLCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlz dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChTQkZJ LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBF eGNsdXNpdmUsICwsIF9ZNjMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkIsIFxfU0Iu UEMwMC5JMkMxLlRQTDEuX1k2Mi5fQURSLCBCQURSKSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAwLkkyQzEuVFBM MS5fWTYyLl9TUEUsIFNQRUQpICAvLyBfU1BFOiBTcGVlZAogICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChTQkZHLCAweDE3LCBJTlQxKQogICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoU0JGSSwgXF9TQi5QQzAwLkkyQzEuVFBMMS5fWTYzLl9JTlQsIElOVDIp ICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgVFBHSSA9IFQxR0kgLyogXFQxR0kgKi8KICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNSWE8gKFRQ R0ksIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgSU5UMSA9IEdOVU0gKFRQR0kpCiAgICAgICAgICAgICAgICAgICAgICAgIElOVDIg PSBJTlVNIChUUEdJKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTE0gPT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNIUE8gKFRQR0ksIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNIUE8gKFRQR0ksIFplcm8pCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmICgoVFBMVCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgX0hJRCA9ICJBVE1MMzQzMiIKICAgICAgICAgICAgICAgICAgICAgICAg SElEMiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4NEMKICAgICAg ICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKChUUExUID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJBVE1MMjk1MiIKICAgICAgICAgICAgICAg ICAgICAgICAgSElEMiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4 NEEKICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDMpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJFTEFOOTA0OCIKICAgICAg ICAgICAgICAgICAgICAgICAgSElEMiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBC QURSID0gMHgxMAogICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgwNCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIk5UUkcwMDAx IgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gT25lCiAgICAgICAgICAgICAgICAg ICAgICAgIEJBRFIgPSAweDA3CiAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAw MDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSAweDA1KSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQgPSAi TlRSRzAwMDIiCiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgQkFEUiA9IDB4NjQKICAgICAgICAgICAgICAgICAgICAgICAgU1BF RCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09 IDB4MDYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg X0hJRCA9ICJXQ09NNTA4RSIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IE9uZQog ICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHgwQQogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKFRQTFMgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gMHgwMikpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMEY0 MjQwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIElmICgoVFBMVCA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIF9ISUQgPSAiQ1VTVDAwMDAiCiAgICAgICAgICAgICAgICAgICAg ICAgIEhJRDIgPSBUUExIIC8qIFxUUExIICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJB RFIgPSBUUExCIC8qIFxUUExCICovCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBM UyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU1BFRCA9IDB4MDAwMTg2QTAKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAw eDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoVFBMUyA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwRjQyNDAKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBOYW1lIChfSElELCAiWFhYWDAwMDAiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAg ICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wgRGV2 aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1VJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9VSUQ6IFVuaXF1ZSBJ RAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoSTJDSSkg LyogXF9TQl8uUEMwMC5JMkMxLkkyQ0kgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBOYW1lIChfUzBXLCAweDA0KSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3Rh dGUKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9E U006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzAgPT0gSElERykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEhJREQgKEFyZzAsIEFyZzEsIEFyZzIs IEFyZzMsIEhJRDIpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcwID09IFRQN0cpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChUUDdEIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCBT QkZCLCBTQkZHKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoKFRQTFQgIT0gWmVybykgJiYgKEkyQ04gJiAweDAyKSkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNCRkkpIC8q IFxfU0JfLlBDMDAuSTJDMS5UUEwxLlNCRkkgKi8KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmICgoVFBMTSA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNU ZW1wbGF0ZSAoSTJDTSAoSTJDWCwgQkFEUiwgU1BFRCksIFNCRkcpKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1Rl bXBsYXRlIChJMkNNIChJMkNYLCBCQURSLCBTUEVEKSwgU0JGSSkpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9EU0QsIFBhY2thZ2UgKDB4 MDIpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBUb1VVSUQgKCJmODdhNmQyMy0yODg0LTRmZTQtYTU1Zi02MzNkOWUzMzlj ZTEiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImlkbGUt bGF0ZW5jeS10b2xlcmFuY2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiU1Mt YWN0aXZlLWxhdGVuY3ktdG9sZXJhbmNlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkZGRgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgIkZNLWFjdGl2ZS1sYXRlbmN5LXRvbGVyYW5jZSIsIAogICAgICAgICAgICAgICAgICAg ICAgICAweEZGRkYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICJGTVAtYWN0aXZlLWxhdGVuY3ktdG9sZXJhbmNlIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIFNjb3BlIChfU0IuUEMw MC5JMkMyKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoSTJDTiwgWmVybykKICAgICAg ICAgICAgTmFtZSAoSTJDWCwgWmVybykKICAgICAgICAgICAgTmFtZSAoSTJDSSwgMHgwMikK ICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTog SW5pdGlhbGl6ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJMkNOID0gU0RTMiAv KiBcU0RTMiAqLwogICAgICAgICAgICAgICAgSTJDWCA9IDB4MDIKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChUUEQwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBOYW1lIChISUQyLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoU0JGQiwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEky Y1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAs CiAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIk5VTEwiLAog ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTY0LCBF eGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBOYW1lIChTQkZHLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2 ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwKICAgICAgICAg ICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAs CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAg IC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IE5hbWUgKFNCRkksIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBB Y3RpdmVMb3csIEV4Y2x1c2l2ZUFuZFdha2UsICwsIF9ZNjUpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKFNCRkIsIFxfU0IuUEMwMC5JMkMyLlRQRDAuX1k2NC5fQURSLCBCQURSKSAgLy8g X0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGQiwg XF9TQi5QQzAwLkkyQzIuVFBEMC5fWTY0Ll9TUEUsIFNQRUQpICAvLyBfU1BFOiBTcGVlZAog ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChTQkZHLCAweDE3LCBJTlQxKQogICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGSSwgXF9TQi5QQzAwLkkyQzIuVFBE MC5fWTY1Ll9JTlQsIElOVDIpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXpl CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChQQ0hBID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU1JYTyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJTlQxID0gR05VTSAoR1BESSkKICAg ICAgICAgICAgICAgICAgICAgICAgSU5UMiA9IElOVU0gKEdQREkpCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoVFBETSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hQTyAoR1BESSwgT25lKQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5QR1BJLlNSWE8gKEdQREksIE9uZSkKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMSA9 IF5eXl5QR1BJLkdOVU0gKEdQREkpCiAgICAgICAgICAgICAgICAgICAgICAgIElOVDIgPSBe Xl5eUEdQSS5JTlVNIChHUERJKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQRE0g PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5eXl5QR1BJLlNIUE8gKEdQREksIE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgX0hJ RCA9ICJHWFRQNzMwMCIKICAgICAgICAgICAgICAgICAgICBISUQyID0gMHgyMAogICAgICAg ICAgICAgICAgICAgIEJBRFIgPSAweDJDCiAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4 MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIlhYWFgwMDAwIikgIC8vIF9I SUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAiUE5QMEM1MCIg LyogSElEIFByb3RvY29sIERldmljZSAoSTJDIGJ1cykgKi8pICAvLyBfQ0lEOiBDb21wYXRp YmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfUzBXLCAweDAzKSAgLy8gX1MwVzogUzAg RGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2Vy aWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gSElERykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEhJREQgKEFy ZzAsIEFyZzEsIEFyZzIsIEFyZzMsIEhJRDIpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRQN0cpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUUDdEIChBcmcwLCBBcmcx LCBBcmcyLCBBcmczLCBTQkZCLCBTQkZHKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJy ZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0JGSSkgLyogXF9TQl8uUEMwMC5JMkMyLlRQ RDAuU0JGSSAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKChUUERNID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJMkNNIChJMkNY LCBCQURSLCBTUEVEKSwgU0JGRykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gs IEJBRFIsIFNQRUQpLCBTQkZJKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChUUEwxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBOYW1lIChISUQyLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoVFBHSSwgWmVybykK ICAgICAgICAgICAgICAgIE5hbWUgKFNCRkIsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAw LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAg ICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJOVUxMIiwKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1k2NiwgRXhjbHVzaXZlLAogICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFt ZSAoU0JGRywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIEdwaW9JbnQgKExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgUHVs bFVwLCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgw MCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChTQkZJLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNv dXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmUsICwsIF9ZNjcpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw LAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkIsIFxfU0IuUEMwMC5JMkMyLlRQTDEuX1k2Ni5f QURSLCBCQURSKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAwLkkyQzIuVFBMMS5fWTY2Ll9TUEUsIFNQRUQpICAv LyBfU1BFOiBTcGVlZAogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChTQkZHLCAw eDE3LCBJTlQxKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGSSwgXF9T Qi5QQzAwLkkyQzIuVFBMMS5fWTY3Ll9JTlQsIElOVDIpICAvLyBfSU5UOiBJbnRlcnJ1cHRz CiAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf SU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg VFBHSSA9IFQxR0kgLyogXFQxR0kgKi8KICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJl Zk9mIChcX1NCKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNSWE8gKFRQR0ksIE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMSA9IEdOVU0gKFRQ R0kpCiAgICAgICAgICAgICAgICAgICAgICAgIElOVDIgPSBJTlVNIChUUEdJKQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKFRQTE0gPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIUE8gKFRQR0ksIE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNIUE8gKFRQR0ksIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJB VE1MMzQzMiIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IFplcm8KICAgICAgICAg ICAgICAgICAgICAgICAgQkFEUiA9IDB4NEMKICAgICAgICAgICAgICAgICAgICAgICAgU1BF RCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09 IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg X0hJRCA9ICJBVE1MMjk1MiIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IFplcm8K ICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4NEEKICAgICAgICAgICAgICAgICAg ICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KChUUExUID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgX0hJRCA9ICJFTEFOOTA0OCIKICAgICAgICAgICAgICAgICAgICAgICAgSElE MiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHgxMAogICAgICAgICAg ICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoKFRQTFQgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBfSElEID0gIk5UUkcwMDAxIgogICAgICAgICAgICAgICAgICAg ICAgICBISUQyID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDA3CiAg ICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmICgoVFBMVCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQgPSAiTlRSRzAwMDIiCiAgICAgICAgICAg ICAgICAgICAgICAgIEhJRDIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9 IDB4NjQKICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDYpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJXQ09NNTA4RSIKICAg ICAgICAgICAgICAgICAgICAgICAgSElEMiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAg ICBCQURSID0gMHgwQQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4 MAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKFRQTFMgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMEY0MjQwCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSAweDA3 KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQg PSAiQ1VTVDAwMDAiCiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIgPSBUUExIIC8qIFxU UExIICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSBUUExCIC8qIFxUUExCICov CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4 MDAwMTg2QTAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChUUExTID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSAw eDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU1BFRCA9IDB4MDAwRjQyNDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiWFhY WDAwMDAiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9D SUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8v IF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1VJRCwgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoSTJDSSkgLyogXF9TQl8uUEMwMC5JMkMyLkky Q0kgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfUzBXLCAw eDA0KSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBN ZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAg PT0gSElERykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEhJREQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIEhJRDIpKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRQN0cp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChUUDdEIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCBTQkZCLCBTQkZHKSkKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFRQTFQgIT0gWmVybykgJiYg KEkyQ04gJiAweDAyKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVu dCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFNCRkkpIC8qIFxfU0JfLlBDMDAuSTJDMi5UUEwx LlNCRkkgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm ICgoVFBMTSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoSTJDTSAoSTJDWCwg QkFEUiwgU1BFRCksIFNCRkcpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJMkNNIChJMkNYLCBC QURSLCBTUEVEKSwgU0JGSSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE5hbWUgKF9EU0QsIFBhY2thZ2UgKDB4MDIpICAvLyBfRFNEOiBEZXZpY2Ut U3BlY2lmaWMgRGF0YQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUb1VVSUQgKCJm ODdhNmQyMy0yODg0LTRmZTQtYTU1Zi02MzNkOWUzMzljZTEiKSAvKiBVbmtub3duIFVVSUQg Ki8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgImlkbGUtbGF0ZW5jeS10b2xlcmFuY2UiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAiU1MtYWN0aXZlLWxhdGVuY3ktdG9sZXJh bmNlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgogICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIkZNLWFjdGl2ZS1sYXRlbmN5 LXRvbGVyYW5jZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYKICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJGTVAtYWN0aXZl LWxhdGVuY3ktdG9sZXJhbmNlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkK ICAgICAgICB9CgogICAgICAgIFNjb3BlIChfU0IuUEMwMC5JMkMzKQogICAgICAgIHsKICAg ICAgICAgICAgTmFtZSAoSTJDTiwgWmVybykKICAgICAgICAgICAgTmFtZSAoSTJDWCwgWmVy bykKICAgICAgICAgICAgTmFtZSAoSTJDSSwgMHgwMykKICAgICAgICAgICAgTWV0aG9kIChf SU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJMkNOID0gU0RTMyAvKiBcU0RTMyAqLwogICAgICAgICAg ICAgICAgSTJDWCA9IDB4MDMKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChU UEQwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChISUQyLCBaZXJvKQog ICAgICAgICAgICAgICAgTmFtZSAoU0JGQiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAs IENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAg ICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIk5VTEwiLAogICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTY4LCBFeGNsdXNpdmUsCiAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1l IChTQkZHLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2Fr ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NC LkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFNCRkksIFJlc291cmNl VGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJbnRl cnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZUFu ZFdha2UsICwsIF9ZNjkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkIsIFxfU0IuUEMw MC5JMkMzLlRQRDAuX1k2OC5fQURSLCBCQURSKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAg ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAwLkkyQzMuVFBEMC5f WTY4Ll9TUEUsIFNQRUQpICAvLyBfU1BFOiBTcGVlZAogICAgICAgICAgICAgICAgQ3JlYXRl V29yZEZpZWxkIChTQkZHLCAweDE3LCBJTlQxKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoU0JGSSwgXF9TQi5QQzAwLkkyQzMuVFBEMC5fWTY5Ll9JTlQsIElOVDIpICAv LyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKChQQ0hBID09IFplcm8pKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1JY TyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJTlQxID0gR05VTSAoR1BESSkKICAgICAgICAgICAgICAgICAgICAgICAg SU5UMiA9IElOVU0gKEdQREkpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBETSA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU0hQTyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdE QykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5eXl5QR1BJLlNSWE8gKEdQREksIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMSA9IF5eXl5QR1BJLkdOVU0gKEdQREkp CiAgICAgICAgICAgICAgICAgICAgICAgIElOVDIgPSBeXl5eUEdQSS5JTlVNIChHUERJKQog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQRE0gPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5QR1BJLlNI UE8gKEdQREksIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJHWFRQNzMwMCIKICAgICAg ICAgICAgICAgICAgICBISUQyID0gMHgyMAogICAgICAgICAgICAgICAgICAgIEJBRFIgPSAw eDJDCiAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTmFtZSAoX0hJRCwgIlhYWFgwMDAwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAg ICAgICAgICAgICBOYW1lIChfQ0lELCAiUE5QMEM1MCIgLyogSElEIFByb3RvY29sIERldmlj ZSAoSTJDIGJ1cykgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAg ICBOYW1lIChfUzBXLCAweDAzKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERl dmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzAgPT0gSElERykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEhJREQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMs IEhJRDIpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcwID09IFRQN0cpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChUUDdEIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCBTQkZCLCBT QkZHKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy biAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6 IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdz CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgw N0RDKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoU0JGSSkgLyogXF9TQl8uUEMwMC5JMkMzLlRQRDAuU0JGSSAqLwogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUERNID09IFplcm8pKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChD b25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJMkNNIChJMkNYLCBCQURSLCBTUEVEKSwgU0JGRykp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENv bmNhdGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZJKSkK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChU UEwxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChISUQyLCBaZXJvKQog ICAgICAgICAgICAgICAgTmFtZSAoVFBHSSwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUg KFNCRkIsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVk LCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdC aXQsICJOVUxMIiwKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25z dW1lciwgX1k2QSwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoU0JGRywgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdwaW9JbnQg KExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgUHVsbFVwLCAweDAwMDAsCiAgICAgICAg ICAgICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwg LAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsg ICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICBOYW1lIChTQkZJLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwg QWN0aXZlTG93LCBFeGNsdXNpdmUsICwsIF9ZNkIpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KFNCRkIsIFxfU0IuUEMwMC5JMkMzLlRQTDEuX1k2QS5fQURSLCBCQURSKSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGQiwgXF9TQi5Q QzAwLkkyQzMuVFBMMS5fWTZBLl9TUEUsIFNQRUQpICAvLyBfU1BFOiBTcGVlZAogICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChTQkZHLCAweDE3LCBJTlQxKQogICAgICAgICAg ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGSSwgXF9TQi5QQzAwLkkyQzMuVFBMMS5fWTZC Ll9JTlQsIElOVDIpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVFBHSSA9IFQxR0kgLyogXFQxR0kg Ki8KICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdE QykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNSWE8gKFRQR0ksIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSU5UMSA9IEdOVU0gKFRQR0kpCiAgICAgICAgICAgICAgICAg ICAgICAgIElOVDIgPSBJTlVNIChUUEdJKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KFRQTE0gPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNIUE8gKFRQR0ksIE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIUE8gKFRQR0ksIFplcm8pCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmICgoVFBMVCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJBVE1MMzQzMiIKICAgICAgICAgICAg ICAgICAgICAgICAgSElEMiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9 IDB4NEMKICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDIpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJBVE1MMjk1MiIKICAg ICAgICAgICAgICAgICAgICAgICAgSElEMiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAg ICAgQkFEUiA9IDB4NEEKICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFB ODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDMpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJFTEFO OTA0OCIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IE9uZQogICAgICAgICAgICAg ICAgICAgICAgICBCQURSID0gMHgxMAogICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0g MHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgw NCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElE ID0gIk5UUkcwMDAxIgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gT25lCiAgICAg ICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDA3CiAgICAgICAgICAgICAgICAgICAgICAg IFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBM VCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIF9ISUQgPSAiTlRSRzAwMDIiCiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIgPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4NjQKICAgICAgICAgICAgICAg ICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKChUUExUID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgX0hJRCA9ICJXQ09NNTA4RSIKICAgICAgICAgICAgICAgICAgICAgICAg SElEMiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHgwQQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgw CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoVFBMUyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQ RUQgPSAweDAwMEY0MjQwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQgPSAiQ1VTVDAwMDAiCiAgICAgICAg ICAgICAgICAgICAgICAgIEhJRDIgPSBUUExIIC8qIFxUUExIICovCiAgICAgICAgICAgICAg ICAgICAgICAgIEJBRFIgPSBUUExCIC8qIFxUUExCICovCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoVFBMUyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwMTg2QTAKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSAweDAyKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwRjQy NDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiWFhYWDAwMDAiKSAgLy8gX0hJRDogSGFy ZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQg UHJvdG9jb2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1VJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9V SUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoSTJDSSkgLyogXF9TQl8uUEMwMC5JMkMzLkkyQ0kgKi8KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBOYW1lIChfUzBXLCAweDA0KSAgLy8gX1MwVzogUzAgRGV2 aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFs aXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gSElERykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEhJREQgKEFyZzAs IEFyZzEsIEFyZzIsIEFyZzMsIEhJRDIpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRQN0cpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUUDdEIChBcmcwLCBBcmcxLCBB cmcyLCBBcmczLCBTQkZCLCBTQkZHKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmICgoKFRQTFQgIT0gWmVybykgJiYgKEkyQ04gJiAweDAyKSkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdE QykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFNCRkkpIC8qIFxfU0JfLlBDMDAuSTJDMy5UUEwxLlNCRkkgKi8KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMTSA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29u Y2F0ZW5hdGVSZXNUZW1wbGF0ZSAoSTJDTSAoSTJDWCwgQkFEUiwgU1BFRCksIFNCRkcpKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25j YXRlbmF0ZVJlc1RlbXBsYXRlIChJMkNNIChJMkNYLCBCQURSLCBTUEVEKSwgU0JGSSkpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9EU0Qs IFBhY2thZ2UgKDB4MDIpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBUb1VVSUQgKCJmODdhNmQyMy0yODg0LTRmZTQtYTU1 Zi02MzNkOWUzMzljZTEiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgImlkbGUtbGF0ZW5jeS10b2xlcmFuY2UiLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHhGRkZGCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAiU1MtYWN0aXZlLWxhdGVuY3ktdG9sZXJhbmNlIiwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgIkZNLWFjdGl2ZS1sYXRlbmN5LXRvbGVyYW5jZSIsIAogICAgICAg ICAgICAgICAgICAgICAgICAweEZGRkYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICJGTVAtYWN0aXZlLWxhdGVuY3ktdG9sZXJhbmNlIiwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIFNj b3BlIChfU0IuUEMwMC5JMkM0KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoSTJDTiwg WmVybykKICAgICAgICAgICAgTmFtZSAoSTJDWCwgWmVybykKICAgICAgICAgICAgTmFtZSAo STJDSSwgMHgwNCkKICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ MkNOID0gU0RTNCAvKiBcU0RTNCAqLwogICAgICAgICAgICAgICAgSTJDWCA9IDB4MDQKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChUUEQwKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBOYW1lIChISUQyLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAo U0JGQiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQs IDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0Jp dCwgIk5VTEwiLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1 bWVyLCBfWTZDLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChTQkZHLCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAo TGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbERlZmF1bHQsIDB4MDAw MCwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJj ZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg ICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgIE5hbWUgKFNCRkksIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3Vt ZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZUFuZFdha2UsICwsIF9ZNkQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICBDcmVhdGVXb3JkRmllbGQgKFNCRkIsIFxfU0IuUEMwMC5JMkM0LlRQRDAuX1k2Qy5fQURS LCBCQURSKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoU0JGQiwgXF9TQi5QQzAwLkkyQzQuVFBEMC5fWTZDLl9TUEUsIFNQRUQpICAvLyBf U1BFOiBTcGVlZAogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChTQkZHLCAweDE3 LCBJTlQxKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGSSwgXF9TQi5Q QzAwLkkyQzQuVFBEMC5fWTZELl9JTlQsIElOVDIpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5J OiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KChQQ0hBID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1JYTyAoR1BESSwgT25lKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJTlQxID0gR05V TSAoR1BESSkKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMiA9IElOVU0gKEdQREkpCiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBETSA9PSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hQTyAoR1BESSwg T25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5QR1BJLlNSWE8gKEdQ REksIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgSU5UMSA9IF5eXl5QR1BJLkdOVU0gKEdQREkpCiAgICAgICAgICAgICAgICAgICAg ICAgIElOVDIgPSBeXl5eUEdQSS5JTlVNIChHUERJKQogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKFRQRE0gPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5eXl5QR1BJLlNIUE8gKEdQREksIE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgX0hJRCA9ICJHWFRQNzMwMCIKICAgICAgICAgICAgICAgICAgICBISUQyID0g MHgyMAogICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDJDCiAgICAgICAgICAgICAgICAg ICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIlhYWFgw MDAwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfQ0lE LCAiUE5QMEM1MCIgLyogSElEIFByb3RvY29sIERldmljZSAoSTJDIGJ1cykgKi8pICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfUzBXLCAweDAzKSAg Ly8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgICAgIE1ldGhvZCAo X0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gSElE RykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEhJREQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIEhJRDIpKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRQN0cpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUUDdE IChBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCBTQkZCLCBTQkZHKSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo X1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0JGSSkgLyogXF9TQl8u UEMwMC5JMkM0LlRQRDAuU0JGSSAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSWYgKChUUERNID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRl IChJMkNNIChJMkNYLCBCQURSLCBTUEVEKSwgU0JGRykpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUg KEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZJKSkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChUUEwxKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBOYW1lIChISUQyLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAo VFBHSSwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKFNCRkIsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxC dXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAg ICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJOVUxMIiwKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1k2RSwgRXhjbHVzaXZl LAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgTmFtZSAoU0JGRywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIEdwaW9JbnQgKExldmVsLCBBY3RpdmVMb3csIEV4 Y2x1c2l2ZSwgUHVsbFVwLCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9T Qi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAg ICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChTQkZJLCBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSW50 ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmUs ICwsIF9ZNkYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkIsIFxfU0IuUEMwMC5JMkM0 LlRQTDEuX1k2RS5fQURSLCBCQURSKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAwLkkyQzQuVFBMMS5fWTZFLl9T UEUsIFNQRUQpICAvLyBfU1BFOiBTcGVlZAogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChTQkZHLCAweDE3LCBJTlQxKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoU0JGSSwgXF9TQi5QQzAwLkkyQzQuVFBMMS5fWTZGLl9JTlQsIElOVDIpICAvLyBfSU5U OiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgVFBHSSA9IFQwR0kgLyogXFQwR0kgKi8KICAgICAgICAgICAgICAgICAg ICBJZiAoQ29uZFJlZk9mIChcX1NCKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNSWE8gKFRQR0ksIE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSU5U MSA9IEdOVU0gKFRQR0kpCiAgICAgICAgICAgICAgICAgICAgICAgIElOVDIgPSBJTlVNIChU UEdJKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTE0gPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIUE8g KFRQR0ksIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNIUE8gKFRQR0ksIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBM VCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgX0hJRCA9ICJBVE1MMzQzMiIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IFpl cm8KICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4NEMKICAgICAgICAgICAgICAg ICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKChUUExUID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgX0hJRCA9ICJBVE1MMjk1MiIKICAgICAgICAgICAgICAgICAgICAgICAg SElEMiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4NEEKICAgICAg ICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKChUUExUID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJFTEFOOTA0OCIKICAgICAgICAgICAgICAg ICAgICAgICAgSElEMiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHgx MAogICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIk5UUkcwMDAxIgogICAgICAg ICAgICAgICAgICAgICAgICBISUQyID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIEJB RFIgPSAweDA3CiAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSAweDA1KSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQgPSAiTlRSRzAwMDIi CiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIgPSBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgQkFEUiA9IDB4NjQKICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAw NjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDYpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJX Q09NNTA4RSIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICBCQURSID0gMHgwQQogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KFRQTFMgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVE ID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFRQTFMgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMEY0MjQwCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo VFBMVCA9PSAweDA3KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIF9ISUQgPSAiQ1VTVDAwMDAiCiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIg PSBUUExIIC8qIFxUUExIICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSBUUExC IC8qIFxUUExCICovCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU1BFRCA9IDB4MDAwMTg2QTAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgw CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoVFBMUyA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwRjQyNDAKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1l IChfSElELCAiWFhYWDAwMDAiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg ICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wgRGV2aWNlIChJMkMg YnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1VJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoSTJDSSkgLyogXF9TQl8u UEMwMC5JMkM0LkkyQ0kgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBO YW1lIChfUzBXLCAweDA0KSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmlj ZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzAgPT0gSElERykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEhJREQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIEhJ RDIpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcwID09IFRQN0cpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChUUDdEIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCBTQkZCLCBTQkZH KSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0 YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKFRQTFQg IT0gWmVybykgJiYgKEkyQ04gJiAweDAyKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNCRkkpIC8qIFxfU0JfLlBD MDAuSTJDNC5UUEwxLlNCRkkgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIElmICgoVFBMTSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAo STJDTSAoSTJDWCwgQkFEUiwgU1BFRCksIFNCRkcpKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJ MkNNIChJMkNYLCBCQURSLCBTUEVEKSwgU0JGSSkpCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9EU0QsIFBhY2thZ2UgKDB4MDIpICAvLyBf RFNEOiBEZXZpY2UtU3BlY2lmaWMgRGF0YQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBUb1VVSUQgKCJmODdhNmQyMy0yODg0LTRmZTQtYTU1Zi02MzNkOWUzMzljZTEiKSAvKiBV bmtub3duIFVVSUQgKi8sIAogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImlkbGUtbGF0ZW5jeS10 b2xlcmFuY2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiU1MtYWN0aXZlLWxh dGVuY3ktdG9sZXJhbmNlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgogICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIkZNLWFj dGl2ZS1sYXRlbmN5LXRvbGVyYW5jZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZG RkYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICJGTVAtYWN0aXZlLWxhdGVuY3ktdG9sZXJhbmNlIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIFNjb3BlIChfU0IuUEMwMC5JMkM1KQog ICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoSTJDTiwgWmVybykKICAgICAgICAgICAgTmFt ZSAoSTJDWCwgWmVybykKICAgICAgICAgICAgTmFtZSAoSTJDSSwgMHgwNSkKICAgICAgICAg ICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6 ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJMkNOID0gU0RTNSAvKiBcU0RTNSAq LwogICAgICAgICAgICAgICAgSTJDWCA9IDB4MDUKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRGV2aWNlIChUUEQwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChI SUQyLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoU0JGQiwgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1 c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAg ICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIk5VTEwiLAogICAgICAgICAg ICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTcwLCBFeGNsdXNpdmUs CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICBOYW1lIChTQkZHLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUxvdywgRXhj bHVzaXZlQW5kV2FrZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAg ICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBs aXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFNC RkksIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3cs IEV4Y2x1c2l2ZUFuZFdha2UsICwsIF9ZNzEpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNC RkIsIFxfU0IuUEMwMC5JMkM1LlRQRDAuX1k3MC5fQURSLCBCQURSKSAgLy8gX0FEUjogQWRk cmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAw LkkyQzUuVFBEMC5fWTcwLl9TUEUsIFNQRUQpICAvLyBfU1BFOiBTcGVlZAogICAgICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChTQkZHLCAweDE3LCBJTlQxKQogICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGSSwgXF9TQi5QQzAwLkkyQzUuVFBEMC5fWTcxLl9J TlQsIElOVDIpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChQQ0hBID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwg MHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU1JYTyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJTlQxID0gR05VTSAoR1BESSkKICAgICAgICAgICAg ICAgICAgICAgICAgSU5UMiA9IElOVU0gKEdQREkpCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoVFBETSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU0hQTyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo T1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5eXl5QR1BJLlNSWE8gKEdQREksIE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMSA9IF5eXl5QR1BJ LkdOVU0gKEdQREkpCiAgICAgICAgICAgICAgICAgICAgICAgIElOVDIgPSBeXl5eUEdQSS5J TlVNIChHUERJKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQRE0gPT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5eXl5QR1BJLlNIUE8gKEdQREksIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJHWFRQ NzMwMCIKICAgICAgICAgICAgICAgICAgICBISUQyID0gMHgyMAogICAgICAgICAgICAgICAg ICAgIEJBRFIgPSAweDJDCiAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIlhYWFgwMDAwIikgIC8vIF9ISUQ6IEhhcmR3 YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAiUE5QMEM1MCIgLyogSElEIFBy b3RvY29sIERldmljZSAoSTJDIGJ1cykgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAg ICAgICAgICAgICAgICBOYW1lIChfUzBXLCAweDAzKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdh a2UgU3RhdGUKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkg IC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gSElERykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEhJREQgKEFyZzAsIEFyZzEs IEFyZzIsIEFyZzMsIEhJRDIpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcwID09IFRQN0cpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUUDdEIChBcmcwLCBBcmcxLCBBcmcyLCBB cmczLCBTQkZCLCBTQkZHKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291 cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU0JGSSkgLyogXF9TQl8uUEMwMC5JMkM1LlRQRDAuU0JGSSAq LwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUERN ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJMkNNIChJMkNYLCBCQURSLCBT UEVEKSwgU0JGRykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQ RUQpLCBTQkZJKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRGV2aWNlIChUUEwxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChI SUQyLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoVFBHSSwgWmVybykKICAgICAgICAg ICAgICAgIE5hbWUgKFNCRkIsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9s bGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICBBZGRy ZXNzaW5nTW9kZTdCaXQsICJOVUxMIiwKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg UmVzb3VyY2VDb25zdW1lciwgX1k3MiwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAg ICAgICApCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoU0JGRywg UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEdwaW9JbnQgKExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgUHVsbFVwLCAweDAw MDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3Vy Y2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICBOYW1lIChTQkZJLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1 bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmUsICwsIF9ZNzMpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBDcmVh dGVXb3JkRmllbGQgKFNCRkIsIFxfU0IuUEMwMC5JMkM1LlRQTDEuX1k3Mi5fQURSLCBCQURS KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo U0JGQiwgXF9TQi5QQzAwLkkyQzUuVFBMMS5fWTcyLl9TUEUsIFNQRUQpICAvLyBfU1BFOiBT cGVlZAogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChTQkZHLCAweDE3LCBJTlQx KQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JGSSwgXF9TQi5QQzAwLkky QzUuVFBMMS5fWTczLl9JTlQsIElOVDIpICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0 aWFsaXplCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVFBHSSA9IFQx R0kgLyogXFQxR0kgKi8KICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NC KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo T1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNSWE8gKFRQR0ksIE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMSA9IEdOVU0gKFRQR0kpCiAgICAg ICAgICAgICAgICAgICAgICAgIElOVDIgPSBJTlVNIChUUEdJKQogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKFRQTE0gPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIUE8gKFRQR0ksIE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIUE8gKFRQ R0ksIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJBVE1MMzQzMiIK ICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IFplcm8KICAgICAgICAgICAgICAgICAg ICAgICAgQkFEUiA9IDB4NEMKICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAw NjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDIpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJB VE1MMjk1MiIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IFplcm8KICAgICAgICAg ICAgICAgICAgICAgICAgQkFEUiA9IDB4NEEKICAgICAgICAgICAgICAgICAgICAgICAgU1BF RCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09 IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg X0hJRCA9ICJFTEFOOTA0OCIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IE9uZQog ICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHgxMAogICAgICAgICAgICAgICAgICAg ICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo KFRQTFQgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBfSElEID0gIk5UUkcwMDAxIgogICAgICAgICAgICAgICAgICAgICAgICBISUQy ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDA3CiAgICAgICAgICAg ICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIElmICgoVFBMVCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIF9ISUQgPSAiTlRSRzAwMDIiCiAgICAgICAgICAgICAgICAgICAg ICAgIEhJRDIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4NjQKICAg ICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJXQ09NNTA4RSIKICAgICAgICAgICAg ICAgICAgICAgICAgSElEMiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0g MHgwQQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQg PSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoVFBMUyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFMg PT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNQRUQgPSAweDAwMEY0MjQwCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSAweDA3KSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQgPSAiQ1VTVDAw MDAiCiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIgPSBUUExIIC8qIFxUUExIICovCiAg ICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSBUUExCIC8qIFxUUExCICovCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwMTg2QTAK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChUUExTID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BF RCA9IDB4MDAwRjQyNDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiWFhYWDAwMDAiKSAg Ly8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQTlAw QzUwIiAvKiBISUQgUHJvdG9jb2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6IENv bXBhdGlibGUgSUQKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1VJRCwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoSTJDSSkgLyogXF9TQl8uUEMwMC5JMkM1LkkyQ0kgKi8KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfUzBXLCAweDA0KSAgLy8g X1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RT TSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gSElERykp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEhJREQgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIEhJRDIpKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRQN0cpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUUDdEIChB cmcwLCBBcmcxLCBBcmcyLCBBcmczLCBTQkZCLCBTQkZHKSkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NU QSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoKFRQTFQgIT0gWmVybykgJiYgKEkyQ04gJiAw eDAyKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJj ZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgo T1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFNCRkkpIC8qIFxfU0JfLlBDMDAuSTJDNS5UUEwxLlNCRkkgKi8K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMTSA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoSTJDTSAoSTJDWCwgQkFEUiwgU1BF RCksIFNCRkcpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJMkNNIChJMkNYLCBCQURSLCBTUEVE KSwgU0JGSSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE5hbWUgKF9EU0QsIFBhY2thZ2UgKDB4MDIpICAvLyBfRFNEOiBEZXZpY2UtU3BlY2lmaWMg RGF0YQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUb1VVSUQgKCJmODdhNmQyMy0y ODg0LTRmZTQtYTU1Zi02MzNkOWUzMzljZTEiKSAvKiBVbmtub3duIFVVSUQgKi8sIAogICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgImlkbGUtbGF0ZW5jeS10b2xlcmFuY2UiLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAiU1MtYWN0aXZlLWxhdGVuY3ktdG9sZXJhbmNlIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgIkZNLWFjdGl2ZS1sYXRlbmN5LXRvbGVyYW5j ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYKICAgICAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJGTVAtYWN0aXZlLWxhdGVuY3kt dG9sZXJhbmNlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9 CgogICAgICAgIFNjb3BlIChfU0IuUEMwMC5TUEkxKQogICAgICAgIHsKICAgICAgICAgICAg TmFtZSAoU1BJUCwgWmVybykKICAgICAgICAgICAgTmFtZSAoU1BJWCwgWmVybykKICAgICAg ICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlh bGl6ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTUElQID0gU0RTNyAvKiBcU0RT NyAqLwogICAgICAgICAgICAgICAgU1BJWCA9IDB4MDcKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgRGV2aWNlIChGUE5UKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRo b2QgKF9ISUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoRlBUVCA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgi RlBDMTAxMSIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJ ZiAoKEZQVFQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKCJGUEMxMDIwIikKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmICgoRlBUVCA9PSAweDAzKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIlZGU0k2MTAxIikKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRlBUVCA9PSAw eDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoIlZGU0k3NTAwIikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmICgoRlBUVCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoIkVHSVMwMzAwIikKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRlBUVCA9PSAweDA2KSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIkZQQzEw MjEiKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgiRFVNWTAwMDAiKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTSFBPIChHRlBJLCBPbmUpCiAgICAg ICAgICAgICAgICAgICAgU0hQTyAoR0ZQUywgT25lKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6 IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoKEZQ VFQgIT0gWmVybykgJiYgKFNQSVAgPT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8g X0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIE5hbWUgKEJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVz aXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRP bmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBS ZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwMDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKElCVUYs IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2 ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgLCwgX1k3NCkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoR0JVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUxv dywgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwg X1k3NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoVUJVRiwgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg R3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0 cmljdGlvbklucHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5H UEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVXb3JkRmllbGQgKEJCVUYsIDB4MTcsIFNQSU4pCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChHQlVGLCAweDE3LCBHUElOKQogICAgICAgICAgICAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKElCVUYsIFxfU0IuUEMwMC5TUEkxLkZQTlQuX0NSUy5f WTc0Ll9JTlQsIElQSU4pICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChVQlVGLCAweDE3LCBVUElOKQogICAgICAgICAgICAgICAg ICAgIENyZWF0ZUJpdEZpZWxkIChJQlVGLCBcX1NCLlBDMDAuU1BJMS5GUE5ULl9DUlMuX1k3 NC5fTEwsIElMVkwpICAvLyBfTExfOiBMb3cgTGV2ZWwKICAgICAgICAgICAgICAgICAgICBD cmVhdGVCaXRGaWVsZCAoSUJVRiwgXF9TQi5QQzAwLlNQSTEuRlBOVC5fQ1JTLl9ZNzQuX0hF LCBJVFJHKSAgLy8gX0hFXzogSGlnaC1FZGdlCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl RmllbGQgKEdCVUYsIFxfU0IuUEMwMC5TUEkxLkZQTlQuX0NSUy5fWTc1Ll9QT0wsIDB4MDIs IEdMVkwpICAvLyBfUE9MOiBQb2xhcml0eQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJp dEZpZWxkIChHQlVGLCBcX1NCLlBDMDAuU1BJMS5GUE5ULl9DUlMuX1k3NS5fTU9ELCBHVFJH KSAgLy8gX01PRDogTW9kZQogICAgICAgICAgICAgICAgICAgIFNQSU4gPSBHTlVNIChHRlBT KQogICAgICAgICAgICAgICAgICAgIEdQSU4gPSBHTlVNIChHRlBJKQogICAgICAgICAgICAg ICAgICAgIElQSU4gPSBJTlVNIChHRlBJKQogICAgICAgICAgICAgICAgICAgIFVQSU4gPSBH TlVNIChHRlBJKQogICAgICAgICAgICAgICAgICAgIElmICgoKEZQVFQgPT0gMHgwMikgfHwg KEZQVFQgPT0gMHgwNikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSUxWTCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgSVRSRyA9IE9u ZQogICAgICAgICAgICAgICAgICAgICAgICBHTFZMID0gWmVybwogICAgICAgICAgICAgICAg ICAgICAgICBHVFJHID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoKEZQVFQgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJTFZMID0gWmVybwogICAgICAgICAgICAgICAgICAgICAg ICBJVFJHID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBTd2l0Y2ggKFRvSW50ZWdlciAoRlBUVCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDA5ODk2ODAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAyKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEg PSAweDAwMkRDNkMwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJv CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2Fz ZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwxID0gMHgwMDdBMTIwMAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMDdBMTIwMAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDUpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDBG NDI0MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA2 KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDEgPSAweDAwMkRDNkMwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDEgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEZQVFQgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29u Y2F0ZW5hdGVSZXNUZW1wbGF0ZSAoU1BJTSAoU1BJWCwgTG9jYWwwLCBMb2NhbDEpLCBCQlVG KSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoKEZQ VFQgPT0gMHgwNCkgJiYgKEZQVE0gPT0gWmVybykpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRl IChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChTUElNIChTUElYLCBMb2NhbDAsIExvY2FsMSks IEJCVUYpLCBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChVQlVGLCBHQlVGCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIElmICgoKEZQVFQgPT0gMHgwNCkgJiYgKEZQVE0gIT0gWmVybykpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25j YXRlbmF0ZVJlc1RlbXBsYXRlIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChTUElNIChTUElY LCBMb2NhbDAsIExvY2FsMSksIEJCVUYpLCBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChVQlVG LCBJQlVGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRlBUTSA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0 ZW5hdGVSZXNUZW1wbGF0ZSAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoU1BJTSAoU1BJWCwg TG9jYWwwLCBMb2NhbDEpLCBCQlVGKSwgR0JVRikpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKENv bmNhdGVuYXRlUmVzVGVtcGxhdGUgKFNQSU0gKFNQSVgsIExvY2FsMCwgTG9jYWwxKSwgQkJV RiksIElCVUYpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoK ICAgICAgICBTY29wZSAoX1NCLlBDMDAuU1BJMikKICAgICAgICB7CiAgICAgICAgICAgIE5h bWUgKFNQSVAsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKFNQSVgsIFplcm8pCiAgICAgICAg ICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxp emUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU1BJUCA9IFNEUzggLyogXFNEUzgg Ki8KICAgICAgICAgICAgICAgIFNQSVggPSAweDA4CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIERldmljZSAoRlBOVCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9k IChfSElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEZQVFQgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIkZQ QzEwMTEiKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KChGUFRUID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgiRlBDMTAyMCIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKEZQVFQgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJWRlNJNjEwMSIpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEZQVFQgPT0gMHgw NCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKCJWRlNJNzUwMCIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoKEZQVFQgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKCJFR0lTMDMwMCIpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEZQVFQgPT0gMHgwNikpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJGUEMxMDIx IikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo IkRVTVkwMDAwIikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU0hQTyAoR0ZQSSwgT25lKQogICAgICAg ICAgICAgICAgICAgIFNIUE8gKEdGUFMsIE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBT dGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChGUFRU ICE9IFplcm8pICYmIChTUElQID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9D UlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBOYW1lIChCQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2 ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25s eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVz b3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDA4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChJQlVGLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVM b3csIEV4Y2x1c2l2ZUFuZFdha2UsICwsIF9ZNzYpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKEdCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbnQgKExldmVsLCBBY3RpdmVMb3cs IEV4Y2x1c2l2ZUFuZFdha2UsIFB1bGxEZWZhdWx0LCAweDAwMDAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiXFxfU0IuR1BJMCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9Z NzcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKFVCVUYsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEdw aW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJp Y3Rpb25JbnB1dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJ MCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlV29yZEZpZWxkIChCQlVGLCAweDE3LCBTUElOKQogICAgICAgICAgICAgICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoR0JVRiwgMHgxNywgR1BJTikKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVEV29yZEZpZWxkIChJQlVGLCBcX1NCLlBDMDAuU1BJMi5GUE5ULl9DUlMuX1k3 Ni5fSU5ULCBJUElOKSAgLy8gX0lOVDogSW50ZXJydXB0cwogICAgICAgICAgICAgICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoVUJVRiwgMHgxNywgVVBJTikKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVCaXRGaWVsZCAoSUJVRiwgXF9TQi5QQzAwLlNQSTIuRlBOVC5fQ1JTLl9ZNzYu X0xMLCBJTFZMKSAgLy8gX0xMXzogTG93IExldmVsCiAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlQml0RmllbGQgKElCVUYsIFxfU0IuUEMwMC5TUEkyLkZQTlQuX0NSUy5fWTc2Ll9IRSwg SVRSRykgIC8vIF9IRV86IEhpZ2gtRWRnZQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUZp ZWxkIChHQlVGLCBcX1NCLlBDMDAuU1BJMi5GUE5ULl9DUlMuX1k3Ny5fUE9MLCAweDAyLCBH TFZMKSAgLy8gX1BPTDogUG9sYXJpdHkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRG aWVsZCAoR0JVRiwgXF9TQi5QQzAwLlNQSTIuRlBOVC5fQ1JTLl9ZNzcuX01PRCwgR1RSRykg IC8vIF9NT0Q6IE1vZGUKICAgICAgICAgICAgICAgICAgICBTUElOID0gR05VTSAoR0ZQUykK ICAgICAgICAgICAgICAgICAgICBHUElOID0gR05VTSAoR0ZQSSkKICAgICAgICAgICAgICAg ICAgICBJUElOID0gSU5VTSAoR0ZQSSkKICAgICAgICAgICAgICAgICAgICBVUElOID0gR05V TSAoR0ZQSSkKICAgICAgICAgICAgICAgICAgICBJZiAoKChGUFRUID09IDB4MDIpIHx8IChG UFRUID09IDB4MDYpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElMVkwgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIElUUkcgPSBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgR0xWTCA9IFplcm8KICAgICAgICAgICAgICAgICAg ICAgICAgR1RSRyA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKChGUFRUID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSUxWTCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAg SVRSRyA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg U3dpdGNoIChUb0ludGVnZXIgKEZQVFQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAwOTg5NjgwCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0g MHgwMDJEQzZDMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2Ug KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMSA9IDB4MDA3QTEyMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIENhc2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDA3QTEyMDAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA1KQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAwRjQy NDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNikK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwxID0gMHgwMDJEQzZDMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwxID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChGUFRUID09IE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNh dGVuYXRlUmVzVGVtcGxhdGUgKFNQSU0gKFNQSVgsIExvY2FsMCwgTG9jYWwxKSwgQkJVRikp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKChGUFRU ID09IDB4MDQpICYmIChGUFRNID09IFplcm8pKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAo Q29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoU1BJTSAoU1BJWCwgTG9jYWwwLCBMb2NhbDEpLCBC QlVGKSwgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoVUJVRiwgR0JVRgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoKChGUFRUID09IDB4MDQpICYmIChGUFRNICE9IFplcm8pKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0 ZW5hdGVSZXNUZW1wbGF0ZSAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoU1BJTSAoU1BJWCwg TG9jYWwwLCBMb2NhbDEpLCBCQlVGKSwgQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoVUJVRiwg SUJVRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEZQVE0gPT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVu YXRlUmVzVGVtcGxhdGUgKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKFNQSU0gKFNQSVgsIExv Y2FsMCwgTG9jYWwxKSwgQkJVRiksIEdCVUYpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChDb25j YXRlbmF0ZVJlc1RlbXBsYXRlIChTUElNIChTUElYLCBMb2NhbDAsIExvY2FsMSksIEJCVUYp LCBJQlVGKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAg IH0KICAgIEVsc2UKICAgIHsKICAgICAgICBTY29wZSAoX1NCLlBDMDIpCiAgICAgICAgewog ICAgICAgICAgICBOYW1lIChISURHLCBUb1VVSUQgKCIzY2RmZjZmNy00MjY3LTQ1NTUtYWQw NS1iMzBhM2Q4OTM4ZGUiKSAvKiBISUQgSTJDIERldmljZSAqLykKICAgICAgICAgICAgTmFt ZSAoVFA3RywgVG9VVUlEICgiZWY4N2ViODItZjk1MS00NmRhLTg0ZWMtMTQ4NzFhYzZmODRi IikgLyogVW5rbm93biBVVUlEICovKQogICAgICAgICAgICBNZXRob2QgKEhJREQsIDUsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBI SURHKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChBcmc0KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChUUDdELCA2LCBTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVFA3RykpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IE9uZSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVS ZXNUZW1wbGF0ZSAoQXJnNCwgQXJnNSkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEkyQ00sIDMsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcw KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDYXNlIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlD MCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9s bGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDIuSTJDMCIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1k3OCwgRXhj bHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChJSUMwLCBcX1NCLlBDMDIuSTJDTS5fWTc4Ll9BRFIsIERBRDApICAvLyBfQURSOiBBZGRy ZXNzCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElJQzAsIFxf U0IuUEMwMi5JMkNNLl9ZNzguX1NQRSwgRFNQMCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAg ICAgICAgICAgICAgICAgIERBRDAgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIERT UDAgPSBBcmcyCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSUlDMCkgLyogXF9T Ql8uUEMwMi5JMkNNLklJQzAgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgQ2FzZSAoT25lKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgTmFtZSAoSUlDMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxC dXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBD MDIuSTJDMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3Vy Y2VDb25zdW1lciwgX1k3OSwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChJSUMxLCBcX1NCLlBDMDIuSTJDTS5fWTc5Ll9BRFIs IERBRDEpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKElJQzEsIFxfU0IuUEMwMi5JMkNNLl9ZNzkuX1NQRSwgRFNQMSkgIC8v IF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICAgICAgICAgIERBRDEgPSBBcmcxCiAgICAg ICAgICAgICAgICAgICAgICAgIERTUDEgPSBBcmcyCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoSUlDMSkgLyogXF9TQl8uUEMwMi5JMkNNLklJQzEgKi8KICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwMikKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJQzIsIFJlc291cmNl VGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRl ZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNz aW5nTW9kZTdCaXQsICJcXF9TQi5QQzAyLkkyQzIiLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZN0EsIEV4Y2x1c2l2ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlDMiwgXF9T Qi5QQzAyLkkyQ00uX1k3QS5fQURSLCBEQUQyKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAg ICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChJSUMyLCBcX1NCLlBDMDIuSTJD TS5fWTdBLl9TUEUsIERTUDIpICAvLyBfU1BFOiBTcGVlZAogICAgICAgICAgICAgICAgICAg ICAgICBEQUQyID0gQXJnMQogICAgICAgICAgICAgICAgICAgICAgICBEU1AyID0gQXJnMgog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKElJQzIpIC8qIFxfU0JfLlBDMDIuSTJD TS5JSUMyICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENh c2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChJSUMzLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAw MDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMi5JMkMzIiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVy LCBfWTdCLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVXb3JkRmllbGQgKElJQzMsIFxfU0IuUEMwMi5JMkNNLl9ZN0IuX0FEUiwgREFEMykgIC8v IF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoSUlDMywgXF9TQi5QQzAyLkkyQ00uX1k3Qi5fU1BFLCBEU1AzKSAgLy8gX1NQRTogU3Bl ZWQKICAgICAgICAgICAgICAgICAgICAgICAgREFEMyA9IEFyZzEKICAgICAgICAgICAgICAg ICAgICAgICAgRFNQMyA9IEFyZzIKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChJ SUMzKSAvKiBcX1NCXy5QQzAyLkkyQ00uSUlDMyAqLwogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlDNCwgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYx QTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0Jp dCwgIlxcX1NCLlBDMDIuSTJDNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1k3QywgRXhjbHVzaXZlLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJSUM0LCBcX1NCLlBDMDIuSTJD TS5fWTdDLl9BRFIsIERBRDQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElJQzQsIFxfU0IuUEMwMi5JMkNNLl9ZN0MuX1NQ RSwgRFNQNCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICAgICAgICAgIERBRDQg PSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIERTUDQgPSBBcmcyCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoSUlDNCkgLyogXF9TQl8uUEMwMi5JMkNNLklJQzQgKi8K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJ QzUsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJv bGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAyLkkyQzUiLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZN0QsIEV4 Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoSUlDNSwgXF9TQi5QQzAyLkkyQ00uX1k3RC5fQURSLCBEQUQ1KSAgLy8gX0FEUjogQWRk cmVzcwogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChJSUM1LCBc X1NCLlBDMDIuSTJDTS5fWTdELl9TUEUsIERTUDUpICAvLyBfU1BFOiBTcGVlZAogICAgICAg ICAgICAgICAgICAgICAgICBEQUQ1ID0gQXJnMQogICAgICAgICAgICAgICAgICAgICAgICBE U1A1ID0gQXJnMgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKElJQzUpIC8qIFxf U0JfLlBDMDIuSTJDTS5JSUM1ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIENhc2UgKDB4MEMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChJSUM2LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1Nlcmlh bEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0Iu UEMwMi5JMkM2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNv dXJjZUNvbnN1bWVyLCBfWTdFLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKElJQzYsIFxfU0IuUEMwMi5JMkNNLl9ZN0UuX0FE UiwgREFENikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlRFdvcmRGaWVsZCAoSUlDNiwgXF9TQi5QQzAyLkkyQ00uX1k3RS5fU1BFLCBEU1A2KSAg Ly8gX1NQRTogU3BlZWQKICAgICAgICAgICAgICAgICAgICAgICAgREFENiA9IEFyZzEKICAg ICAgICAgICAgICAgICAgICAgICAgRFNQNiA9IEFyZzIKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChJSUM2KSAvKiBcX1NCXy5QQzAyLkkyQ00uSUlDNiAqLwogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDBEKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlDNywgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlh dGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJl c3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDIuSTJDNyIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1k3RiwgRXhjbHVzaXZlLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChJSUM3LCBc X1NCLlBDMDIuSTJDTS5fWTdGLl9BRFIsIERBRDcpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElJQzcsIFxfU0IuUEMwMi5J MkNNLl9ZN0YuX1NQRSwgRFNQNykgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICAg ICAgICAgIERBRDcgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgICAgIERTUDcgPSBBcmcy CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSUlDNykgLyogXF9TQl8uUEMwMi5J MkNNLklJQzcgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg RGVmYXVsdAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU1BJTSwgMywgU2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3dpdGNoIChUb0ludGVnZXIgKEFy ZzApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDcp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChJ SUM3LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNwaVNlcmlhbEJ1c1YyICgweDAwMDAsIFBvbGFy aXR5TG93LCBGb3VyV2lyZU1vZGUsIDB4MDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDk4OTY4MCwgQ2xvY2tQb2xhcml0eUxv dywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9ja1BoYXNlRmlyc3QsICJc XF9TQi5QQzAyLlNQSTEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsIF9ZODAsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoSUlDNywgXF9TQi5QQzAyLlNQSU0uX1k4 MC5fUEhBLCBEUEg3KSAgLy8gX1BIQTogQ2xvY2sgUGhhc2UKICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoSUlDNywgXF9TQi5QQzAyLlNQSU0uX1k4MC5fU1BF LCBEU1A3KSAgLy8gX1NQRTogU3BlZWQKICAgICAgICAgICAgICAgICAgICAgICAgRFBINyA9 IEFyZzEKICAgICAgICAgICAgICAgICAgICAgICAgRFNQNyA9IEFyZzIKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChJSUM3KSAvKiBcX1NCXy5QQzAyLlNQSU0uSUlDNyAqLwog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA4KQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoSUlD OCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTcGlTZXJpYWxCdXNWMiAoMHgwMDAwLCBQb2xhcml0 eUxvdywgRm91cldpcmVNb2RlLCAweDA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDA5ODk2ODAsIENsb2NrUG9sYXJpdHlMb3cs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvY2tQaGFzZUZpcnN0LCAiXFxf U0IuUEMwMi5TUEkyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBS ZXNvdXJjZUNvbnN1bWVyLCBfWTgxLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKElJQzgsIFxfU0IuUEMwMi5TUElNLl9ZODEu X1BIQSwgRFBIOCkgIC8vIF9QSEE6IENsb2NrIFBoYXNlCiAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKElJQzgsIFxfU0IuUEMwMi5TUElNLl9ZODEuX1NQRSwg RFNQOCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICAgICAgICAgIERQSDggPSBB cmcxCiAgICAgICAgICAgICAgICAgICAgICAgIERTUDggPSBBcmcyCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoSUlDOCkgLyogXF9TQl8uUEMwMi5TUElNLklJQzggKi8KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdAogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIg KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDc5LCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8geS4KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRo b2QgKFVDTU0sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IFN3aXRjaCAoVG9JbnRlZ2VyIChBcmcwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBDYXNlIChaZXJvKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoVUNNMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJp YWxCdXNWMiAoMHgwMDM4LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NC LlBDMDIuSTJDMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVz b3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4 MDAzRiwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAyLkkyQzAi LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3Vt ZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMjAsIENvbnRy b2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMi5JMkMwIiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4Y2x1 c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDI3LCBDb250cm9sbGVySW5pdGlh dGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJl c3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDIuSTJDMCIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVDTTApIC8qIFxfU0JfLlBDMDIu VUNNTS5VQ00wICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IENhc2UgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKFVDTTEsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4 MDAzOCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAyLkkyQzEi LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3Vt ZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwM0YsIENvbnRy b2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMi5JMkMxIiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4Y2x1 c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDIwLCBDb250cm9sbGVySW5pdGlh dGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJl c3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDIuSTJDMSIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAyNywgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2 MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdC aXQsICJcXF9TQi5QQzAyLkkyQzEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChVQ00xKSAvKiBcX1NCXy5QQzAyLlVDTU0uVUNNMSAq LwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAy KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo VUNNMiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDM4LCBDb250 cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDIuSTJDMiIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBFeGNs dXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAzRiwgQ29udHJvbGxlckluaXRp YXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRy ZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAyLkkyQzIiLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMjAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAw NjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3 Qml0LCAiXFxfU0IuUEMwMi5JMkMyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJp YWxCdXNWMiAoMHgwMDI3LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NC LlBDMDIuSTJDMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVz b3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFVDTTIpIC8qIFxfU0JfLlBDMDIuVUNNTS5VQ00yICovCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDMpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChVQ00zLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMzgsIENvbnRyb2xsZXJJbml0 aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRk cmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMi5JMkMzIiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4Y2x1c2l2ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDNGLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAw MDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2Rl N0JpdCwgIlxcX1NCLlBDMDIuSTJDMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2Vy aWFsQnVzVjIgKDB4MDAyMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9T Qi5QQzAyLkkyQzMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJl c291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgw eDAwMjcsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMi5JMkMz IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1 bWVyLCAsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoVUNNMykgLyogXF9TQl8uUEMwMi5VQ01NLlVDTTMgKi8KICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFVDTTQsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAzOCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgw MDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9k ZTdCaXQsICJcXF9TQi5QQzAyLkkyQzQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1Nl cmlhbEJ1c1YyICgweDAwM0YsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxf U0IuUEMwMi5JMkM0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBS ZXNvdXJjZUNvbnN1bWVyLCAsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAo MHgwMDIwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDIuSTJD NCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25z dW1lciwgLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAyNywgQ29u dHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAyLkkyQzQiLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwgRXhj bHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVQ000KSAv KiBcX1NCXy5QQzAyLlVDTU0uVUNNNCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBDYXNlICgweDA1KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoVUNNNSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMmNT ZXJpYWxCdXNWMiAoMHgwMDM4LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxc X1NCLlBDMDIuSTJDNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg UmVzb3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIg KDB4MDAzRiwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5QQzAyLkky QzUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29u c3VtZXIsICwgRXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMjAsIENv bnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuUEMwMi5JMkM1IiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4 Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXNWMiAoMHgwMDI3LCBDb250cm9sbGVySW5p dGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFk ZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLlBDMDIuSTJDNSIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLCBFeGNsdXNpdmUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVDTTUpIC8qIFxfU0JfLlBD MDIuVUNNTS5VQ001ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIERlZmF1bHQKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBTY29wZSAoX1NCLlBDMDIu STJDMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKEkyQ04sIFplcm8pCiAgICAgICAg ICAgIE5hbWUgKEkyQ1gsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKEkyQ0ksIFplcm8pCiAg ICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IElu aXRpYWxpemUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSTJDTiA9IFNEUzAgLyog XFNEUzAgKi8KICAgICAgICAgICAgICAgIEkyQ1ggPSBaZXJvCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoVFBEMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoSElEMiwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKFNCRkIsIFJlc291cmNl VGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJMmNT ZXJpYWxCdXNWMiAoMHgwMDAwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAog ICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJOVUxMIiwKICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgX1k4MiwgRXhj bHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgTmFtZSAoU0JGRywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdwaW9JbnQgKExldmVsLCBBY3RpdmVM b3csIEV4Y2x1c2l2ZUFuZFdha2UsIFB1bGxEZWZhdWx0LCAweDAwMDAsCiAgICAgICAgICAg ICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAog ICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAv LyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBO YW1lIChTQkZJLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0 aXZlTG93LCBFeGNsdXNpdmVBbmRXYWtlLCAsLCBfWTgzKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChTQkZCLCBcX1NCLlBDMDIuSTJDMC5UUEQwLl9ZODIuX0FEUiwgQkFEUikgIC8vIF9B RFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFNCRkIsIFxf U0IuUEMwMi5JMkMwLlRQRDAuX1k4Mi5fU1BFLCBTUEVEKSAgLy8gX1NQRTogU3BlZWQKICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JGRywgMHgxNywgSU5UMSkKICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFNCRkksIFxfU0IuUEMwMi5JMkMwLlRQRDAu X1k4My5fSU5ULCBJTlQyKSAgLy8gX0lOVDogSW50ZXJydXB0cwogICAgICAgICAgICAgICAg TWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoUENIQSA9PSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo T1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNSWE8gKEdQREksIE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMSA9IEdOVU0gKEdQREkpCiAgICAg ICAgICAgICAgICAgICAgICAgIElOVDIgPSBJTlVNIChHUERJKQogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKFRQRE0gPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIUE8gKEdQREksIE9uZSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeXl5eUEdQSS5TUlhPIChHUERJLCBPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElOVDEgPSBe Xl5eUEdQSS5HTlVNIChHUERJKQogICAgICAgICAgICAgICAgICAgICAgICBJTlQyID0gXl5e XlBHUEkuSU5VTSAoR1BESSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUERNID09 IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeXl5eUEdQSS5TSFBPIChHUERJLCBPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIF9ISUQg PSAiR1hUUDczMDAiCiAgICAgICAgICAgICAgICAgICAgSElEMiA9IDB4MjAKICAgICAgICAg ICAgICAgICAgICBCQURSID0gMHgyQwogICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAw MDYxQTgwCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJYWFhYMDAwMCIpICAvLyBfSElE OiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIlBOUDBDNTAiIC8q IEhJRCBQcm90b2NvbCBEZXZpY2UgKEkyQyBidXMpICovKSAgLy8gX0NJRDogQ29tcGF0aWJs ZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX1MwVywgMHgwMykgIC8vIF9TMFc6IFMwIERl dmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNlcmlh bGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IEhJREcpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChISUREIChBcmcw LCBBcmcxLCBBcmcyLCBBcmczLCBISUQyKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUUDdHKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVFA3RCAoQXJnMCwgQXJnMSwg QXJnMiwgQXJnMywgU0JGQiwgU0JGRykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVu dCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoT1NZUyA8IDB4MDdEQykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFNCRkkpIC8qIFxfU0JfLlBDMDIuSTJDMC5UUEQw LlNCRkkgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm ICgoVFBETSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoSTJDTSAoSTJDWCwg QkFEUiwgU1BFRCksIFNCRkcpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJMkNNIChJMkNYLCBC QURSLCBTUEVEKSwgU0JGSSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoVFBMMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoSElEMiwgWmVybykKICAgICAgICAgICAgICAgIE5hbWUgKFRQR0ksIFplcm8pCiAg ICAgICAgICAgICAgICBOYW1lIChTQkZCLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwg Q29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAg ICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiTlVMTCIsCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZODQsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUg KFNCRkcsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBHcGlvSW50IChMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmUsIFB1bGxV cCwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJMCIsIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3Vy Y2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCAsLCBfWTg1KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChTQkZCLCBcX1NCLlBDMDIuSTJDMC5UUEwxLl9ZODQuX0FE UiwgQkFEUikgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKFNCRkIsIFxfU0IuUEMwMi5JMkMwLlRQTDEuX1k4NC5fU1BFLCBTUEVEKSAgLy8g X1NQRTogU3BlZWQKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JGRywgMHgx NywgSU5UMSkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFNCRkksIFxfU0Iu UEMwMi5JMkMwLlRQTDEuX1k4NS5fSU5ULCBJTlQyKSAgLy8gX0lOVDogSW50ZXJydXB0cwog ICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lO STogSW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFRQ R0kgPSBUMUdJIC8qIFxUMUdJICovCiAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZP ZiAoXF9TQikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTUlhPIChUUEdJLCBPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElOVDEgPSBHTlVNIChUUEdJ KQogICAgICAgICAgICAgICAgICAgICAgICBJTlQyID0gSU5VTSAoVFBHSSkKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChUUExNID09IFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFBPIChUUEdJLCBPbmUpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT SFBPIChUUEdJLCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQgPSAiQVRN TDM0MzIiCiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIgPSBaZXJvCiAgICAgICAgICAg ICAgICAgICAgICAgIEJBRFIgPSAweDRDCiAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQg PSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSAw eDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9I SUQgPSAiQVRNTDI5NTIiCiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDRBCiAgICAgICAgICAgICAgICAgICAg ICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo VFBMVCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIF9ISUQgPSAiRUxBTjkwNDgiCiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4MTAKICAgICAgICAgICAg ICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKChUUExUID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgX0hJRCA9ICJOVFJHMDAwMSIKICAgICAgICAgICAgICAgICAgICAg ICAgSElEMiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHgwNwogICAg ICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIk5UUkcwMDAyIgogICAgICAgICAgICAg ICAgICAgICAgICBISUQyID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSAw eDY0CiAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSAweDA2KSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQgPSAiV0NPTTUwOEUiCiAgICAg ICAgICAgICAgICAgICAgICAgIEhJRDIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg QkFEUiA9IDB4MEEKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IFplcm8p KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChUUExTID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDBGNDI0MAogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgwNykp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0g IkNVU1QwMDAwIgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gVFBMSCAvKiBcVFBM SCAqLwogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gVFBMQiAvKiBcVFBMQiAqLwog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAw MDE4NkEwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoVFBMUyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gMHgw MikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNQRUQgPSAweDAwMEY0MjQwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIlhYWFgw MDAwIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfQ0lE LCAiUE5QMEM1MCIgLyogSElEIFByb3RvY29sIERldmljZSAoSTJDIGJ1cykgKi8pICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICBNZXRob2QgKF9VSUQsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEkyQ0kpIC8qIFxfU0JfLlBDMDIuSTJDMC5JMkNJ ICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoX1MwVywgMHgw NCkgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0 aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09 IEhJREcpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChISUREIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCBISUQyKSkKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUUDdHKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo VFA3RCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgU0JGQiwgU0JGRykpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChUUExUICE9IFplcm8pICYmIChJ MkNOICYgMHgwMikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQg UmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChTQkZJKSAvKiBcX1NCXy5QQzAyLkkyQzAuVFBMMS5T QkZJICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo KFRQTE0gPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJB RFIsIFNQRUQpLCBTQkZHKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoSTJDTSAoSTJDWCwgQkFE UiwgU1BFRCksIFNCRkkpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg ICAgICAgICBOYW1lIChfRFNELCBQYWNrYWdlICgweDAyKSAgLy8gX0RTRDogRGV2aWNlLVNw ZWNpZmljIERhdGEKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVG9VVUlEICgiZjg3 YTZkMjMtMjg4NC00ZmU0LWE1NWYtNjMzZDllMzM5Y2UxIikgLyogVW5rbm93biBVVUlEICov LCAKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICJpZGxlLWxhdGVuY3ktdG9sZXJhbmNlIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgIlNTLWFjdGl2ZS1sYXRlbmN5LXRvbGVyYW5j ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYKICAgICAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJGTS1hY3RpdmUtbGF0ZW5jeS10 b2xlcmFuY2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiRk1QLWFjdGl2ZS1s YXRlbmN5LXRvbGVyYW5jZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAg ICAgICAgfQoKICAgICAgICBTY29wZSAoX1NCLlBDMDIuSTJDMSkKICAgICAgICB7CiAgICAg ICAgICAgIE5hbWUgKEkyQ04sIFplcm8pCiAgICAgICAgICAgIE5hbWUgKEkyQ1gsIFplcm8p CiAgICAgICAgICAgIE5hbWUgKEkyQ0ksIE9uZSkKICAgICAgICAgICAgTWV0aG9kIChfSU5J LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6ZQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBJMkNOID0gU0RTMSAvKiBcU0RTMSAqLwogICAgICAgICAgICAg ICAgSTJDWCA9IE9uZQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFRQRDAp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEhJRDIsIFplcm8pCiAgICAg ICAgICAgICAgICBOYW1lIChTQkZCLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29u dHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAg QWRkcmVzc2luZ01vZGU3Qml0LCAiTlVMTCIsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZODYsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFNC RkcsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBHcGlvSW50IChMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmVBbmRXYWtlLCBQ dWxsRGVmYXVsdCwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJ MCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEludGVycnVw dCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2Fr ZSwgLCwgX1k4NykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAyLkky QzEuVFBEMC5fWTg2Ll9BRFIsIEJBRFIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg ICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZCLCBcX1NCLlBDMDIuSTJDMS5UUEQwLl9ZODYu X1NQRSwgU1BFRCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKFNCRkcsIDB4MTcsIElOVDEpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZp ZWxkIChTQkZJLCBcX1NCLlBDMDIuSTJDMS5UUEQwLl9ZODcuX0lOVCwgSU5UMikgIC8vIF9J TlQ6IEludGVycnVwdHMKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKFBDSEEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUlhPIChH UERJLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElOVDEgPSBHTlVNIChHUERJKQogICAgICAgICAgICAgICAgICAgICAgICBJTlQy ID0gSU5VTSAoR1BESSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUERNID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTSFBPIChHUERJLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg Xl5eXlBHUEkuU1JYTyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJTlQxID0gXl5eXlBHUEkuR05VTSAoR1BESSkKICAg ICAgICAgICAgICAgICAgICAgICAgSU5UMiA9IF5eXl5QR1BJLklOVU0gKEdQREkpCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoVFBETSA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXlBHUEkuU0hQTyAo R1BESSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBfSElEID0gIkdYVFA3MzAwIgogICAgICAgICAg ICAgICAgICAgIEhJRDIgPSAweDIwCiAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4MkMK ICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBO YW1lIChfSElELCAiWFhYWDAwMDAiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAg ICAgICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wgRGV2aWNlIChJ MkMgYnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAgIE5h bWUgKF9TMFcsIDB4MDMpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAg ICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNl LVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSBISURHKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoSElERCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgSElE MikpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzAgPT0gVFA3RykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFRQN0QgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIFNCRkIsIFNCRkcp KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChC dWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3Rh dHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBG KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKE9TWVMgPCAweDA3REMp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChTQkZJKSAvKiBcX1NCXy5QQzAyLkkyQzEuVFBEMC5TQkZJICovCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQRE0gPT0gWmVybykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNh dGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZHKSkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0 ZW5hdGVSZXNUZW1wbGF0ZSAoSTJDTSAoSTJDWCwgQkFEUiwgU1BFRCksIFNCRkkpKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFRQTDEp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEhJRDIsIFplcm8pCiAgICAg ICAgICAgICAgICBOYW1lIChUUEdJLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoU0JG QiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4 MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwg Ik5VTEwiLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVy LCBfWTg4LCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChTQkZHLCBSZXNvdXJjZVRlbXBsYXRl ICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2 ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCBQdWxsVXAsIDB4MDAwMCwKICAgICAgICAgICAg ICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8v IFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5h bWUgKFNCRkksIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3Rp dmVMb3csIEV4Y2x1c2l2ZSwgLCwgX1k4OSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JG QiwgXF9TQi5QQzAyLkkyQzEuVFBMMS5fWTg4Ll9BRFIsIEJBRFIpICAvLyBfQURSOiBBZGRy ZXNzCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZCLCBcX1NCLlBDMDIu STJDMS5UUEwxLl9ZODguX1NQRSwgU1BFRCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkcsIDB4MTcsIElOVDEpCiAgICAgICAgICAgICAg ICBDcmVhdGVEV29yZEZpZWxkIChTQkZJLCBcX1NCLlBDMDIuSTJDMS5UUEwxLl9ZODkuX0lO VCwgSU5UMikgIC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAgICAgICAgICAgIE1ldGhvZCAo X0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUUEdJID0gVDFHSSAvKiBcVDFHSSAqLwog ICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg U1JYTyAoVFBHSSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJTlQxID0gR05VTSAoVFBHSSkKICAgICAgICAgICAgICAgICAgICAg ICAgSU5UMiA9IElOVU0gKFRQR0kpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBM TSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU0hQTyAoVFBHSSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hQTyAoVFBHSSwgWmVybykKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKChUUExUID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBfSElEID0gIkFUTUwzNDMyIgogICAgICAgICAgICAgICAg ICAgICAgICBISUQyID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHg0 QwogICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIkFUTUwyOTUyIgogICAgICAg ICAgICAgICAgICAgICAgICBISUQyID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBC QURSID0gMHg0QQogICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgwMykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIkVMQU45MDQ4 IgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gT25lCiAgICAgICAgICAgICAgICAg ICAgICAgIEJBRFIgPSAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAw MDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSAweDA0KSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQgPSAi TlRSRzAwMDEiCiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIgPSBPbmUKICAgICAgICAg ICAgICAgICAgICAgICAgQkFEUiA9IDB4MDcKICAgICAgICAgICAgICAgICAgICAgICAgU1BF RCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09 IDB4MDUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg X0hJRCA9ICJOVFJHMDAwMiIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IE9uZQog ICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHg2NAogICAgICAgICAgICAgICAgICAg ICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo KFRQTFQgPT0gMHgwNikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBfSElEID0gIldDT001MDhFIgogICAgICAgICAgICAgICAgICAgICAgICBISUQy ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDBBCiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoVFBMUyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChU UExTID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSAweDAyKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9 IDB4MDAwRjQyNDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDcpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJDVVNUMDAwMCIKICAgICAgICAgICAg ICAgICAgICAgICAgSElEMiA9IFRQTEggLyogXFRQTEggKi8KICAgICAgICAgICAgICAgICAg ICAgICAgQkFEUiA9IFRQTEIgLyogXFRQTEIgKi8KICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChUUExTID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDAxODZBMAogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg U1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChUUExTID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDBGNDI0MAog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJYWFhYMDAwMCIpICAvLyBfSElEOiBIYXJkd2Fy ZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIlBOUDBDNTAiIC8qIEhJRCBQcm90 b2NvbCBEZXZpY2UgKEkyQyBidXMpICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAg ICAgICAgICAgICAgTWV0aG9kIChfVUlELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1VJRDog VW5pcXVlIElECiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChJMkNJKSAvKiBcX1NCXy5QQzAyLkkyQzEuSTJDSSAqLwogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZpY2Ug V2FrZSBTdGF0ZQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVk KSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBISURHKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSElERCAoQXJnMCwgQXJn MSwgQXJnMiwgQXJnMywgSElEMikpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzAgPT0gVFA3RykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRQN0QgKEFyZzAsIEFyZzEsIEFyZzIs IEFyZzMsIFNCRkIsIFNCRkcpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKCgoVFBMVCAhPSBaZXJvKSAmJiAoSTJDTiAmIDB4MDIpKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo U0JGSSkgLyogXF9TQl8uUEMwMi5JMkMxLlRQTDEuU0JGSSAqLwogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExNID09IFplcm8pKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRl bmF0ZVJlc1RlbXBsYXRlIChJMkNNIChJMkNYLCBCQURSLCBTUEVEKSwgU0JGRykpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVu YXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZJKSkKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX0RTRCwgUGFj a2FnZSAoMHgwMikgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFRvVVVJRCAoImY4N2E2ZDIzLTI4ODQtNGZlNC1hNTVmLTYz M2Q5ZTMzOWNlMSIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAiaWRsZS1sYXRlbmN5LXRvbGVyYW5jZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAw eEZGRkYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICJTUy1hY3RpdmUtbGF0ZW5jeS10b2xlcmFuY2UiLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHhGRkZGCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAiRk0tYWN0aXZlLWxhdGVuY3ktdG9sZXJhbmNlIiwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgIkZNUC1hY3RpdmUtbGF0ZW5jeS10b2xlcmFuY2UiLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgU2NvcGUg KF9TQi5QQzAyLkkyQzIpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChJMkNOLCBaZXJv KQogICAgICAgICAgICBOYW1lIChJMkNYLCBaZXJvKQogICAgICAgICAgICBOYW1lIChJMkNJ LCAweDAyKQogICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEkyQ04g PSBTRFMyIC8qIFxTRFMyICovCiAgICAgICAgICAgICAgICBJMkNYID0gMHgwMgogICAgICAg ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFRQRDApCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKEhJRDIsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChTQkZC LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgw MDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAi TlVMTCIsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIs IF9ZOEEsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFNCRkcsIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHcGlvSW50IChMZXZl bCwgQWN0aXZlTG93LCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLAog ICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJMCIsIDB4MDAsIFJlc291cmNlQ29u c3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg ICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw MAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwg TGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgLCwgX1k4QikKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENy ZWF0ZVdvcmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAyLkkyQzIuVFBEMC5fWThBLl9BRFIsIEJB RFIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChTQkZCLCBcX1NCLlBDMDIuSTJDMi5UUEQwLl9ZOEEuX1NQRSwgU1BFRCkgIC8vIF9TUEU6 IFNwZWVkCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkcsIDB4MTcsIElO VDEpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZJLCBcX1NCLlBDMDIu STJDMi5UUEQwLl9ZOEIuX0lOVCwgSU5UMikgIC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IElu aXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFBD SEEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTUlhPIChHUERJLCBPbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElOVDEgPSBHTlVNIChH UERJKQogICAgICAgICAgICAgICAgICAgICAgICBJTlQyID0gSU5VTSAoR1BESSkKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChUUERNID09IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFBPIChHUERJLCBPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXlBHUEkuU1JYTyAoR1BESSwg T25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBJTlQxID0gXl5eXlBHUEkuR05VTSAoR1BESSkKICAgICAgICAgICAgICAgICAgICAgICAg SU5UMiA9IF5eXl5QR1BJLklOVU0gKEdQREkpCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoVFBETSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgXl5eXlBHUEkuU0hQTyAoR1BESSwgT25lKQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBfSElEID0gIkdYVFA3MzAwIgogICAgICAgICAgICAgICAgICAgIEhJRDIgPSAweDIw CiAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4MkMKICAgICAgICAgICAgICAgICAgICBT UEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiWFhYWDAwMDAi KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQ TlAwQzUwIiAvKiBISUQgUHJvdG9jb2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6 IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDMpICAvLyBf UzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNN LCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBISURHKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo SElERCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgSElEMikpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVFA3RykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRQN0QgKEFy ZzAsIEFyZzEsIEFyZzIsIEFyZzMsIFNCRkIsIFNCRkcpKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RB LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9D UlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTQkZJKSAvKiBcX1NCXy5QQzAy LkkyQzIuVFBEMC5TQkZJICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoKFRQRE0gPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKEky Q00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZHKSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoSTJD TSAoSTJDWCwgQkFEUiwgU1BFRCksIFNCRkkpKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFRQTDEpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKEhJRDIsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChUUEdJ LCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoU0JGQiwgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1Yy ICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAg ICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIk5VTEwiLAogICAgICAgICAgICAg ICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWThDLCBFeGNsdXNpdmUsCiAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICBOYW1lIChTQkZHLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVz aXZlLCBQdWxsVXAsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQ STAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFNCRkksIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1 cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgLCwg X1k4RCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAyLkkyQzIuVFBM MS5fWThDLl9BRFIsIEJBRFIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChTQkZCLCBcX1NCLlBDMDIuSTJDMi5UUEwxLl9ZOEMuX1NQRSwg U1BFRCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KFNCRkcsIDB4MTcsIElOVDEpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChT QkZJLCBcX1NCLlBDMDIuSTJDMi5UUEwxLl9ZOEQuX0lOVCwgSU5UMikgIC8vIF9JTlQ6IElu dGVycnVwdHMKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBUUEdJID0gVDFHSSAvKiBcVDFHSSAqLwogICAgICAgICAgICAgICAgICAgIElm IChDb25kUmVmT2YgKFxfU0IpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1JYTyAoVFBHSSwgT25lKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJTlQxID0g R05VTSAoVFBHSSkKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMiA9IElOVU0gKFRQR0kp CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMTSA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hQTyAoVFBH SSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU0hQTyAoVFBHSSwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09 IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBf SElEID0gIkFUTUwzNDMyIgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gWmVybwog ICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHg0QwogICAgICAgICAgICAgICAgICAg ICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo KFRQTFQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBfSElEID0gIkFUTUwyOTUyIgogICAgICAgICAgICAgICAgICAgICAgICBISUQy ID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHg0QQogICAgICAgICAg ICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoKFRQTFQgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBfSElEID0gIkVMQU45MDQ4IgogICAgICAgICAgICAgICAgICAg ICAgICBISUQyID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDEwCiAg ICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmICgoVFBMVCA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQgPSAiTlRSRzAwMDEiCiAgICAgICAgICAg ICAgICAgICAgICAgIEhJRDIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9 IDB4MDcKICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDUpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJOVFJHMDAwMiIKICAg ICAgICAgICAgICAgICAgICAgICAgSElEMiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAg ICBCQURSID0gMHg2NAogICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4 MAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgwNikpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIldDT001 MDhFIgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgIEJBRFIgPSAweDBBCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBM UyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAw eDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoVFBMUyA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwRjQyNDAKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExU ID09IDB4MDcpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgX0hJRCA9ICJDVVNUMDAwMCIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IFRQ TEggLyogXFRQTEggKi8KICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IFRQTEIgLyog XFRQTEIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IFplcm8pKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT UEVEID0gMHgwMDAxODZBMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChU UExTID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTUEVEID0gMHgwMDBGNDI0MAogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9I SUQsICJYWFhYMDAwMCIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAg TmFtZSAoX0NJRCwgIlBOUDBDNTAiIC8qIEhJRCBQcm90b2NvbCBEZXZpY2UgKEkyQyBidXMp ICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAgICAgTWV0aG9kIChf VUlELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChJMkNJKSAvKiBcX1NCXy5QQzAy LkkyQzIuSTJDSSAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUg KF9TMFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAg ICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNw ZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMCA9PSBISURHKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoSElERCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgSElEMikp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAg PT0gVFA3RykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFRQN0QgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIFNCRkIsIFNCRkcpKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g LgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVz CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoVFBMVCAhPSBa ZXJvKSAmJiAoSTJDTiAmIDB4MDIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JT OiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0JGSSkgLyogXF9TQl8uUEMwMi5J MkMyLlRQTDEuU0JGSSAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKChUUExNID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJMkNN IChJMkNYLCBCQURSLCBTUEVEKSwgU0JGRykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00g KEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZJKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTmFtZSAoX0RTRCwgUGFja2FnZSAoMHgwMikgIC8vIF9EU0Q6 IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRv VVVJRCAoImY4N2E2ZDIzLTI4ODQtNGZlNC1hNTVmLTYzM2Q5ZTMzOWNlMSIpIC8qIFVua25v d24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiaWRsZS1sYXRlbmN5LXRvbGVy YW5jZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYKICAgICAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJTUy1hY3RpdmUtbGF0ZW5j eS10b2xlcmFuY2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiRk0tYWN0aXZl LWxhdGVuY3ktdG9sZXJhbmNlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgog ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIkZN UC1hY3RpdmUtbGF0ZW5jeS10b2xlcmFuY2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHhGRkZGCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9KQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKF9TQi5QQzAyLkkyQzMpCiAgICAg ICAgewogICAgICAgICAgICBOYW1lIChJMkNOLCBaZXJvKQogICAgICAgICAgICBOYW1lIChJ MkNYLCBaZXJvKQogICAgICAgICAgICBOYW1lIChJMkNJLCAweDAzKQogICAgICAgICAgICBN ZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEkyQ04gPSBTRFMzIC8qIFxTRFMzICovCiAg ICAgICAgICAgICAgICBJMkNYID0gMHgwMwogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKFRQRDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEhJRDIs IFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChTQkZCLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIg KDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAg ICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiTlVMTCIsCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZOEUsIEV4Y2x1c2l2ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgIE5hbWUgKFNCRkcsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBHcGlvSW50IChMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNp dmVBbmRXYWtlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICAg ICAiXFxfU0IuR1BJMCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTmFtZSAoU0JGSSwg UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhj bHVzaXZlQW5kV2FrZSwgLCwgX1k4RikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JGQiwg XF9TQi5QQzAyLkkyQzMuVFBEMC5fWThFLl9BRFIsIEJBRFIpICAvLyBfQURSOiBBZGRyZXNz CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZCLCBcX1NCLlBDMDIuSTJD My5UUEQwLl9ZOEUuX1NQRSwgU1BFRCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAg ICBDcmVhdGVXb3JkRmllbGQgKFNCRkcsIDB4MTcsIElOVDEpCiAgICAgICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChTQkZJLCBcX1NCLlBDMDIuSTJDMy5UUEQwLl9ZOEYuX0lOVCwg SU5UMikgIC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lO SSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFBDSEEgPT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE9TWVMgPCAweDA3 REMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTUlhPIChHUERJLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElOVDEgPSBHTlVNIChHUERJKQogICAgICAgICAgICAgICAg ICAgICAgICBJTlQyID0gSU5VTSAoR1BESSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChUUERNID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTSFBPIChHUERJLCBPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lT IDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgXl5eXlBHUEkuU1JYTyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJTlQxID0gXl5eXlBHUEkuR05V TSAoR1BESSkKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMiA9IF5eXl5QR1BJLklOVU0g KEdQREkpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBETSA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5e XlBHUEkuU0hQTyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBfSElEID0gIkdYVFA3MzAw IgogICAgICAgICAgICAgICAgICAgIEhJRDIgPSAweDIwCiAgICAgICAgICAgICAgICAgICAg QkFEUiA9IDB4MkMKICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBOYW1lIChfSElELCAiWFhYWDAwMDAiKSAgLy8gX0hJRDogSGFyZHdhcmUg SUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9j b2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAg ICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDMpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBT dGF0ZQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8g X0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMCA9PSBISURHKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSElERCAoQXJnMCwgQXJnMSwgQXJn MiwgQXJnMywgSElEMikpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzAgPT0gVFA3RykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFRQN0QgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMs IFNCRkIsIFNCRkcpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2Ug U2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKE9T WVMgPCAweDA3REMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChTQkZJKSAvKiBcX1NCXy5QQzAyLkkyQzMuVFBEMC5TQkZJICovCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQRE0gPT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQp LCBTQkZHKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoSTJDTSAoSTJDWCwgQkFEUiwgU1BFRCks IFNCRkkpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKFRQTDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEhJRDIs IFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChUUEdJLCBaZXJvKQogICAgICAgICAgICAg ICAgTmFtZSAoU0JGQiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJ bml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3Np bmdNb2RlN0JpdCwgIk5VTEwiLAogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNv dXJjZUNvbnN1bWVyLCBfWTkwLCBFeGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChTQkZHLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg R3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCBQdWxsVXAsIDB4MDAwMCwK ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNv bnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw MDAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgIE5hbWUgKFNCRkksIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIs IExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgLCwgX1k5MSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdv cmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAyLkkyQzMuVFBMMS5fWTkwLl9BRFIsIEJBRFIpICAv LyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZC LCBcX1NCLlBDMDIuSTJDMy5UUEwxLl9ZOTAuX1NQRSwgU1BFRCkgIC8vIF9TUEU6IFNwZWVk CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkcsIDB4MTcsIElOVDEpCiAg ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZJLCBcX1NCLlBDMDIuSTJDMy5U UEwxLl9ZOTEuX0lOVCwgSU5UMikgIC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxp emUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUUEdJID0gVDFHSSAv KiBcVDFHSSAqLwogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lT IDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU1JYTyAoVFBHSSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBJTlQxID0gR05VTSAoVFBHSSkKICAgICAgICAg ICAgICAgICAgICAgICAgSU5UMiA9IElOVU0gKFRQR0kpCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoVFBMTSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU0hQTyAoVFBHSSwgT25lKQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hQTyAoVFBHSSwg WmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIkFUTUwzNDMyIgogICAg ICAgICAgICAgICAgICAgICAgICBISUQyID0gWmVybwogICAgICAgICAgICAgICAgICAgICAg ICBCQURSID0gMHg0QwogICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4 MAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgwMikpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIkFUTUwy OTUyIgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gWmVybwogICAgICAgICAgICAg ICAgICAgICAgICBCQURSID0gMHg0QQogICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0g MHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgw MykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElE ID0gIkVMQU45MDQ4IgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gT25lCiAgICAg ICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDEwCiAgICAgICAgICAgICAgICAgICAgICAg IFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBM VCA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIF9ISUQgPSAiTlRSRzAwMDEiCiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIgPSBP bmUKICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4MDcKICAgICAgICAgICAgICAg ICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKChUUExUID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgX0hJRCA9ICJOVFJHMDAwMiIKICAgICAgICAgICAgICAgICAgICAgICAg SElEMiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHg2NAogICAgICAg ICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoKFRQTFQgPT0gMHgwNikpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBfSElEID0gIldDT001MDhFIgogICAgICAgICAgICAgICAg ICAgICAgICBISUQyID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDBB CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4 MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChUUExTID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSAw eDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU1BFRCA9IDB4MDAwRjQyNDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDcpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJDVVNUMDAwMCIK ICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IFRQTEggLyogXFRQTEggKi8KICAgICAg ICAgICAgICAgICAgICAgICAgQkFEUiA9IFRQTEIgLyogXFRQTEIgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChUUExTID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDAxODZBMAogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQ TFMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0g MHgwMDBGNDI0MAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJYWFhYMDAwMCIpICAvLyBf SElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIlBOUDBDNTAi IC8qIEhJRCBQcm90b2NvbCBEZXZpY2UgKEkyQyBidXMpICovKSAgLy8gX0NJRDogQ29tcGF0 aWJsZSBJRAogICAgICAgICAgICAgICAgTWV0aG9kIChfVUlELCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChJMkNJKSAvKiBcX1NCXy5QQzAyLkkyQzMuSTJDSSAqLwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDQpICAvLyBfUzBX OiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0 LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBISURHKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSElE RCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgSElEMikpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVFA3RykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRQN0QgKEFyZzAs IEFyZzEsIEFyZzIsIEFyZzMsIFNCRkIsIFNCRkcpKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKCgoVFBMVCAhPSBaZXJvKSAmJiAoSTJDTiAmIDB4MDIp KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNl dHRpbmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lT IDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoU0JGSSkgLyogXF9TQl8uUEMwMi5JMkMzLlRQTDEuU0JGSSAqLwogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExNID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJMkNNIChJMkNYLCBCQURSLCBTUEVEKSwg U0JGRykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBT QkZJKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFt ZSAoX0RTRCwgUGFja2FnZSAoMHgwMikgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRh CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRvVVVJRCAoImY4N2E2ZDIzLTI4ODQt NGZlNC1hNTVmLTYzM2Q5ZTMzOWNlMSIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAiaWRsZS1sYXRlbmN5LXRvbGVyYW5jZSIsIAogICAgICAgICAgICAg ICAgICAgICAgICAweEZGRkYKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICJTUy1hY3RpdmUtbGF0ZW5jeS10b2xlcmFuY2UiLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAiRk0tYWN0aXZlLWxhdGVuY3ktdG9sZXJhbmNlIiwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIkZNUC1hY3RpdmUtbGF0ZW5jeS10b2xl cmFuY2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAg ICAgICAgU2NvcGUgKF9TQi5QQzAyLkkyQzQpCiAgICAgICAgewogICAgICAgICAgICBOYW1l IChJMkNOLCBaZXJvKQogICAgICAgICAgICBOYW1lIChJMkNYLCBaZXJvKQogICAgICAgICAg ICBOYW1lIChJMkNJLCAweDA0KQogICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIEkyQ04gPSBTRFM0IC8qIFxTRFM0ICovCiAgICAgICAgICAgICAgICBJMkNYID0g MHgwNAogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFRQRDApCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEhJRDIsIFplcm8pCiAgICAgICAgICAgICAg ICBOYW1lIChTQkZCLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlcklu aXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2lu Z01vZGU3Qml0LCAiTlVMTCIsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291 cmNlQ29uc3VtZXIsIF9ZOTIsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFNCRkcsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBH cGlvSW50IChMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxsRGVmYXVs dCwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJMCIsIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgTmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3Vy Y2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgLCwgX1k5 MykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw MDAwMDAsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAyLkkyQzQuVFBEMC5f WTkyLl9BRFIsIEJBRFIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChTQkZCLCBcX1NCLlBDMDIuSTJDNC5UUEQwLl9ZOTIuX1NQRSwgU1BF RCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNC RkcsIDB4MTcsIElOVDEpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZJ LCBcX1NCLlBDMDIuSTJDNC5UUEQwLl9ZOTMuX0lOVCwgSU5UMikgIC8vIF9JTlQ6IEludGVy cnVwdHMKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKFBDSEEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUlhPIChHUERJLCBPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElO VDEgPSBHTlVNIChHUERJKQogICAgICAgICAgICAgICAgICAgICAgICBJTlQyID0gSU5VTSAo R1BESSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUERNID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFBP IChHUERJLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXlBHUEku U1JYTyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJTlQxID0gXl5eXlBHUEkuR05VTSAoR1BESSkKICAgICAgICAgICAg ICAgICAgICAgICAgSU5UMiA9IF5eXl5QR1BJLklOVU0gKEdQREkpCiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoVFBETSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXlBHUEkuU0hQTyAoR1BESSwgT25l KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBfSElEID0gIkdYVFA3MzAwIgogICAgICAgICAgICAgICAgICAg IEhJRDIgPSAweDIwCiAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4MkMKICAgICAgICAg ICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfSElE LCAiWFhYWDAwMDAiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5h bWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9jb2wgRGV2aWNlIChJMkMgYnVzKSAq LykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9TMFcs IDB4MDMpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICAgICAg TWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmlj IE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJn MCA9PSBISURHKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoSElERCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgSElEMikpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVFA3 RykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFRQN0QgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIFNCRkIsIFNCRkcpKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9u ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTQkZJKSAv KiBcX1NCXy5QQzAyLkkyQzQuVFBEMC5TQkZJICovCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBJZiAoKFRQRE0gPT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVz VGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZHKSkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNU ZW1wbGF0ZSAoSTJDTSAoSTJDWCwgQkFEUiwgU1BFRCksIFNCRkkpKQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFRQTDEpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKEhJRDIsIFplcm8pCiAgICAgICAgICAgICAg ICBOYW1lIChUUEdJLCBaZXJvKQogICAgICAgICAgICAgICAgTmFtZSAoU0JGQiwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEky Y1NlcmlhbEJ1c1YyICgweDAwMDAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAs CiAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIk5VTEwiLAog ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTk0LCBF eGNsdXNpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBOYW1lIChTQkZHLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2 ZUxvdywgRXhjbHVzaXZlLCBQdWxsVXAsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAg ICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFNCRkks IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4 Y2x1c2l2ZSwgLCwgX1k5NSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JGQiwgXF9TQi5Q QzAyLkkyQzQuVFBMMS5fWTk0Ll9BRFIsIEJBRFIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZCLCBcX1NCLlBDMDIuSTJDNC5UUEwx Ll9ZOTQuX1NQRSwgU1BFRCkgIC8vIF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICBDcmVh dGVXb3JkRmllbGQgKFNCRkcsIDB4MTcsIElOVDEpCiAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChTQkZJLCBcX1NCLlBDMDIuSTJDNC5UUEwxLl9ZOTUuX0lOVCwgSU5UMikg IC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBUUEdJID0gVDBHSSAvKiBcVDBHSSAqLwogICAgICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1JYTyAoVFBH SSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJTlQxID0gR05VTSAoVFBHSSkKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMiA9 IElOVU0gKFRQR0kpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMTSA9PSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU0hQTyAoVFBHSSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU0hQTyAoVFBHSSwgWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKChUUExUID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBfSElEID0gIkFUTUwzNDMyIgogICAgICAgICAgICAgICAgICAgICAgICBI SUQyID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHg0QwogICAgICAg ICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoKFRQTFQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBfSElEID0gIkFUTUwyOTUyIgogICAgICAgICAgICAgICAg ICAgICAgICBISUQyID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHg0 QQogICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIkVMQU45MDQ4IgogICAgICAg ICAgICAgICAgICAgICAgICBISUQyID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIEJB RFIgPSAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoVFBMVCA9PSAweDA0KSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9ISUQgPSAiTlRSRzAwMDEi CiAgICAgICAgICAgICAgICAgICAgICAgIEhJRDIgPSBPbmUKICAgICAgICAgICAgICAgICAg ICAgICAgQkFEUiA9IDB4MDcKICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAw NjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDUpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJO VFJHMDAwMiIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IE9uZQogICAgICAgICAg ICAgICAgICAgICAgICBCQURSID0gMHg2NAogICAgICAgICAgICAgICAgICAgICAgICBTUEVE ID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0g MHgwNikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBf SElEID0gIldDT001MDhFIgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gT25lCiAg ICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDBBCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoVFBMUyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IE9u ZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSAweDAyKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwRjQy NDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKChUUExUID09IDB4MDcpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgX0hJRCA9ICJDVVNUMDAwMCIKICAgICAgICAgICAgICAgICAgICAg ICAgSElEMiA9IFRQTEggLyogXFRQTEggKi8KICAgICAgICAgICAgICAgICAgICAgICAgQkFE UiA9IFRQTEIgLyogXFRQTEIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUExT ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTUEVEID0gMHgwMDAxODZBMAogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFMgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4 MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChUUExTID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDBGNDI0MAogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsICJYWFhYMDAwMCIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAg ICAgICAgICAgICAgTmFtZSAoX0NJRCwgIlBOUDBDNTAiIC8qIEhJRCBQcm90b2NvbCBEZXZp Y2UgKEkyQyBidXMpICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAg ICAgTWV0aG9kIChfVUlELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1VJRDogVW5pcXVlIElE CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChJMkNJKSAv KiBcX1NCXy5QQzAyLkkyQzQuSTJDSSAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE5hbWUgKF9TMFcsIDB4MDQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0 ZQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RT TTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMCA9PSBISURHKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSElERCAoQXJnMCwgQXJnMSwgQXJnMiwg QXJnMywgSElEMikpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBJZiAoKEFyZzAgPT0gVFA3RykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFRQN0QgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIFNC RkIsIFNCRkcpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYg KCgoVFBMVCAhPSBaZXJvKSAmJiAoSTJDTiAmIDB4MDIpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0JGSSkgLyog XF9TQl8uUEMwMi5JMkM0LlRQTDEuU0JGSSAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKChUUExNID09IFplcm8pKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1Rl bXBsYXRlIChJMkNNIChJMkNYLCBCQURSLCBTUEVEKSwgU0JGRykpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVt cGxhdGUgKEkyQ00gKEkyQ1gsIEJBRFIsIFNQRUQpLCBTQkZJKSkKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX0RTRCwgUGFja2FnZSAoMHgw MikgIC8vIF9EU0Q6IERldmljZS1TcGVjaWZpYyBEYXRhCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFRvVVVJRCAoImY4N2E2ZDIzLTI4ODQtNGZlNC1hNTVmLTYzM2Q5ZTMzOWNl MSIpIC8qIFVua25vd24gVVVJRCAqLywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiaWRsZS1s YXRlbmN5LXRvbGVyYW5jZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYKICAg ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJTUy1h Y3RpdmUtbGF0ZW5jeS10b2xlcmFuY2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhG RkZGCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAiRk0tYWN0aXZlLWxhdGVuY3ktdG9sZXJhbmNlIiwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkZGRgogICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgIkZNUC1hY3RpdmUtbGF0ZW5jeS10b2xlcmFuY2UiLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKF9TQi5QQzAy LkkyQzUpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChJMkNOLCBaZXJvKQogICAgICAg ICAgICBOYW1lIChJMkNYLCBaZXJvKQogICAgICAgICAgICBOYW1lIChJMkNJLCAweDA1KQog ICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJ bml0aWFsaXplCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEkyQ04gPSBTRFM1IC8q IFxTRFM1ICovCiAgICAgICAgICAgICAgICBJMkNYID0gMHgwNQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBEZXZpY2UgKFRQRDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IE5hbWUgKEhJRDIsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChTQkZCLCBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSTJj U2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiTlVMTCIsCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZOTYsIEV4 Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgIE5hbWUgKFNCRkcsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHcGlvSW50IChMZXZlbCwgQWN0aXZl TG93LCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLAogICAgICAgICAg ICAgICAgICAgICAgICAiXFxfU0IuR1BJMCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwK ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7ICAg Ly8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg TmFtZSAoU0JGSSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFj dGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgLCwgX1k5NykKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoU0JGQiwgXF9TQi5QQzAyLkkyQzUuVFBEMC5fWTk2Ll9BRFIsIEJBRFIpICAvLyBf QURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZCLCBc X1NCLlBDMDIuSTJDNS5UUEQwLl9ZOTYuX1NQRSwgU1BFRCkgIC8vIF9TUEU6IFNwZWVkCiAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkcsIDB4MTcsIElOVDEpCiAgICAg ICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZJLCBcX1NCLlBDMDIuSTJDNS5UUEQw Ll9ZOTcuX0lOVCwgSU5UMikgIC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFBDSEEgPT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTUlhPIChHUERJLCBPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElOVDEgPSBHTlVNIChHUERJKQogICAg ICAgICAgICAgICAgICAgICAgICBJTlQyID0gSU5VTSAoR1BESSkKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChUUERNID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSFBPIChHUERJLCBPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgXl5eXlBHUEkuU1JYTyAoR1BESSwgT25lKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJTlQxID0g Xl5eXlBHUEkuR05VTSAoR1BESSkKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMiA9IF5e Xl5QR1BJLklOVU0gKEdQREkpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBETSA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgXl5eXlBHUEkuU0hQTyAoR1BESSwgT25lKQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBfSElE ID0gIkdYVFA3MzAwIgogICAgICAgICAgICAgICAgICAgIEhJRDIgPSAweDIwCiAgICAgICAg ICAgICAgICAgICAgQkFEUiA9IDB4MkMKICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgw MDA2MUE4MAogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiWFhYWDAwMDAiKSAgLy8gX0hJ RDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAv KiBISUQgUHJvdG9jb2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGli bGUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDMpICAvLyBfUzBXOiBTMCBE ZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJp YWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBISURHKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSElERCAoQXJn MCwgQXJnMSwgQXJnMiwgQXJnMywgSElEMikpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVFA3RykpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRQN0QgKEFyZzAsIEFyZzEs IEFyZzIsIEFyZzMsIFNCRkIsIFNCRkcpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJl bnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKE9TWVMgPCAweDA3REMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChTQkZJKSAvKiBcX1NCXy5QQzAyLkkyQzUuVFBE MC5TQkZJICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJ ZiAoKFRQRE0gPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gs IEJBRFIsIFNQRUQpLCBTQkZHKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoSTJDTSAoSTJDWCwg QkFEUiwgU1BFRCksIFNCRkkpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBEZXZpY2UgKFRQTDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IE5hbWUgKEhJRDIsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChUUEdJLCBaZXJvKQog ICAgICAgICAgICAgICAgTmFtZSAoU0JGQiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1c1YyICgweDAwMDAs IENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAgICAgICAg ICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIk5VTEwiLAogICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCBfWTk4LCBFeGNsdXNpdmUsCiAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1l IChTQkZHLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCBQdWxs VXAsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAw LCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFNCRkksIFJlc291cmNlVGVtcGxhdGUgKCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291 cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgLCwgX1k5OSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoU0JGQiwgXF9TQi5QQzAyLkkyQzUuVFBMMS5fWTk4Ll9B RFIsIEJBRFIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChTQkZCLCBcX1NCLlBDMDIuSTJDNS5UUEwxLl9ZOTguX1NQRSwgU1BFRCkgIC8v IF9TUEU6IFNwZWVkCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFNCRkcsIDB4 MTcsIElOVDEpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQkZJLCBcX1NC LlBDMDIuSTJDNS5UUEwxLl9ZOTkuX0lOVCwgSU5UMikgIC8vIF9JTlQ6IEludGVycnVwdHMK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9J Tkk6IEluaXRpYWxpemUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBU UEdJID0gVDFHSSAvKiBcVDFHSSAqLwogICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFxfU0IpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU1JYTyAoVFBHSSwgT25lKQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJTlQxID0gR05VTSAoVFBH SSkKICAgICAgICAgICAgICAgICAgICAgICAgSU5UMiA9IElOVU0gKFRQR0kpCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoVFBMTSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hQTyAoVFBHSSwgT25lKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg U0hQTyAoVFBHSSwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIkFU TUwzNDMyIgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gWmVybwogICAgICAgICAg ICAgICAgICAgICAgICBCQURSID0gMHg0QwogICAgICAgICAgICAgICAgICAgICAgICBTUEVE ID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0g MHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBf SElEID0gIkFUTUwyOTUyIgogICAgICAgICAgICAgICAgICAgICAgICBISUQyID0gWmVybwog ICAgICAgICAgICAgICAgICAgICAgICBCQURSID0gMHg0QQogICAgICAgICAgICAgICAgICAg ICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo KFRQTFQgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBfSElEID0gIkVMQU45MDQ4IgogICAgICAgICAgICAgICAgICAgICAgICBISUQy ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIEJBRFIgPSAweDEwCiAgICAgICAgICAg ICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgwCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIElmICgoVFBMVCA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIF9ISUQgPSAiTlRSRzAwMDEiCiAgICAgICAgICAgICAgICAgICAg ICAgIEhJRDIgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IDB4MDcKICAg ICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9ICJOVFJHMDAwMiIKICAgICAgICAgICAg ICAgICAgICAgICAgSElEMiA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBCQURSID0g MHg2NAogICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgwMDA2MUE4MAogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBJZiAoKFRQTFQgPT0gMHgwNikpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfSElEID0gIldDT001MDhFIgogICAg ICAgICAgICAgICAgICAgICAgICBISUQyID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg IEJBRFIgPSAweDBBCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoVFBMUyA9PSBaZXJv KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUQgPSAweDAwMDYxQTgw CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoVFBMUyA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwRjQyNDAKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChUUExUID09IDB4MDcp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgX0hJRCA9 ICJDVVNUMDAwMCIKICAgICAgICAgICAgICAgICAgICAgICAgSElEMiA9IFRQTEggLyogXFRQ TEggKi8KICAgICAgICAgICAgICAgICAgICAgICAgQkFEUiA9IFRQTEIgLyogXFRQTEIgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IFplcm8pKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVEID0gMHgw MDAxODZBMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKFRQTFMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU1BFRCA9IDB4MDAwNjFBODAKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUUExTID09IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTUEVEID0gMHgwMDBGNDI0MAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJYWFhY MDAwMCIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJ RCwgIlBOUDBDNTAiIC8qIEhJRCBQcm90b2NvbCBEZXZpY2UgKEkyQyBidXMpICovKSAgLy8g X0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAgICAgTWV0aG9kIChfVUlELCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChJMkNJKSAvKiBcX1NCXy5QQzAyLkkyQzUuSTJD SSAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4 MDQpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICAgICAgTWV0 aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1l dGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSBISURHKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoSElERCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgSElEMikpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVFA3Rykp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFRQN0QgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIFNCRkIsIFNCRkcpKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoVFBMVCAhPSBaZXJvKSAmJiAo STJDTiAmIDB4MDIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50 IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKChPU1lTIDwgMHgwN0RDKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoU0JGSSkgLyogXF9TQl8uUEMwMi5JMkM1LlRQTDEu U0JGSSAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KChUUExNID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChJMkNNIChJMkNYLCBC QURSLCBTUEVEKSwgU0JGRykpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKEkyQ00gKEkyQ1gsIEJB RFIsIFNQRUQpLCBTQkZJKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTmFtZSAoX0RTRCwgUGFja2FnZSAoMHgwMikgIC8vIF9EU0Q6IERldmljZS1T cGVjaWZpYyBEYXRhCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRvVVVJRCAoImY4 N2E2ZDIzLTI4ODQtNGZlNC1hNTVmLTYzM2Q5ZTMzOWNlMSIpIC8qIFVua25vd24gVVVJRCAq LywgCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAiaWRsZS1sYXRlbmN5LXRvbGVyYW5jZSIsIAog ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYKICAgICAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJTUy1hY3RpdmUtbGF0ZW5jeS10b2xlcmFu Y2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiRk0tYWN0aXZlLWxhdGVuY3kt dG9sZXJhbmNlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRgogICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIkZNUC1hY3RpdmUt bGF0ZW5jeS10b2xlcmFuY2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQog ICAgICAgIH0KCiAgICAgICAgU2NvcGUgKF9TQi5QQzAyLlNQSTEpCiAgICAgICAgewogICAg ICAgICAgICBOYW1lIChTUElQLCBaZXJvKQogICAgICAgICAgICBOYW1lIChTUElYLCBaZXJv KQogICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5J OiBJbml0aWFsaXplCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFNQSVAgPSBTRFM3 IC8qIFxTRFM3ICovCiAgICAgICAgICAgICAgICBTUElYID0gMHgwNwogICAgICAgICAgICB9 CgogICAgICAgICAgICBEZXZpY2UgKEZQTlQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0hJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJl IElECiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChGUFRUID09 IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKCJGUEMxMDExIikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIElmICgoRlBUVCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoIkZQQzEwMjAiKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChGUFRUID09IDB4MDMpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiVkZTSTYx MDEiKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChG UFRUID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgiVkZTSTc1MDAiKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChGUFRUID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiRUdJUzAzMDAiKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChGUFRUID09IDB4MDYp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgiRlBDMTAyMSIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKCJEVU1ZMDAwMCIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTogSW5pdGlhbGl6 ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNIUE8gKEdGUEksIE9u ZSkKICAgICAgICAgICAgICAgICAgICBTSFBPIChHRlBTLCBPbmUpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKCgoRlBUVCAhPSBaZXJvKSAmJiAoU1BJUCA9PSBPbmUpKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6 ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0lv IChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlv bk91dHB1dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJMCIs IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoSUJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZl bCwgQWN0aXZlTG93LCBFeGNsdXNpdmVBbmRXYWtlLCAsLCBfWTlBKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLAog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICBOYW1lIChHQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW50IChMZXZlbCwg QWN0aXZlTG93LCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNv bnN1bWVyLCBfWTlCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChVQlVGLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAw LCBJb1Jlc3RyaWN0aW9uSW5wdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGlu IGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQkJVRiwgMHgxNywgU1BJTikKICAgICAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEdCVUYsIDB4MTcsIEdQSU4pCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoSUJVRiwgXF9TQi5QQzAyLlNQSTEuRlBO VC5fQ1JTLl9ZOUEuX0lOVCwgSVBJTikgIC8vIF9JTlQ6IEludGVycnVwdHMKICAgICAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFVCVUYsIDB4MTcsIFVQSU4pCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKElCVUYsIFxfU0IuUEMwMi5TUEkxLkZQTlQu X0NSUy5fWTlBLl9MTCwgSUxWTCkgIC8vIF9MTF86IExvdyBMZXZlbAogICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJpdEZpZWxkIChJQlVGLCBcX1NCLlBDMDIuU1BJMS5GUE5ULl9DUlMu X1k5QS5fSEUsIElUUkcpICAvLyBfSEVfOiBIaWdoLUVkZ2UKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVGaWVsZCAoR0JVRiwgXF9TQi5QQzAyLlNQSTEuRlBOVC5fQ1JTLl9ZOUIuX1BP TCwgMHgwMiwgR0xWTCkgIC8vIF9QT0w6IFBvbGFyaXR5CiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlQml0RmllbGQgKEdCVUYsIFxfU0IuUEMwMi5TUEkxLkZQTlQuX0NSUy5fWTlCLl9N T0QsIEdUUkcpICAvLyBfTU9EOiBNb2RlCiAgICAgICAgICAgICAgICAgICAgU1BJTiA9IEdO VU0gKEdGUFMpCiAgICAgICAgICAgICAgICAgICAgR1BJTiA9IEdOVU0gKEdGUEkpCiAgICAg ICAgICAgICAgICAgICAgSVBJTiA9IElOVU0gKEdGUEkpCiAgICAgICAgICAgICAgICAgICAg VVBJTiA9IEdOVU0gKEdGUEkpCiAgICAgICAgICAgICAgICAgICAgSWYgKCgoRlBUVCA9PSAw eDAyKSB8fCAoRlBUVCA9PSAweDA2KSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJTFZMID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBJ VFJHID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIEdMVkwgPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgICAgIEdUUkcgPSBPbmUKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmICgoRlBUVCA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElMVkwgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgICAgIElUUkcgPSBPbmUKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFN3aXRjaCAoVG9JbnRlZ2VyIChGUFRUKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMDk4 OTY4MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMSA9IDB4MDAyREM2QzAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICBDYXNlICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAwN0ExMjAwCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICBDYXNlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSAweDAwN0ExMjAwCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwx ID0gMHgwMEY0MjQwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVy bwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENh c2UgKDB4MDYpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMSA9IDB4MDAyREM2QzAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBEZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFplcm8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRlBUVCA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChTUElNIChTUElYLCBMb2NhbDAsIExvY2Fs MSksIEJCVUYpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKCgoRlBUVCA9PSAweDA0KSAmJiAoRlBUTSA9PSBaZXJvKSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVz VGVtcGxhdGUgKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKFNQSU0gKFNQSVgsIExvY2FsMCwg TG9jYWwxKSwgQkJVRiksIENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKFVCVUYsIEdCVUYKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKCgoRlBUVCA9PSAweDA0KSAmJiAoRlBUTSAhPSBaZXJv KSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKFNQ SU0gKFNQSVgsIExvY2FsMCwgTG9jYWwxKSwgQkJVRiksIENvbmNhdGVuYXRlUmVzVGVtcGxh dGUgKFVCVUYsIElCVUYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChGUFRNID09IFplcm8p KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChTUElN IChTUElYLCBMb2NhbDAsIExvY2FsMSksIEJCVUYpLCBHQlVGKSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1w bGF0ZSAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoU1BJTSAoU1BJWCwgTG9jYWwwLCBMb2Nh bDEpLCBCQlVGKSwgSUJVRikpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIFNjb3BlIChfU0IuUEMwMi5TUEkyKQogICAgICAgIHsKICAgICAg ICAgICAgTmFtZSAoU1BJUCwgWmVybykKICAgICAgICAgICAgTmFtZSAoU1BJWCwgWmVybykK ICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0lOSTog SW5pdGlhbGl6ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTUElQID0gU0RTOCAv KiBcU0RTOCAqLwogICAgICAgICAgICAgICAgU1BJWCA9IDB4MDgKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChGUE5UKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBNZXRob2QgKF9ISUQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJ RAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoRlBUVCA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgiRlBDMTAxMSIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBJZiAoKEZQVFQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKCJGUEMxMDIwIikKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRlBUVCA9PSAweDAzKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIlZGU0k2MTAx IikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRlBU VCA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoIlZGU0k3NTAwIikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmICgoRlBUVCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIkVHSVMwMzAwIikKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRlBUVCA9PSAweDA2KSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo IkZQQzEwMjEiKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgiRFVNWTAwMDAiKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6IEluaXRpYWxpemUK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTSFBPIChHRlBJLCBPbmUp CiAgICAgICAgICAgICAgICAgICAgU0hQTyAoR0ZQUywgT25lKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoKEZQVFQgIT0gWmVybykgJiYgKFNQSVAgPT0gT25lKSkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVk KSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIE5hbWUgKEJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAo RXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25P dXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAw eDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUg KElCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWws IEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgLCwgX1k5QykKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoR0JVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFj dGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25z dW1lciwgX1k5RCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoVUJVRiwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgR3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwg SW9SZXN0cmljdGlvbklucHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJc XF9TQi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBs aXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJCVUYsIDB4MTcsIFNQSU4pCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChHQlVGLCAweDE3LCBHUElOKQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKElCVUYsIFxfU0IuUEMwMi5TUEkyLkZQTlQu X0NSUy5fWTlDLl9JTlQsIElQSU4pICAvLyBfSU5UOiBJbnRlcnJ1cHRzCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChVQlVGLCAweDE3LCBVUElOKQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChJQlVGLCBcX1NCLlBDMDIuU1BJMi5GUE5ULl9D UlMuX1k5Qy5fTEwsIElMVkwpICAvLyBfTExfOiBMb3cgTGV2ZWwKICAgICAgICAgICAgICAg ICAgICBDcmVhdGVCaXRGaWVsZCAoSUJVRiwgXF9TQi5QQzAyLlNQSTIuRlBOVC5fQ1JTLl9Z OUMuX0hFLCBJVFJHKSAgLy8gX0hFXzogSGlnaC1FZGdlCiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlRmllbGQgKEdCVUYsIFxfU0IuUEMwMi5TUEkyLkZQTlQuX0NSUy5fWTlELl9QT0ws IDB4MDIsIEdMVkwpICAvLyBfUE9MOiBQb2xhcml0eQogICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJpdEZpZWxkIChHQlVGLCBcX1NCLlBDMDIuU1BJMi5GUE5ULl9DUlMuX1k5RC5fTU9E LCBHVFJHKSAgLy8gX01PRDogTW9kZQogICAgICAgICAgICAgICAgICAgIFNQSU4gPSBHTlVN IChHRlBTKQogICAgICAgICAgICAgICAgICAgIEdQSU4gPSBHTlVNIChHRlBJKQogICAgICAg ICAgICAgICAgICAgIElQSU4gPSBJTlVNIChHRlBJKQogICAgICAgICAgICAgICAgICAgIFVQ SU4gPSBHTlVNIChHRlBJKQogICAgICAgICAgICAgICAgICAgIElmICgoKEZQVFQgPT0gMHgw MikgfHwgKEZQVFQgPT0gMHgwNikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSUxWTCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgSVRS RyA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICBHTFZMID0gWmVybwogICAgICAgICAg ICAgICAgICAgICAgICBHVFJHID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBJZiAoKEZQVFQgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJTFZMID0gWmVybwogICAgICAgICAgICAgICAg ICAgICAgICBJVFJHID0gT25lCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBTd2l0Y2ggKFRvSW50ZWdlciAoRlBUVCkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBDYXNlIChPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDA5ODk2 ODAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNlICgweDAyKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBM b2NhbDEgPSAweDAwMkRDNkMwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgQ2FzZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMDdBMTIwMAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgQ2FzZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gMHgwMDdBMTIwMAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIENhc2UgKDB4MDUpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9 IDB4MDBGNDI0MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8K ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBDYXNl ICgweDA2KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDEgPSAweDAwMkRDNkMwCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgRGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEZQVFQgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoU1BJTSAoU1BJWCwgTG9jYWwwLCBMb2NhbDEp LCBCQlVGKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElm ICgoKEZQVFQgPT0gMHgwNCkgJiYgKEZQVE0gPT0gWmVybykpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDb25jYXRlbmF0ZVJlc1Rl bXBsYXRlIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChTUElNIChTUElYLCBMb2NhbDAsIExv Y2FsMSksIEJCVUYpLCBDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChVQlVGLCBHQlVGCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmICgoKEZQVFQgPT0gMHgwNCkgJiYgKEZQVE0gIT0gWmVybykp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChDb25jYXRlbmF0ZVJlc1RlbXBsYXRlIChTUElN IChTUElYLCBMb2NhbDAsIExvY2FsMSksIEJCVUYpLCBDb25jYXRlbmF0ZVJlc1RlbXBsYXRl IChVQlVGLCBJQlVGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRlBUTSA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo Q29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoU1BJTSAo U1BJWCwgTG9jYWwwLCBMb2NhbDEpLCBCQlVGKSwgR0JVRikpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxh dGUgKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKFNQSU0gKFNQSVgsIExvY2FsMCwgTG9jYWwx KSwgQkJVRiksIElCVUYpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg ICAgfQogICAgfQoKICAgIE1ldGhvZCAoUEtHMSwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAg ICAgICBOYW1lIChQS0csIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgewogICAgICAgICAgICBa ZXJvCiAgICAgICAgfSkKICAgICAgICBQS0cgW1plcm9dID0gQXJnMAogICAgICAgIFJldHVy biAoUEtHKSAvKiBcUEtHMS5QS0dfICovCiAgICB9CgogICAgTWV0aG9kIChQS0czLCAzLCBT ZXJpYWxpemVkKQogICAgewogICAgICAgIE5hbWUgKFBLRywgUGFja2FnZSAoMHgwMykKICAg ICAgICB7CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgWmVybwogICAgICAgIH0pCiAgICAgICAgUEtHIFtaZXJvXSA9IEFyZzAKICAgICAgICBQ S0cgW09uZV0gPSBBcmcxCiAgICAgICAgUEtHIFsweDAyXSA9IEFyZzIKICAgICAgICBSZXR1 cm4gKFBLRykgLyogXFBLRzMuUEtHXyAqLwogICAgfQoKICAgIElmIChVU1RQKQogICAgewog ICAgICAgIElmICgoUENIQSA9PSBaZXJvKSkKICAgICAgICB7CiAgICAgICAgICAgIFNjb3Bl IChfU0IuUEMwMC5JMkMwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2Qg KFNTQ04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQS0czIChTU0gwLCBTU0wwLCBTU0QwKSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEZNQ04sIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0czIChG TUgwLCBGTUwwLCBGTUQwKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKEZQQ04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQS0czIChGUEgwLCBGUEwwLCBGUEQwKSkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEhTQ04sIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ S0czIChIU0gwLCBIU0wwLCBIU0QwKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKE0wRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxIChNMEMwKSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKE0xRDMsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxIChN MUMwKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgU2Nv cGUgKF9TQi5QQzAwLkkyQzEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhv ZCAoU1NDTiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBLRzMgKFNTSDEsIFNTTDEsIFNTRDEpKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoRk1DTiwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzMg KEZNSDEsIEZNTDEsIEZNRDEpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoRlBDTiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzMgKEZQSDEsIEZQTDEsIEZQRDEpKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoSFNDTiwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBLRzMgKEhTSDEsIEhTTDEsIEhTRDEpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoTTBEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzEgKE0wQzEpKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoTTFEMywgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzEg KE0xQzEpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBT Y29wZSAoX1NCLlBDMDAuSTJDMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0 aG9kIChTU0NOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUEtHMyAoU1NIMiwgU1NMMiwgU1NEMikpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChGTUNOLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtH MyAoRk1IMiwgRk1MMiwgRk1EMikpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChGUENOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMyAoRlBIMiwgRlBMMiwgRlBEMikpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChIU0NOLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUEtHMyAoSFNIMiwgSFNMMiwgSFNEMikpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChNMEQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMSAoTTBDMikpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChNMUQzLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtH MSAoTTFDMikpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IFNjb3BlIChfU0IuUEMwMC5JMkMzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBN ZXRob2QgKFNTQ04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQS0czIChTU0gzLCBTU0wzLCBTU0QzKSkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEZNQ04sIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ S0czIChGTUgzLCBGTUwzLCBGTUQzKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKEZQQ04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0czIChGUEgzLCBGUEwzLCBGUEQzKSkK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEhTQ04sIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChQS0czIChIU0gzLCBIU0wzLCBIU0QzKSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKE0wRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxIChNMEMzKSkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKE0xRDMsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ S0cxIChNMUMzKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgU2NvcGUgKF9TQi5QQzAwLkkyQzQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IE1ldGhvZCAoU1NDTiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzMgKFNTSDQsIFNTTDQsIFNTRDQpKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoRk1DTiwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBLRzMgKEZNSDQsIEZNTDQsIEZNRDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoRlBDTiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzMgKEZQSDQsIEZQTDQsIEZQRDQp KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoSFNDTiwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBLRzMgKEhTSDQsIEhTTDQsIEhTRDQpKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoTTBEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzEgKE0wQzQpKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoTTFEMywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBLRzEgKE0xQzQpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBTY29wZSAoX1NCLlBDMDAuSTJDNSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgTWV0aG9kIChTU0NOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMyAoU1NINSwgU1NMNSwgU1NENSkpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChGTUNOLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUEtHMyAoRk1INSwgRk1MNSwgRk1ENSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChGUENOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMyAoRlBINSwgRlBMNSwgRlBE NSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChIU0NOLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoUEtHMyAoSFNINSwgSFNMNSwgSFNENSkpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChNMEQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMSAoTTBDNSkpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChNMUQzLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUEtHMSAoTTFDNSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIFNjb3BlIChfU0IuUEMwMC5TUEkwKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBNZXRob2QgKE0wRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxIChNMEM2KSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKE0xRDMsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxIChN MUM2KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgU2Nv cGUgKF9TQi5QQzAwLlNQSTEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhv ZCAoTTBEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBLRzEgKE0wQzcpKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoTTFEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzEgKE0xQzcpKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBTY29wZSAoX1NCLlBD MDAuU1BJMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChNMEQzLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoUEtHMSAoTTBDOCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChNMUQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMSAoTTFDOCkpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFNjb3BlIChfU0IuUEMwMC5VQTAwKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKE0wRDMsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ S0cxIChNMEM5KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KE0xRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQS0cxIChNMUM5KSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgU2NvcGUgKF9TQi5QQzAwLlVBMDEpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoTTBEMywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzEgKE0wQ0Ep KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoTTFEMywgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBLRzEgKE0xQ0EpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBTY29wZSAoX1NCLlBDMDAuVUEwMikKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgTWV0aG9kIChNMEQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMSAoTTBDQikpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChNMUQzLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtH MSAoTTFDQikpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAg ICAgICAgRWxzZQogICAgICAgIHsKICAgICAgICAgICAgU2NvcGUgKF9TQi5QQzAyLkkyQzAp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoU1NDTiwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBLRzMgKFNTSDAsIFNTTDAsIFNTRDApKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoRk1DTiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzMgKEZNSDAsIEZNTDAsIEZNRDAp KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoRlBDTiwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBLRzMgKEZQSDAsIEZQTDAsIEZQRDApKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoSFNDTiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzMgKEhTSDAsIEhTTDAs IEhTRDApKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoTTBE MywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBLRzEgKE0wQzApKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoTTFEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzEgKE0xQzApKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBTY29wZSAoX1NCLlBDMDIuSTJD MSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChTU0NOLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUEtHMyAoU1NIMSwgU1NMMSwgU1NEMSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChGTUNOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMyAoRk1IMSwgRk1MMSwgRk1E MSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChGUENOLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoUEtHMyAoRlBIMSwgRlBMMSwgRlBEMSkpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChIU0NOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMyAoSFNIMSwgSFNM MSwgSFNEMSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChN MEQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUEtHMSAoTTBDMSkpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChNMUQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMSAoTTFDMSkpCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFNjb3BlIChfU0IuUEMwMi5J MkMyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKFNTQ04sIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChQS0czIChTU0gyLCBTU0wyLCBTU0QyKSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKEZNQ04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0czIChGTUgyLCBGTUwyLCBG TUQyKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEZQQ04s IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQS0czIChGUEgyLCBGUEwyLCBGUEQyKSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKEhTQ04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0czIChIU0gyLCBI U0wyLCBIU0QyKSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KE0wRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQS0cxIChNMEMyKSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKE0xRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxIChNMUMyKSkKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgU2NvcGUgKF9TQi5QQzAy LkkyQzMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoU1NDTiwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBLRzMgKFNTSDMsIFNTTDMsIFNTRDMpKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoRk1DTiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzMgKEZNSDMsIEZNTDMs IEZNRDMpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoRlBD TiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBLRzMgKEZQSDMsIEZQTDMsIEZQRDMpKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoSFNDTiwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzMgKEhTSDMs IEhTTDMsIEhTRDMpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoTTBEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBLRzEgKE0wQzMpKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoTTFEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzEgKE0xQzMpKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBTY29wZSAoX1NCLlBD MDIuSTJDNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChTU0NOLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoUEtHMyAoU1NINCwgU1NMNCwgU1NENCkpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChGTUNOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMyAoRk1INCwgRk1M NCwgRk1ENCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChG UENOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUEtHMyAoRlBINCwgRlBMNCwgRlBENCkpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChIU0NOLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMyAoSFNI NCwgSFNMNCwgSFNENCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChNMEQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUEtHMSAoTTBDNCkpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChNMUQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMSAoTTFDNCkpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFNjb3BlIChfU0Iu UEMwMi5JMkM1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKFNTQ04s IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQS0czIChTU0g1LCBTU0w1LCBTU0Q1KSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKEZNQ04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0czIChGTUg1LCBG TUw1LCBGTUQ1KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KEZQQ04sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQS0czIChGUEg1LCBGUEw1LCBGUEQ1KSkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKEhTQ04sIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0czIChI U0g1LCBIU0w1LCBIU0Q1KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKE0wRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxIChNMEM1KSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKE0xRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxIChNMUM1KSkK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgU2NvcGUgKF9T Qi5QQzAyLlNQSTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoTTBE MywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBLRzEgKE0wQzYpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoTTFEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzEgKE0xQzYpKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBTY29wZSAoX1NCLlBDMDIuU1BJ MSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWV0aG9kIChNMEQzLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUEtHMSAoTTBDNykpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChNMUQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUEtHMSAoTTFDNykpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIFNjb3BlIChfU0IuUEMwMi5TUEkyKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKE0wRDMsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxIChN MEM4KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKE0xRDMs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQS0cxIChNMUM4KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgU2NvcGUgKF9TQi5QQzAyLlVBMDApCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE1ldGhvZCAoTTBEMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBLRzEgKE0wQzkpKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoTTFEMywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBLRzEgKE0xQzkpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAg ICAgICBTY29wZSAoX1NCLlBDMDIuVUEwMSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgTWV0aG9kIChNMEQzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMSAoTTBDQSkpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChNMUQzLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMSAoTTFD QSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFNjb3Bl IChfU0IuUEMwMi5VQTAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2Qg KE0wRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQS0cxIChNMENCKSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKE0xRDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxIChNMUNCKSkKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAo X1NCKQogICAgewogICAgICAgIERldmljZSAoSElERCkKICAgICAgICB7CiAgICAgICAgICAg IE5hbWUgKF9ISUQsICJJTlRDMTA3NyIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAg ICAgICBJZiAoKChBUkxQID09IE9uZSkgfHwgKEFSTFMgPT0gT25lKSkpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIF9ISUQgPSAiSU5UQzEwQ0IiCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE5hbWUgKEhCU1ksIFplcm8pCiAgICAgICAgICAgIE5hbWUgKEhJRFgsIFpl cm8pCiAgICAgICAgICAgIE5hbWUgKEhNREUsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKEhS RFksIFplcm8pCiAgICAgICAgICAgIE5hbWUgKEJUTEQsIFplcm8pCiAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJZiAoKChPU1lTID49IDB4MDdERCkgJiYgKEhFRkUgPT0g T25lKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBGKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChIRERNLCAwLCBTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChEUEtHLCBQYWNr YWdlICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MTEx MTExMTEsIAogICAgICAgICAgICAgICAgICAgIDB4MjIyMjIyMjIsIAogICAgICAgICAgICAg ICAgICAgIDB4MzMzMzMzMzMsIAogICAgICAgICAgICAgICAgICAgIDB4NDQ0NDQ0NDQKICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBSZXR1cm4gKERQS0cpIC8qIFxfU0Jf LkhJREQuSERETS5EUEtHICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo SERFTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSEJT WSA9IFplcm8KICAgICAgICAgICAgICAgIElmICgoSE1ERSA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEhJRFgpIC8qIFxfU0JfLkhJ REQuSElEWCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAo SE1ERSkgLyogXF9TQl8uSElERC5ITURFICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoSERNTSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgUmV0dXJuIChITURFKSAvKiBcX1NCXy5ISURELkhNREUgKi8KICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChIRFNNLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBIUkRZID0gQXJnMAogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKEhQRU0sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIEhCU1kgPSBPbmUKICAgICAgICAgICAgICAgIElmICgoSE1ERSA9PSBaZXJv KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBISURYID0gQXJnMAog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEhJRFggPSBBcmcwCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTm90aWZ5IChISURELCAweEMwKSAvLyBIYXJkd2FyZS1TcGVjaWZp YwogICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgV2hpbGUg KCgoTG9jYWwwIDwgMHhGQSkgJiYgSEJTWSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgU2xlZXAgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEhCU1kgPT0gT25lKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBIQlNZID0gWmVybwogICAg ICAgICAgICAgICAgICAgIEhJRFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoSVNB UiwgNCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBBREJHICgiSVNBUiIpCiAgICAg ICAgTmFtZSAoQlVGMSwgQnVmZmVyICgweDAyKQogICAgICAgIHsKICAgICAgICAgICAgIDB4 MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLgog ICAgICAgIH0pCiAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjE3MzBlNzFkLWU1ZGQt NGEzNC1iZTU3LTRkNzZiNmEyZmUzNyIpIC8qIFVua25vd24gVVVJRCAqLykpCiAgICAgICAg ewogICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuVVNTVikpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gRGVyZWZPZiAoQXJnMyBbT25lXSkKICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgKz0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9j YWwyID0gRGVyZWZPZiAoQXJnMyBbMHgwMl0pCiAgICAgICAgICAgICAgICAgICAgTG9jYWwy ICs9IE9uZQogICAgICAgICAgICAgICAgICAgIExvY2FsMiA8PD0gMHgxMAogICAgICAgICAg ICAgICAgICAgIExvY2FsMiB8PSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICBcX1NCLlVT U1YgKExvY2FsMikKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuV0ZERSwgMHhE MCkgLy8gSGFyZHdhcmUtU3BlY2lmaWMKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0K ICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChC dWZmZXIgKE9uZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIDB4MDAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAg IH0pCiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChcKQogICAgewogICAgICAgIFBvd2Vy UmVzb3VyY2UgKFBJTiwgMHgwMCwgMHgwMDAwKQogICAgICAgIHsKICAgICAgICAgICAgTWV0 aG9kIChTVEEsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IElmICgoXF9TQi5HR09WIChEZXJlZk9mIChBcmcwIFtaZXJvXSkpID09IERlcmVmT2YgKEFy ZzAgW09uZV0KICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoT04sIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUElOSCBHUElPPSIsIFRvSGV4U3RyaW5nIChE ZXJlZk9mIChBcmcwIFtaZXJvXSkpKSkKICAgICAgICAgICAgICAgIFxfU0IuU0dPViAoRGVy ZWZPZiAoQXJnMCBbWmVyb10pLCBEZXJlZk9mIChBcmcwIFtPbmVdKSkKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChPRkYsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiUElOTCBHUElPPSIsIFRv SGV4U3RyaW5nIChEZXJlZk9mIChBcmcwIFtaZXJvXSkpKSkKICAgICAgICAgICAgICAgIFxf U0IuU0dPViAoRGVyZWZPZiAoQXJnMCBbWmVyb10pLCB+RGVyZWZPZiAoQXJnMCBbT25lXSkK ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoX09OLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIg T24KICAgICAgICAgICAgewogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9P RkYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT0ZGOiBQb3dlciBPZmYKICAgICAgICAgICAg ewogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBJZiAoKFBDSEEgIT0gWmVybykp CiAgICAgICAgewogICAgICAgICAgICBQb3dlclJlc291cmNlIChQUElOLCAweDAwLCAweDAw MDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1ldGhvZCAoU1RBLCAxLCBTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoXF9T Qi5QR1BJLkdHT1YgKERlcmVmT2YgKEFyZzAgW1plcm9dKSkgPT0gRGVyZWZPZiAoQXJnMCBb T25lXQogICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoT04sIDEs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJQSU5IIEdQSU89IiwgVG9IZXhTdHJpbmcgKERlcmVmT2YgKEFy ZzAgW1plcm9dKSkpKQogICAgICAgICAgICAgICAgICAgIFxfU0IuUEdQSS5TR09WIChEZXJl Zk9mIChBcmcwIFtaZXJvXSksIERlcmVmT2YgKEFyZzAgW09uZV0pKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoT0ZGLCAxLCBTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgi UElOTCBHUElPPSIsIFRvSGV4U3RyaW5nIChEZXJlZk9mIChBcmcwIFtaZXJvXSkpKSkKICAg ICAgICAgICAgICAgICAgICBcX1NCLlBHUEkuU0dPViAoRGVyZWZPZiAoQXJnMCBbWmVyb10p LCB+RGVyZWZPZiAoQXJnMCBbT25lXSkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9PTiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9u CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg ICB9CiAgICB9CgogICAgSWYgKChDVkZTID09IE9uZSkpCiAgICB7CiAgICAgICAgSWYgKEFS TFApCiAgICAgICAgewogICAgICAgICAgICBTY29wZSAoX1NCLlBDMDApCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIERldmljZSAoQ1ZTUykKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBBREJHICgiQ1ZTUyBEZXZpY2UgRW50cnkiKQogICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9VSUQsICJDVlNTIikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRlbCBDVlMgRGV2aWNlIikgIC8vIF9E RE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0hJRCwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJTlRDMTBERSIpCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChJSUNGLCBP bmUpCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChJSUNTLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChJSUNGKSAvKiBcX1NCXy5QQzAwLkNWU1MuSUlDRiAqLwogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChTSUQsIDEsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEhD SUQgKE9uZSkpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBO YW1lIChQS0cwLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLkhTMDYuVkdQMSIKICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RFUCwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDVkZTID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUEtHMCkgLyogXF9TQl8uUEMwMC5DVlNTLlBLRzAgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgw eDAwKXt9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBT ZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoQ0JGMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKFNoYXJlZCwgUHVsbERl ZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uSW5wdXRPbmx5LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VD b25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMEQ0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoRWRnZSwgQWN0 aXZlTG93LCBTaGFyZWQsIFB1bGxEZWZhdWx0LCAweDAwMDAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIlxcX1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwRDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUg KFZHQjEsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZh dWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbk91dHB1dE9ubHksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLkhTMDYuVkdQ MSIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBs aXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVz dHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJc XF9TQi5QQzAwLlhIQ0kuUkhVQi5IUzA2LlZHUDEiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVy LCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERl ZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uSW5wdXRPbmx5LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAwLlhIQ0kuUkhVQi5IUzA2LlZH UDEiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4g bGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUIKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKElJQzEsIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSTJjU2VyaWFsQnVzVjIgKDB4MDAwMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2 MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdC aXQsICJcXF9TQi5QQzAwLkkyQzEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsIF9ZOUUsIEV4Y2x1c2l2ZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoSUlDMSwgXF9TQi5QQzAwLkNW U1MuX0NSUy5fWTlFLl9BRFIsIERBRDApICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg ICAgICAgICAgICAgIERBRDAgPSAweDc2CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQ0JG MSwgVkdCMSksIElJQzEpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgU2NvcGUgKF9TQi5QQzAwLlhIQ0kuUkhV Qi5IUzA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEZXZpY2UgKFZHUDEpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIlZHUDEgVmlydXRh bCBHUElPIERldmljZSBFbnRyeSIpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwg IlZHUDEiKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X0RETiwgIkludGVsIFVzYkdwaW8gRGV2aWNlIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFt ZQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0hJRCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKCJJTlRDMTBCNSIpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoKENWRlQgPT0gT25lKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoR1BPVCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo X1VJRCwgIkdQT1QiKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOYW1lIChfSElELCAiR1BUUzAwMDAiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJHUFRTMDAwMCIpICAv LyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNl dHRpbmdzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoU0JVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAw MCwgSW9SZXN0cmljdGlvbk5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiXFxfU0IuUEMwMC5YSENJLlJIVUIuSFMwNi5WR1AxIiwgMHgwMCwgUmVzb3Vy Y2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBs aXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVs dCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25Ob25lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLkhTMDYuVkdQ MSIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1 c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uTm9uZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAwLlhI Q0kuUkhVQi5IUzA2LlZHUDEiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9S ZXN0cmljdGlvbk5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiXFxfU0IuUEMwMC5YSENJLlJIVUIuSFMwNi5WR1AxIiwgMHgwMCwgUmVzb3VyY2VDb25z dW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgw MDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25Ob25lLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLkhTMDYuVkdQMSIsIDB4 MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg ICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwg UHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uTm9uZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAwLlhIQ0kuUkhV Qi5IUzA2LlZHUDEiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwMDUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Bp b0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmlj dGlvbk5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxf U0IuUEMwMC5YSENJLlJIVUIuSFMwNi5WR1AxIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwg LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA2CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAw eDAwMDAsIElvUmVzdHJpY3Rpb25Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLkhTMDYuVkdQMSIsIDB4MDAsIFJl c291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQ aW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAwNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERl ZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uTm9uZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAwLlhIQ0kuUkhVQi5IUzA2 LlZHUDEiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0lvIChF eGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbk5v bmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUEMw MC5YSENJLlJIVUIuSFMwNi5WR1AxIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAs IElvUmVzdHJpY3Rpb25Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLkhTMDYuVkdQMSIsIDB4MDAsIFJlc291cmNl Q29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlz dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQs IDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uTm9uZSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAwLlhIQ0kuUkhVQi5IUzA2LlZHUDEi LCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMEIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoU0JVRikgLyogXF9TQl8uUEMwMC5YSENJLlJIVUIu SFMwNi5WR1AxLkdQT1QuX0NSUy5TQlVGICovCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgRWxzZQog ICAgICAgIHsKICAgICAgICAgICAgU2NvcGUgKF9TQi5QQzAwKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBEZXZpY2UgKFNQRkQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlNQRkQgRGV2aWNlIEVudHJ5IikKICAgICAgICAgICAgICAg ICAgICBOYW1lIChfVUlELCAiU1BGRCIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfREROLCAiSW50ZWwgU1BJIE9FRCBEZXZpY2UiKSAgLy8gX0RE TjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfSElELCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIklOVEMxMEQwIikKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKFBLRzAsIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAiXFxfU0IuUEMwMC5YSENJLlJIVUIuVkdQTyIsIAogICAgICAgICAgICAgICAgICAg ICAgICAiXFxfU0IuUEMwMC5YSENJLlJIVUIuVlNQSSIKICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RFUCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChDVkZTID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMCkgLyogXF9T Ql8uUEMwMC5TUEZELlBLRzAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAwKXt9KQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJp YWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ0JGMSwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHcGlvSW8gKFNoYXJlZCwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgw MDAwLCBJb1Jlc3RyaWN0aW9uSW5wdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJcXF9TQi5HUEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDQ4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoRWRnZSwgQWN0aXZlTG93LCBTaGFyZWQsIFB1 bGxEZWZhdWx0LCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxc X1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAv LyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKENCRjIsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgR3Bpb0lvIChTaGFyZWQsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwg SW9SZXN0cmljdGlvbklucHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiXFxfU0IuR1BJMCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAzNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdwaW9JbnQgKEVkZ2UsIEFjdGl2ZUxvdywgU2hhcmVkLCBQdWxsRGVm YXVsdCwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5H UEkwIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGlu IGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM3CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChDQkYzLCBSZXNvdXJjZVRlbXBsYXRl ICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdwaW9JbyAoU2hhcmVkLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVz dHJpY3Rpb25JbnB1dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxc X1NCLkdQSTAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAv LyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHcGlvSW50IChFZGdlLCBBY3RpdmVMb3csIFNoYXJlZCwgUHVsbERlZmF1bHQs IDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BJMCIs IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICAgICAgTmFtZSAoVkdCMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBH cGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3Ry aWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxf U0IuUEMwMC5YSENJLlJIVUIuVkdQTyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwg MHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAwLlhIQ0kuUkhVQi5WR1BPIiwgMHgwMCwg UmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChWU0IxLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwaVNlcmlh bEJ1c1YyICgweDAwMDAsIFBvbGFyaXR5TG93LCBGb3VyV2lyZU1vZGUsIDB4MDgsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDg5 NTQ0MCwgQ2xvY2tQb2xhcml0eUhpZ2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ2xvY2tQaGFzZVNlY29uZCwgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLlZTUEkiLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwg RXhjbHVzaXZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDVkZTID09 IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKCJTUEZEIF9DUlMgcmV0dXJucyByZXNvdXJjZXMgZm9yIHVzYiBiYXNl ZCBjdmYiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChUb0ludGVnZXIgKFBM SUQpID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAo Q29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQ0JGMiwgVkdCMSksIFZTQjEpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlm ICgoKFRvSW50ZWdlciAoUExJRCkgPT0gMHgwNykgfHwgKFRvSW50ZWdlciAoUExJRCkgPT0g CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCkpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQ0JG MywgVkdCMSksIFZTQjEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAo Q29uY2F0ZW5hdGVSZXNUZW1wbGF0ZSAoQ0JGMSwgVkdCMSksIFZTQjEpKQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgR3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAs IDB4MDAwMCwgSW9SZXN0cmljdGlvbk5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlxcX1NCLlBDMDAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBEZXZpY2UgKENWRkQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiQ1ZGRCBEZXZpY2UgRW50cnkiKQogICAgICAgICAgICAgICAg ICAgICAgICBOYW1lIChfVUlELCAiQ1ZGRCIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0RETiwgIkludGVsIENWRiBEZXZpY2UiKSAgLy8g X0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X0hJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo IklOVEMxMENGIikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChTSUQsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSENJRCAoT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgU2NvcGUgKF9TQi5Q QzAwLlhIQ0kuUkhVQikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGV2aWNlIChW R1BPKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJWR1BP IFZpcnV0YWwgR1BJTyBEZXZpY2UgRW50cnkiKQogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9VSUQsICJWR1BPIikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9ERE4sICJJbnRlbCBVc2JHcGlvIERldmljZSIpICAvLyBfREROOiBET1MgRGV2 aWNlIE5hbWUKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ISUQsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiSU5UQzEwRDEiKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUEtHMSwgUGFja2FnZSAoMHgw MSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9T Qi5QQzAwLlhIQ0kuUkhVQi5IUzA0IgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoUEtHMiwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAwLlhIQ0kuUkhVQi5I UzA2IgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfREVQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKENVUE4gPT0g MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUEtHMSkgLyogXF9TQl8uUEMwMC5YSENJLlJIVUIuVkdQTy5QS0cx ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg RWxzZUlmICgoQ1VQTiA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cyKSAvKiBcX1NCXy5QQzAwLlhI Q0kuUkhVQi5WR1BPLlBLRzIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAwKXt9KQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChDVkZUID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKEdQ T1QpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJHUE9UOiBWaXJ0dWFsIEdQSU8gVGVzdCBEZXZpY2UgRW50cnkiKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgIkdQT1QiKSAgLy8gX1VJRDog VW5pcXVlIElECiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiR1BU UzAwMDAiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9DSUQsICJHUFRTMDAwMCIpICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo U0JVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0lvIChFeGNs dXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbk5vbmUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUEMwMC5Y SENJLlJIVUIuVkdQTyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH cGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3Ry aWN0aW9uTm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJc XF9TQi5QQzAwLlhIQ0kuUkhVQi5WR1BPIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAw MDAsIElvUmVzdHJpY3Rpb25Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLlZHUE8iLCAweDAwLCBSZXNvdXJjZUNv bnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAw eDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbk5vbmUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUEMwMC5YSENJLlJIVUIuVkdQTyIsIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAv LyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAwMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVs bERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uTm9uZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAwLlhIQ0kuUkhVQi5W R1BPIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhj bHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25Ob25l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDMDAu WEhDSS5SSFVCLlZHUE8iLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0 cmljdGlvbk5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi XFxfU0IuUEMwMC5YSENJLlJIVUIuVkdQTyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgw MDAwLCBJb1Jlc3RyaWN0aW9uTm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJcXF9TQi5QQzAwLlhIQ0kuUkhVQi5WR1BPIiwgMHgwMCwgUmVzb3VyY2VD b25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwg MHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25Ob25lLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLlZHUE8iLCAweDAw LCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAg Ly8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwMDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0lvIChFeGNsdXNpdmUsIFB1 bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbk5vbmUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUEMwMC5YSENJLlJIVUIu VkdQTyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAwOQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4 Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uTm9u ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAw LlhIQ0kuUkhVQi5WR1BPIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBBCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVz dHJpY3Rpb25Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlxcX1NCLlBDMDAuWEhDSS5SSFVCLlZHUE8iLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0JV RikgLyogXF9TQl8uUEMwMC5YSENJLlJIVUIuVkdQTy5HUE9ULl9DUlMuU0JVRiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IERldmljZSAoVklDMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBB REJHICgiVklDMDogVmlydHVhbCBJMkMgRGV2aWNlIEVudHJ5IikKICAgICAgICAgICAgICAg ICAgICBOYW1lIChfVUlELCAiVklDMCIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfREROLCAiSW50ZWwgVXNiSTJDIERldmljZSIpICAvLyBfRERO OiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ISUQsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiSU5UQzEwRDIiKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUEtHMSwgUGFj a2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICJcXF9TQi5QQzAwLlhIQ0kuUkhVQi5IUzA0IgogICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUEtHMiwgUGFja2FnZSAoMHgwMSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAwLlhI Q0kuUkhVQi5IUzA2IgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfREVQLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVwZW5kZW5j aWVzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KENVUE4gPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoUEtHMSkgLyogXF9TQl8uUEMwMC5YSENJLlJIVUIu VklDMC5QS0cxICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZUlmICgoQ1VQTiA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cyKSAvKiBcX1NC Xy5QQzAwLlhIQ0kuUkhVQi5WSUMwLlBLRzIgKi8KICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAwKXt9KQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChDVkZUID09 IDB4MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg RGV2aWNlIChJSUNUKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHICgiSUlDVDogVmlydHVhbCBJMkMgVGVzdCBkZXZpY2UgRW50 cnkiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgIklJQ1QiKSAg Ly8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChf SElELCAiSUlDMDAwMSIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklJQzAwMDEiKSAgLy8gX0NJRDogQ29tcGF0aWJs ZSBJRAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFEQkcgKCJJSUNUIHJldHVybmluZyBWSUMwIikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFZJSUMgKDB4N0YsIFplcm8pKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoVklDMSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBREJHICgiVklDMTogVmly dHVhbCBJMkMgRGV2aWNlIEVudHJ5IikKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlE LCAiVklDMSIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgICAgICBOYW1l IChfREROLCAiSW50ZWwgVXNiSTJDIERldmljZSIpICAvLyBfREROOiBET1MgRGV2aWNlIE5h bWUKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ISUQsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgiSU5UQzEwRDIiKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUEtHMSwgUGFja2FnZSAoMHgwMSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAw LlhIQ0kuUkhVQi5IUzA0IgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoUEtHMiwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5QQzAwLlhIQ0kuUkhVQi5IUzA2Igog ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfREVQ LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKENVUE4gPT0gMHgwNCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUEtHMSkgLyogXF9TQl8uUEMwMC5YSENJLlJIVUIuVklDMS5QS0cxICovCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlm ICgoQ1VQTiA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cyKSAvKiBcX1NCXy5QQzAwLlhIQ0kuUkhV Qi5WSUMxLlBLRzIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAwKXt9KQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChDVkZUID09IDB4MDIpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChJSUNUKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHICgiSUlDVDogVmlydHVhbCBJMkMgVGVzdCBkZXZpY2UgRW50cnkiKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgIklJQ1QiKSAgLy8gX1VJRDogVW5pcXVl IElECiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiSUlDMDAwMSIp ICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0NJRCwgIklJQzAwMDEiKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJJSUNUIHJl dHVybmluZyBWSUMxIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFZJSUMgKDB4N0YsIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChWU1BJKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFEQkcgKCJWU1BJOiBWaXJ0dWFsIFNQSSBEZXZpY2Ug RW50cnkiKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsICJWU1BJIikgIC8vIF9V SUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRlbCBV c2JTUEkgRGV2aWNlIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX0hJRCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ISUQ6IEhhcmR3 YXJlIElECiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKCJJTlRDMTBEMyIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBOYW1lIChQS0cxLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLkhTMDQi CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChQS0cy LCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgIlxcX1NCLlBDMDAuWEhDSS5SSFVCLkhTMDYiCiAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ERVAsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQ1VQTiA9PSAweDA0KSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQS0cxKSAv KiBcX1NCXy5QQzAwLlhIQ0kuUkhVQi5WU1BJLlBLRzEgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChDVVBOID09IDB4MDYp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBLRzIpIC8qIFxfU0JfLlBDMDAuWEhDSS5SSFVCLlZTUEkuUEtHMiAqLwog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBhY2thZ2UgKDB4MDApe30pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoKENWRlQgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFNQSVQpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJTUElUOiBWaXJ0 dWFsIFNQSSBUZXN0IGRldmljZSBFbnRyeSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChfVUlELCAiU1BJVCIpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJWU1BJMDAwMSIpICAvLyBfSElEOiBIYXJk d2FyZSBJRAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIlZTUEkw MDAxIikgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQg UmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChYQlVGLCBSZXNvdXJjZVRlbXBsYXRl ICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTcGlTZXJpYWxCdXNWMiAoMHgwMDAwLCBQb2xhcml0eUxv dywgRm91cldpcmVNb2RlLCAweDA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMEQ1OUY4MCwgQ2xvY2tQb2xhcml0 eUhpZ2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9ja1Bo YXNlU2Vjb25kLCAiXFxfU0IuUEMwMC5YSENJLlJIVUIuVlNQSSIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsIEV4 Y2x1c2l2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWEJVRikgLyogXF9TQl8uUEMwMC5YSENJLlJIVUIuVlNQSS5T UElULl9DUlMuWEJVRiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IuUEMw MC5SUDAxKQogICAgewogICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgIHsKICAgICAgICAg ICAgSWYgKCgoUDFXRyAhPSBaZXJvKSAmJiAoUDFSTiA9PSBPbmUpKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXIChHR1BFIChQMVdHKSwgMHgwNCkpCiAg ICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBSZXR1cm4gKEdQUlcgKDB4QzAsIDB4MDQpKQogICAgICAgICAgICB9CiAgICAgICAg fQogICAgfQoKICAgIFNjb3BlIChfU0IuUEMwMC5SUDAyKQogICAgewogICAgICAgIE1ldGhv ZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBm b3IgV2FrZQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweEMwLCAweDA0 KSkKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAwLlJQMDMpCiAgICB7CiAg ICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIg UmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgewogICAgICAgICAgICBJZiAoKChXTFdLICE9 IFplcm8pICYmIChXTFJQID09IDB4MDMpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgUmV0dXJuIChHUFJXIChHR1BFIChXTFdLKSwgMHgwNCkpCiAgICAgICAgICAgIH0KICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQ UlcgKDB4QzAsIDB4MDQpKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNj b3BlIChfU0IuUEMwMC5SUDA0KQogICAgewogICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAg IHsKICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweEMwLCAweDA0KSkKICAgICAgICB9CiAg ICB9CgogICAgU2NvcGUgKF9TQi5QQzAwLlJQMDUpCiAgICB7CiAgICAgICAgTWV0aG9kIChf UFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBX YWtlCiAgICAgICAgewogICAgICAgICAgICBJZiAoKChQMldHICE9IFplcm8pICYmIChQMlJO ID09IDB4MDUpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChHUFJX IChHR1BFIChQMldHKSwgMHgwNCkpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4QzEsIDB4MDQp KQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IuUEMwMC5S UDA2KQogICAgewogICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgIHsKICAgICAgICAgICAg SWYgKCgoUDJXRyAhPSBaZXJvKSAmJiAoUDJSTiA9PSAweDA2KSkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoR0dQRSAoUDJXRyksIDB4MDQpKQogICAg ICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKChQM1dHICE9IFplcm8pICYmIChQM1JO ID09IDB4MDYpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChHUFJX IChHR1BFIChQM1dHKSwgMHgwNCkpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4QzEsIDB4MDQp KQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IuUEMwMC5S UDA3KQogICAgewogICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQogICAgICAgIHsKICAgICAgICAgICAg SWYgKCgoV1dLUCAhPSBaZXJvKSAmJiAoV1dSUCA9PSAweDA3KSkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoR0dQRSAoV1dLUCksIDB4MDQpKQogICAg ICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgUmV0dXJuIChHUFJXICgweEMxLCAweDA0KSkKICAgICAgICAgICAgfQogICAgICAgIH0K ICAgIH0KCiAgICBTY29wZSAoX1NCLlBDMDAuUlAwOCkKICAgIHsKICAgICAgICBNZXRob2Qg KF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9y IFdha2UKICAgICAgICB7CiAgICAgICAgICAgIElmICgoKFdMV0sgIT0gWmVybykgJiYgKFdM UlAgPT0gMHgwOCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQ UlcgKEdHUEUgKFdMV0spLCAweDA0KSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNl CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHhDMSwgMHgw NCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAw LlJQMDkpCiAgICB7CiAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgewogICAgICAgICAg ICBJZiAoKChXV0tQICE9IFplcm8pICYmIChXV1JQID09IDB4MDkpKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXIChHR1BFIChXV0tQKSwgMHgwNCkpCiAg ICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoKFAzV0cgIT0gWmVybykgJiYgKFAz Uk4gPT0gMHgwOSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQ UlcgKEdHUEUgKFAzV0cpLCAweDA0KSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNl CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHhDMiwgMHgw NCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAw LlJQMTApCiAgICB7CiAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgewogICAgICAgICAg ICBJZiAoKChQMldHICE9IFplcm8pICYmIChQMlJOID09IDB4MEEpKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXIChHR1BFIChQMldHKSwgMHgwNCkpCiAg ICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoKFA1V0cgIT0gWmVybykgJiYgKFA1 Uk4gPT0gMHgwRCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQ UlcgKEdHUEUgKFA1V0cpLCAweDA0KSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNl CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHhDNywgMHgw NCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAw LlJQMTEpCiAgICB7CiAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgewogICAgICAgICAg ICBJZiAoKChQM1dHICE9IFplcm8pICYmIChQM1JOID09IDB4MEIpKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXIChHR1BFIChQM1dHKSwgMHgwNCkpCiAg ICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoKFA2V0cgIT0gWmVybykgJiYgKFA2 Uk4gPT0gMHgxMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQ UlcgKEdHUEUgKFA2V0cpLCAweDA0KSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNl CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHhDNywgMHgw NCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQzAw LlJQMTIpCiAgICB7CiAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlCiAgICAgICAgewogICAgICAgICAg ICBJZiAoKChQM1dHICE9IFplcm8pICYmIChQM1JOID09IDB4MTUpKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXIChHR1BFIChQM1dHKSwgMHgwNCkpCiAg ICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZUlmICgoKFA0V0cgIT0gWmVybykgJiYgKFA0 Uk4gPT0gMHgxNSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQ UlcgKEdHUEUgKFA0V0cpLCAweDA0KSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFbHNl SWYgKCgoUDRXRyAhPSBaZXJvKSAmJiAoUDRSTiA9PSAweDBDKSkpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoR0dQRSAoUDRXRyksIDB4MDQpKQogICAg ICAgICAgICB9CiAgICAgICAgICAgIEVsc2VJZiAoKChQN1dHICE9IFplcm8pICYmIChQN1JO ID09IDB4MTUpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChHUFJX IChHR1BFIChQN1dHKSwgMHgwNCkpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4QzcsIDB4MDQp KQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIElmICgoUENIQSA9PSBaZXJv KSkKICAgIHsKICAgICAgICBTY29wZSAoX1NCLlBDMDAuU0FUMCkKICAgICAgICB7CiAgICAg ICAgICAgIE1ldGhvZCAoU0FUQywgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU0ZGIxNDliLWZjZmUtNDI1Yi1h NmQ4LTkyMzU3ZDc4ZmM3ZiIpIC8qIFNBVEEgQ29udHJvbGxlciAqLykpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQURCRyAoIldpbiBTYXRhIERTTSBVVUlEIDog RTREQjE0OUItRkNGRS00MjViLUE2RDgtOTIzNTdENzhGQzdGIikKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAo U0FURCwgNCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3dp dGNoIChUb0ludGVnZXIgKEFyZzIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIENhc2UgKFplcm8pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiV2luIFNhdGEgRFNNIGZ1biAwIikKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIERlZmF1bHQK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAg ICAgICAgICBJZiAoKChTMElEID09IE9uZSkgJiYgKFBVSVMgPT0gT25lKSkpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFNjb3BlIChQUlQwKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE5hbWUgKEdURjAsIEJ1ZmZlciAoMHgwNykKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweEEwLCAweDAwICAgICAgICAgLy8gLi4uLi4uLgogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU0RELCAxLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1NERDogU2V0IERldmljZSBEYXRhCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEdURjAsIFpl cm8sIEZFQVQpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoR1RG MCwgMHgwNiwgQ01NRCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChBcmcwLCAweEE2LCBXMDgzKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4QUMsIFcwODYpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo U2l6ZU9mIChBcmcwKSA9PSAweDAyMDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChXMDgzICYgMHgyMCkgPT0gMHgyMCkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKCgoVzA4NiAmIDB4MjApID09IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RkVBVCA9IDB4MDYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01NRCA9 IDB4RUYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dURiwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9HVEY6IEdldCBUYXNrIEZpbGUKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1RGMCkgLyogXF9TQl8uUEMwMC5T QVQwLlBSVDAuR1RGMCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBTY29wZSAoUFJUMSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOYW1lIChHVEYwLCBCdWZmZXIgKDB4MDcpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHhBMCwgMHgwMCAgICAgICAgIC8vIC4uLi4uLi4KICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NERCwgMSwgTm90U2Vy aWFsaXplZCkgIC8vIF9TREQ6IFNldCBEZXZpY2UgRGF0YQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChHVEYwLCBaZXJv LCBGRUFUKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEdURjAs IDB4MDYsIENNTUQpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo QXJnMCwgMHhBNiwgVzA4MykKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChBcmcwLCAweEFDLCBXMDg2KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNp emVPZiAoQXJnMCkgPT0gMHgwMjAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoVzA4MyAmIDB4MjApID09IDB4MjApKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoKFcwODYgJiAweDIwKSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZF QVQgPSAweDA2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNTUQgPSAw eEVGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9HVEYsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfR1RGOiBHZXQgVGFzayBGaWxlCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdURjApIC8qIFxfU0JfLlBDMDAuU0FU MC5QUlQxLkdURjAgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgU2NvcGUgKFBSVDIpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoR1RGMCwgQnVmZmVyICgweDA3KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4QTAsIDB4MDAgICAgICAgICAvLyAuLi4uLi4uCiAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TREQsIDEsIE5vdFNlcmlh bGl6ZWQpICAvLyBfU0REOiBTZXQgRGV2aWNlIERhdGEKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoR1RGMCwgWmVybywg RkVBVCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChHVEYwLCAw eDA2LCBDTU1EKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFy ZzAsIDB4QTYsIFcwODMpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQXJnMCwgMHhBQywgVzA4NikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTaXpl T2YgKEFyZzApID09IDB4MDIwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoKFcwODMgJiAweDIwKSA9PSAweDIwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKChXMDg2ICYgMHgyMCkgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRUFU ID0gMHgwNgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTU1EID0gMHhF RgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX0dURjogR2V0IFRhc2sgRmlsZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHVEYwKSAvKiBcX1NCXy5QQzAwLlNBVDAu UFJUMi5HVEYwICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIFNjb3BlIChQUlQzKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE5hbWUgKEdURjAsIEJ1ZmZlciAoMHgwNykKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweEEwLCAweDAwICAgICAgICAgLy8gLi4uLi4uLgogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU0RELCAxLCBOb3RTZXJpYWxp emVkKSAgLy8gX1NERDogU2V0IERldmljZSBEYXRhCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEdURjAsIFplcm8sIEZF QVQpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoR1RGMCwgMHgw NiwgQ01NRCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcw LCAweEE2LCBXMDgzKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KEFyZzAsIDB4QUMsIFcwODYpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU2l6ZU9m IChBcmcwKSA9PSAweDAyMDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKChXMDgzICYgMHgyMCkgPT0gMHgyMCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKCgoVzA4NiAmIDB4MjApID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkVBVCA9 IDB4MDYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01NRCA9IDB4RUYK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dURiwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9HVEY6IEdldCBUYXNrIEZpbGUKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1RGMCkgLyogXF9TQl8uUEMwMC5TQVQwLlBS VDMuR1RGMCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBTY29wZSAoUFJUNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBOYW1lIChHVEYwLCBCdWZmZXIgKDB4MDcpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHhBMCwgMHgwMCAgICAgICAgIC8vIC4uLi4uLi4KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NERCwgMSwgTm90U2VyaWFsaXpl ZCkgIC8vIF9TREQ6IFNldCBEZXZpY2UgRGF0YQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChHVEYwLCBaZXJvLCBGRUFU KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEdURjAsIDB4MDYs IENNTUQpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwg MHhBNiwgVzA4MykKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChB cmcwLCAweEFDLCBXMDg2KQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNpemVPZiAo QXJnMCkgPT0gMHgwMjAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKCgoVzA4MyAmIDB4MjApID09IDB4MjApKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoKFcwODYgJiAweDIwKSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZFQVQgPSAw eDA2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNTUQgPSAweEVGCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9HVEYsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfR1RGOiBHZXQgVGFzayBGaWxlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEdURjApIC8qIFxfU0JfLlBDMDAuU0FUMC5QUlQ0 LkdURjAgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgU2NvcGUgKFBSVDUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoR1RGMCwgQnVmZmVyICgweDA3KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4QTAsIDB4MDAgICAgICAgICAvLyAuLi4uLi4uCiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TREQsIDEsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfU0REOiBTZXQgRGV2aWNlIERhdGEKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoR1RGMCwgWmVybywgRkVBVCkK ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChHVEYwLCAweDA2LCBD TU1EKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4 QTYsIFcwODMpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJn MCwgMHhBQywgVzA4NikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTaXplT2YgKEFy ZzApID09IDB4MDIwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoKFcwODMgJiAweDIwKSA9PSAweDIwKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKChXMDg2ICYgMHgyMCkgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRUFUID0gMHgw NgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTU1EID0gMHhFRgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0dURjogR2V0IFRhc2sgRmlsZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChHVEYwKSAvKiBcX1NCXy5QQzAwLlNBVDAuUFJUNS5H VEYwICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmIChDb25kUmVmT2YgKFBSVDYpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFNjb3BlIChQUlQ2KQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgTmFtZSAoR1RGMCwgQnVmZmVyICgweDA3KQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhBMCwgMHgwMCAgICAgICAgIC8vIC4uLi4uLi4K ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfU0RELCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NERDogU2V0IERldmljZSBEYXRh CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZUJ5dGVGaWVsZCAoR1RGMCwgWmVybywgRkVBVCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoR1RGMCwgMHgwNiwgQ01NRCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgMHhBNiwgVzA4MykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgMHhB QywgVzA4NikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoU2l6ZU9mIChBcmcw KSA9PSAweDAyMDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoKFcwODMgJiAweDIwKSA9PSAweDIwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoKFcwODYgJiAweDIwKSA9PSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRkVBVCA9IDB4MDYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENNTUQgPSAweEVGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0dURiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9HVEY6 IEdldCBUYXNrIEZpbGUKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChHVEYwKSAvKiBcX1NCXy5QQzAwLlNBVDAuUFJUNi5H VEYwICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoUFJU NykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU2NvcGUgKFBSVDcp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChH VEYwLCBCdWZmZXIgKDB4MDcpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEEw LCAweDAwICAgICAgICAgLy8gLi4uLi4uLgogICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TREQsIDEsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfU0REOiBTZXQgRGV2aWNlIERhdGEKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChHVEYwLCBaZXJv LCBGRUFUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChH VEYwLCAweDA2LCBDTU1EKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29y ZEZpZWxkIChBcmcwLCAweEE2LCBXMDgzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlV29yZEZpZWxkIChBcmcwLCAweEFDLCBXMDg2KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChTaXplT2YgKEFyZzApID09IDB4MDIwMCkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgo VzA4MyAmIDB4MjApID09IDB4MjApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoVzA4NiAmIDB4 MjApID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRUFUID0gMHgwNgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01NRCA9IDB4RUYKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0dURjogR2V0IFRhc2sgRmlsZQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdURjAp IC8qIFxfU0JfLlBDMDAuU0FUMC5QUlQ3LkdURjAgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQogICAgICAgIH0KICAgIH0KCiAgICBJZiAoKChQRkxWID09IE9uZSkgfHwgKFBGTFYg PT0gMHgwNikpKQogICAgewogICAgICAgIElmICgoV0ZGRCA9PSBPbmUpKQogICAgICAgIHsK ICAgICAgICAgICAgU2NvcGUgKF9TQikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TWV0aG9kIChXRlJULCAzLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IEFjcXVpcmUgKFdXTVQsIDB4MDNFOCkKICAgICAgICAg ICAgICAgICAgICBBREJHICgiV1dBTiBGbGFzaCBSZXNldCBNdXRleDogQWNxdWlyZWQgVHJ5 IERvbmUiKQogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IFplcm8pKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gT25l CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoV1dSUCA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAg PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIlN0YXJ0IFdXQU4gV2FybSBSZXNldCIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQURCRyAoIlN0YXJ0IFdXQU4gQ29sZCBSZXNldCIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENv bmRSZWZPZiAoXF9TQi5QQzAwLlJQMDEuUFhTWC5GSFJGKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeUEMwMC5SUDAx LlBYU1guRkhSRiAoQXJnMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoQXJnMSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiV0ZSVCBEZWxheTEgICIsIFRvRGVjaW1h bFN0cmluZyAoQXJnMSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChe UEMwMC5SUDAxLlBYU1gsIE9uZSkgLy8gRGV2aWNlIENoZWNrCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwMS5QWFNYLlNIUkYpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5QQzAwLlJQMDEuUFhTWC5TSFJGICgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKEFyZzIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIldGUlQgRGVsYXky ICAiLCBUb0RlY2ltYWxTdHJpbmcgKEFyZzIpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5vdGlmeSAoXlBDMDAuUlAwMS5QWFNYLCBPbmUpIC8vIERldmljZSBDaGVjawogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkVuZCBXV0FOIFdhcm0gUmVzZXQiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoV1dNVCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJXV0FOIFdhcm0gUmVzZXQgTXV0ZXg6IFJlbGVhc2UgRG9uZSIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwMS5Q WFNYLkRPU1YpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5QQzAwLlJQMDEuUFhTWC5ET1NWICgpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoV1dSUCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFplcm8p KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJTdGFydCBXV0FOIFdhcm0gUmVzZXQiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFEQkcgKCJTdGFydCBXV0FOIENvbGQgUmVzZXQiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2Yg KFxfU0IuUEMwMC5SUDAyLlBYU1guRkhSRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXlBDMDAuUlAwMi5QWFNYLkZI UkYgKEFyZzApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU2xlZXAgKEFyZzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHIChDb25jYXRlbmF0ZSAoIldGUlQgRGVsYXkxICAiLCBUb0RlY2ltYWxTdHJpbmcg KEFyZzEpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXlBDMDAuUlAw Mi5QWFNYLCBPbmUpIC8vIERldmljZSBDaGVjawogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLlJQMDIuUFhTWC5TSFJGKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe UEMwMC5SUDAyLlBYU1guU0hSRiAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChBcmcyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJXRlJUIERlbGF5MiAgIiwgVG9E ZWNpbWFsU3RyaW5nIChBcmcyKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3Rp ZnkgKF5QQzAwLlJQMDIuUFhTWCwgT25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJFbmQgV1dBTiBXYXJtIFJlc2V0IikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFdXTVQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiV1dBTiBXYXJtIFJlc2V0IE11dGV4OiBSZWxlYXNlIERvbmUiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLlJQMDIuUFhTWC5ET1NW KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeUEMwMC5SUDAyLlBYU1guRE9TViAoKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKFdXUlAgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiU3RhcnQgV1dBTiBXYXJtIFJlc2V0IikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiU3RhcnQgV1dBTiBDb2xkIFJlc2V0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBD MDAuUlAwMy5QWFNYLkZIUkYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5QQzAwLlJQMDMuUFhTWC5GSFJGIChBcmcw KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNsZWVwIChBcmcxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo Q29uY2F0ZW5hdGUgKCJXRlJUIERlbGF5MSAgIiwgVG9EZWNpbWFsU3RyaW5nIChBcmcxKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKF5QQzAwLlJQMDMuUFhTWCwg T25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFxfU0IuUEMwMC5SUDAzLlBYU1guU0hSRikpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXlBDMDAuUlAw My5QWFNYLlNIUkYgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoQXJnMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiV0ZSVCBEZWxheTIgICIsIFRvRGVjaW1hbFN0 cmluZyAoQXJnMikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5ICheUEMw MC5SUDAzLlBYU1gsIE9uZSkgLy8gRGV2aWNlIENoZWNrCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiRW5kIFdXQU4gV2FybSBSZXNldCIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZWxlYXNlIChXV01UKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4g V2FybSBSZXNldCBNdXRleDogUmVsZWFzZSBEb25lIikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDAzLlBYU1guRE9TVikpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXlBDMDAuUlAwMy5QWFNYLkRPU1YgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChXV1JQID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IlN0YXJ0IFdXQU4gV2FybSBSZXNldCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlN0YXJ0 IFdXQU4gQ29sZCBSZXNldCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLlJQMDQu UFhTWC5GSFJGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeUEMwMC5SUDA0LlBYU1guRkhSRiAoQXJnMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT bGVlcCAoQXJnMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVu YXRlICgiV0ZSVCBEZWxheTEgICIsIFRvRGVjaW1hbFN0cmluZyAoQXJnMSkpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTm90aWZ5ICheUEMwMC5SUDA0LlBYU1gsIE9uZSkgLy8g RGV2aWNlIENoZWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9m IChcX1NCLlBDMDAuUlAwNC5QWFNYLlNIUkYpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5QQzAwLlJQMDQuUFhTWC5T SFJGICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU2xlZXAgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBB REJHIChDb25jYXRlbmF0ZSAoIldGUlQgRGVsYXkyICAiLCBUb0RlY2ltYWxTdHJpbmcgKEFy ZzIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXlBDMDAuUlAwNC5Q WFNYLCBPbmUpIC8vIERldmljZSBDaGVjawogICAgICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoIkVuZCBXV0FOIFdhcm0gUmVzZXQiKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVsZWFzZSAoV1dNVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFdhcm0gUmVz ZXQgTXV0ZXg6IFJlbGVhc2UgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwNC5QWFNYLkRPU1YpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5QQzAw LlJQMDQuUFhTWC5ET1NWICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoV1dS UCA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcwID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJTdGFydCBX V0FOIFdhcm0gUmVzZXQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJTdGFydCBXV0FOIENv bGQgUmVzZXQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDA1LlBYU1guRkhS RikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXlBDMDAuUlAwNS5QWFNYLkZIUkYgKEFyZzApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKEFy ZzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIldG UlQgRGVsYXkxICAiLCBUb0RlY2ltYWxTdHJpbmcgKEFyZzEpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5vdGlmeSAoXlBDMDAuUlAwNS5QWFNYLCBPbmUpIC8vIERldmljZSBD aGVjawogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5Q QzAwLlJQMDUuUFhTWC5TSFJGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeUEMwMC5SUDA1LlBYU1guU0hSRiAoKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNsZWVwIChBcmcyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29u Y2F0ZW5hdGUgKCJXRlJUIERlbGF5MiAgIiwgVG9EZWNpbWFsU3RyaW5nIChBcmcyKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKF5QQzAwLlJQMDUuUFhTWCwgT25l KSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJF bmQgV1dBTiBXYXJtIFJlc2V0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVh c2UgKFdXTVQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBXYXJtIFJlc2V0IE11dGV4 OiBSZWxlYXNlIERvbmUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRS ZWZPZiAoXF9TQi5QQzAwLlJQMDUuUFhTWC5ET1NWKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeUEMwMC5SUDA1LlBY U1guRE9TViAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFdXUlAgPT0gMHgw NikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBXYXJt IFJlc2V0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBDb2xkIFJlc2V0 IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwNi5QWFNYLkZIUkYpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5QQzAwLlJQMDYuUFhTWC5GSFJGIChBcmcwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChBcmcxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJXRlJUIERlbGF5 MSAgIiwgVG9EZWNpbWFsU3RyaW5nIChBcmcxKSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOb3RpZnkgKF5QQzAwLlJQMDYuUFhTWCwgT25lKSAvLyBEZXZpY2UgQ2hlY2sKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDA2 LlBYU1guU0hSRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXlBDMDAuUlAwNi5QWFNYLlNIUkYgKCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVl cCAoQXJnMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRl ICgiV0ZSVCBEZWxheTIgICIsIFRvRGVjaW1hbFN0cmluZyAoQXJnMikpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTm90aWZ5ICheUEMwMC5SUDA2LlBYU1gsIE9uZSkgLy8gRGV2 aWNlIENoZWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRW5kIFdXQU4g V2FybSBSZXNldCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChXV01U KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gV2FybSBSZXNldCBNdXRleDogUmVsZWFz ZSBEb25lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxf U0IuUEMwMC5SUDA2LlBYU1guRE9TVikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXlBDMDAuUlAwNi5QWFNYLkRPU1Yg KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChXV1JQID09IDB4MDcpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlN0YXJ0IFdXQU4gV2FybSBSZXNldCIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQURCRyAoIlN0YXJ0IFdXQU4gQ29sZCBSZXNldCIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLlJQMDcuUFhTWC5GSFJGKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeUEMw MC5SUDA3LlBYU1guRkhSRiAoQXJnMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoQXJnMSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiV0ZSVCBEZWxheTEgICIsIFRv RGVjaW1hbFN0cmluZyAoQXJnMSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90 aWZ5ICheUEMwMC5SUDA3LlBYU1gsIE9uZSkgLy8gRGV2aWNlIENoZWNrCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAwNy5QWFNYLlNI UkYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5QQzAwLlJQMDcuUFhTWC5TSFJGICgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKEFyZzIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIldGUlQg RGVsYXkyICAiLCBUb0RlY2ltYWxTdHJpbmcgKEFyZzIpKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5vdGlmeSAoXlBDMDAuUlAwNy5QWFNYLCBPbmUpIC8vIERldmljZSBDaGVj awogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkVuZCBXV0FOIFdhcm0gUmVz ZXQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoV1dNVCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJXV0FOIFdhcm0gUmVzZXQgTXV0ZXg6IFJlbGVhc2UgRG9uZSIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAu UlAwNy5QWFNYLkRPU1YpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5QQzAwLlJQMDcuUFhTWC5ET1NWICgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoV1dSUCA9PSAweDA4KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09 IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFEQkcgKCJTdGFydCBXV0FOIFdhcm0gUmVzZXQiKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFEQkcgKCJTdGFydCBXV0FOIENvbGQgUmVzZXQiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25k UmVmT2YgKFxfU0IuUEMwMC5SUDA4LlBYU1guRkhSRikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXlBDMDAuUlAwOC5Q WFNYLkZIUkYgKEFyZzApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKEFyZzEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHIChDb25jYXRlbmF0ZSAoIldGUlQgRGVsYXkxICAiLCBUb0RlY2ltYWxT dHJpbmcgKEFyZzEpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXlBD MDAuUlAwOC5QWFNYLCBPbmUpIC8vIERldmljZSBDaGVjawogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLlJQMDguUFhTWC5TSFJGKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeUEMwMC5SUDA4LlBYU1guU0hSRiAoKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChBcmcyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJXRlJUIERlbGF5MiAg IiwgVG9EZWNpbWFsU3RyaW5nIChBcmcyKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOb3RpZnkgKF5QQzAwLlJQMDguUFhTWCwgT25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJFbmQgV1dBTiBXYXJtIFJlc2V0IikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFdXTVQpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiV1dBTiBXYXJtIFJlc2V0IE11dGV4OiBSZWxlYXNlIERvbmUiKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLlJQMDguUFhT WC5ET1NWKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeUEMwMC5SUDA4LlBYU1guRE9TViAoKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKFdXUlAgPT0gMHgwOSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBXYXJtIFJlc2V0IikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiU3RhcnQgV1dBTiBDb2xkIFJlc2V0IikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChc X1NCLlBDMDAuUlAwOS5QWFNYLkZIUkYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5QQzAwLlJQMDkuUFhTWC5GSFJG IChBcmcwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNsZWVwIChBcmcxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoQ29uY2F0ZW5hdGUgKCJXRlJUIERlbGF5MSAgIiwgVG9EZWNpbWFsU3RyaW5nIChB cmcxKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKF5QQzAwLlJQMDku UFhTWCwgT25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDA5LlBYU1guU0hSRikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXlBD MDAuUlAwOS5QWFNYLlNIUkYgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoQXJnMikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKENvbmNhdGVuYXRlICgiV0ZSVCBEZWxheTIgICIsIFRvRGVj aW1hbFN0cmluZyAoQXJnMikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5 ICheUEMwMC5SUDA5LlBYU1gsIE9uZSkgLy8gRGV2aWNlIENoZWNrCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHICgiRW5kIFdXQU4gV2FybSBSZXNldCIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWxlYXNlIChXV01UKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwwID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IldXQU4gV2FybSBSZXNldCBNdXRleDogUmVsZWFzZSBEb25lIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDA5LlBYU1guRE9TVikp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXlBDMDAuUlAwOS5QWFNYLkRPU1YgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChXV1JQID09IDB4MEEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QURCRyAoIlN0YXJ0IFdXQU4gV2FybSBSZXNldCIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IlN0YXJ0IFdXQU4gQ29sZCBSZXNldCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAw LlJQMTAuUFhTWC5GSFJGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeUEMwMC5SUDEwLlBYU1guRkhSRiAoQXJnMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTbGVlcCAoQXJnMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENv bmNhdGVuYXRlICgiV0ZSVCBEZWxheTEgICIsIFRvRGVjaW1hbFN0cmluZyAoQXJnMSkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5ICheUEMwMC5SUDEwLlBYU1gsIE9u ZSkgLy8gRGV2aWNlIENoZWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ29u ZFJlZk9mIChcX1NCLlBDMDAuUlAxMC5QWFNYLlNIUkYpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5QQzAwLlJQMTAu UFhTWC5TSFJGICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBREJHIChDb25jYXRlbmF0ZSAoIldGUlQgRGVsYXkyICAiLCBUb0RlY2ltYWxTdHJp bmcgKEFyZzIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXlBDMDAu UlAxMC5QWFNYLCBPbmUpIC8vIERldmljZSBDaGVjawogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIkVuZCBXV0FOIFdhcm0gUmVzZXQiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVsZWFzZSAoV1dNVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJXV0FOIFdh cm0gUmVzZXQgTXV0ZXg6IFJlbGVhc2UgRG9uZSIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAxMC5QWFNYLkRPU1YpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5QQzAwLlJQMTAuUFhTWC5ET1NWICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoV1dSUCA9PSAweDBCKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFplcm8pKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJT dGFydCBXV0FOIFdhcm0gUmVzZXQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJTdGFydCBX V0FOIENvbGQgUmVzZXQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5SUDExLlBY U1guRkhSRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXlBDMDAuUlAxMS5QWFNYLkZIUkYgKEFyZzApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKEFyZzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHIChDb25jYXRlbmF0 ZSAoIldGUlQgRGVsYXkxICAiLCBUb0RlY2ltYWxTdHJpbmcgKEFyZzEpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXlBDMDAuUlAxMS5QWFNYLCBPbmUpIC8vIERl dmljZSBDaGVjawogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAo XF9TQi5QQzAwLlJQMTEuUFhTWC5TSFJGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeUEMwMC5SUDExLlBYU1guU0hS RiAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwIChBcmcyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoQ29uY2F0ZW5hdGUgKCJXRlJUIERlbGF5MiAgIiwgVG9EZWNpbWFsU3RyaW5nIChBcmcy KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKF5QQzAwLlJQMTEuUFhT WCwgT25lKSAvLyBEZXZpY2UgQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJFbmQgV1dBTiBXYXJtIFJlc2V0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlbGVhc2UgKFdXTVQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBa ZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiV1dBTiBXYXJtIFJlc2V0 IE11dGV4OiBSZWxlYXNlIERvbmUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KENvbmRSZWZPZiAoXF9TQi5QQzAwLlJQMTEuUFhTWC5ET1NWKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeUEMwMC5S UDExLlBYU1guRE9TViAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFdXUlAg PT0gMHgwQykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dB TiBXYXJtIFJlc2V0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiU3RhcnQgV1dBTiBDb2xk IFJlc2V0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQ29uZFJlZk9mIChcX1NCLlBDMDAuUlAxMi5QWFNYLkZIUkYp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5QQzAwLlJQMTIuUFhTWC5GSFJGIChBcmcwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChBcmcx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoQ29uY2F0ZW5hdGUgKCJXRlJU IERlbGF5MSAgIiwgVG9EZWNpbWFsU3RyaW5nIChBcmcxKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOb3RpZnkgKF5QQzAwLlJQMTIuUFhTWCwgT25lKSAvLyBEZXZpY2UgQ2hl Y2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMw MC5SUDEyLlBYU1guU0hSRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXlBDMDAuUlAxMi5QWFNYLlNIUkYgKCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoQXJnMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKENvbmNh dGVuYXRlICgiV0ZSVCBEZWxheTIgICIsIFRvRGVjaW1hbFN0cmluZyAoQXJnMikpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5ICheUEMwMC5SUDEyLlBYU1gsIE9uZSkg Ly8gRGV2aWNlIENoZWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRW5k IFdXQU4gV2FybSBSZXNldCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNl IChXV01UKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIldXQU4gV2FybSBSZXNldCBNdXRleDog UmVsZWFzZSBEb25lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChDb25kUmVm T2YgKFxfU0IuUEMwMC5SUDEyLlBYU1guRE9TVikpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXlBDMDAuUlAxMi5QWFNY LkRPU1YgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVsZWFzZSAoV1dNVCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2Ug KE1GRkQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIklOVEMxMDczIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX1NUUiwgVW5pY29kZSAoIk1vZGVtIEZpcm13YXJlIEZsYXNoIERldmljZSIp KSAgLy8gX1NUUjogRGVzY3JpcHRpb24gU3RyaW5nCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFdGRkQgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9k CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzAgPT0gVG9VVUlEICgiMGYzZDU3YWEtNjA0Ni00N2IyLThhOWEtODhmMTAyMWQzODY1Iikg LyogVW5rbm93biBVVUlEICovKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDA3ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZl ciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIk1GRkQgRkxEUiIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgV0ZSVCAoWmVybywgRGVyZWZPZiAoQXJnMyBb WmVyb10pLCBEZXJlZk9mIChBcmczIFtPbmVdKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIk1GRkQgUExEUiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgV0ZSVCAoT25lLCBEZXJlZk9mIChBcmczIFtaZXJvXSksIERlcmVmT2YgKEFyZzMgW09u ZV0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChP bmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CiAgICAgICAgfQogICAgfQoKICAgIE5hbWUgKF9TMCwgUGFja2FnZSAoMHgwNCkgIC8vIF9T MF86IFMwIFN5c3RlbSBTdGF0ZQogICAgewogICAgICAgIFplcm8sIAogICAgICAgIFplcm8s IAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8KICAgIH0pCiAgICBJZiAoU1MxKQogICAg ewogICAgICAgIE5hbWUgKF9TMSwgUGFja2FnZSAoMHgwNCkgIC8vIF9TMV86IFMxIFN5c3Rl bSBTdGF0ZQogICAgICAgIHsKICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBaZXJvCiAgICAgICAgfSkKICAgIH0K CiAgICBJZiAoU1MzKQogICAgewogICAgICAgIE5hbWUgKF9TMywgUGFja2FnZSAoMHgwNCkg IC8vIF9TM186IFMzIFN5c3RlbSBTdGF0ZQogICAgICAgIHsKICAgICAgICAgICAgMHgwNSwg CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVy bwogICAgICAgIH0pCiAgICB9CgogICAgSWYgKFNTNCkKICAgIHsKICAgICAgICBOYW1lIChf UzQsIFBhY2thZ2UgKDB4MDQpICAvLyBfUzRfOiBTNCBTeXN0ZW0gU3RhdGUKICAgICAgICB7 CiAgICAgICAgICAgIDB4MDYsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgIFplcm8KICAgICAgICB9KQogICAgfQoKICAgIE5hbWUgKF9TNSwg UGFja2FnZSAoMHgwNCkgIC8vIF9TNV86IFM1IFN5c3RlbSBTdGF0ZQogICAgewogICAgICAg IDB4MDcsIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8KICAg IH0pCiAgICBNZXRob2QgKFBUUywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJ ZiAoQXJnMCl7fQogICAgfQoKICAgIE1ldGhvZCAoV0FLLCAxLCBOb3RTZXJpYWxpemVkKQog ICAgewogICAgfQoKICAgIElmIChDb25kUmVmT2YgKFxfU0IuUEMwMC5YRENJKSkKICAgIHsK ICAgICAgICBTY29wZSAoX1NCLlBDMDAuWERDSSkKICAgICAgICB7CiAgICAgICAgICAgIE1l dGhvZCAoWERBVCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKENvbmRSZWZPZiAoXF9TQi5QQzAwLkxQQ0IuSF9FQy5YREFUKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eTFBDQi5IX0VDLlhEQVQg KCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cgo= --------------0VdOF4cBu5hIveWjJwb5DsPJ-- --------------0GDM4uFhZE7JIkntsCoomCVB-- --------------f1vqfhpUgEIpoDBxJEUvqYGl Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEEpkOhtFujpzRWyb0a4A5zBMF+d4YFAmh8LMMFAwAAAAAACgkQ4A5zBMF+d4ZW 5Q//YQhrSSSigT3fooW1BZIl/Y0Hq2PQSbJ6NGC9kQeJZMut3t4RpcgtqZDhjRoadPNjyn64Duqo YEmChodJ/BKzl8LGaMhiNfcdl0laILqzMLh397NaDme8r/XCuBfJTx+D0uG16RvewVWiLW+RdYPq WxfTyaplFcZGRwrrR6//p118V8QKAZaG583iW8LoGObnRD84UlknD6GEDzuuHk68zrT8tPm6TIP6 xyA2Vz2x0oPRpIEqY9nv7pLJ60H2rUKl1+aJvL/cQDKwayM1rEEulUQjvKi60o81WEDx+4TmBTLs RN9fjckMNfGDsTf9E/nYE6d6BKFgSGqKrvtcgFYfy/4lM6d4uktowb1Td+4lLKuCsv9MxMHnoQDr 9PZu2S1eKtkeu7Y/PqBLAbbeJQ2odbJ2TCOJFKZHv4POE0NWd9UiOVFDN0SOud7l2hOiK8b8Ei9e V4ISt8NDFQl1YyweemlDbPJ7D1Y3b+W9EcJg43TIelZsjAmM7ceo/oODaEQbTkuwuKzbteCseb+4 pRMlGpUIXQJu0okzJ4qWj/w35D8BkLNoBBpcZ0pAUWuTCJS8KfDJ/hGq1BcvRAlcaPNwQtJEBl5B 8yN0Rppyo1ZgPz+GKDWgNkOEdqbPAYsL647+2VfB8h0+hYebKB5YbArTDn4+5+irGBUePAv+cpiH vME= =IiYd -----END PGP SIGNATURE----- --------------f1vqfhpUgEIpoDBxJEUvqYGl--