From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from goalie.tycho.ncsc.mil (goalie [144.51.242.250]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id s3TExf6k001569 for ; Tue, 29 Apr 2014 10:59:41 -0400 Message-ID: <535FBE4F.7020501@tresys.com> Date: Tue, 29 Apr 2014 10:59:27 -0400 From: Steve Lawrence MIME-Version: 1.0 To: SELinux List Subject: [RFC] Source Policy, CIL, and High Level Languages Content-Type: multipart/mixed; boundary="------------020201070903000608050809" List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: --------------020201070903000608050809 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit In January, we sent an RFC [1] for updating userspace to integrate CIL [2] and source policy. We received a lot of great feedback (thanks to Richard Haines, Dominick Grift, Stephen Smalley, and Dan Walsh) and are back with some changes, and again looking for more comments. This keeps most of the changes as the previous RFC, including moving the policy store to /var/lib/selinux and replacing binary modules with support for CIL. Based on feedback from the previous email we have made changes and added new features to this patchset, specifically: - Support for preserve tunables - Infrastructure to support High Level Languages (HLLs) - A new HLL compiler which converts .pp files to CIL With the new HLL infrastructure and the pp to CIL compiler, we have successfully migrated a Fedora 20 system to the new /var/lib/selinux layout, treating the existing .pp files as high level languages, compiling them to CIL, and generating a binary policy file that is semantically equivalent. This infrastructure allows for one to transition to a full CIL policy, but still allows for backwards compatiability with systems that rely either fully or partially on pp modules. Because of the size of the patchset (66 file changes, ~8000 insertions, ~2000 deletions), all the changes have been pushed to the selinux git repository in three branches for comments/review. Each branch builds on the other, with their purposes described below: src-revert: Reverts changes made to master that conflict with the src-policy branch (e.g. how paths are handled, enabled/disable modules). Rather than dealing with a large amount of conflicts with the source policy work, it was easier to just remove the commits which add conflicting features, rebase the old source policy work on top of that, and add back any features in a manner consistent with source policy. src-policy: This is a rebase of the old src-policy branch onto the src-revert branch, with some minor bug fixes squashed in. The goal of this patchset is to improve the API for module handling, add support for source policies, module priorities, enabling/disabling of modules, and moving the policy store from /etc/selinux// to /var/lib/selinux//. Due to the use of -p/--path and -P/--preserve-tunables, the --priority short option was (pretty arbitrarily) changed to -X. integration: This branch includes most of the more recent work. This builds CIL into libsepol, and updates libsepol, libsemanage, semodule, and semanage to work with and understand CIL files and manage /var/lib/selinux and /etc/selinux. Switching to CIL has a few side effects, such as removing base modules, versions, and upgrades. This also adds a new tool (installed to /usr/libexec/selinux/hll/pp), which is an HLL compiler that converts binary pp modules to CIL. The infrasture to use this compiler (or any other HLL compiler) was added to compile HLL modules to CIL, which is accomplished by writing the HLL data to the stdin of the compiler and reading the equivilent CIL from stdout. The resulting CIL is then cached in the policy store so this compilation does not need to take place during future store updates. Cached CIL modules can be ignored using a new semodule flag (-C/--ignore-cache) or a new configuration option in semanage.conf (ignore-cache). Other configuration options were added to semanage.conf to manage the path to HLL compilers (compiler-directory) and the policy store (store-root). Semodule was also modified to support changing the policy store with the with -S/--store-root option. Lastly, because much of the API is changed, the .so version numbers of libsemanage and libsepol were bumped to version 2. With these three branches, it is possible to build and manage SELinux policy using pp and CIL modules and the familiar semodule/semanage tools. To make this easier to experiment with and test, below are the steps needed to install the updated userspace and migrate a minimal Fedora 20 installation to the new policy store. Thanks, and we look forward to receive your feedback. - Steve [1] http://marc.info/?l=selinux&m=138921403805934&w=2 [2] http://userspace.selinuxproject.org/trac/wiki/CilDesign Steps to Install SELinux Userspace with source policy, CIL, and HLL # Start with a fresh Fedora 20-x86_64 Mimimal Installation # Install SELinux userspace dependencies $ yum install audit-libs-devel bison bzip2-devel dbus-devel dbus-glib-devel flex flex-static gcc git glib2-devel libcap-ng-devel libcgroup-devel libsepol-static pcre-devel python-devel python-IPy setools-devel swig ustr-devel # Disable the IRC module (this is due to an invalid filecon that has since been fixed) semodule --disable irc # Clone the repos and checkout branches $ git clone -b integration http://oss.tresys.com/git/selinux.git $ git clone https://bitbucket.org/jwcarter/secilc.git # Create a symlink to secilc so CIL can be built into libsepol $ ln -s ~/secilc/ selinux/libsepol/cil # Install SElinux userspace with CIL integration and HLL support $ make -C selinux LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install install-pywrap # Migrate to the new source policy infrastructure $ ./selinux/libsemanage/utils/semanage_migrate_etc_to_var.py --norebuild # Install gnome module that removes a duplicate filename transition (see attached) $ semodule --install gnome.cil # List the installed modules, showing priority and HLL $ semodule --list=full --------------020201070903000608050809 Content-Type: application/vnd.ms-artgalry; name="gnome.cil" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gnome.cil" KGZpbGVjb24gIkhPTUVfRElSL1wuY2FjaGUoLy4qKT8iICIiIGFueSAoc3lzdGVtX3Ugb2Jq ZWN0X3IgY2FjaGVfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24gIkhPTUVfRElSL1wu Y2FjaGUvZGNvbmYoLy4qKT8iICIiIGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgY29uZmlnX2hv bWVfdCAoKHMwKSAoczApKSkpCihmaWxlY29uICJIT01FX0RJUi9cLmNvbG9yL2ljYygvLiop PyIgIiIgYW55IChzeXN0ZW1fdSBvYmplY3RfciBpY2NfZGF0YV9ob21lX3QgKChzMCkgKHMw KSkpKQooZmlsZWNvbiAiSE9NRV9ESVIvXC5kYnVzKC8uKik/IiAiIiBhbnkgKHN5c3RlbV91 IG9iamVjdF9yIGRidXNfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24gIkhPTUVfRElS L1wuY29uZmlnKC8uKik/IiAiIiBhbnkgKHN5c3RlbV91IG9iamVjdF9yIGNvbmZpZ19ob21l X3QgKChzMCkgKHMwKSkpKQooZmlsZWNvbiAiSE9NRV9ESVIvXC5rZGUoLy4qKT8iICIiIGFu eSAoc3lzdGVtX3Ugb2JqZWN0X3IgY29uZmlnX2hvbWVfdCAoKHMwKSAoczApKSkpCihmaWxl Y29uICJIT01FX0RJUi9cLm52KC8uKik/IiAiIiBhbnkgKHN5c3RlbV91IG9iamVjdF9yIGNh Y2hlX2hvbWVfdCAoKHMwKSAoczApKSkpCihmaWxlY29uICJIT01FX0RJUi9cLmdjb25mKGQp PygvLiopPyIgIiIgYW55IChzeXN0ZW1fdSBvYmplY3RfciBnY29uZl9ob21lX3QgKChzMCkg KHMwKSkpKQooZmlsZWNvbiAiSE9NRV9ESVIvXC5nbm9tZTIoLy4qKT8iICIiIGFueSAoc3lz dGVtX3Ugb2JqZWN0X3IgZ25vbWVfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24gIkhP TUVfRElSL1wuZ25vbWUyL2tleXJpbmdzKC8uKik/IiAiIiBhbnkgKHN5c3RlbV91IG9iamVj dF9yIGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgKChzMCkgKHMwKSkpKQooZmlsZWNvbiAiSE9N RV9ESVIvXC5ncmwtYm9va21hcmtzIiAiIiBhbnkgKHN5c3RlbV91IG9iamVjdF9yIGdzdHJl YW1lcl9ob21lX3QgKChzMCkgKHMwKSkpKQooZmlsZWNvbiAiSE9NRV9ESVIvXC5ncmwtbWV0 YWRhdGEtc3RvcmUiICIiIGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgZ3N0cmVhbWVyX2hvbWVf dCAoKHMwKSAoczApKSkpCihmaWxlY29uICJIT01FX0RJUi9cLmdybC1ib29rbWFya3MiICIi IGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgZ3N0cmVhbWVyX2hvbWVfdCAoKHMwKSAoczApKSkp CihmaWxlY29uICJIT01FX0RJUi9cLmdzdHJlYW1lci0uKiIgIiIgYW55IChzeXN0ZW1fdSBv YmplY3RfciBnc3RyZWFtZXJfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24gIkhPTUVf RElSL1wuY2FjaGUvZ3N0cmVhbWVyLS4qIiAiIiBhbnkgKHN5c3RlbV91IG9iamVjdF9yIGdz dHJlYW1lcl9ob21lX3QgKChzMCkgKHMwKSkpKQooZmlsZWNvbiAiSE9NRV9ESVIvXC5vcmMo Ly4qKT8iICIiIGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgZ3N0cmVhbWVyX2hvbWVfdCAoKHMw KSAoczApKSkpCihmaWxlY29uICJIT01FX0RJUi9cLmxvY2FsLioiICIiIGFueSAoc3lzdGVt X3Ugb2JqZWN0X3IgZ2NvbmZfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24gIkhPTUVf RElSL1wubG9jYWwvc2hhcmUoLy4qKT8iICIiIGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgZGF0 YV9ob21lX3QgKChzMCkgKHMwKSkpKQooZmlsZWNvbiAiSE9NRV9ESVIvXC5sb2NhbC9zaGFy ZS9pY2MoLy4qKT8iICIiIGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgaWNjX2RhdGFfaG9tZV90 ICgoczApIChzMCkpKSkKKGZpbGVjb24gIkhPTUVfRElSL1wubG9jYWwvc2hhcmUva2V5cmlu Z3MoLy4qKT8iICIiIGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgZ2tleXJpbmdkX2dub21lX2hv bWVfdCAoKHMwKSAoczApKSkpCihmaWxlY29uICJIT01FX0RJUi9cLlhkZWZhdWx0cyIgIiIg YW55IChzeXN0ZW1fdSBvYmplY3RfciBjb25maWdfaG9tZV90ICgoczApIChzMCkpKSkKKGZp bGVjb24gIkhPTUVfRElSL1wueGluZSgvLiopPyIgIiIgYW55IChzeXN0ZW1fdSBvYmplY3Rf ciBjb25maWdfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24gIi92YXIvcnVuL3VzZXIv W14vXSovXC5vcmMoLy4qKT8iICIiIGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgZ3N0cmVhbWVy X2hvbWVfdCAoKHMwKSAoczApKSkpCihmaWxlY29uICIvdmFyL3J1bi91c2VyL1teL10qL2Rj b25mKC8uKik/IiAiIiBhbnkgKHN5c3RlbV91IG9iamVjdF9yIGNvbmZpZ19ob21lX3QgKChz MCkgKHMwKSkpKQooZmlsZWNvbiAiL3Zhci9ydW4vdXNlci9bXi9dKi9rZXlyaW5nLioiICIi IGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgZ2tleXJpbmdkX3RtcF90ICgoczApIChzMCkpKSkK KGZpbGVjb24gIi9yb290L1wuY2FjaGUoLy4qKT8iICIiIGFueSAoc3lzdGVtX3Ugb2JqZWN0 X3IgY2FjaGVfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24gIi9yb290L1wuY29sb3Iv aWNjKC8uKik/IiAiIiBhbnkgKHN5c3RlbV91IG9iamVjdF9yIGljY19kYXRhX2hvbWVfdCAo KHMwKSAoczApKSkpCihmaWxlY29uICIvcm9vdC9cLmNvbmZpZygvLiopPyIgIiIgYW55IChz eXN0ZW1fdSBvYmplY3RfciBjb25maWdfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24g Ii9yb290L1wua2RlKC8uKik/IiAiIiBhbnkgKHN5c3RlbV91IG9iamVjdF9yIGNvbmZpZ19o b21lX3QgKChzMCkgKHMwKSkpKQooZmlsZWNvbiAiL3Jvb3QvXC5nY29uZihkKT8oLy4qKT8i ICIiIGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgZ2NvbmZfaG9tZV90ICgoczApIChzMCkpKSkK KGZpbGVjb24gIi9yb290L1wuZGJ1cygvLiopPyIgIiIgYW55IChzeXN0ZW1fdSBvYmplY3Rf ciBkYnVzX2hvbWVfdCAoKHMwKSAoczApKSkpCihmaWxlY29uICIvcm9vdC9cLmdub21lMigv LiopPyIgIiIgYW55IChzeXN0ZW1fdSBvYmplY3RfciBnbm9tZV9ob21lX3QgKChzMCkgKHMw KSkpKQooZmlsZWNvbiAiL3Jvb3QvXC5nbm9tZTIva2V5cmluZ3MoLy4qKT8iICIiIGFueSAo c3lzdGVtX3Ugb2JqZWN0X3IgZ2tleXJpbmdkX2dub21lX2hvbWVfdCAoKHMwKSAoczApKSkp CihmaWxlY29uICIvcm9vdC9cLmdzdHJlYW1lci0uKiIgIiIgYW55IChzeXN0ZW1fdSBvYmpl Y3RfciBnc3RyZWFtZXJfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24gIi9yb290L1wu Y2FjaGUvZ3N0cmVhbWVyLS4qIiAiIiBhbnkgKHN5c3RlbV91IG9iamVjdF9yIGdzdHJlYW1l cl9ob21lX3QgKChzMCkgKHMwKSkpKQooZmlsZWNvbiAiL3Jvb3QvXC5sb2NhbC4qIiAiIiBh bnkgKHN5c3RlbV91IG9iamVjdF9yIGdjb25mX2hvbWVfdCAoKHMwKSAoczApKSkpCihmaWxl Y29uICIvcm9vdC9cLmxvY2FsL3NoYXJlKC8uKik/IiAiIiBhbnkgKHN5c3RlbV91IG9iamVj dF9yIGRhdGFfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24gIi9yb290L1wubG9jYWwv c2hhcmUvaWNjKC8uKik/IiAiIiBhbnkgKHN5c3RlbV91IG9iamVjdF9yIGljY19kYXRhX2hv bWVfdCAoKHMwKSAoczApKSkpCihmaWxlY29uICIvcm9vdC9cLlhkZWZhdWx0cyIgIiIgYW55 IChzeXN0ZW1fdSBvYmplY3RfciBjb25maWdfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVj b24gIi9yb290L1wueGluZSgvLiopPyIgIiIgYW55IChzeXN0ZW1fdSBvYmplY3RfciBjb25m aWdfaG9tZV90ICgoczApIChzMCkpKSkKKGZpbGVjb24gIi9ldGMvZ2NvbmYoLy4qKT8iICIi IGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgZ2NvbmZfZXRjX3QgKChzMCkgKHMwKSkpKQooZmls ZWNvbiAiL3RtcC9nY29uZmQtVVNFUi8uKiIgIiIgZmlsZSAoc3lzdGVtX3Ugb2JqZWN0X3Ig Z2NvbmZfdG1wX3QgKChzMCkgKHMwKSkpKQooZmlsZWNvbiAiL3Vzci9zaGFyZS9jb25maWco Ly4qKT8iICIiIGFueSAoc3lzdGVtX3Ugb2JqZWN0X3IgY29uZmlnX3Vzcl90ICgoczApIChz MCkpKSkKKGZpbGVjb24gIi91c3IvYmluL2dub21lLWtleXJpbmctZGFlbW9uIiAiIiBmaWxl IChzeXN0ZW1fdSBvYmplY3RfciBna2V5cmluZ2RfZXhlY190ICgoczApIChzMCkpKSkKKGZp bGVjb24gIi91c3IvYmluL21hdGUta2V5cmluZy1kYWVtb24iICIiIGZpbGUgKHN5c3RlbV91 IG9iamVjdF9yIGdrZXlyaW5nZF9leGVjX3QgKChzMCkgKHMwKSkpKQooZmlsZWNvbiAiL3Vz ci9saWJleGVjL2djb25mLWRlZmF1bHRzLW1lY2hhbmlzbSIgIiIgZmlsZSAoc3lzdGVtX3Ug b2JqZWN0X3IgZ2NvbmZkZWZhdWx0c21fZXhlY190ICgoczApIChzMCkpKSkKKGZpbGVjb24g Ii91c3IvbGliZXhlYy9nbm9tZS1zeXN0ZW0tbW9uaXRvci1tZWNoYW5pc20iICIiIGZpbGUg KHN5c3RlbV91IG9iamVjdF9yIGdub21lc3lzdGVtbW1fZXhlY190ICgoczApIChzMCkpKSkK KGZpbGVjb24gIi91c3IvbGliZXhlYy9rZGUoM3w0KS9rc3lzZ3VhcmRwcm9jZXNzbGlzdF9o ZWxwZXIiICIiIGZpbGUgKHN5c3RlbV91IG9iamVjdF9yIGdub21lc3lzdGVtbW1fZXhlY190 ICgoczApIChzMCkpKSkKKHR5cGVhbGlhcyB1bmNvbmZpbmVkX2dub21lX2hvbWVfdCkKKHR5 cGVhbGlhc2FjdHVhbCB1bmNvbmZpbmVkX2dub21lX2hvbWVfdCBnbm9tZV9ob21lX3QpCih0 eXBlYWxpYXMgc2VjYWRtX2djb25mX2hvbWVfdCkKKHR5cGVhbGlhc2FjdHVhbCBzZWNhZG1f Z2NvbmZfaG9tZV90IGdjb25mX2hvbWVfdCkKKHR5cGVhbGlhcyBzdGFmZl9nY29uZl9ob21l X3QpCih0eXBlYWxpYXNhY3R1YWwgc3RhZmZfZ2NvbmZfaG9tZV90IGdjb25mX2hvbWVfdCkK KHR5cGVhbGlhcyB1c2VyX2dub21lX2hvbWVfdCkKKHR5cGVhbGlhc2FjdHVhbCB1c2VyX2du b21lX2hvbWVfdCBnbm9tZV9ob21lX3QpCih0eXBlYWxpYXMgc3RhZmZfZ2NvbmZfdG1wX3Qp Cih0eXBlYWxpYXNhY3R1YWwgc3RhZmZfZ2NvbmZfdG1wX3QgZ2NvbmZfdG1wX3QpCih0eXBl YWxpYXMgdXNlcl9nY29uZl90bXBfdCkKKHR5cGVhbGlhc2FjdHVhbCB1c2VyX2djb25mX3Rt cF90IGdjb25mX3RtcF90KQoodHlwZWFsaWFzIHN5c2FkbV9nbm9tZV9ob21lX3QpCih0eXBl YWxpYXNhY3R1YWwgc3lzYWRtX2dub21lX2hvbWVfdCBnbm9tZV9ob21lX3QpCih0eXBlYWxp YXMgYXVkaXRhZG1fZ25vbWVfaG9tZV90KQoodHlwZWFsaWFzYWN0dWFsIGF1ZGl0YWRtX2du b21lX2hvbWVfdCBnbm9tZV9ob21lX3QpCih0eXBlYWxpYXMgc2VjYWRtX2djb25mZF90KQoo dHlwZWFsaWFzYWN0dWFsIHNlY2FkbV9nY29uZmRfdCBnY29uZmRfdCkKKHR5cGVhbGlhcyBz eXNhZG1fZ2NvbmZkX3QpCih0eXBlYWxpYXNhY3R1YWwgc3lzYWRtX2djb25mZF90IGdjb25m ZF90KQoodHlwZWFsaWFzIHVuY29uZmluZWRfZ2NvbmZfaG9tZV90KQoodHlwZWFsaWFzYWN0 dWFsIHVuY29uZmluZWRfZ2NvbmZfaG9tZV90IGdjb25mX2hvbWVfdCkKKHR5cGVhbGlhcyBz ZWNhZG1fZ25vbWVfaG9tZV90KQoodHlwZWFsaWFzYWN0dWFsIHNlY2FkbV9nbm9tZV9ob21l X3QgZ25vbWVfaG9tZV90KQoodHlwZWFsaWFzIHN0YWZmX2dub21lX2hvbWVfdCkKKHR5cGVh bGlhc2FjdHVhbCBzdGFmZl9nbm9tZV9ob21lX3QgZ25vbWVfaG9tZV90KQoodHlwZWFsaWFz IHVuY29uZmluZWRfZ2NvbmZfdG1wX3QpCih0eXBlYWxpYXNhY3R1YWwgdW5jb25maW5lZF9n Y29uZl90bXBfdCBnY29uZl90bXBfdCkKKHR5cGVhbGlhcyBhdWRpdGFkbV9nY29uZmRfdCkK KHR5cGVhbGlhc2FjdHVhbCBhdWRpdGFkbV9nY29uZmRfdCBnY29uZmRfdCkKKHR5cGVhbGlh cyB1c2VyX2djb25mX2hvbWVfdCkKKHR5cGVhbGlhc2FjdHVhbCB1c2VyX2djb25mX2hvbWVf dCBnY29uZl9ob21lX3QpCih0eXBlYWxpYXMgc2VjYWRtX2djb25mX3RtcF90KQoodHlwZWFs aWFzYWN0dWFsIHNlY2FkbV9nY29uZl90bXBfdCBnY29uZl90bXBfdCkKKHR5cGVhbGlhcyBz eXNhZG1fZ2NvbmZfdG1wX3QpCih0eXBlYWxpYXNhY3R1YWwgc3lzYWRtX2djb25mX3RtcF90 IGdjb25mX3RtcF90KQoodHlwZWFsaWFzIHN0YWZmX2djb25mZF90KQoodHlwZWFsaWFzYWN0 dWFsIHN0YWZmX2djb25mZF90IGdjb25mZF90KQoodHlwZWFsaWFzIGF1ZGl0YWRtX2djb25m X3RtcF90KQoodHlwZWFsaWFzYWN0dWFsIGF1ZGl0YWRtX2djb25mX3RtcF90IGdjb25mX3Rt cF90KQoodHlwZWFsaWFzIHN5c2FkbV9nY29uZl9ob21lX3QpCih0eXBlYWxpYXNhY3R1YWwg c3lzYWRtX2djb25mX2hvbWVfdCBnY29uZl9ob21lX3QpCih0eXBlYWxpYXMgdXNlcl9nY29u ZmRfdCkKKHR5cGVhbGlhc2FjdHVhbCB1c2VyX2djb25mZF90IGdjb25mZF90KQoodHlwZWFs aWFzIGF1ZGl0YWRtX2djb25mX2hvbWVfdCkKKHR5cGVhbGlhc2FjdHVhbCBhdWRpdGFkbV9n Y29uZl9ob21lX3QgZ2NvbmZfaG9tZV90KQoodHlwZWF0dHJpYnV0ZSBnbm9tZWRvbWFpbikK KHR5cGVhdHRyaWJ1dGVzZXQgZ25vbWVkb21haW4gKGdjb25mZF90ICkpCih0eXBlYXR0cmli dXRlIGdub21lX2hvbWVfdHlwZSkKKHR5cGVhdHRyaWJ1dGVzZXQgZ25vbWVfaG9tZV90eXBl IChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9t ZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ25vbWVfaG9t ZV90ICkpCih0eXBlYXR0cmlidXRlIGdrZXlyaW5nZF9kb21haW4pCih0eXBlIGdjb25mX2V0 Y190KQoocm9sZXR5cGUgb2JqZWN0X3IgZ2NvbmZfZXRjX3QpCih0eXBlIGRhdGFfaG9tZV90 KQoocm9sZXR5cGUgb2JqZWN0X3IgZGF0YV9ob21lX3QpCih0eXBlIGNvbmZpZ19ob21lX3Qp Cihyb2xldHlwZSBvYmplY3RfciBjb25maWdfaG9tZV90KQoodHlwZSBjYWNoZV9ob21lX3Qp Cihyb2xldHlwZSBvYmplY3RfciBjYWNoZV9ob21lX3QpCih0eXBlIGdzdHJlYW1lcl9ob21l X3QpCihyb2xldHlwZSBvYmplY3RfciBnc3RyZWFtZXJfaG9tZV90KQoodHlwZSBkYnVzX2hv bWVfdCkKKHJvbGV0eXBlIG9iamVjdF9yIGRidXNfaG9tZV90KQoodHlwZSBpY2NfZGF0YV9o b21lX3QpCihyb2xldHlwZSBvYmplY3RfciBpY2NfZGF0YV9ob21lX3QpCih0eXBlIGdjb25m X2hvbWVfdCkKKHJvbGV0eXBlIG9iamVjdF9yIGdjb25mX2hvbWVfdCkKKHR5cGUgZ2NvbmZf dG1wX3QpCihyb2xldHlwZSBvYmplY3RfciBnY29uZl90bXBfdCkKKHR5cGUgZ2NvbmZkX3Qp Cihyb2xldHlwZSBvYmplY3RfciBnY29uZmRfdCkKKHR5cGUgZ2NvbmZkX2V4ZWNfdCkKKHJv bGV0eXBlIG9iamVjdF9yIGdjb25mZF9leGVjX3QpCih0eXBlIGdub21lX2hvbWVfdCkKKHJv bGV0eXBlIG9iamVjdF9yIGdub21lX2hvbWVfdCkKKHR5cGUgY29uZmlnX3Vzcl90KQoocm9s ZXR5cGUgb2JqZWN0X3IgY29uZmlnX3Vzcl90KQoodHlwZSBna2V5cmluZ2RfZXhlY190KQoo cm9sZXR5cGUgb2JqZWN0X3IgZ2tleXJpbmdkX2V4ZWNfdCkKKHR5cGUgZ2tleXJpbmdkX2du b21lX2hvbWVfdCkKKHJvbGV0eXBlIG9iamVjdF9yIGdrZXlyaW5nZF9nbm9tZV9ob21lX3Qp Cih0eXBlIGdrZXlyaW5nZF90bXBfdCkKKHJvbGV0eXBlIG9iamVjdF9yIGdrZXlyaW5nZF90 bXBfdCkKKHR5cGUgZ2NvbmZkZWZhdWx0c21fdCkKKHJvbGV0eXBlIG9iamVjdF9yIGdjb25m ZGVmYXVsdHNtX3QpCih0eXBlIGdjb25mZGVmYXVsdHNtX2V4ZWNfdCkKKHJvbGV0eXBlIG9i amVjdF9yIGdjb25mZGVmYXVsdHNtX2V4ZWNfdCkKKHR5cGUgZ25vbWVzeXN0ZW1tbV90KQoo cm9sZXR5cGUgb2JqZWN0X3IgZ25vbWVzeXN0ZW1tbV90KQoodHlwZSBnbm9tZXN5c3RlbW1t X2V4ZWNfdCkKKHJvbGV0eXBlIG9iamVjdF9yIGdub21lc3lzdGVtbW1fZXhlY190KQoodHlw ZWF0dHJpYnV0ZXNldCBjb25maWdmaWxlIChnY29uZl9ldGNfdCApKQoodHlwZWF0dHJpYnV0 ZXNldCBmaWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3Qg Y2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9t ZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVf dCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90 IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9l eGVjX3QgKSkKKHR5cGVhdHRyaWJ1dGVzZXQgbm9uX3NlY3VyaXR5X2ZpbGVfdHlwZSAoZ2Nv bmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVh bWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdj b25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZpZ191c3JfdCBna2V5 cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90IGdj b25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQoodHlwZWF0dHJp YnV0ZXNldCBub25fYXV0aF9maWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNv bmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3Qg aWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190 IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2Rf Z25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25v bWVzeXN0ZW1tbV9leGVjX3QgKSkKKHR5cGVhdHRyaWJ1dGVzZXQgdXNlcl9ob21lX2NvbnRl bnRfdHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVh bWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdu b21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90ICkpCih0eXBlYXR0cmlidXRlc2V0 IHVzZXJfaG9tZV90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVf dCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9o b21lX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgKSkKKHR5cGVhdHRy aWJ1dGVzZXQgdWJhY19jb25zdHJhaW5lZF90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9t ZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRh X2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX3QgZ25vbWVfaG9tZV90 IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90ICkpCih0eXBlYXR0cmli dXRlc2V0IHBvbHltZW1iZXIgKGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9t ZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25m X2hvbWVfdCBnY29uZl90bXBfdCBnbm9tZV9ob21lX3QgZ2tleXJpbmdkX2dub21lX2hvbWVf dCBna2V5cmluZ2RfdG1wX3QgKSkKKHR5cGVhdHRyaWJ1dGVzZXQgdG1wZmlsZSAoZ2NvbmZf dG1wX3QgZ2tleXJpbmdkX3RtcF90ICkpCih0eXBlYXR0cmlidXRlc2V0IGFwcGxpY2F0aW9u X2RvbWFpbl90eXBlIChnY29uZmRfdCApKQoodHlwZWF0dHJpYnV0ZXNldCBkb21haW4gKGdj b25mZF90IGdjb25mZGVmYXVsdHNtX3QgZ25vbWVzeXN0ZW1tbV90ICkpCih0eXBlYXR0cmli dXRlc2V0IGNvcmVuZXRfdW5sYWJlbGVkX3R5cGUgKGdjb25mZF90IGdjb25mZGVmYXVsdHNt X3QgZ25vbWVzeXN0ZW1tbV90ICkpCih0eXBlYXR0cmlidXRlc2V0IGFwcGxpY2F0aW9uX2V4 ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCApKQoodHlwZWF0dHJpYnV0ZXNldCBleGVjX3R5cGUg KGdjb25mZF9leGVjX3QgZ2tleXJpbmdkX2V4ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3Qg Z25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKKHR5cGVhdHRyaWJ1dGVzZXQgZW50cnlfdHlwZSAo Z2NvbmZkX2V4ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVj X3QgKSkKKHR5cGVhdHRyaWJ1dGVzZXQgdXNlcl90bXBfdHlwZSAoZ2tleXJpbmdkX3RtcF90 ICkpCih0eXBlYXR0cmlidXRlc2V0IGRpcmVjdF9pbml0X2VudHJ5IChnY29uZmRlZmF1bHRz bV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKKHR5cGVhdHRyaWJ1dGVzZXQgZGFl bW9uIChnY29uZmRlZmF1bHRzbV90IGdub21lc3lzdGVtbW1fdCApKQoodHlwZWF0dHJpYnV0 ZXNldCBzeXNsb2dfY2xpZW50X3R5cGUgKGdjb25mZF90IGdub21lc3lzdGVtbW1fdCApKQoo dHlwZWF0dHJpYnV0ZXNldCB1c2VyZG9tX2hvbWVfbWFuYWdlcl90eXBlIChnY29uZmRlZmF1 bHRzbV90ICkpCih0eXBlYXR0cmlidXRlc2V0IGtlcm5lbF9zeXN0ZW1fc3RhdGVfcmVhZGVy IChnbm9tZXN5c3RlbW1tX3QgKSkKKGFsbG93IGRhdGFfaG9tZV90IHVzZXJfaG9tZV90IChm aWxlc3lzdGVtIChhc3NvY2lhdGUpKSkKKGFsbG93IGNvbmZpZ19ob21lX3QgdXNlcl9ob21l X3QgKGZpbGVzeXN0ZW0gKGFzc29jaWF0ZSkpKQooYWxsb3cgY2FjaGVfaG9tZV90IHVzZXJf aG9tZV90IChmaWxlc3lzdGVtIChhc3NvY2lhdGUpKSkKKGFsbG93IGdzdHJlYW1lcl9ob21l X3QgdXNlcl9ob21lX3QgKGZpbGVzeXN0ZW0gKGFzc29jaWF0ZSkpKQooYWxsb3cgZGJ1c19o b21lX3QgdXNlcl9ob21lX3QgKGZpbGVzeXN0ZW0gKGFzc29jaWF0ZSkpKQooYWxsb3cgaWNj X2RhdGFfaG9tZV90IHVzZXJfaG9tZV90IChmaWxlc3lzdGVtIChhc3NvY2lhdGUpKSkKKGFs bG93IGdjb25mX2hvbWVfdCB1c2VyX2hvbWVfdCAoZmlsZXN5c3RlbSAoYXNzb2NpYXRlKSkp CihhbGxvdyBnY29uZmRfdCBnY29uZmRfZXhlY190IChmaWxlIChlbnRyeXBvaW50KSkpCihh bGxvdyBnY29uZmRfdCBnY29uZmRfZXhlY190IChmaWxlIChpb2N0bCByZWFkIGdldGF0dHIg bG9jayBleGVjdXRlIGV4ZWN1dGVfbm9fdHJhbnMgb3BlbikpKQooYWxsb3cgZ25vbWVfaG9t ZV90IHVzZXJfaG9tZV90IChmaWxlc3lzdGVtIChhc3NvY2lhdGUpKSkKKGFsbG93IGdrZXly aW5nZF9nbm9tZV9ob21lX3QgdXNlcl9ob21lX3QgKGZpbGVzeXN0ZW0gKGFzc29jaWF0ZSkp KQooYWxsb3cgZ2NvbmZkZWZhdWx0c21fdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgKGZpbGUg KGVudHJ5cG9pbnQpKSkKKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgZ2NvbmZkZWZhdWx0c21f ZXhlY190IChmaWxlIChpb2N0bCByZWFkIGdldGF0dHIgbG9jayBleGVjdXRlIGV4ZWN1dGVf bm9fdHJhbnMgb3BlbikpKQoodHlwZXRyYW5zaXRpb24gaW5pdHJjX2RvbWFpbiBnY29uZmRl ZmF1bHRzbV9leGVjX3QgcHJvY2VzcyBnY29uZmRlZmF1bHRzbV90KQooYWxsb3cgZ25vbWVz eXN0ZW1tbV90IGdub21lc3lzdGVtbW1fZXhlY190IChmaWxlIChlbnRyeXBvaW50KSkpCihh bGxvdyBnbm9tZXN5c3RlbW1tX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKGZpbGUgKGlvY3Rs IHJlYWQgZ2V0YXR0ciBsb2NrIGV4ZWN1dGUgZXhlY3V0ZV9ub190cmFucyBvcGVuKSkpCih0 eXBldHJhbnNpdGlvbiBpbml0cmNfZG9tYWluIGdub21lc3lzdGVtbW1fZXhlY190IHByb2Nl c3MgZ25vbWVzeXN0ZW1tbV90KQooYWxsb3cgZ2NvbmZkX3Qgc2VsZiAocHJvY2VzcyAoZ2V0 c2NoZWQpKSkKKGFsbG93IGdjb25mZF90IHNlbGYgKGZpZm9fZmlsZSAoaW9jdGwgcmVhZCB3 cml0ZSBnZXRhdHRyIGxvY2sgYXBwZW5kIG9wZW4pKSkKKGFsbG93IGdjb25mZF90IGdjb25m X2hvbWVfdCAoZGlyIChpb2N0bCByZWFkIHdyaXRlIGdldGF0dHIgbG9jayBhZGRfbmFtZSBy ZW1vdmVfbmFtZSBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ2NvbmZkX3QgZ2NvbmZfaG9tZV90 IChkaXIgKGlvY3RsIHJlYWQgd3JpdGUgY3JlYXRlIGdldGF0dHIgc2V0YXR0ciBsb2NrIHVu bGluayBsaW5rIHJlbmFtZSBhZGRfbmFtZSByZW1vdmVfbmFtZSByZXBhcmVudCBzZWFyY2gg cm1kaXIgb3BlbikpKQooYWxsb3cgZ2NvbmZkX3QgZ2NvbmZfaG9tZV90IChkaXIgKGlvY3Rs IHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFkZF9uYW1lIHJlbW92ZV9uYW1lIHNlYXJjaCBv cGVuKSkpCihhbGxvdyBnY29uZmRfdCBnY29uZl9ob21lX3QgKGZpbGUgKGlvY3RsIHJlYWQg d3JpdGUgY3JlYXRlIGdldGF0dHIgc2V0YXR0ciBsb2NrIGFwcGVuZCB1bmxpbmsgbGluayBy ZW5hbWUgb3BlbikpKQooYWxsb3cgZ2NvbmZkX3QgdXNlcl9ob21lX2Rpcl90IChkaXIgKGlv Y3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFkZF9uYW1lIHJlbW92ZV9uYW1lIHNlYXJj aCBvcGVuKSkpCih0eXBldHJhbnNpdGlvbiBnY29uZmRfdCB1c2VyX2hvbWVfZGlyX3QgZGly IGdjb25mX2hvbWVfdCkKKGFsbG93IGdjb25mZF90IGhvbWVfcm9vdF90IChkaXIgKGdldGF0 dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdjb25mZF90IGhvbWVfcm9vdF90IChsbmtfZmls ZSAocmVhZCBnZXRhdHRyKSkpCihhbGxvdyBnY29uZmRfdCBnY29uZl90bXBfdCAoZGlyIChp b2N0bCByZWFkIHdyaXRlIGdldGF0dHIgbG9jayBhZGRfbmFtZSByZW1vdmVfbmFtZSBzZWFy Y2ggb3BlbikpKQooYWxsb3cgZ2NvbmZkX3QgZ2NvbmZfdG1wX3QgKGRpciAoaW9jdGwgcmVh ZCB3cml0ZSBjcmVhdGUgZ2V0YXR0ciBzZXRhdHRyIGxvY2sgdW5saW5rIGxpbmsgcmVuYW1l IGFkZF9uYW1lIHJlbW92ZV9uYW1lIHJlcGFyZW50IHNlYXJjaCBybWRpciBvcGVuKSkpCihh bGxvdyBnY29uZmRfdCBnY29uZl90bXBfdCAoZGlyIChpb2N0bCByZWFkIHdyaXRlIGdldGF0 dHIgbG9jayBhZGRfbmFtZSByZW1vdmVfbmFtZSBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ2Nv bmZkX3QgZ2NvbmZfdG1wX3QgKGZpbGUgKGlvY3RsIHJlYWQgd3JpdGUgY3JlYXRlIGdldGF0 dHIgc2V0YXR0ciBsb2NrIGFwcGVuZCB1bmxpbmsgbGluayByZW5hbWUgb3BlbikpKQooYWxs b3cgZ2NvbmZkX3QgdXNlcl90bXBfdCAoZGlyIChpb2N0bCByZWFkIHdyaXRlIGdldGF0dHIg bG9jayBhZGRfbmFtZSByZW1vdmVfbmFtZSBzZWFyY2ggb3BlbikpKQoodHlwZXRyYW5zaXRp b24gZ2NvbmZkX3QgdXNlcl90bXBfdCBkaXIgZ2NvbmZfdG1wX3QpCih0eXBldHJhbnNpdGlv biBnY29uZmRfdCB1c2VyX3RtcF90IGZpbGUgZ2NvbmZfdG1wX3QpCihhbGxvdyBnY29uZmRf dCB0bXBfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBnY29uZmRfdCB0 bXBfdCAobG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikpKQooYWxsb3cgZ2NvbmZkX3QgdG1wX3Qg KGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ2NvbmZkX3QgZ2NvbmZfZXRj X3QgKGRpciAoaW9jdGwgcmVhZCBnZXRhdHRyIGxvY2sgc2VhcmNoIG9wZW4pKSkKKGFsbG93 IGdjb25mZF90IGdjb25mX2V0Y190IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFs bG93IGdjb25mZF90IGdjb25mX2V0Y190IChmaWxlIChpb2N0bCByZWFkIGdldGF0dHIgbG9j ayBvcGVuKSkpCihhbGxvdyBnY29uZmRfdCBkZXZpY2VfdCAoZGlyIChnZXRhdHRyIHNlYXJj aCBvcGVuKSkpCihhbGxvdyBnY29uZmRfdCB1cmFuZG9tX2RldmljZV90IChjaHJfZmlsZSAo aW9jdGwgcmVhZCBnZXRhdHRyIGxvY2sgb3BlbikpKQooYWxsb3cgZ2NvbmZkX3QgdXNlcl90 bXBfdCAoZGlyIChpb2N0bCByZWFkIHdyaXRlIGdldGF0dHIgbG9jayBhZGRfbmFtZSByZW1v dmVfbmFtZSBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ2NvbmZkX3QgdXNlcl90bXBfdCAoc29j a19maWxlIChpb2N0bCByZWFkIHdyaXRlIGNyZWF0ZSBnZXRhdHRyIHNldGF0dHIgbG9jayBh cHBlbmQgdW5saW5rIGxpbmsgcmVuYW1lIG9wZW4pKSkKKGFsbG93IGdjb25mZF90IHRtcF90 IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdjb25mZF90IHRtcF90IChs bmtfZmlsZSAocmVhZCBnZXRhdHRyKSkpCihhbGxvdyBnY29uZmRfdCB0bXBfdCAoZGlyIChn ZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBnY29uZmRfdCB1c2VyX3RtcF90IChkaXIg KGlvY3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFkZF9uYW1lIHJlbW92ZV9uYW1lIHNl YXJjaCBvcGVuKSkpCihhbGxvdyBnY29uZmRfdCB1c2VyX3RtcF90IChkaXIgKGlvY3RsIHJl YWQgd3JpdGUgY3JlYXRlIGdldGF0dHIgc2V0YXR0ciBsb2NrIHVubGluayBsaW5rIHJlbmFt ZSBhZGRfbmFtZSByZW1vdmVfbmFtZSByZXBhcmVudCBzZWFyY2ggcm1kaXIgb3BlbikpKQoo YWxsb3cgZ2NvbmZkX3QgdG1wX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQooYWxs b3cgZ2NvbmZkX3QgdG1wX3QgKGxua19maWxlIChyZWFkIGdldGF0dHIpKSkKKGFsbG93IGdj b25mZF90IHRtcF90IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdjb25m ZF90IHRtcF90IChkaXIgKGlvY3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFkZF9uYW1l IHJlbW92ZV9uYW1lIHNlYXJjaCBvcGVuKSkpCih0eXBldHJhbnNpdGlvbiBnY29uZmRfdCB0 bXBfdCBkaXIgdXNlcl90bXBfdCkKKGFsbG93IGdjb25mZGVmYXVsdHNtX3Qgc2VsZiAoY2Fw YWJpbGl0eSAoZGFjX292ZXJyaWRlIHN5c19uaWNlKSkpCihhbGxvdyBnY29uZmRlZmF1bHRz bV90IHNlbGYgKHByb2Nlc3MgKGdldHNjaGVkKSkpCihhbGxvdyBnY29uZmRlZmF1bHRzbV90 IHNlbGYgKGZpZm9fZmlsZSAoaW9jdGwgcmVhZCB3cml0ZSBnZXRhdHRyIGxvY2sgYXBwZW5k IG9wZW4pKSkKKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgYmluX3QgKGRpciAoZ2V0YXR0ciBz ZWFyY2ggb3BlbikpKQooYWxsb3cgZ2NvbmZkZWZhdWx0c21fdCBiaW5fdCAobG5rX2ZpbGUg KHJlYWQgZ2V0YXR0cikpKQooYWxsb3cgZ2NvbmZkZWZhdWx0c21fdCBiaW5fdCAoZGlyIChn ZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBnY29uZmRlZmF1bHRzbV90IGJpbl90IChk aXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgcGFz c3dkX2ZpbGVfdCAoZmlsZSAoaW9jdGwgcmVhZCBnZXRhdHRyIGxvY2sgb3BlbikpKQooYWxs b3cgZ2NvbmZkZWZhdWx0c21fdCBnY29uZl9ob21lX3QgKGRpciAoaW9jdGwgcmVhZCBnZXRh dHRyIGxvY2sgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgZ2NvbmZf aG9tZV90IChkaXIgKGlvY3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFkZF9uYW1lIHJl bW92ZV9uYW1lIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBnY29uZmRlZmF1bHRzbV90IGdjb25m X2hvbWVfdCAoZmlsZSAoaW9jdGwgcmVhZCB3cml0ZSBjcmVhdGUgZ2V0YXR0ciBzZXRhdHRy IGxvY2sgYXBwZW5kIHVubGluayBsaW5rIHJlbmFtZSBvcGVuKSkpCihhbGxvdyBnY29uZmRl ZmF1bHRzbV90IGdjb25mX2V0Y190IChkaXIgKGlvY3RsIHJlYWQgZ2V0YXR0ciBsb2NrIHNl YXJjaCBvcGVuKSkpCihhbGxvdyBnY29uZmRlZmF1bHRzbV90IGdjb25mX2V0Y190IChkaXIg KGlvY3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFkZF9uYW1lIHJlbW92ZV9uYW1lIHNl YXJjaCBvcGVuKSkpCihhbGxvdyBnY29uZmRlZmF1bHRzbV90IGdjb25mX2V0Y190IChmaWxl IChpb2N0bCByZWFkIHdyaXRlIGNyZWF0ZSBnZXRhdHRyIHNldGF0dHIgbG9jayBhcHBlbmQg dW5saW5rIGxpbmsgcmVuYW1lIG9wZW4pKSkKKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgdXNl cmRvbWFpbiAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBnY29uZmRlZmF1 bHRzbV90IHVzZXJkb21haW4gKGZpbGUgKGlvY3RsIHJlYWQgZ2V0YXR0ciBsb2NrIG9wZW4p KSkKKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgdXNlcmRvbWFpbiAoZGlyIChnZXRhdHRyIHNl YXJjaCBvcGVuKSkpCihhbGxvdyBnY29uZmRlZmF1bHRzbV90IHVzZXJkb21haW4gKGxua19m aWxlIChyZWFkIGdldGF0dHIpKSkKKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgcHJvY190IChk aXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgcHJv Y190IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdjb25mZGVmYXVsdHNt X3QgdXNlcl9ob21lX2Rpcl90IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93 IGdjb25mZGVmYXVsdHNtX3QgdXNlcl9ob21lX2Rpcl90IChsbmtfZmlsZSAocmVhZCBnZXRh dHRyKSkpCihhbGxvdyBnY29uZmRlZmF1bHRzbV90IGhvbWVfcm9vdF90IChkaXIgKGdldGF0 dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgaG9tZV9yb290X3Qg KGxua19maWxlIChyZWFkIGdldGF0dHIpKSkKKGRvbnRhdWRpdCBnY29uZmRlZmF1bHRzbV90 IGFkbWluX2hvbWVfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBnbm9t ZXN5c3RlbW1tX3Qgc2VsZiAoY2FwYWJpbGl0eSAoc3lzX2FkbWluIHN5c19uaWNlKSkpCihh bGxvdyBnbm9tZXN5c3RlbW1tX3Qgc2VsZiAoZmlmb19maWxlIChpb2N0bCByZWFkIHdyaXRl IGdldGF0dHIgbG9jayBhcHBlbmQgb3BlbikpKQooYWxsb3cgZ25vbWVzeXN0ZW1tbV90IGNv bmZpZ191c3JfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBnbm9tZXN5 c3RlbW1tX3QgY29uZmlnX3Vzcl90IChmaWxlIChpb2N0bCByZWFkIHdyaXRlIGdldGF0dHIg bG9jayBhcHBlbmQgb3BlbikpKQooYWxsb3cgZ25vbWVzeXN0ZW1tbV90IGJpbl90IChkaXIg KGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdub21lc3lzdGVtbW1fdCBiaW5fdCAo bG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikpKQooYWxsb3cgZ25vbWVzeXN0ZW1tbV90IGJpbl90 IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdub21lc3lzdGVtbW1fdCBi aW5fdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBnbm9tZXN5c3RlbW1t X3QgZG9tYWluIChwcm9jZXNzIChzaWdraWxsKSkpCihhbGxvdyBnbm9tZXN5c3RlbW1tX3Qg c2VsZiAoY2FwYWJpbGl0eSAoa2lsbCkpKQooYWxsb3cgZ25vbWVzeXN0ZW1tbV90IHByb2Nf dCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBnbm9tZXN5c3RlbW1tX3Qg cHJvY190IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdub21lc3lzdGVt bW1fdCBkb21haW4gKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ25vbWVz eXN0ZW1tbV90IGRvbWFpbiAocHJvY2VzcyAoc2V0c2NoZWQpKSkKKGFsbG93IGdub21lc3lz dGVtbW1fdCBkb21haW4gKHByb2Nlc3MgKHNpZ25hbCkpKQooYWxsb3cgZ25vbWVzeXN0ZW1t bV90IGRvbWFpbiAocHJvY2VzcyAoc2lnc3RvcCkpKQooYWxsb3cgZ25vbWVzeXN0ZW1tbV90 IGZzX3QgKGZpbGVzeXN0ZW0gKGdldGF0dHIpKSkKKGFsbG93IGdub21lc3lzdGVtbW1fdCBw YXNzd2RfZmlsZV90IChmaWxlIChpb2N0bCByZWFkIGdldGF0dHIgbG9jayBvcGVuKSkpCihh bGxvdyBnbm9tZXN5c3RlbW1tX3QgdXNlcmRvbWFpbiAoZGlyIChnZXRhdHRyIHNlYXJjaCBv cGVuKSkpCihhbGxvdyBnbm9tZXN5c3RlbW1tX3QgdXNlcmRvbWFpbiAoZmlsZSAoaW9jdGwg cmVhZCBnZXRhdHRyIGxvY2sgb3BlbikpKQooYWxsb3cgZ25vbWVzeXN0ZW1tbV90IHVzZXJk b21haW4gKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ25vbWVzeXN0ZW1t bV90IHVzZXJkb21haW4gKGxua19maWxlIChyZWFkIGdldGF0dHIpKSkKKGFsbG93IGdub21l c3lzdGVtbW1fdCBwcm9jX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQooYWxsb3cg Z25vbWVzeXN0ZW1tbV90IHByb2NfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihk b250YXVkaXQgZ25vbWVzeXN0ZW1tbV90IGFkbWluX2hvbWVfdCAoZGlyIChnZXRhdHRyIHNl YXJjaCBvcGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIHNlbGYgKGNhcGFiaWxpdHkg KGlwY19sb2NrKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIHNlbGYgKHByb2Nlc3MgKHNp Z25hbCBnZXRzY2hlZCBnZXRjYXAgc2V0Y2FwKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWlu IHNlbGYgKGZpZm9fZmlsZSAoaW9jdGwgcmVhZCB3cml0ZSBnZXRhdHRyIGxvY2sgYXBwZW5k IG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gc2VsZiAodW5peF9zdHJlYW1fc29j a2V0IChsaXN0ZW4gYWNjZXB0IGNvbm5lY3R0bykpKQooYWxsb3cgZ2tleXJpbmdkX2RvbWFp biBjb25maWdfaG9tZV90IChkaXIgKGlvY3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFk ZF9uYW1lIHJlbW92ZV9uYW1lIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9t YWluIGNvbmZpZ19ob21lX3QgKGZpbGUgKGlvY3RsIHJlYWQgd3JpdGUgY3JlYXRlIGdldGF0 dHIgc2V0YXR0ciBsb2NrIGFwcGVuZCB1bmxpbmsgbGluayByZW5hbWUgb3BlbikpKQooYWxs b3cgZ2tleXJpbmdkX2RvbWFpbiBna2V5cmluZ2RfZ25vbWVfaG9tZV90IChkaXIgKGlvY3Rs IHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFkZF9uYW1lIHJlbW92ZV9uYW1lIHNlYXJjaCBv cGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIGdrZXlyaW5nZF9nbm9tZV9ob21lX3Qg KGRpciAoaW9jdGwgcmVhZCB3cml0ZSBjcmVhdGUgZ2V0YXR0ciBzZXRhdHRyIGxvY2sgdW5s aW5rIGxpbmsgcmVuYW1lIGFkZF9uYW1lIHJlbW92ZV9uYW1lIHJlcGFyZW50IHNlYXJjaCBy bWRpciBvcGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIGdrZXlyaW5nZF9nbm9tZV9o b21lX3QgKGRpciAoaW9jdGwgcmVhZCB3cml0ZSBnZXRhdHRyIGxvY2sgYWRkX25hbWUgcmVt b3ZlX25hbWUgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gZ2tleXJp bmdkX2dub21lX2hvbWVfdCAoZmlsZSAoaW9jdGwgcmVhZCB3cml0ZSBjcmVhdGUgZ2V0YXR0 ciBzZXRhdHRyIGxvY2sgYXBwZW5kIHVubGluayBsaW5rIHJlbmFtZSBvcGVuKSkpCihhbGxv dyBna2V5cmluZ2RfZG9tYWluIGRhdGFfaG9tZV90IChkaXIgKGNyZWF0ZSBnZXRhdHRyKSkp CihhbGxvdyBna2V5cmluZ2RfZG9tYWluIGdjb25mX2hvbWVfdCAoZGlyIChjcmVhdGUgZ2V0 YXR0cikpKQooYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBnY29uZl9ob21lX3QgKGRpciAoaW9j dGwgcmVhZCB3cml0ZSBnZXRhdHRyIGxvY2sgYWRkX25hbWUgcmVtb3ZlX25hbWUgc2VhcmNo IG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gZ25vbWVfaG9tZV90IChkaXIgKGlv Y3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFkZF9uYW1lIHJlbW92ZV9uYW1lIHNlYXJj aCBvcGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIGRhdGFfaG9tZV90IChkaXIgKGlv Y3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFkZF9uYW1lIHJlbW92ZV9uYW1lIHNlYXJj aCBvcGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIGdub21lX2hvbWVfdCAoZGlyIChp b2N0bCByZWFkIHdyaXRlIGdldGF0dHIgbG9jayBhZGRfbmFtZSByZW1vdmVfbmFtZSBzZWFy Y2ggb3BlbikpKQooYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBna2V5cmluZ2RfdG1wX3QgKGRp ciAoaW9jdGwgcmVhZCB3cml0ZSBnZXRhdHRyIGxvY2sgYWRkX25hbWUgcmVtb3ZlX25hbWUg c2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gZ2tleXJpbmdkX3RtcF90 IChkaXIgKGlvY3RsIHJlYWQgd3JpdGUgY3JlYXRlIGdldGF0dHIgc2V0YXR0ciBsb2NrIHVu bGluayBsaW5rIHJlbmFtZSBhZGRfbmFtZSByZW1vdmVfbmFtZSByZXBhcmVudCBzZWFyY2gg cm1kaXIgb3BlbikpKQooYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBna2V5cmluZ2RfdG1wX3Qg KGRpciAoaW9jdGwgcmVhZCB3cml0ZSBnZXRhdHRyIGxvY2sgYWRkX25hbWUgcmVtb3ZlX25h bWUgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gZ2tleXJpbmdkX3Rt cF90IChzb2NrX2ZpbGUgKGlvY3RsIHJlYWQgd3JpdGUgY3JlYXRlIGdldGF0dHIgc2V0YXR0 ciBsb2NrIGFwcGVuZCB1bmxpbmsgbGluayByZW5hbWUgb3BlbikpKQooYWxsb3cgZ2tleXJp bmdkX2RvbWFpbiB0bXBfdCAoZGlyIChpb2N0bCByZWFkIHdyaXRlIGdldGF0dHIgbG9jayBh ZGRfbmFtZSByZW1vdmVfbmFtZSBzZWFyY2ggb3BlbikpKQoodHlwZXRyYW5zaXRpb24gZ2tl eXJpbmdkX2RvbWFpbiB0bXBfdCBkaXIgZ2tleXJpbmdkX3RtcF90KQooYWxsb3cgZ2tleXJp bmdkX2RvbWFpbiB1c2VyX3RtcF90IChkaXIgKGlvY3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBs b2NrIGFkZF9uYW1lIHJlbW92ZV9uYW1lIHNlYXJjaCBvcGVuKSkpCih0eXBldHJhbnNpdGlv biBna2V5cmluZ2RfZG9tYWluIHVzZXJfdG1wX3Qgc29ja19maWxlIGdrZXlyaW5nZF90bXBf dCkKKHR5cGV0cmFuc2l0aW9uIGdrZXlyaW5nZF9kb21haW4gdXNlcl90bXBfdCBkaXIgZ2tl eXJpbmdkX3RtcF90KQooYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiB0bXBfdCAoZGlyIChnZXRh dHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIHRtcF90IChsbmtf ZmlsZSAocmVhZCBnZXRhdHRyKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIHRtcF90IChk aXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gcHJv Y190IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21h aW4gc3lzY3RsX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ2tleXJp bmdkX2RvbWFpbiBzeXNjdGxfY3J5cHRvX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3Blbikp KQooYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBzeXNjdGxfY3J5cHRvX3QgKGZpbGUgKGlvY3Rs IHJlYWQgZ2V0YXR0ciBsb2NrIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gcHJv Y190IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21h aW4gc3lzY3RsX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ2tleXJp bmdkX2RvbWFpbiBzeXNjdGxfY3J5cHRvX3QgKGRpciAoaW9jdGwgcmVhZCBnZXRhdHRyIGxv Y2sgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gYmluX3QgKGRpciAo Z2V0YXR0ciBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBiaW5fdCAo bG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikpKQooYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBiaW5f dCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWlu IGJpbl90IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9k b21haW4gZGV2aWNlX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ2tl eXJpbmdkX2RvbWFpbiByYW5kb21fZGV2aWNlX3QgKGNocl9maWxlIChpb2N0bCByZWFkIGdl dGF0dHIgbG9jayBvcGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIGRldmljZV90IChk aXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gdXJh bmRvbV9kZXZpY2VfdCAoY2hyX2ZpbGUgKGlvY3RsIHJlYWQgZ2V0YXR0ciBsb2NrIG9wZW4p KSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gc3lzZnNfdCAoZGlyIChnZXRhdHRyIHNlYXJj aCBvcGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIHN5c2ZzX3QgKGZpbGUgKGlvY3Rs IHJlYWQgZ2V0YXR0ciBsb2NrIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gc3lz ZnNfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBna2V5cmluZ2RfZG9t YWluIHN5c2ZzX3QgKGxua19maWxlIChyZWFkIGdldGF0dHIpKSkKKGFsbG93IGdrZXlyaW5n ZF9kb21haW4gc3lzZnNfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCihhbGxvdyBn a2V5cmluZ2RfZG9tYWluIHN5c2ZzX3QgKGRpciAoaW9jdGwgcmVhZCBnZXRhdHRyIGxvY2sg c2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gdmFyX3QgKGxua19maWxl IChyZWFkIGdldGF0dHIpKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4gdmFyX3J1bl90IChs bmtfZmlsZSAocmVhZCBnZXRhdHRyKSkpCihhbGxvdyBna2V5cmluZ2RfZG9tYWluIHZhcl90 IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5nZF9kb21haW4g dmFyX3J1bl90IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKKGFsbG93IGdrZXlyaW5n ZF9kb21haW4gZnNfdCAoZmlsZXN5c3RlbSAoZ2V0YXR0cikpKQooYWxsb3cgZ2tleXJpbmdk X2RvbWFpbiB0bXBmc190IChmaWxlc3lzdGVtIChnZXRhdHRyKSkpCihhbGxvdyBna2V5cmlu Z2RfZG9tYWluIHVzZXJfaG9tZV9kaXJfdCAoZGlyIChpb2N0bCByZWFkIHdyaXRlIGdldGF0 dHIgbG9jayBhZGRfbmFtZSByZW1vdmVfbmFtZSBzZWFyY2ggb3BlbikpKQooYWxsb3cgZ2tl eXJpbmdkX2RvbWFpbiBob21lX3Jvb3RfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkp CihhbGxvdyBna2V5cmluZ2RfZG9tYWluIGhvbWVfcm9vdF90IChsbmtfZmlsZSAocmVhZCBn ZXRhdHRyKSkpCihhbGxvdyBnbm9tZWRvbWFpbiBwcml2ZmQgKGZkICh1c2UpKSkKKGFsbG93 IGdub21lZG9tYWluIHVzZXJfdHR5X2RldmljZV90IChjaHJfZmlsZSAoaW9jdGwgcmVhZCB3 cml0ZSBnZXRhdHRyIGxvY2sgYXBwZW5kKSkpCihhbGxvdyBnbm9tZWRvbWFpbiB1c2VyX2Rl dnB0c190IChjaHJfZmlsZSAoaW9jdGwgcmVhZCB3cml0ZSBnZXRhdHRyIGxvY2sgYXBwZW5k KSkpCih0eXBldHJhbnNpdGlvbiBna2V5cmluZ2RfZG9tYWluIHVzZXJfaG9tZV9kaXJfdCBk aXIgLmxvY2FsIGdjb25mX2hvbWVfdCkKKHR5cGV0cmFuc2l0aW9uIGdrZXlyaW5nZF9kb21h aW4gZ25vbWVfaG9tZV90IGRpciBrZXlyaW5ncyBkYXRhX2hvbWVfdCkKKHR5cGV0cmFuc2l0 aW9uIGdrZXlyaW5nZF9kb21haW4gZGF0YV9ob21lX3QgZGlyIGtleXJpbmdzIGdrZXlyaW5n ZF9nbm9tZV9ob21lX3QpCjsodHlwZXRyYW5zaXRpb24gZ2tleXJpbmdkX2RvbWFpbiBnbm9t ZV9ob21lX3QgZGlyIGtleXJpbmdzIGdrZXlyaW5nZF9nbm9tZV9ob21lX3QpCih0eXBldHJh bnNpdGlvbiBna2V5cmluZ2RfZG9tYWluIGdjb25mX2hvbWVfdCBkaXIgc2hhcmUgZGF0YV9o b21lX3QpCihvcHRpb25hbCBnbm9tZV9vcHRpb25hbF8yCiAgICAodHlwZWF0dHJpYnV0ZXNl dCBjb25maWdmaWxlIChnY29uZl9ldGNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZmls ZV90eXBlIChnY29uZl9ldGNfdCBkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hv bWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29u Zl9ob21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX2V4ZWNfdCBnbm9tZV9ob21lX3QgY29uZmln X3Vzcl90IGdrZXlyaW5nZF9leGVjX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmlu Z2RfdG1wX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkp CiAgICAodHlwZWF0dHJpYnV0ZXNldCBub25fc2VjdXJpdHlfZmlsZV90eXBlIChnY29uZl9l dGNfdCBkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJf aG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZf dG1wX3QgZ2NvbmZkX2V4ZWNfdCBnbm9tZV9ob21lX3QgY29uZmlnX3Vzcl90IGdrZXlyaW5n ZF9leGVjX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgZ2NvbmZk ZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJp YnV0ZXNldCBub25fYXV0aF9maWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNv bmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3Qg aWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190 IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2Rf Z25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25v bWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfaG9tZV9j b250ZW50X3R5cGUgKGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdz dHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVf dCBnbm9tZV9ob21lX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCApKQogICAgKHR5cGVhdHRy aWJ1dGVzZXQgdXNlcl9ob21lX3R5cGUgKGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2Fj aGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90 IGdjb25mX2hvbWVfdCBnbm9tZV9ob21lX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCApKQog ICAgKHR5cGVhdHRyaWJ1dGVzZXQgdWJhY19jb25zdHJhaW5lZF90eXBlIChkYXRhX2hvbWVf dCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9t ZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX3Qg Z25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90ICkp CiAgICAodHlwZWF0dHJpYnV0ZXNldCBwb2x5bWVtYmVyIChkYXRhX2hvbWVfdCBjb25maWdf aG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19k YXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3QgZ25vbWVfaG9tZV90IGdrZXly aW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90ICkpCiAgICAodHlwZWF0dHJpYnV0 ZXNldCB0bXBmaWxlIChnY29uZl90bXBfdCBna2V5cmluZ2RfdG1wX3QgKSkKICAgICh0eXBl YXR0cmlidXRlc2V0IGFwcGxpY2F0aW9uX2RvbWFpbl90eXBlIChnY29uZmRfdCApKQogICAg KHR5cGVhdHRyaWJ1dGVzZXQgZG9tYWluIChnY29uZmRfdCBnY29uZmRlZmF1bHRzbV90IGdu b21lc3lzdGVtbW1fdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgY29yZW5ldF91bmxhYmVs ZWRfdHlwZSAoZ2NvbmZkX3QgZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkK ICAgICh0eXBlYXR0cmlidXRlc2V0IGFwcGxpY2F0aW9uX2V4ZWNfdHlwZSAoZ2NvbmZkX2V4 ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZXhlY190eXBlIChnY29uZmRfZXhlY190 IGdrZXlyaW5nZF9leGVjX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1f ZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBlbnRyeV90eXBlIChnY29uZmRfZXhl Y190IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAg KHR5cGVhdHRyaWJ1dGVzZXQgdXNlcl90bXBfdHlwZSAoZ2tleXJpbmdkX3RtcF90ICkpCiAg ICAodHlwZWF0dHJpYnV0ZXNldCBkaXJlY3RfaW5pdF9lbnRyeSAoZ2NvbmZkZWZhdWx0c21f ZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBk YWVtb24gKGdjb25mZGVmYXVsdHNtX3QgZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAodHlwZWF0 dHJpYnV0ZXNldCBzeXNsb2dfY2xpZW50X3R5cGUgKGdjb25mZF90IGdub21lc3lzdGVtbW1f dCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgdXNlcmRvbV9ob21lX21hbmFnZXJfdHlwZSAo Z2NvbmZkZWZhdWx0c21fdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQga2VybmVsX3N5c3Rl bV9zdGF0ZV9yZWFkZXIgKGdub21lc3lzdGVtbW1fdCApKQogICAgKGRvbnRhdWRpdCBnY29u ZmRfdCBuc2NkX3Zhcl9ydW5fdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCikKKG9w dGlvbmFsIGdub21lX29wdGlvbmFsXzMKICAgICh0eXBlYXR0cmlidXRlc2V0IGNvbmZpZ2Zp bGUgKGdjb25mX2V0Y190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBmaWxlX3R5cGUgKGdj b25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJl YW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBn Y29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3QgZ2tl eXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCBn Y29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICh0eXBl YXR0cmlidXRlc2V0IG5vbl9zZWN1cml0eV9maWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFf aG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1 c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29u ZmRfZXhlY190IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBn a2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9l eGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IG5v bl9hdXRoX2ZpbGVfdHlwZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmlnX2hvbWVf dCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9o b21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25vbWVfaG9t ZV90IGNvbmZpZ191c3JfdCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9tZV9ob21l X3QgZ2tleXJpbmdkX3RtcF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1t X2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgdXNlcl9ob21lX2NvbnRlbnRfdHlw ZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hv bWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdub21lX2hv bWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCB1 c2VyX2hvbWVfdHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3Qg Z3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9t ZV90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90ICkpCiAgICAodHlwZWF0 dHJpYnV0ZXNldCB1YmFjX2NvbnN0cmFpbmVkX3R5cGUgKGRhdGFfaG9tZV90IGNvbmZpZ19o b21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2Rh dGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfdCBnbm9tZV9ob21l X3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgKSkKICAgICh0eXBl YXR0cmlidXRlc2V0IHBvbHltZW1iZXIgKGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2Fj aGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90 IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnbm9tZV9ob21lX3QgZ2tleXJpbmdkX2dub21l X2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHRtcGZp bGUgKGdjb25mX3RtcF90IGdrZXlyaW5nZF90bXBfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVz ZXQgYXBwbGljYXRpb25fZG9tYWluX3R5cGUgKGdjb25mZF90ICkpCiAgICAodHlwZWF0dHJp YnV0ZXNldCBkb21haW4gKGdjb25mZF90IGdjb25mZGVmYXVsdHNtX3QgZ25vbWVzeXN0ZW1t bV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBjb3JlbmV0X3VubGFiZWxlZF90eXBlIChn Y29uZmRfdCBnY29uZmRlZmF1bHRzbV90IGdub21lc3lzdGVtbW1fdCApKQogICAgKHR5cGVh dHRyaWJ1dGVzZXQgYXBwbGljYXRpb25fZXhlY190eXBlIChnY29uZmRfZXhlY190ICkpCiAg ICAodHlwZWF0dHJpYnV0ZXNldCBleGVjX3R5cGUgKGdjb25mZF9leGVjX3QgZ2tleXJpbmdk X2V4ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkK ICAgICh0eXBlYXR0cmlidXRlc2V0IGVudHJ5X3R5cGUgKGdjb25mZF9leGVjX3QgZ2NvbmZk ZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJp YnV0ZXNldCB1c2VyX3RtcF90eXBlIChna2V5cmluZ2RfdG1wX3QgKSkKICAgICh0eXBlYXR0 cmlidXRlc2V0IGRpcmVjdF9pbml0X2VudHJ5IChnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25v bWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGRhZW1vbiAoZ2Nv bmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0 IHN5c2xvZ19jbGllbnRfdHlwZSAoZ2NvbmZkX3QgZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAo dHlwZWF0dHJpYnV0ZXNldCB1c2VyZG9tX2hvbWVfbWFuYWdlcl90eXBlIChnY29uZmRlZmF1 bHRzbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBrZXJuZWxfc3lzdGVtX3N0YXRlX3Jl YWRlciAoZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAoYWxsb3cgZ2NvbmZkX3QgeGRtX3QgKGZk ICh1c2UpKSkKICAgIChhbGxvdyBnY29uZmRfdCB4ZG1fdCAoZmlmb19maWxlIChpb2N0bCBy ZWFkIHdyaXRlIGdldGF0dHIgbG9jayBhcHBlbmQpKSkKKQoob3B0aW9uYWwgZ25vbWVfb3B0 aW9uYWxfNAogICAgKHR5cGVhdHRyaWJ1dGVzZXQgY29uZmlnZmlsZSAoZ2NvbmZfZXRjX3Qg KSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGZpbGVfdHlwZSAoZ2NvbmZfZXRjX3QgZGF0YV9o b21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVz X2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdjb25m ZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZpZ191c3JfdCBna2V5cmluZ2RfZXhlY190IGdr ZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90IGdjb25mZGVmYXVsdHNtX2V4 ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgbm9u X3NlY3VyaXR5X2ZpbGVfdHlwZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmlnX2hv bWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0 YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25vbWVf aG9tZV90IGNvbmZpZ191c3JfdCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9tZV9o b21lX3QgZ2tleXJpbmdkX3RtcF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3Rl bW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgbm9uX2F1dGhfZmlsZV90eXBl IChnY29uZl9ldGNfdCBkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBn c3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21l X3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX2V4ZWNfdCBnbm9tZV9ob21lX3QgY29uZmlnX3Vzcl90 IGdrZXlyaW5nZF9leGVjX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1w X3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAo dHlwZWF0dHJpYnV0ZXNldCB1c2VyX2hvbWVfY29udGVudF90eXBlIChkYXRhX2hvbWVfdCBj b25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90 IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9n bm9tZV9ob21lX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfaG9tZV90eXBlIChk YXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90 IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ25vbWVfaG9tZV90 IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHViYWNf Y29uc3RyYWluZWRfdHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21l X3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZf aG9tZV90IGdjb25mX3RtcF90IGdjb25mZF90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25v bWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgcG9s eW1lbWJlciAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVh bWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdj b25mX3RtcF90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5n ZF90bXBfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgdG1wZmlsZSAoZ2NvbmZfdG1wX3Qg Z2tleXJpbmdkX3RtcF90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBhcHBsaWNhdGlvbl9k b21haW5fdHlwZSAoZ2NvbmZkX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGRvbWFpbiAo Z2NvbmZkX3QgZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICh0eXBl YXR0cmlidXRlc2V0IGNvcmVuZXRfdW5sYWJlbGVkX3R5cGUgKGdjb25mZF90IGdjb25mZGVm YXVsdHNtX3QgZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBhcHBs aWNhdGlvbl9leGVjX3R5cGUgKGdjb25mZF9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRl c2V0IGV4ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCBna2V5cmluZ2RfZXhlY190IGdjb25mZGVm YXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1 dGVzZXQgZW50cnlfdHlwZSAoZ2NvbmZkX2V4ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3Qg Z25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfdG1w X3R5cGUgKGdrZXlyaW5nZF90bXBfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZGlyZWN0 X2luaXRfZW50cnkgKGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNf dCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZGFlbW9uIChnY29uZmRlZmF1bHRzbV90IGdu b21lc3lzdGVtbW1fdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgc3lzbG9nX2NsaWVudF90 eXBlIChnY29uZmRfdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0 IHVzZXJkb21faG9tZV9tYW5hZ2VyX3R5cGUgKGdjb25mZGVmYXVsdHNtX3QgKSkKICAgICh0 eXBlYXR0cmlidXRlc2V0IGtlcm5lbF9zeXN0ZW1fc3RhdGVfcmVhZGVyIChnbm9tZXN5c3Rl bW1tX3QgKSkKICAgIChhbGxvdyBnY29uZmRlZmF1bHRzbV90IGNvbnNvbGVraXRfdCAoZGJ1 cyAoc2VuZF9tc2cpKSkKICAgIChhbGxvdyBjb25zb2xla2l0X3QgZ2NvbmZkZWZhdWx0c21f dCAoZGJ1cyAoc2VuZF9tc2cpKSkKKQoob3B0aW9uYWwgZ25vbWVfb3B0aW9uYWxfNQogICAg KHR5cGVhdHRyaWJ1dGVzZXQgY29uZmlnZmlsZSAoZ2NvbmZfZXRjX3QgKSkKICAgICh0eXBl YXR0cmlidXRlc2V0IGZpbGVfdHlwZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmln X2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2Nf ZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25v bWVfaG9tZV90IGNvbmZpZ191c3JfdCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9t ZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5 c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgbm9uX3NlY3VyaXR5X2Zp bGVfdHlwZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9o b21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2Nv bmZfaG9tZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZp Z191c3JfdCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJp bmdkX3RtcF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCAp KQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgbm9uX2F1dGhfZmlsZV90eXBlIChnY29uZl9ldGNf dCBkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9t ZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1w X3QgZ2NvbmZkX2V4ZWNfdCBnbm9tZV9ob21lX3QgY29uZmlnX3Vzcl90IGdrZXlyaW5nZF9l eGVjX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgZ2NvbmZkZWZh dWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0 ZXNldCB1c2VyX2hvbWVfY29udGVudF90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90 IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hv bWVfdCBnY29uZl9ob21lX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3Qg KSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfaG9tZV90eXBlIChkYXRhX2hvbWVfdCBj b25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90 IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9n bm9tZV9ob21lX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHViYWNfY29uc3RyYWluZWRf dHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVy X2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25m X3RtcF90IGdjb25mZF90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdr ZXlyaW5nZF90bXBfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgcG9seW1lbWJlciAoZGF0 YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBk YnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdu b21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCApKQog ICAgKHR5cGVhdHRyaWJ1dGVzZXQgdG1wZmlsZSAoZ2NvbmZfdG1wX3QgZ2tleXJpbmdkX3Rt cF90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBhcHBsaWNhdGlvbl9kb21haW5fdHlwZSAo Z2NvbmZkX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGRvbWFpbiAoZ2NvbmZkX3QgZ2Nv bmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0 IGNvcmVuZXRfdW5sYWJlbGVkX3R5cGUgKGdjb25mZF90IGdjb25mZGVmYXVsdHNtX3QgZ25v bWVzeXN0ZW1tbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBhcHBsaWNhdGlvbl9leGVj X3R5cGUgKGdjb25mZF9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGV4ZWNfdHlw ZSAoZ2NvbmZkX2V4ZWNfdCBna2V5cmluZ2RfZXhlY190IGdjb25mZGVmYXVsdHNtX2V4ZWNf dCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZW50cnlf dHlwZSAoZ2NvbmZkX2V4ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1t bV9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfdG1wX3R5cGUgKGdrZXly aW5nZF90bXBfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZGlyZWN0X2luaXRfZW50cnkg KGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5 cGVhdHRyaWJ1dGVzZXQgZGFlbW9uIChnY29uZmRlZmF1bHRzbV90IGdub21lc3lzdGVtbW1f dCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgc3lzbG9nX2NsaWVudF90eXBlIChnY29uZmRf dCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJkb21faG9t ZV9tYW5hZ2VyX3R5cGUgKGdjb25mZGVmYXVsdHNtX3QgKSkKICAgICh0eXBlYXR0cmlidXRl c2V0IGtlcm5lbF9zeXN0ZW1fc3RhdGVfcmVhZGVyIChnbm9tZXN5c3RlbW1tX3QgKSkKICAg ICh0eXBlYXR0cmlidXRlc2V0IGNvcmVuZXRfdW5sYWJlbGVkX3R5cGUgKGdjb25mZGVmYXVs dHNtX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGZpbGVfdHlwZSAoZ2NvbmZkZWZhdWx0 c21fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBub25fc2VjdXJpdHlfZmlsZV90 eXBlIChnY29uZmRlZmF1bHRzbV9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGV4 ZWNfdHlwZSAoZ2NvbmZkZWZhdWx0c21fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNl dCBzeXN0ZW1fYnVzX3R5cGUgKGdjb25mZGVmYXVsdHNtX3QgKSkKICAgICh0eXBlYXR0cmli dXRlc2V0IGVudHJ5X3R5cGUgKGdjb25mZGVmYXVsdHNtX2V4ZWNfdCApKQogICAgKHR5cGVh dHRyaWJ1dGVzZXQgbm9uX2F1dGhfZmlsZV90eXBlIChnY29uZmRlZmF1bHRzbV9leGVjX3Qg KSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGRvbWFpbiAoZ2NvbmZkZWZhdWx0c21fdCApKQog ICAgKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IChmaWxl IChlbnRyeXBvaW50KSkpCiAgICAoYWxsb3cgZ2NvbmZkZWZhdWx0c21fdCBnY29uZmRlZmF1 bHRzbV9leGVjX3QgKGZpbGUgKGlvY3RsIHJlYWQgZ2V0YXR0ciBsb2NrIGV4ZWN1dGUgZXhl Y3V0ZV9ub190cmFucyBvcGVuKSkpCiAgICAoYWxsb3cgc3lzdGVtX2RidXNkX3QgZ2NvbmZk ZWZhdWx0c21fZXhlY190IChmaWxlIChyZWFkIGdldGF0dHIgZXhlY3V0ZSBvcGVuKSkpCiAg ICAoYWxsb3cgc3lzdGVtX2RidXNkX3QgZ2NvbmZkZWZhdWx0c21fdCAocHJvY2VzcyAodHJh bnNpdGlvbikpKQogICAgKHR5cGV0cmFuc2l0aW9uIHN5c3RlbV9kYnVzZF90IGdjb25mZGVm YXVsdHNtX2V4ZWNfdCBwcm9jZXNzIGdjb25mZGVmYXVsdHNtX3QpCiAgICAoYWxsb3cgZ2Nv bmZkZWZhdWx0c21fdCBzeXN0ZW1fZGJ1c2RfdCAoZmQgKHVzZSkpKQogICAgKGFsbG93IGdj b25mZGVmYXVsdHNtX3Qgc3lzdGVtX2RidXNkX3QgKGZpZm9fZmlsZSAoaW9jdGwgcmVhZCB3 cml0ZSBnZXRhdHRyIGxvY2sgYXBwZW5kKSkpCiAgICAoYWxsb3cgZ2NvbmZkZWZhdWx0c21f dCBzeXN0ZW1fZGJ1c2RfdCAocHJvY2VzcyAoc2lnY2hsZCkpKQogICAgKGFsbG93IGdjb25m ZGVmYXVsdHNtX3Qgc3lzdGVtX2RidXNkX3QgKGRpciAoaW9jdGwgcmVhZCBnZXRhdHRyIGxv Y2sgc2VhcmNoIG9wZW4pKSkKICAgIChhbGxvdyBnY29uZmRlZmF1bHRzbV90IHN5c3RlbV9k YnVzZF90IChmaWxlIChpb2N0bCByZWFkIGdldGF0dHIgbG9jayBvcGVuKSkpCiAgICAoYWxs b3cgZ2NvbmZkZWZhdWx0c21fdCBzeXN0ZW1fZGJ1c2RfdCAobG5rX2ZpbGUgKHJlYWQgZ2V0 YXR0cikpKQogICAgKGFsbG93IGdjb25mZGVmYXVsdHNtX3Qgc3lzdGVtX2RidXNkX3QgKHBy b2Nlc3MgKGdldGF0dHIpKSkKKQoob3B0aW9uYWwgZ25vbWVfb3B0aW9uYWxfNgogICAgKHR5 cGVhdHRyaWJ1dGVzZXQgY29uZmlnZmlsZSAoZ2NvbmZfZXRjX3QgKSkKICAgICh0eXBlYXR0 cmlidXRlc2V0IGZpbGVfdHlwZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmlnX2hv bWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0 YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25vbWVf aG9tZV90IGNvbmZpZ191c3JfdCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9tZV9o b21lX3QgZ2tleXJpbmdkX3RtcF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3Rl bW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgbm9uX3NlY3VyaXR5X2ZpbGVf dHlwZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21l X3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZf aG9tZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZpZ191 c3JfdCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdk X3RtcF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQog ICAgKHR5cGVhdHRyaWJ1dGVzZXQgbm9uX2F1dGhfZmlsZV90eXBlIChnY29uZl9ldGNfdCBk YXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90 IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3Qg Z2NvbmZkX2V4ZWNfdCBnbm9tZV9ob21lX3QgY29uZmlnX3Vzcl90IGdrZXlyaW5nZF9leGVj X3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgZ2NvbmZkZWZhdWx0 c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNl dCB1c2VyX2hvbWVfY29udGVudF90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNh Y2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVf dCBnY29uZl9ob21lX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgKSkK ICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfaG9tZV90eXBlIChkYXRhX2hvbWVfdCBjb25m aWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGlj Y19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9t ZV9ob21lX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHViYWNfY29uc3RyYWluZWRfdHlw ZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hv bWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3Rt cF90IGdjb25mZF90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXly aW5nZF90bXBfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgcG9seW1lbWJlciAoZGF0YV9o b21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVz X2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdub21l X2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCApKQogICAg KHR5cGVhdHRyaWJ1dGVzZXQgdG1wZmlsZSAoZ2NvbmZfdG1wX3QgZ2tleXJpbmdkX3RtcF90 ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBhcHBsaWNhdGlvbl9kb21haW5fdHlwZSAoZ2Nv bmZkX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGRvbWFpbiAoZ2NvbmZkX3QgZ2NvbmZk ZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGNv cmVuZXRfdW5sYWJlbGVkX3R5cGUgKGdjb25mZF90IGdjb25mZGVmYXVsdHNtX3QgZ25vbWVz eXN0ZW1tbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBhcHBsaWNhdGlvbl9leGVjX3R5 cGUgKGdjb25mZF9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGV4ZWNfdHlwZSAo Z2NvbmZkX2V4ZWNfdCBna2V5cmluZ2RfZXhlY190IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBn bm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZW50cnlfdHlw ZSAoZ2NvbmZkX2V4ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9l eGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfdG1wX3R5cGUgKGdrZXlyaW5n ZF90bXBfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZGlyZWN0X2luaXRfZW50cnkgKGdj b25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVh dHRyaWJ1dGVzZXQgZGFlbW9uIChnY29uZmRlZmF1bHRzbV90IGdub21lc3lzdGVtbW1fdCAp KQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgc3lzbG9nX2NsaWVudF90eXBlIChnY29uZmRfdCBn bm9tZXN5c3RlbW1tX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJkb21faG9tZV9t YW5hZ2VyX3R5cGUgKGdjb25mZGVmYXVsdHNtX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0 IGtlcm5lbF9zeXN0ZW1fc3RhdGVfcmVhZGVyIChnbm9tZXN5c3RlbW1tX3QgKSkKICAgIChk b250YXVkaXQgZ2NvbmZkZWZhdWx0c21fdCBuc2NkX3Zhcl9ydW5fdCAoZGlyIChnZXRhdHRy IHNlYXJjaCBvcGVuKSkpCikKKG9wdGlvbmFsIGdub21lX29wdGlvbmFsXzcKICAgICh0eXBl YXR0cmlidXRlc2V0IGNvbmZpZ2ZpbGUgKGdjb25mX2V0Y190ICkpCiAgICAodHlwZWF0dHJp YnV0ZXNldCBmaWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21l X3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFf aG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hv bWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9t ZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1t bV9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IG5vbl9zZWN1cml0eV9maWxlX3R5 cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90 IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hv bWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVfdCBjb25maWdfdXNy X3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90 bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAg ICh0eXBlYXR0cmlidXRlc2V0IG5vbl9hdXRoX2ZpbGVfdHlwZSAoZ2NvbmZfZXRjX3QgZGF0 YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBk YnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdj b25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZpZ191c3JfdCBna2V5cmluZ2RfZXhlY190 IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90IGdjb25mZGVmYXVsdHNt X2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQg dXNlcl9ob21lX2NvbnRlbnRfdHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNo ZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3Qg Z2NvbmZfaG9tZV90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90ICkpCiAg ICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX2hvbWVfdHlwZSAoZGF0YV9ob21lX3QgY29uZmln X2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2Nf ZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVf aG9tZV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCB1YmFjX2NvbnN0cmFpbmVkX3R5cGUg KGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21l X3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBf dCBnY29uZmRfdCBnbm9tZV9ob21lX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmlu Z2RfdG1wX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHBvbHltZW1iZXIgKGRhdGFfaG9t ZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19o b21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnbm9tZV9o b21lX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgKSkKICAgICh0 eXBlYXR0cmlidXRlc2V0IHRtcGZpbGUgKGdjb25mX3RtcF90IGdrZXlyaW5nZF90bXBfdCAp KQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgYXBwbGljYXRpb25fZG9tYWluX3R5cGUgKGdjb25m ZF90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBkb21haW4gKGdjb25mZF90IGdjb25mZGVm YXVsdHNtX3QgZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBjb3Jl bmV0X3VubGFiZWxlZF90eXBlIChnY29uZmRfdCBnY29uZmRlZmF1bHRzbV90IGdub21lc3lz dGVtbW1fdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgYXBwbGljYXRpb25fZXhlY190eXBl IChnY29uZmRfZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBleGVjX3R5cGUgKGdj b25mZF9leGVjX3QgZ2tleXJpbmdkX2V4ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25v bWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGVudHJ5X3R5cGUg KGdjb25mZF9leGVjX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhl Y190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX3RtcF90eXBlIChna2V5cmluZ2Rf dG1wX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGRpcmVjdF9pbml0X2VudHJ5IChnY29u ZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICh0eXBlYXR0 cmlidXRlc2V0IGRhZW1vbiAoZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkK ICAgICh0eXBlYXR0cmlidXRlc2V0IHN5c2xvZ19jbGllbnRfdHlwZSAoZ2NvbmZkX3QgZ25v bWVzeXN0ZW1tbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyZG9tX2hvbWVfbWFu YWdlcl90eXBlIChnY29uZmRlZmF1bHRzbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBr ZXJuZWxfc3lzdGVtX3N0YXRlX3JlYWRlciAoZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAoYWxs b3cgZ2NvbmZkZWZhdWx0c21fdCBwb2xpY3lraXRfYXV0aF9leGVjX3QgKGZpbGUgKHJlYWQg Z2V0YXR0ciBleGVjdXRlIG9wZW4pKSkKICAgIChhbGxvdyBnY29uZmRlZmF1bHRzbV90IHBv bGljeWtpdF9hdXRoX3QgKHByb2Nlc3MgKHRyYW5zaXRpb24pKSkKICAgICh0eXBldHJhbnNp dGlvbiBnY29uZmRlZmF1bHRzbV90IHBvbGljeWtpdF9hdXRoX2V4ZWNfdCBwcm9jZXNzIHBv bGljeWtpdF9hdXRoX3QpCiAgICAoYWxsb3cgcG9saWN5a2l0X2F1dGhfdCBnY29uZmRlZmF1 bHRzbV90IChmZCAodXNlKSkpCiAgICAoYWxsb3cgcG9saWN5a2l0X2F1dGhfdCBnY29uZmRl ZmF1bHRzbV90IChmaWZvX2ZpbGUgKGlvY3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFw cGVuZCkpKQogICAgKGFsbG93IHBvbGljeWtpdF9hdXRoX3QgZ2NvbmZkZWZhdWx0c21fdCAo cHJvY2VzcyAoc2lnY2hsZCkpKQogICAgKGFsbG93IHBvbGljeWtpdF90IGdjb25mZGVmYXVs dHNtX3QgKGRpciAoaW9jdGwgcmVhZCBnZXRhdHRyIGxvY2sgc2VhcmNoIG9wZW4pKSkKICAg IChhbGxvdyBwb2xpY3lraXRfdCBnY29uZmRlZmF1bHRzbV90IChmaWxlIChpb2N0bCByZWFk IGdldGF0dHIgbG9jayBvcGVuKSkpCiAgICAoYWxsb3cgcG9saWN5a2l0X3QgZ2NvbmZkZWZh dWx0c21fdCAobG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikpKQogICAgKGFsbG93IHBvbGljeWtp dF90IGdjb25mZGVmYXVsdHNtX3QgKHByb2Nlc3MgKGdldGF0dHIpKSkKICAgIChhbGxvdyBn Y29uZmRlZmF1bHRzbV90IHBvbGljeWtpdF90IChkYnVzIChzZW5kX21zZykpKQogICAgKGFs bG93IHBvbGljeWtpdF90IGdjb25mZGVmYXVsdHNtX3QgKGRidXMgKHNlbmRfbXNnKSkpCiAg ICAoYWxsb3cgZ2NvbmZkZWZhdWx0c21fdCB2YXJfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBv cGVuKSkpCiAgICAoYWxsb3cgZ2NvbmZkZWZhdWx0c21fdCB2YXJfbGliX3QgKGRpciAoZ2V0 YXR0ciBzZWFyY2ggb3BlbikpKQogICAgKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgcG9saWN5 a2l0X3Zhcl9saWJfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCiAgICAoYWxsb3cg Z2NvbmZkZWZhdWx0c21fdCBwb2xpY3lraXRfdmFyX2xpYl90IChmaWxlIChpb2N0bCByZWFk IGdldGF0dHIgbG9jayBvcGVuKSkpCiAgICAoYWxsb3cgZ2NvbmZkZWZhdWx0c21fdCB2YXJf dCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCiAgICAoYWxsb3cgZ2NvbmZkZWZhdWx0 c21fdCB2YXJfbGliX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQogICAgKGFsbG93 IGdjb25mZGVmYXVsdHNtX3QgcG9saWN5a2l0X3JlbG9hZF90IChkaXIgKGdldGF0dHIgc2Vh cmNoIG9wZW4pKSkKICAgIChhbGxvdyBnY29uZmRlZmF1bHRzbV90IHBvbGljeWtpdF9yZWxv YWRfdCAoZmlsZSAoaW9jdGwgcmVhZCBnZXRhdHRyIGxvY2sgb3BlbikpKQogICAgKG9wdGlv bmFsIGdub21lX29wdGlvbmFsXzgKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBjb25maWdm aWxlIChnY29uZl9ldGNfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGZpbGVfdHlw ZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3Qg Z3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9t ZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZpZ191c3Jf dCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3Rt cF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAg ICAgICh0eXBlYXR0cmlidXRlc2V0IG5vbl9zZWN1cml0eV9maWxlX3R5cGUgKGdjb25mX2V0 Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9o b21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90 bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdk X2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRl ZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICAgICAodHlwZWF0 dHJpYnV0ZXNldCBub25fYXV0aF9maWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90 IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21l X3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhl Y190IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmlu Z2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3Qg Z25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCB1c2Vy X2hvbWVfY29udGVudF90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hv bWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29u Zl9ob21lX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgKSkKICAgICAg ICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX2hvbWVfdHlwZSAoZGF0YV9ob21lX3QgY29uZmln X2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2Nf ZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVf aG9tZV90ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgdWJhY19jb25zdHJhaW5lZF90 eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJf aG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZf dG1wX3QgZ2NvbmZkX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tl eXJpbmdkX3RtcF90ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgcG9seW1lbWJlciAo ZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVf dCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90 IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCAp KQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHRtcGZpbGUgKGdjb25mX3RtcF90IGdrZXly aW5nZF90bXBfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGFwcGxpY2F0aW9uX2Rv bWFpbl90eXBlIChnY29uZmRfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGRvbWFp biAoZ2NvbmZkX3QgZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICAg ICAodHlwZWF0dHJpYnV0ZXNldCBjb3JlbmV0X3VubGFiZWxlZF90eXBlIChnY29uZmRfdCBn Y29uZmRlZmF1bHRzbV90IGdub21lc3lzdGVtbW1fdCApKQogICAgICAgICh0eXBlYXR0cmli dXRlc2V0IGFwcGxpY2F0aW9uX2V4ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCApKQogICAgICAg ICh0eXBlYXR0cmlidXRlc2V0IGV4ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCBna2V5cmluZ2Rf ZXhlY190IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQog ICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGVudHJ5X3R5cGUgKGdjb25mZF9leGVjX3QgZ2Nv bmZkZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAgICAgKHR5 cGVhdHRyaWJ1dGVzZXQgdXNlcl90bXBfdHlwZSAoZ2tleXJpbmdkX3RtcF90ICkpCiAgICAg ICAgKHR5cGVhdHRyaWJ1dGVzZXQgZGlyZWN0X2luaXRfZW50cnkgKGdjb25mZGVmYXVsdHNt X2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRl c2V0IGRhZW1vbiAoZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICAg ICAodHlwZWF0dHJpYnV0ZXNldCBzeXNsb2dfY2xpZW50X3R5cGUgKGdjb25mZF90IGdub21l c3lzdGVtbW1fdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJkb21faG9tZV9t YW5hZ2VyX3R5cGUgKGdjb25mZGVmYXVsdHNtX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0 ZXNldCBrZXJuZWxfc3lzdGVtX3N0YXRlX3JlYWRlciAoZ25vbWVzeXN0ZW1tbV90ICkpCiAg ICAgICAgKGFsbG93IGdjb25mZGVmYXVsdHNtX3QgdmFyX3QgKGRpciAoZ2V0YXR0ciBzZWFy Y2ggb3BlbikpKQogICAgICAgIChhbGxvdyBnY29uZmRlZmF1bHRzbV90IHZhcl9saWJfdCAo ZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCiAgICAgICAgKGFsbG93IGdjb25mZGVmYXVs dHNtX3Qgc3lzdGVtX2Nyb25qb2JfdmFyX2xpYl90IChkaXIgKGdldGF0dHIgc2VhcmNoIG9w ZW4pKSkKICAgICAgICAoYWxsb3cgZ2NvbmZkZWZhdWx0c21fdCBzeXN0ZW1fY3JvbmpvYl92 YXJfbGliX3QgKGZpbGUgKGlvY3RsIHJlYWQgZ2V0YXR0ciBsb2NrIG9wZW4pKSkKICAgICkK KQoob3B0aW9uYWwgZ25vbWVfb3B0aW9uYWxfOQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgY29u ZmlnZmlsZSAoZ2NvbmZfZXRjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGZpbGVfdHlw ZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3Qg Z3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9t ZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZpZ191c3Jf dCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3Rt cF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAg KHR5cGVhdHRyaWJ1dGVzZXQgbm9uX3NlY3VyaXR5X2ZpbGVfdHlwZSAoZ2NvbmZfZXRjX3Qg ZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVf dCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90 IGdjb25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZpZ191c3JfdCBna2V5cmluZ2RfZXhl Y190IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90IGdjb25mZGVmYXVs dHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVz ZXQgbm9uX2F1dGhfZmlsZV90eXBlIChnY29uZl9ldGNfdCBkYXRhX2hvbWVfdCBjb25maWdf aG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19k YXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX2V4ZWNfdCBnbm9t ZV9ob21lX3QgY29uZmlnX3Vzcl90IGdrZXlyaW5nZF9leGVjX3QgZ2tleXJpbmdkX2dub21l X2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lz dGVtbW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX2hvbWVfY29udGVu dF90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFt ZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ25v bWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgKSkKICAgICh0eXBlYXR0cmlidXRl c2V0IHVzZXJfaG9tZV90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hv bWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29u Zl9ob21lX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgKSkKICAgICh0 eXBlYXR0cmlidXRlc2V0IHViYWNfY29uc3RyYWluZWRfdHlwZSAoZGF0YV9ob21lX3QgY29u ZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBp Y2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdjb25mZF90IGdub21l X2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCApKQogICAg KHR5cGVhdHRyaWJ1dGVzZXQgcG9seW1lbWJlciAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVf dCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9o b21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdub21lX2hvbWVfdCBna2V5cmluZ2Rf Z25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQg dG1wZmlsZSAoZ2NvbmZfdG1wX3QgZ2tleXJpbmdkX3RtcF90ICkpCiAgICAodHlwZWF0dHJp YnV0ZXNldCBhcHBsaWNhdGlvbl9kb21haW5fdHlwZSAoZ2NvbmZkX3QgKSkKICAgICh0eXBl YXR0cmlidXRlc2V0IGRvbWFpbiAoZ2NvbmZkX3QgZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5 c3RlbW1tX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGNvcmVuZXRfdW5sYWJlbGVkX3R5 cGUgKGdjb25mZF90IGdjb25mZGVmYXVsdHNtX3QgZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAo dHlwZWF0dHJpYnV0ZXNldCBhcHBsaWNhdGlvbl9leGVjX3R5cGUgKGdjb25mZF9leGVjX3Qg KSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGV4ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCBna2V5 cmluZ2RfZXhlY190IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNf dCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZW50cnlfdHlwZSAoZ2NvbmZkX2V4ZWNfdCBn Y29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICh0eXBl YXR0cmlidXRlc2V0IHVzZXJfdG1wX3R5cGUgKGdrZXlyaW5nZF90bXBfdCApKQogICAgKHR5 cGVhdHRyaWJ1dGVzZXQgZGlyZWN0X2luaXRfZW50cnkgKGdjb25mZGVmYXVsdHNtX2V4ZWNf dCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZGFlbW9u IChnY29uZmRlZmF1bHRzbV90IGdub21lc3lzdGVtbW1fdCApKQogICAgKHR5cGVhdHRyaWJ1 dGVzZXQgc3lzbG9nX2NsaWVudF90eXBlIChnY29uZmRfdCBnbm9tZXN5c3RlbW1tX3QgKSkK ICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJkb21faG9tZV9tYW5hZ2VyX3R5cGUgKGdjb25m ZGVmYXVsdHNtX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGtlcm5lbF9zeXN0ZW1fc3Rh dGVfcmVhZGVyIChnbm9tZXN5c3RlbW1tX3QgKSkKICAgIChhbGxvdyBnbm9tZXN5c3RlbW1t X3QgY29uc29sZWtpdF90IChkYnVzIChzZW5kX21zZykpKQogICAgKGFsbG93IGNvbnNvbGVr aXRfdCBnbm9tZXN5c3RlbW1tX3QgKGRidXMgKHNlbmRfbXNnKSkpCikKKG9wdGlvbmFsIGdu b21lX29wdGlvbmFsXzEwCiAgICAodHlwZWF0dHJpYnV0ZXNldCBjb25maWdmaWxlIChnY29u Zl9ldGNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgZmlsZV90eXBlIChnY29uZl9ldGNf dCBkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9t ZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1w X3QgZ2NvbmZkX2V4ZWNfdCBnbm9tZV9ob21lX3QgY29uZmlnX3Vzcl90IGdrZXlyaW5nZF9l eGVjX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgZ2NvbmZkZWZh dWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0 ZXNldCBub25fc2VjdXJpdHlfZmlsZV90eXBlIChnY29uZl9ldGNfdCBkYXRhX2hvbWVfdCBj b25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90 IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX2V4ZWNf dCBnbm9tZV9ob21lX3QgY29uZmlnX3Vzcl90IGdrZXlyaW5nZF9leGVjX3QgZ2tleXJpbmdk X2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdu b21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBub25fYXV0aF9m aWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVf aG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdj b25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVfdCBjb25m aWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXly aW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3Qg KSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfaG9tZV9jb250ZW50X3R5cGUgKGRhdGFf aG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1 c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnbm9tZV9ob21lX3QgZ2tl eXJpbmdkX2dub21lX2hvbWVfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgdXNlcl9ob21l X3R5cGUgKGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1l cl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnbm9t ZV9ob21lX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVz ZXQgdWJhY19jb25zdHJhaW5lZF90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNh Y2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVf dCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX3QgZ25vbWVfaG9tZV90IGdrZXly aW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90ICkpCiAgICAodHlwZWF0dHJpYnV0 ZXNldCBwb2x5bWVtYmVyIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVf dCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9o b21lX3QgZ2NvbmZfdG1wX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3Qg Z2tleXJpbmdkX3RtcF90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCB0bXBmaWxlIChnY29u Zl90bXBfdCBna2V5cmluZ2RfdG1wX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGFwcGxp Y2F0aW9uX2RvbWFpbl90eXBlIChnY29uZmRfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQg ZG9tYWluIChnY29uZmRfdCBnY29uZmRlZmF1bHRzbV90IGdub21lc3lzdGVtbW1fdCApKQog ICAgKHR5cGVhdHRyaWJ1dGVzZXQgY29yZW5ldF91bmxhYmVsZWRfdHlwZSAoZ2NvbmZkX3Qg Z2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICh0eXBlYXR0cmlidXRl c2V0IGFwcGxpY2F0aW9uX2V4ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCApKQogICAgKHR5cGVh dHRyaWJ1dGVzZXQgZXhlY190eXBlIChnY29uZmRfZXhlY190IGdrZXlyaW5nZF9leGVjX3Qg Z2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAodHlw ZWF0dHJpYnV0ZXNldCBlbnRyeV90eXBlIChnY29uZmRfZXhlY190IGdjb25mZGVmYXVsdHNt X2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQg dXNlcl90bXBfdHlwZSAoZ2tleXJpbmdkX3RtcF90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNl dCBkaXJlY3RfaW5pdF9lbnRyeSAoZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVt bW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBkYWVtb24gKGdjb25mZGVmYXVs dHNtX3QgZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBzeXNsb2df Y2xpZW50X3R5cGUgKGdjb25mZF90IGdub21lc3lzdGVtbW1fdCApKQogICAgKHR5cGVhdHRy aWJ1dGVzZXQgdXNlcmRvbV9ob21lX21hbmFnZXJfdHlwZSAoZ2NvbmZkZWZhdWx0c21fdCAp KQogICAgKHR5cGVhdHRyaWJ1dGVzZXQga2VybmVsX3N5c3RlbV9zdGF0ZV9yZWFkZXIgKGdu b21lc3lzdGVtbW1fdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgY29yZW5ldF91bmxhYmVs ZWRfdHlwZSAoZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBmaWxl X3R5cGUgKGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBu b25fc2VjdXJpdHlfZmlsZV90eXBlIChnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5 cGVhdHRyaWJ1dGVzZXQgZXhlY190eXBlIChnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAg KHR5cGVhdHRyaWJ1dGVzZXQgc3lzdGVtX2J1c190eXBlIChnbm9tZXN5c3RlbW1tX3QgKSkK ICAgICh0eXBlYXR0cmlidXRlc2V0IGVudHJ5X3R5cGUgKGdub21lc3lzdGVtbW1fZXhlY190 ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBub25fYXV0aF9maWxlX3R5cGUgKGdub21lc3lz dGVtbW1fZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBkb21haW4gKGdub21lc3lz dGVtbW1fdCApKQogICAgKGFsbG93IGdub21lc3lzdGVtbW1fdCBnbm9tZXN5c3RlbW1tX2V4 ZWNfdCAoZmlsZSAoZW50cnlwb2ludCkpKQogICAgKGFsbG93IGdub21lc3lzdGVtbW1fdCBn bm9tZXN5c3RlbW1tX2V4ZWNfdCAoZmlsZSAoaW9jdGwgcmVhZCBnZXRhdHRyIGxvY2sgZXhl Y3V0ZSBleGVjdXRlX25vX3RyYW5zIG9wZW4pKSkKICAgIChhbGxvdyBzeXN0ZW1fZGJ1c2Rf dCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCAoZmlsZSAocmVhZCBnZXRhdHRyIGV4ZWN1dGUgb3Bl bikpKQogICAgKGFsbG93IHN5c3RlbV9kYnVzZF90IGdub21lc3lzdGVtbW1fdCAocHJvY2Vz cyAodHJhbnNpdGlvbikpKQogICAgKHR5cGV0cmFuc2l0aW9uIHN5c3RlbV9kYnVzZF90IGdu b21lc3lzdGVtbW1fZXhlY190IHByb2Nlc3MgZ25vbWVzeXN0ZW1tbV90KQogICAgKGFsbG93 IGdub21lc3lzdGVtbW1fdCBzeXN0ZW1fZGJ1c2RfdCAoZmQgKHVzZSkpKQogICAgKGFsbG93 IGdub21lc3lzdGVtbW1fdCBzeXN0ZW1fZGJ1c2RfdCAoZmlmb19maWxlIChpb2N0bCByZWFk IHdyaXRlIGdldGF0dHIgbG9jayBhcHBlbmQpKSkKICAgIChhbGxvdyBnbm9tZXN5c3RlbW1t X3Qgc3lzdGVtX2RidXNkX3QgKHByb2Nlc3MgKHNpZ2NobGQpKSkKICAgIChhbGxvdyBnbm9t ZXN5c3RlbW1tX3Qgc3lzdGVtX2RidXNkX3QgKGRpciAoaW9jdGwgcmVhZCBnZXRhdHRyIGxv Y2sgc2VhcmNoIG9wZW4pKSkKICAgIChhbGxvdyBnbm9tZXN5c3RlbW1tX3Qgc3lzdGVtX2Ri dXNkX3QgKGZpbGUgKGlvY3RsIHJlYWQgZ2V0YXR0ciBsb2NrIG9wZW4pKSkKICAgIChhbGxv dyBnbm9tZXN5c3RlbW1tX3Qgc3lzdGVtX2RidXNkX3QgKGxua19maWxlIChyZWFkIGdldGF0 dHIpKSkKICAgIChhbGxvdyBnbm9tZXN5c3RlbW1tX3Qgc3lzdGVtX2RidXNkX3QgKHByb2Nl c3MgKGdldGF0dHIpKSkKKQoob3B0aW9uYWwgZ25vbWVfb3B0aW9uYWxfMTEKICAgICh0eXBl YXR0cmlidXRlc2V0IGNvbmZpZ2ZpbGUgKGdjb25mX2V0Y190ICkpCiAgICAodHlwZWF0dHJp YnV0ZXNldCBmaWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21l X3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFf aG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hv bWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9t ZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1t bV9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IG5vbl9zZWN1cml0eV9maWxlX3R5 cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90 IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hv bWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVfdCBjb25maWdfdXNy X3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90 bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAg ICh0eXBlYXR0cmlidXRlc2V0IG5vbl9hdXRoX2ZpbGVfdHlwZSAoZ2NvbmZfZXRjX3QgZGF0 YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBk YnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdj b25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZpZ191c3JfdCBna2V5cmluZ2RfZXhlY190 IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90IGdjb25mZGVmYXVsdHNt X2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQg dXNlcl9ob21lX2NvbnRlbnRfdHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNo ZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3Qg Z2NvbmZfaG9tZV90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90ICkpCiAg ICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX2hvbWVfdHlwZSAoZGF0YV9ob21lX3QgY29uZmln X2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2Nf ZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVf aG9tZV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCB1YmFjX2NvbnN0cmFpbmVkX3R5cGUg KGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21l X3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBf dCBnY29uZmRfdCBnbm9tZV9ob21lX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmlu Z2RfdG1wX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IHBvbHltZW1iZXIgKGRhdGFfaG9t ZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19o b21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnbm9tZV9o b21lX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgKSkKICAgICh0 eXBlYXR0cmlidXRlc2V0IHRtcGZpbGUgKGdjb25mX3RtcF90IGdrZXlyaW5nZF90bXBfdCAp KQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgYXBwbGljYXRpb25fZG9tYWluX3R5cGUgKGdjb25m ZF90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBkb21haW4gKGdjb25mZF90IGdjb25mZGVm YXVsdHNtX3QgZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBjb3Jl bmV0X3VubGFiZWxlZF90eXBlIChnY29uZmRfdCBnY29uZmRlZmF1bHRzbV90IGdub21lc3lz dGVtbW1fdCApKQogICAgKHR5cGVhdHRyaWJ1dGVzZXQgYXBwbGljYXRpb25fZXhlY190eXBl IChnY29uZmRfZXhlY190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBleGVjX3R5cGUgKGdj b25mZF9leGVjX3QgZ2tleXJpbmdkX2V4ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25v bWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGVudHJ5X3R5cGUg KGdjb25mZF9leGVjX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhl Y190ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX3RtcF90eXBlIChna2V5cmluZ2Rf dG1wX3QgKSkKICAgICh0eXBlYXR0cmlidXRlc2V0IGRpcmVjdF9pbml0X2VudHJ5IChnY29u ZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICh0eXBlYXR0 cmlidXRlc2V0IGRhZW1vbiAoZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkK ICAgICh0eXBlYXR0cmlidXRlc2V0IHN5c2xvZ19jbGllbnRfdHlwZSAoZ2NvbmZkX3QgZ25v bWVzeXN0ZW1tbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyZG9tX2hvbWVfbWFu YWdlcl90eXBlIChnY29uZmRlZmF1bHRzbV90ICkpCiAgICAodHlwZWF0dHJpYnV0ZXNldCBr ZXJuZWxfc3lzdGVtX3N0YXRlX3JlYWRlciAoZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAoYWxs b3cgZ25vbWVzeXN0ZW1tbV90IGNvbmZpZ19ob21lX3QgKGRpciAoaW9jdGwgcmVhZCB3cml0 ZSBnZXRhdHRyIGxvY2sgYWRkX25hbWUgcmVtb3ZlX25hbWUgc2VhcmNoIG9wZW4pKSkKICAg IChhbGxvdyBnbm9tZXN5c3RlbW1tX3QgY29uZmlnX2hvbWVfdCAoZmlsZSAoaW9jdGwgcmVh ZCB3cml0ZSBjcmVhdGUgZ2V0YXR0ciBzZXRhdHRyIGxvY2sgYXBwZW5kIHVubGluayBsaW5r IHJlbmFtZSBvcGVuKSkpCiAgICAob3B0aW9uYWwgZ25vbWVfb3B0aW9uYWxfMTIKICAgICAg ICAodHlwZWF0dHJpYnV0ZXNldCBjb25maWdmaWxlIChnY29uZl9ldGNfdCApKQogICAgICAg ICh0eXBlYXR0cmlidXRlc2V0IGZpbGVfdHlwZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3Qg Y29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVf dCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVj X3QgZ25vbWVfaG9tZV90IGNvbmZpZ191c3JfdCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5n ZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBn bm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IG5vbl9z ZWN1cml0eV9maWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21l X3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFf aG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hv bWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9t ZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1t bV9leGVjX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBub25fYXV0aF9maWxlX3R5 cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90 IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hv bWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVfdCBjb25maWdfdXNy X3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90 bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAg ICAgICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX2hvbWVfY29udGVudF90eXBlIChkYXRhX2hv bWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNf aG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ25vbWVfaG9tZV90IGdrZXly aW5nZF9nbm9tZV9ob21lX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX2hv bWVfdHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVh bWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdu b21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90ICkpCiAgICAgICAgKHR5cGVhdHRy aWJ1dGVzZXQgdWJhY19jb25zdHJhaW5lZF90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9t ZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRh X2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX3QgZ25vbWVfaG9tZV90 IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90ICkpCiAgICAgICAgKHR5 cGVhdHRyaWJ1dGVzZXQgcG9seW1lbWJlciAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBj YWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21l X3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25v bWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0 IHRtcGZpbGUgKGdjb25mX3RtcF90IGdrZXlyaW5nZF90bXBfdCApKQogICAgICAgICh0eXBl YXR0cmlidXRlc2V0IGFwcGxpY2F0aW9uX2RvbWFpbl90eXBlIChnY29uZmRfdCApKQogICAg ICAgICh0eXBlYXR0cmlidXRlc2V0IGRvbWFpbiAoZ2NvbmZkX3QgZ2NvbmZkZWZhdWx0c21f dCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBjb3JlbmV0 X3VubGFiZWxlZF90eXBlIChnY29uZmRfdCBnY29uZmRlZmF1bHRzbV90IGdub21lc3lzdGVt bW1fdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGFwcGxpY2F0aW9uX2V4ZWNfdHlw ZSAoZ2NvbmZkX2V4ZWNfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGV4ZWNfdHlw ZSAoZ2NvbmZkX2V4ZWNfdCBna2V5cmluZ2RfZXhlY190IGdjb25mZGVmYXVsdHNtX2V4ZWNf dCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGVu dHJ5X3R5cGUgKGdjb25mZF9leGVjX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lz dGVtbW1fZXhlY190ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgdXNlcl90bXBfdHlw ZSAoZ2tleXJpbmdkX3RtcF90ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgZGlyZWN0 X2luaXRfZW50cnkgKGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNf dCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGRhZW1vbiAoZ2NvbmZkZWZhdWx0c21f dCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBzeXNsb2df Y2xpZW50X3R5cGUgKGdjb25mZF90IGdub21lc3lzdGVtbW1fdCApKQogICAgICAgICh0eXBl YXR0cmlidXRlc2V0IHVzZXJkb21faG9tZV9tYW5hZ2VyX3R5cGUgKGdjb25mZGVmYXVsdHNt X3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBrZXJuZWxfc3lzdGVtX3N0YXRlX3Jl YWRlciAoZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAgICAgKGRvbnRhdWRpdCBnbm9tZXN5c3Rl bW1tX3QgbnNjZF92YXJfcnVuX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQogICAg KQogICAgKG9wdGlvbmFsIGdub21lX29wdGlvbmFsXzEzCiAgICAgICAgKHR5cGVhdHRyaWJ1 dGVzZXQgY29uZmlnZmlsZSAoZ2NvbmZfZXRjX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0 ZXNldCBmaWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3Qg Y2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9t ZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVf dCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90 IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9l eGVjX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBub25fc2VjdXJpdHlfZmlsZV90 eXBlIChnY29uZl9ldGNfdCBkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVf dCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9o b21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX2V4ZWNfdCBnbm9tZV9ob21lX3QgY29uZmlnX3Vz cl90IGdrZXlyaW5nZF9leGVjX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2Rf dG1wX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAg ICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgbm9uX2F1dGhfZmlsZV90eXBlIChnY29uZl9ldGNf dCBkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9t ZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1w X3QgZ2NvbmZkX2V4ZWNfdCBnbm9tZV9ob21lX3QgY29uZmlnX3Vzcl90IGdrZXlyaW5nZF9l eGVjX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgZ2NvbmZkZWZh dWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAgICAgKHR5cGVhdHRy aWJ1dGVzZXQgdXNlcl9ob21lX2NvbnRlbnRfdHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hv bWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0 YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9t ZV90ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgdXNlcl9ob21lX3R5cGUgKGRhdGFf aG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1 c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnbm9tZV9ob21lX3QgZ2tl eXJpbmdkX2dub21lX2hvbWVfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHViYWNf Y29uc3RyYWluZWRfdHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21l X3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZf aG9tZV90IGdjb25mX3RtcF90IGdjb25mZF90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25v bWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0 IHBvbHltZW1iZXIgKGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdz dHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVf dCBnY29uZl90bXBfdCBnbm9tZV9ob21lX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5 cmluZ2RfdG1wX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCB0bXBmaWxlIChnY29u Zl90bXBfdCBna2V5cmluZ2RfdG1wX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBh cHBsaWNhdGlvbl9kb21haW5fdHlwZSAoZ2NvbmZkX3QgKSkKICAgICAgICAodHlwZWF0dHJp YnV0ZXNldCBkb21haW4gKGdjb25mZF90IGdjb25mZGVmYXVsdHNtX3QgZ25vbWVzeXN0ZW1t bV90ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgY29yZW5ldF91bmxhYmVsZWRfdHlw ZSAoZ2NvbmZkX3QgZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICAg ICAodHlwZWF0dHJpYnV0ZXNldCBhcHBsaWNhdGlvbl9leGVjX3R5cGUgKGdjb25mZF9leGVj X3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBleGVjX3R5cGUgKGdjb25mZF9leGVj X3QgZ2tleXJpbmdkX2V4ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1t bV9leGVjX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBlbnRyeV90eXBlIChnY29u ZmRfZXhlY190IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCAp KQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfdG1wX3R5cGUgKGdrZXlyaW5nZF90 bXBfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGRpcmVjdF9pbml0X2VudHJ5IChn Y29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICAgICAo dHlwZWF0dHJpYnV0ZXNldCBkYWVtb24gKGdjb25mZGVmYXVsdHNtX3QgZ25vbWVzeXN0ZW1t bV90ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgc3lzbG9nX2NsaWVudF90eXBlIChn Y29uZmRfdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCB1 c2VyZG9tX2hvbWVfbWFuYWdlcl90eXBlIChnY29uZmRlZmF1bHRzbV90ICkpCiAgICAgICAg KHR5cGVhdHRyaWJ1dGVzZXQga2VybmVsX3N5c3RlbV9zdGF0ZV9yZWFkZXIgKGdub21lc3lz dGVtbW1fdCApKQogICAgICAgIChhbGxvdyBwb2xpY3lraXRfdCBnbm9tZXN5c3RlbW1tX3Qg KGRpciAoaW9jdGwgcmVhZCBnZXRhdHRyIGxvY2sgc2VhcmNoIG9wZW4pKSkKICAgICAgICAo YWxsb3cgcG9saWN5a2l0X3QgZ25vbWVzeXN0ZW1tbV90IChmaWxlIChpb2N0bCByZWFkIGdl dGF0dHIgbG9jayBvcGVuKSkpCiAgICAgICAgKGFsbG93IHBvbGljeWtpdF90IGdub21lc3lz dGVtbW1fdCAobG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikpKQogICAgICAgIChhbGxvdyBwb2xp Y3lraXRfdCBnbm9tZXN5c3RlbW1tX3QgKHByb2Nlc3MgKGdldGF0dHIpKSkKICAgICAgICAo YWxsb3cgZ25vbWVzeXN0ZW1tbV90IHBvbGljeWtpdF90IChkYnVzIChzZW5kX21zZykpKQog ICAgICAgIChhbGxvdyBwb2xpY3lraXRfdCBnbm9tZXN5c3RlbW1tX3QgKGRidXMgKHNlbmRf bXNnKSkpCiAgICAgICAgKGFsbG93IGdub21lc3lzdGVtbW1fdCBwb2xpY3lraXRfYXV0aF9l eGVjX3QgKGZpbGUgKHJlYWQgZ2V0YXR0ciBleGVjdXRlIG9wZW4pKSkKICAgICAgICAoYWxs b3cgZ25vbWVzeXN0ZW1tbV90IHBvbGljeWtpdF9hdXRoX3QgKHByb2Nlc3MgKHRyYW5zaXRp b24pKSkKICAgICAgICAodHlwZXRyYW5zaXRpb24gZ25vbWVzeXN0ZW1tbV90IHBvbGljeWtp dF9hdXRoX2V4ZWNfdCBwcm9jZXNzIHBvbGljeWtpdF9hdXRoX3QpCiAgICAgICAgKGFsbG93 IHBvbGljeWtpdF9hdXRoX3QgZ25vbWVzeXN0ZW1tbV90IChmZCAodXNlKSkpCiAgICAgICAg KGFsbG93IHBvbGljeWtpdF9hdXRoX3QgZ25vbWVzeXN0ZW1tbV90IChmaWZvX2ZpbGUgKGlv Y3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFwcGVuZCkpKQogICAgICAgIChhbGxvdyBw b2xpY3lraXRfYXV0aF90IGdub21lc3lzdGVtbW1fdCAocHJvY2VzcyAoc2lnY2hsZCkpKQog ICAgICAgIChhbGxvdyBnbm9tZXN5c3RlbW1tX3QgdmFyX3QgKGRpciAoZ2V0YXR0ciBzZWFy Y2ggb3BlbikpKQogICAgICAgIChhbGxvdyBnbm9tZXN5c3RlbW1tX3QgdmFyX2xpYl90IChk aXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKICAgICAgICAoYWxsb3cgZ25vbWVzeXN0ZW1t bV90IHBvbGljeWtpdF92YXJfbGliX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQog ICAgICAgIChhbGxvdyBnbm9tZXN5c3RlbW1tX3QgcG9saWN5a2l0X3Zhcl9saWJfdCAoZmls ZSAoaW9jdGwgcmVhZCBnZXRhdHRyIGxvY2sgb3BlbikpKQogICAgICAgIChhbGxvdyBnbm9t ZXN5c3RlbW1tX3QgdmFyX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQogICAgICAg IChhbGxvdyBnbm9tZXN5c3RlbW1tX3QgdmFyX2xpYl90IChkaXIgKGdldGF0dHIgc2VhcmNo IG9wZW4pKSkKICAgICAgICAoYWxsb3cgZ25vbWVzeXN0ZW1tbV90IHBvbGljeWtpdF9yZWxv YWRfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCiAgICAgICAgKGFsbG93IGdub21l c3lzdGVtbW1fdCBwb2xpY3lraXRfcmVsb2FkX3QgKGZpbGUgKGlvY3RsIHJlYWQgZ2V0YXR0 ciBsb2NrIG9wZW4pKSkKICAgICAgICAob3B0aW9uYWwgZ25vbWVfb3B0aW9uYWxfMTQKICAg ICAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgY29uZmlnZmlsZSAoZ2NvbmZfZXRjX3QgKSkK ICAgICAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgZmlsZV90eXBlIChnY29uZl9ldGNfdCBk YXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90 IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3Qg Z2NvbmZkX2V4ZWNfdCBnbm9tZV9ob21lX3QgY29uZmlnX3Vzcl90IGdrZXlyaW5nZF9leGVj X3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgZ2NvbmZkZWZhdWx0 c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAgICAgICAgICh0eXBlYXR0 cmlidXRlc2V0IG5vbl9zZWN1cml0eV9maWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9t ZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19o b21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRf ZXhlY190IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5 cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVj X3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICAgICAgICAgKHR5cGVhdHRyaWJ1dGVz ZXQgbm9uX2F1dGhfZmlsZV90eXBlIChnY29uZl9ldGNfdCBkYXRhX2hvbWVfdCBjb25maWdf aG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19k YXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX2V4ZWNfdCBnbm9t ZV9ob21lX3QgY29uZmlnX3Vzcl90IGdrZXlyaW5nZF9leGVjX3QgZ2tleXJpbmdkX2dub21l X2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lz dGVtbW1fZXhlY190ICkpCiAgICAgICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfaG9t ZV9jb250ZW50X3R5cGUgKGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90 IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hv bWVfdCBnbm9tZV9ob21lX3QgZ2tleXJpbmdkX2dub21lX2hvbWVfdCApKQogICAgICAgICAg ICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX2hvbWVfdHlwZSAoZGF0YV9ob21lX3QgY29uZmln X2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2Nf ZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVf aG9tZV90ICkpCiAgICAgICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHViYWNfY29uc3RyYWlu ZWRfdHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVh bWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdj b25mX3RtcF90IGdjb25mZF90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90 IGdrZXlyaW5nZF90bXBfdCApKQogICAgICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBwb2x5 bWVtYmVyIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFt ZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2Nv bmZfdG1wX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdk X3RtcF90ICkpCiAgICAgICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHRtcGZpbGUgKGdjb25m X3RtcF90IGdrZXlyaW5nZF90bXBfdCApKQogICAgICAgICAgICAodHlwZWF0dHJpYnV0ZXNl dCBhcHBsaWNhdGlvbl9kb21haW5fdHlwZSAoZ2NvbmZkX3QgKSkKICAgICAgICAgICAgKHR5 cGVhdHRyaWJ1dGVzZXQgZG9tYWluIChnY29uZmRfdCBnY29uZmRlZmF1bHRzbV90IGdub21l c3lzdGVtbW1fdCApKQogICAgICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBjb3JlbmV0X3Vu bGFiZWxlZF90eXBlIChnY29uZmRfdCBnY29uZmRlZmF1bHRzbV90IGdub21lc3lzdGVtbW1f dCApKQogICAgICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBhcHBsaWNhdGlvbl9leGVjX3R5 cGUgKGdjb25mZF9leGVjX3QgKSkKICAgICAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgZXhl Y190eXBlIChnY29uZmRfZXhlY190IGdrZXlyaW5nZF9leGVjX3QgZ2NvbmZkZWZhdWx0c21f ZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAgICAgICAgICh0eXBlYXR0cmli dXRlc2V0IGVudHJ5X3R5cGUgKGdjb25mZF9leGVjX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190 IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAgICAgICAgICh0eXBlYXR0cmlidXRlc2V0 IHVzZXJfdG1wX3R5cGUgKGdrZXlyaW5nZF90bXBfdCApKQogICAgICAgICAgICAodHlwZWF0 dHJpYnV0ZXNldCBkaXJlY3RfaW5pdF9lbnRyeSAoZ2NvbmZkZWZhdWx0c21fZXhlY190IGdu b21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAgICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGRh ZW1vbiAoZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICAgICAgICAg KHR5cGVhdHRyaWJ1dGVzZXQgc3lzbG9nX2NsaWVudF90eXBlIChnY29uZmRfdCBnbm9tZXN5 c3RlbW1tX3QgKSkKICAgICAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgdXNlcmRvbV9ob21l X21hbmFnZXJfdHlwZSAoZ2NvbmZkZWZhdWx0c21fdCApKQogICAgICAgICAgICAodHlwZWF0 dHJpYnV0ZXNldCBrZXJuZWxfc3lzdGVtX3N0YXRlX3JlYWRlciAoZ25vbWVzeXN0ZW1tbV90 ICkpCiAgICAgICAgICAgIChhbGxvdyBnbm9tZXN5c3RlbW1tX3QgdmFyX3QgKGRpciAoZ2V0 YXR0ciBzZWFyY2ggb3BlbikpKQogICAgICAgICAgICAoYWxsb3cgZ25vbWVzeXN0ZW1tbV90 IHZhcl9saWJfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCiAgICAgICAgICAgIChh bGxvdyBnbm9tZXN5c3RlbW1tX3Qgc3lzdGVtX2Nyb25qb2JfdmFyX2xpYl90IChkaXIgKGdl dGF0dHIgc2VhcmNoIG9wZW4pKSkKICAgICAgICAgICAgKGFsbG93IGdub21lc3lzdGVtbW1f dCBzeXN0ZW1fY3JvbmpvYl92YXJfbGliX3QgKGZpbGUgKGlvY3RsIHJlYWQgZ2V0YXR0ciBs b2NrIG9wZW4pKSkKICAgICAgICApCiAgICApCiAgICAob3B0aW9uYWwgZ25vbWVfb3B0aW9u YWxfMTUKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBjb25maWdmaWxlIChnY29uZl9ldGNf dCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGZpbGVfdHlwZSAoZ2NvbmZfZXRjX3Qg ZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVf dCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90 IGdjb25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZpZ191c3JfdCBna2V5cmluZ2RfZXhl Y190IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90IGdjb25mZGVmYXVs dHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgICAgICh0eXBlYXR0cmli dXRlc2V0IG5vbl9zZWN1cml0eV9maWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90 IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21l X3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhl Y190IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmlu Z2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3Qg Z25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBub25f YXV0aF9maWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3Qg Y2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9t ZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVf dCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90 IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9l eGVjX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX2hvbWVfY29udGVudF90 eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJf aG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ25vbWVf aG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0 ZXNldCB1c2VyX2hvbWVfdHlwZSAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9o b21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2Nv bmZfaG9tZV90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90ICkpCiAgICAg ICAgKHR5cGVhdHRyaWJ1dGVzZXQgdWJhY19jb25zdHJhaW5lZF90eXBlIChkYXRhX2hvbWVf dCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9t ZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX3Qg Z25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90ICkp CiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgcG9seW1lbWJlciAoZGF0YV9ob21lX3QgY29u ZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBp Y2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdub21lX2hvbWVfdCBn a2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCApKQogICAgICAgICh0eXBl YXR0cmlidXRlc2V0IHRtcGZpbGUgKGdjb25mX3RtcF90IGdrZXlyaW5nZF90bXBfdCApKQog ICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGFwcGxpY2F0aW9uX2RvbWFpbl90eXBlIChnY29u ZmRfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGRvbWFpbiAoZ2NvbmZkX3QgZ2Nv bmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0 ZXNldCBjb3JlbmV0X3VubGFiZWxlZF90eXBlIChnY29uZmRfdCBnY29uZmRlZmF1bHRzbV90 IGdub21lc3lzdGVtbW1fdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGFwcGxpY2F0 aW9uX2V4ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRl c2V0IGV4ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCBna2V5cmluZ2RfZXhlY190IGdjb25mZGVm YXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgICAgICh0eXBlYXR0 cmlidXRlc2V0IGVudHJ5X3R5cGUgKGdjb25mZF9leGVjX3QgZ2NvbmZkZWZhdWx0c21fZXhl Y190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQg dXNlcl90bXBfdHlwZSAoZ2tleXJpbmdkX3RtcF90ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1 dGVzZXQgZGlyZWN0X2luaXRfZW50cnkgKGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5 c3RlbW1tX2V4ZWNfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGRhZW1vbiAoZ2Nv bmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0 ZXNldCBzeXNsb2dfY2xpZW50X3R5cGUgKGdjb25mZF90IGdub21lc3lzdGVtbW1fdCApKQog ICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJkb21faG9tZV9tYW5hZ2VyX3R5cGUgKGdj b25mZGVmYXVsdHNtX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBrZXJuZWxfc3lz dGVtX3N0YXRlX3JlYWRlciAoZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAgICAgKGFsbG93IGdr ZXlyaW5nZF9kb21haW4geGRtX2hvbWVfdCAoZmlsZSAoaW9jdGwgZ2V0YXR0ciBsb2NrIGFw cGVuZCBvcGVuKSkpCiAgICAgICAgKGFsbG93IGdrZXlyaW5nZF9kb21haW4geHNlcnZlcl90 bXBfdCAoZmlsZSAoaW9jdGwgZ2V0YXR0ciBsb2NrIGFwcGVuZCBvcGVuKSkpCiAgICAgICAg KGFsbG93IGdrZXlyaW5nZF9kb21haW4gdXNlcl9ob21lX2Rpcl90IChkaXIgKGdldGF0dHIg c2VhcmNoIG9wZW4pKSkKICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiB1c2VyX2hv bWVfZGlyX3QgKGxua19maWxlIChyZWFkIGdldGF0dHIpKSkKICAgICAgICAoYWxsb3cgZ2tl eXJpbmdkX2RvbWFpbiBob21lX3Jvb3RfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkp CiAgICAgICAgKGFsbG93IGdrZXlyaW5nZF9kb21haW4gaG9tZV9yb290X3QgKGxua19maWxl IChyZWFkIGdldGF0dHIpKSkKICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiB4ZG1f aG9tZV90IChmaWxlIChpb2N0bCByZWFkIGdldGF0dHIgbG9jayBvcGVuKSkpCiAgICAgICAg KGFsbG93IGdrZXlyaW5nZF9kb21haW4geGRtX3QgKGZkICh1c2UpKSkKICAgICAgICAoYm9v bGVhbmlmICh1c2Vfc2FtYmFfaG9tZV9kaXJzKQogICAgICAgICAgICAodHJ1ZQogICAgICAg ICAgICAgICAgKGFsbG93IGdrZXlyaW5nZF9kb21haW4gY2lmc190IChmaWxlIChpb2N0bCBn ZXRhdHRyIGxvY2sgYXBwZW5kIG9wZW4pKSkKICAgICAgICAgICAgICAgIChhbGxvdyBna2V5 cmluZ2RfZG9tYWluIGNpZnNfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCiAgICAg ICAgICAgICkKICAgICAgICApCiAgICAgICAgKGJvb2xlYW5pZiAodXNlX25mc19ob21lX2Rp cnMpCiAgICAgICAgICAgICh0cnVlCiAgICAgICAgICAgICAgICAoYWxsb3cgZ2tleXJpbmdk X2RvbWFpbiBuZnNfdCAoZmlsZSAoaW9jdGwgZ2V0YXR0ciBsb2NrIGFwcGVuZCBvcGVuKSkp CiAgICAgICAgICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBuZnNfdCAoZGlyIChn ZXRhdHRyIHNlYXJjaCBvcGVuKSkpCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCiAg ICAob3B0aW9uYWwgZ25vbWVfb3B0aW9uYWxfMTYKICAgICAgICAodHlwZWF0dHJpYnV0ZXNl dCBjb25maWdmaWxlIChnY29uZl9ldGNfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0 IGZpbGVfdHlwZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNo ZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3Qg Z2NvbmZfaG9tZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNv bmZpZ191c3JfdCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tl eXJpbmdkX3RtcF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNf dCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IG5vbl9zZWN1cml0eV9maWxlX3R5cGUg KGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdz dHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVf dCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3Qg Z2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBf dCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICAg ICAodHlwZWF0dHJpYnV0ZXNldCBub25fYXV0aF9maWxlX3R5cGUgKGdjb25mX2V0Y190IGRh dGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3Qg ZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBn Y29uZmRfZXhlY190IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNf dCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRz bV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICAgICAodHlwZWF0dHJpYnV0 ZXNldCB1c2VyX2hvbWVfY29udGVudF90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90 IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hv bWVfdCBnY29uZl9ob21lX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3Qg KSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCB1c2VyX2hvbWVfdHlwZSAoZGF0YV9ob21l X3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hv bWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdub21lX2hvbWVfdCBna2V5cmlu Z2RfZ25vbWVfaG9tZV90ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgdWJhY19jb25z dHJhaW5lZF90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBn c3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21l X3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX3QgZ25vbWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9o b21lX3QgZ2tleXJpbmdkX3RtcF90ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgcG9s eW1lbWJlciAoZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVh bWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdj b25mX3RtcF90IGdub21lX2hvbWVfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5n ZF90bXBfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHRtcGZpbGUgKGdjb25mX3Rt cF90IGdrZXlyaW5nZF90bXBfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGFwcGxp Y2F0aW9uX2RvbWFpbl90eXBlIChnY29uZmRfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRl c2V0IGRvbWFpbiAoZ2NvbmZkX3QgZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3Qg KSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBjb3JlbmV0X3VubGFiZWxlZF90eXBlIChn Y29uZmRfdCBnY29uZmRlZmF1bHRzbV90IGdub21lc3lzdGVtbW1fdCApKQogICAgICAgICh0 eXBlYXR0cmlidXRlc2V0IGFwcGxpY2F0aW9uX2V4ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCAp KQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGV4ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCBn a2V5cmluZ2RfZXhlY190IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4 ZWNfdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGVudHJ5X3R5cGUgKGdjb25mZF9l eGVjX3QgZ2NvbmZkZWZhdWx0c21fZXhlY190IGdub21lc3lzdGVtbW1fZXhlY190ICkpCiAg ICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgdXNlcl90bXBfdHlwZSAoZ2tleXJpbmdkX3RtcF90 ICkpCiAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgZGlyZWN0X2luaXRfZW50cnkgKGdjb25m ZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQogICAgICAgICh0eXBl YXR0cmlidXRlc2V0IGRhZW1vbiAoZ2NvbmZkZWZhdWx0c21fdCBnbm9tZXN5c3RlbW1tX3Qg KSkKICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBzeXNsb2dfY2xpZW50X3R5cGUgKGdjb25m ZF90IGdub21lc3lzdGVtbW1fdCApKQogICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJk b21faG9tZV9tYW5hZ2VyX3R5cGUgKGdjb25mZGVmYXVsdHNtX3QgKSkKICAgICAgICAodHlw ZWF0dHJpYnV0ZXNldCBrZXJuZWxfc3lzdGVtX3N0YXRlX3JlYWRlciAoZ25vbWVzeXN0ZW1t bV90ICkpCiAgICAgICAgKGFsbG93IGdrZXlyaW5nZF9kb21haW4gY29uZmlnX2hvbWVfdCAo ZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCiAgICAgICAgKGFsbG93IGdrZXlyaW5nZF9k b21haW4gY29uZmlnX2hvbWVfdCAoZGlyIChpb2N0bCByZWFkIGdldGF0dHIgbG9jayBzZWFy Y2ggb3BlbikpKQogICAgICAgIChhbGxvdyBna2V5cmluZ2RfZG9tYWluIGNvbmZpZ19ob21l X3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQogICAgICAgIChhbGxvdyBna2V5cmlu Z2RfZG9tYWluIGNvbmZpZ19ob21lX3QgKGZpbGUgKGlvY3RsIHJlYWQgZ2V0YXR0ciBsb2Nr IG9wZW4pKSkKICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBjb25maWdfaG9tZV90 IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKICAgICAgICAoYWxsb3cgZ2tleXJpbmdk X2RvbWFpbiBjb25maWdfaG9tZV90IChsbmtfZmlsZSAocmVhZCBnZXRhdHRyKSkpCiAgICAg ICAgKGFsbG93IGdrZXlyaW5nZF9kb21haW4gY2FjaGVfaG9tZV90IChkaXIgKGdldGF0dHIg c2VhcmNoIG9wZW4pKSkKICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBjYWNoZV9o b21lX3QgKGZpbGUgKGlvY3RsIHJlYWQgZ2V0YXR0ciBsb2NrIG9wZW4pKSkKICAgICAgICAo YWxsb3cgZ2tleXJpbmdkX2RvbWFpbiB1c2VyX2hvbWVfZGlyX3QgKGRpciAoZ2V0YXR0ciBz ZWFyY2ggb3BlbikpKQogICAgICAgIChhbGxvdyBna2V5cmluZ2RfZG9tYWluIHVzZXJfaG9t ZV9kaXJfdCAobG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikpKQogICAgICAgIChhbGxvdyBna2V5 cmluZ2RfZG9tYWluIGhvbWVfcm9vdF90IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkK ICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBob21lX3Jvb3RfdCAobG5rX2ZpbGUg KHJlYWQgZ2V0YXR0cikpKQogICAgICAgIChhbGxvdyBna2V5cmluZ2RfZG9tYWluIGNhY2hl X2hvbWVfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkpCiAgICAgICAgKGFsbG93IGdr ZXlyaW5nZF9kb21haW4gY2FjaGVfaG9tZV90IChmaWxlIChpb2N0bCB3cml0ZSBnZXRhdHRy IGxvY2sgYXBwZW5kIG9wZW4pKSkKICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiB1 c2VyX2hvbWVfZGlyX3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQogICAgICAgIChh bGxvdyBna2V5cmluZ2RfZG9tYWluIHVzZXJfaG9tZV9kaXJfdCAobG5rX2ZpbGUgKHJlYWQg Z2V0YXR0cikpKQogICAgICAgIChhbGxvdyBna2V5cmluZ2RfZG9tYWluIGhvbWVfcm9vdF90 IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKICAgICAgICAoYWxsb3cgZ2tleXJpbmdk X2RvbWFpbiBob21lX3Jvb3RfdCAobG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikpKQogICAgICAg IChhbGxvdyBna2V5cmluZ2RfZG9tYWluIGNhY2hlX2hvbWVfdCAoZGlyIChpb2N0bCByZWFk IHdyaXRlIGdldGF0dHIgbG9jayBhZGRfbmFtZSByZW1vdmVfbmFtZSBzZWFyY2ggb3Blbikp KQogICAgICAgIChhbGxvdyBna2V5cmluZ2RfZG9tYWluIGNhY2hlX2hvbWVfdCAoZGlyIChp b2N0bCByZWFkIHdyaXRlIGNyZWF0ZSBnZXRhdHRyIHNldGF0dHIgbG9jayB1bmxpbmsgbGlu ayByZW5hbWUgYWRkX25hbWUgcmVtb3ZlX25hbWUgcmVwYXJlbnQgc2VhcmNoIHJtZGlyIG9w ZW4pKSkKICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiB1c2VyX2hvbWVfZGlyX3Qg KGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQogICAgICAgIChhbGxvdyBna2V5cmluZ2Rf ZG9tYWluIHVzZXJfaG9tZV9kaXJfdCAobG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikpKQogICAg ICAgIChhbGxvdyBna2V5cmluZ2RfZG9tYWluIGhvbWVfcm9vdF90IChkaXIgKGdldGF0dHIg c2VhcmNoIG9wZW4pKSkKICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBob21lX3Jv b3RfdCAobG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikpKQogICAgICAgIChhbGxvdyBna2V5cmlu Z2RfZG9tYWluIHVzZXJfaG9tZV9kaXJfdCAoZGlyIChnZXRhdHRyIHNlYXJjaCBvcGVuKSkp CiAgICAgICAgKGFsbG93IGdrZXlyaW5nZF9kb21haW4gdXNlcl9ob21lX2Rpcl90IChsbmtf ZmlsZSAocmVhZCBnZXRhdHRyKSkpCiAgICAgICAgKGFsbG93IGdrZXlyaW5nZF9kb21haW4g aG9tZV9yb290X3QgKGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQogICAgICAgIChhbGxv dyBna2V5cmluZ2RfZG9tYWluIGhvbWVfcm9vdF90IChsbmtfZmlsZSAocmVhZCBnZXRhdHRy KSkpCiAgICAgICAgKGFsbG93IGdrZXlyaW5nZF9kb21haW4gY2FjaGVfaG9tZV90IChkaXIg KGlvY3RsIHJlYWQgd3JpdGUgZ2V0YXR0ciBsb2NrIGFkZF9uYW1lIHJlbW92ZV9uYW1lIHNl YXJjaCBvcGVuKSkpCiAgICAgICAgKGFsbG93IGdrZXlyaW5nZF9kb21haW4gY2FjaGVfaG9t ZV90IChzb2NrX2ZpbGUgKGlvY3RsIHJlYWQgd3JpdGUgY3JlYXRlIGdldGF0dHIgc2V0YXR0 ciBsb2NrIGFwcGVuZCB1bmxpbmsgbGluayByZW5hbWUgb3BlbikpKQogICAgICAgIChvcHRp b25hbCBnbm9tZV9vcHRpb25hbF8xNwogICAgICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBj b25maWdmaWxlIChnY29uZl9ldGNfdCApKQogICAgICAgICAgICAodHlwZWF0dHJpYnV0ZXNl dCBmaWxlX3R5cGUgKGdjb25mX2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2Fj aGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90 IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVfdCBj b25maWdfdXNyX3QgZ2tleXJpbmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdr ZXlyaW5nZF90bXBfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVj X3QgKSkKICAgICAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgbm9uX3NlY3VyaXR5X2ZpbGVf dHlwZSAoZ2NvbmZfZXRjX3QgZGF0YV9ob21lX3QgY29uZmlnX2hvbWVfdCBjYWNoZV9ob21l X3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVfdCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZf aG9tZV90IGdjb25mX3RtcF90IGdjb25mZF9leGVjX3QgZ25vbWVfaG9tZV90IGNvbmZpZ191 c3JfdCBna2V5cmluZ2RfZXhlY190IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdk X3RtcF90IGdjb25mZGVmYXVsdHNtX2V4ZWNfdCBnbm9tZXN5c3RlbW1tX2V4ZWNfdCApKQog ICAgICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBub25fYXV0aF9maWxlX3R5cGUgKGdjb25m X2V0Y190IGRhdGFfaG9tZV90IGNvbmZpZ19ob21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1l cl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2RhdGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29u Zl90bXBfdCBnY29uZmRfZXhlY190IGdub21lX2hvbWVfdCBjb25maWdfdXNyX3QgZ2tleXJp bmdkX2V4ZWNfdCBna2V5cmluZ2RfZ25vbWVfaG9tZV90IGdrZXlyaW5nZF90bXBfdCBnY29u ZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICAgICAgICAg KHR5cGVhdHRyaWJ1dGVzZXQgdXNlcl9ob21lX2NvbnRlbnRfdHlwZSAoZGF0YV9ob21lX3Qg Y29uZmlnX2hvbWVfdCBjYWNoZV9ob21lX3QgZ3N0cmVhbWVyX2hvbWVfdCBkYnVzX2hvbWVf dCBpY2NfZGF0YV9ob21lX3QgZ2NvbmZfaG9tZV90IGdub21lX2hvbWVfdCBna2V5cmluZ2Rf Z25vbWVfaG9tZV90ICkpCiAgICAgICAgICAgICh0eXBlYXR0cmlidXRlc2V0IHVzZXJfaG9t ZV90eXBlIChkYXRhX2hvbWVfdCBjb25maWdfaG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFt ZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19kYXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ25v bWVfaG9tZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgKSkKICAgICAgICAgICAgKHR5cGVh dHRyaWJ1dGVzZXQgdWJhY19jb25zdHJhaW5lZF90eXBlIChkYXRhX2hvbWVfdCBjb25maWdf aG9tZV90IGNhY2hlX2hvbWVfdCBnc3RyZWFtZXJfaG9tZV90IGRidXNfaG9tZV90IGljY19k YXRhX2hvbWVfdCBnY29uZl9ob21lX3QgZ2NvbmZfdG1wX3QgZ2NvbmZkX3QgZ25vbWVfaG9t ZV90IGdrZXlyaW5nZF9nbm9tZV9ob21lX3QgZ2tleXJpbmdkX3RtcF90ICkpCiAgICAgICAg ICAgICh0eXBlYXR0cmlidXRlc2V0IHBvbHltZW1iZXIgKGRhdGFfaG9tZV90IGNvbmZpZ19o b21lX3QgY2FjaGVfaG9tZV90IGdzdHJlYW1lcl9ob21lX3QgZGJ1c19ob21lX3QgaWNjX2Rh dGFfaG9tZV90IGdjb25mX2hvbWVfdCBnY29uZl90bXBfdCBnbm9tZV9ob21lX3QgZ2tleXJp bmdkX2dub21lX2hvbWVfdCBna2V5cmluZ2RfdG1wX3QgKSkKICAgICAgICAgICAgKHR5cGVh dHRyaWJ1dGVzZXQgdG1wZmlsZSAoZ2NvbmZfdG1wX3QgZ2tleXJpbmdkX3RtcF90ICkpCiAg ICAgICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGFwcGxpY2F0aW9uX2RvbWFpbl90eXBlIChn Y29uZmRfdCApKQogICAgICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBkb21haW4gKGdjb25m ZF90IGdjb25mZGVmYXVsdHNtX3QgZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAgICAgICAgICh0 eXBlYXR0cmlidXRlc2V0IGNvcmVuZXRfdW5sYWJlbGVkX3R5cGUgKGdjb25mZF90IGdjb25m ZGVmYXVsdHNtX3QgZ25vbWVzeXN0ZW1tbV90ICkpCiAgICAgICAgICAgICh0eXBlYXR0cmli dXRlc2V0IGFwcGxpY2F0aW9uX2V4ZWNfdHlwZSAoZ2NvbmZkX2V4ZWNfdCApKQogICAgICAg ICAgICAodHlwZWF0dHJpYnV0ZXNldCBleGVjX3R5cGUgKGdjb25mZF9leGVjX3QgZ2tleXJp bmdkX2V4ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3Qg KSkKICAgICAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgZW50cnlfdHlwZSAoZ2NvbmZkX2V4 ZWNfdCBnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAg ICAgICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgdXNlcl90bXBfdHlwZSAoZ2tleXJpbmdkX3Rt cF90ICkpCiAgICAgICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGRpcmVjdF9pbml0X2VudHJ5 IChnY29uZmRlZmF1bHRzbV9leGVjX3QgZ25vbWVzeXN0ZW1tbV9leGVjX3QgKSkKICAgICAg ICAgICAgKHR5cGVhdHRyaWJ1dGVzZXQgZGFlbW9uIChnY29uZmRlZmF1bHRzbV90IGdub21l c3lzdGVtbW1fdCApKQogICAgICAgICAgICAodHlwZWF0dHJpYnV0ZXNldCBzeXNsb2dfY2xp ZW50X3R5cGUgKGdjb25mZF90IGdub21lc3lzdGVtbW1fdCApKQogICAgICAgICAgICAodHlw ZWF0dHJpYnV0ZXNldCB1c2VyZG9tX2hvbWVfbWFuYWdlcl90eXBlIChnY29uZmRlZmF1bHRz bV90ICkpCiAgICAgICAgICAgICh0eXBlYXR0cmlidXRlc2V0IGtlcm5lbF9zeXN0ZW1fc3Rh dGVfcmVhZGVyIChnbm9tZXN5c3RlbW1tX3QgKSkKICAgICAgICAgICAgKGFsbG93IGdrZXly aW5nZF9kb21haW4gc3NoX2hvbWVfdCAoZGlyIChpb2N0bCByZWFkIGdldGF0dHIgbG9jayBz ZWFyY2ggb3BlbikpKQogICAgICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBzc2hf aG9tZV90IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKICAgICAgICAgICAgKGFsbG93 IGdrZXlyaW5nZF9kb21haW4gc3NoX2hvbWVfdCAoZmlsZSAoaW9jdGwgcmVhZCBnZXRhdHRy IGxvY2sgb3BlbikpKQogICAgICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiBzc2hf aG9tZV90IChkaXIgKGdldGF0dHIgc2VhcmNoIG9wZW4pKSkKICAgICAgICAgICAgKGFsbG93 IGdrZXlyaW5nZF9kb21haW4gc3NoX2hvbWVfdCAobG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikp KQogICAgICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2RvbWFpbiB1c2VyX2hvbWVfZGlyX3Qg KGRpciAoZ2V0YXR0ciBzZWFyY2ggb3BlbikpKQogICAgICAgICAgICAoYWxsb3cgZ2tleXJp bmdkX2RvbWFpbiB1c2VyX2hvbWVfZGlyX3QgKGxua19maWxlIChyZWFkIGdldGF0dHIpKSkK ICAgICAgICAgICAgKGFsbG93IGdrZXlyaW5nZF9kb21haW4gaG9tZV9yb290X3QgKGRpciAo Z2V0YXR0ciBzZWFyY2ggb3BlbikpKQogICAgICAgICAgICAoYWxsb3cgZ2tleXJpbmdkX2Rv bWFpbiBob21lX3Jvb3RfdCAobG5rX2ZpbGUgKHJlYWQgZ2V0YXR0cikpKQogICAgICAgICkK ICAgICkKKQo= --------------020201070903000608050809--