From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1SN7dc-0006n4-SN for mharc-grub-devel@gnu.org; Wed, 25 Apr 2012 15:12:28 -0400 Received: from eggs.gnu.org ([208.118.235.92]:51350) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SN7dZ-0006mY-W4 for grub-devel@gnu.org; Wed, 25 Apr 2012 15:12:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SN7dV-0002s0-3d for grub-devel@gnu.org; Wed, 25 Apr 2012 15:12:25 -0400 Received: from mail-wg0-f49.google.com ([74.125.82.49]:63142) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SN7dU-0002rt-HM for grub-devel@gnu.org; Wed, 25 Apr 2012 15:12:21 -0400 Received: by wgbds1 with SMTP id ds1so331763wgb.30 for ; Wed, 25 Apr 2012 12:12:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :x-enigmail-version:content-type; bh=bKaipa34SG9PDu/CYMhB0ZGUF1B1mD6K2d2FwOaa8hk=; b=wMd+cgums8Dp0MBc7R5j3ttAahrOoJamgutxqXjRwwgGcSbfXIzLpC8W/Wm/06E9yS bXvqSwSYTVcS0w5b39ZJ3kicZCIkWWdc4wuHEVtpe5lAiHMC2/Jjx5gvKd9/anE372+s efjCFdHFgvm5kzoUOP14j+9UqCYjkVR5kW762yZKRyKIDROduO3Aj3tAZFV7E9/nV/cm gd0TVJevfVNiDD3dk6/IT1fRQ1l9/WcRUfMYP0nXoosfKK9ki6bfLGLUxp/VPVvsLNQd Fl2zOboAj0HVq1JPJVTZBOGE1p8CFZLlcTabhyzjyKZTSXZj5GYWWOTU6W63pn8mYmF1 W51A== Received: by 10.180.77.233 with SMTP id v9mr43555622wiw.22.1335381138619; Wed, 25 Apr 2012 12:12:18 -0700 (PDT) Received: from debian.x201.phnet (111-233.197-178.cust.bluewin.ch. [178.197.233.111]) by mx.google.com with ESMTPS id k6sm39205737wiy.7.2012.04.25.12.12.14 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 25 Apr 2012 12:12:17 -0700 (PDT) Message-ID: <4F984C87.8050506@gmail.com> Date: Wed, 25 Apr 2012 21:12:07 +0200 From: =?UTF-8?B?VmxhZGltaXIgJ8+GLWNvZGVyL3BoY29kZXInIFNlcmJpbmVua28=?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.3) Gecko/20120329 Icedove/10.0.3 MIME-Version: 1.0 To: Jiro SEKIBA , The development of GRUB 2 Subject: NILFS2 in GRUB with blocksize=1024 X-Enigmail-Version: 1.4.1 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="------------enig00FB38F93A6FF553EF78910C" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 74.125.82.49 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 19:12:27 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig00FB38F93A6FF553EF78910C Content-Type: multipart/mixed; boundary="------------020000010608070407010901" This is a multi-part message in MIME format. --------------020000010608070407010901 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello, with the attached script grub-fstest fails completely with blocksize=3D1024 and partially with 2048. Do you have any idea why? I tried to debug and my finding is that grub_nilfs2_read_checkpoint reads garbage. pptr makes sense but it points inside a file instead of to the metadata. If I load the other superblock I'm able to read empty disk (what's there before script starts putting files). The function calls follow as: grub_nilfs2_mount grub_nilfs2_load_sb grub_nilfs2_read_last_checkpoint grub_nilfs2_read_checkpoint grub_nilfs2_bmap_lookup grub_nilfs2_direct_lookup grub_nilfs2_dat_translate grub_nilfs2_bmap_lookup grub_nilfs2_btree_lookup grub_nilfs2_btree_node_lookup grub_nilfs2_btree_node_lookup grub_nilfs2_btree_node_lookup <---here it's already wrong---> grub_nilfs2_read_inode grub_nilfs2_bmap_lookup grub_nilfs2_direct_lookup grub_nilfs2_dat_translate grub_nilfs2_bmap_lookup grub_nilfs2_btree_lookup grub_nilfs2_btree_node_lookup grub_nilfs2_btree_node_lookup grub_nilfs2_btree_node_lookup --=20 Regards Vladimir '=CF=86-coder/phcoder' Serbinenko --------------020000010608070407010901 Content-Type: application/x-shellscript; name="fstest.sh" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="fstest.sh" IyEvYmluL2Jhc2gKCiMgTm90IHN1cHBvcnRlZCBpbiBHTlUvTGludXg6IGFmcyBzZnMKCk5P QklHPXkKTk9CT09UPXkKCmVjaG8gLW4gIkZJTEVTWVMgICAgICAgICAgIFNFQ1NaICBCTEtT WiBOREVWICIKaWYgWyB4JE5PQk9PVCAhPSB4eSBdOyB0aGVuCiAgICBlY2hvIC1uICJJTlNU IEJPT1QgIgpmaQplY2hvIC1uICJESVIgIE5ESVIgSURJUiBMRElSIFRJTUUgTFRJTSBTRElS IExBQkwgVVVJRCBGU1RNIFNZTSAgTFNZTSBTU1lNIEZJTEUgTkZJTCBMRklMIFNGSUwgSUZJ TCBDRklMICIKaWYgWyB4IiROT0JJRyIgIT0geHkgXTsgdGhlbgogICAgZWNobyAtbiAiQklH ICAiCmZpCmVjaG8KZWNobyA+IHJlcG9ydC50eHQKCkdSVUJGU1RFU1Q9Ii9ob21lL3BoY29k ZXIvY29tcGlsZS9pMzg2LXBjL2dydWItZnN0ZXN0IgoKcnVuX2l0ICgpIHsKI3ZhbGdyaW5k IC0tbG9nLWZpbGU9InZhbHJlcG9ydC8ke2ZzfV8lcC50eHQiIC0tbGVhay1jaGVjaz1mdWxs CiAgICAvdXNyL2Jpbi90aW1lIC1hIC1vIHRpbWVfcmVwb3J0LnR4dCAgIiRHUlVCRlNURVNU IiAiJEAiCn0KCnJ1bl9ncnViZnN0ZXN0ICgpIHsKICAgIGVjaG8gIiRmczoiICIkTkRFVklD RVMiICIkQCIgPj4gdGltZV9yZXBvcnQudHh0CiAgICBydW5faXQgLWMgJE5FRURfSU1BR0VT X04gIiR7TkVFRF9JTUFHRVNbQF19IiAgIiRAIgp9CgpydW5fcWVtdSAoKSB7CiAgICBjYXNl ICRORUVEX0lNQUdFU19OIGluCgkxKQoJICAgIHRpbWVvdXQgLXMgS0lMTCAxMjAgL3Vzci9i aW4vcWVtdSAtbmV0IG5vbmUgLW5vZ3JhcGhpYyAtaGRhICIke05FRURfSU1BR0VTWzBdfSI7 OwoJMikKCSAgICB0aW1lb3V0IC1zIEtJTEwgMTIwIC91c3IvYmluL3FlbXUgLW5ldCBub25l IC1ub2dyYXBoaWMgLWhkYSAiJHtORUVEX0lNQUdFU1swXX0iIC1oZGIgIiR7TkVFRF9JTUFH RVNbMV19Ijs7CgkzKQoJICAgIHRpbWVvdXQgLXMgS0lMTCAxMjAgL3Vzci9iaW4vcWVtdSAt bmV0IG5vbmUgLW5vZ3JhcGhpYyAtaGRhICIke05FRURfSU1BR0VTWzBdfSIgLWhkYiAiJHtO RUVEX0lNQUdFU1sxXX0iIC1oZGMgIiR7TkVFRF9JTUFHRVNbMl19Ijs7Cgk0KQoJICAgIHRp bWVvdXQgLXMgS0lMTCAxMjAgL3Vzci9iaW4vcWVtdSAtbmV0IG5vbmUgLW5vZ3JhcGhpYyAt aGRhICIke05FRURfSU1BR0VTWzBdfSIgLWhkYiAiJHtORUVEX0lNQUdFU1sxXX0iIC1oZGMg IiR7TkVFRF9JTUFHRVNbMl19IiAtaGRkICIke05FRURfSU1BR0VTWzNdfSI7OwogICAgZXNh Ywp9CgojIFBvc3NpYmxlIG90aGVyIG9wdGlvbnM6CiMgRkFUOiAtZiwgLXIKIyBtaW5peCo6 IC1uLCAtaQkKIyBjcGlvOiAtQQojIHJvbWZzOiAtYQojIGpmczogLU8KIyBoZnMoKyk6IC1z LCAtdywgLWMsIC1pLCAtbgojIG5pbGZzMjogLUIsIC1tLCAtTwojcmVpc2VyZnM6IC1oLCAt LWZvcm1hdAojIHRhcjogLUgsIC1uLCAtTSwgLVMsIC1WCiMgZXh0KjogLUUsIC1mLCAtZywg LUcsIC1pLCAtSSwgLU4sIC1PLCAtciwgKC10KQojIGJ0cmZzOiAtbCwgLW0sIC1NLCAtbgoj IGV4ZmF0OiBub25lCiMgWEZTOiAtZCwgLWksIC1uLCAtcgojIG50ZnM6IC1DLCAtegojIG1k YWRtOiAtcCwgLWwsIC1XCiMgcmFpZDAgd2l0aCBjaHVuayBub3QgYSBwb3dlciBvZiB0d28K IyBmcm96ZW4gcmVzaGFwZQojIHNwYXJjIDIuMiBtZAojIHNxdWFzaGZzOiAtYWx3YXlzLXVz ZS1mcmFnbWVudHMgLW5vRGF0YUNvbXByZXNzaW9uIC1ub0ZyYWdtZW50Q29tcHJlc3Npb24g LW5vLWZyYWdtZW50cyAtbm9Jbm9kZUNvbXByZXNzaW9uIC1ub3BhZAojIHZnY3JlYXRlOiAt LXZnbWV0YWRhdGFjb3BpZXMKIyBsdmNyZWF0ZTogcGxlbnR5CiMgcHZjcmVhdGU6IHBsZW50 eQojIHhvcnJpc286IHBsZW50eQojIFVERjogLXIsIC0tc3RyYXRlZ3k9LCAtLXNwYXJ0YWJs ZT0sIC0tbWVkaWEtdHlwZT0sIC0tc3BhY2U9LCAtLWFkPSwgLS1ub2VmZQojIFVGUygyKTog LVUsIC1hLCAtYiwgLWMsIC1kLCAtZSwgLWYsIC1nLCAtaCwgLWksIC1sLCAtbywgLXIKI3pm czogcGxlbnR5CgojIEZJWE1FOiBzdXBwb3J0IGUyY29tcHIsIGhmcysgY29tcHJlc3Npb24g YW5kIHppc29mcwojIEZJWE1FOiBub3Qgc3VyZSBhYm91dCBjb21wcmVzc2lvbiBvbiBhZmZz LCBhZnMsIGJlZnMsIGZhdCwgZXhmYXQsIGhmcywgamZzLCBtaW5peCosIG5pbGZzMiwgc2Zz LCB1ZGYsIHVmcywgdWZzMi4gQ2hlY2sgaXQuCiMgbnRmcyBudGZzY29tcCBmYXQxNmEgZmF0 MTJhIGZhdDEyIGZhdDE2IGZhdDMyIGV4ZmF0IG1pbml4IG1pbml4MiBtaW5peDMgY3Bpb19i aW4gY3Bpb19vZGMgY3Bpb19uZXdjIGNwaW9fY3JjIGNwaW9fdXN0YXIgY3Bpb19ocGJpbiBj cGlvX2hwb2RjIHJvbWZzIGpmcyBoZnMgaGZzcGx1cyBuaWxmczIgcmVpc2VyZnMgdGFyZnMg ZXh0MiBleHQzIGV4dDQgYnRyZnMgYnRyZnNfemxpYiBidHJmc19sem8gYnRyZnNfcmFpZDAg eGZzIGJ0cmZzX3JhaWQxIGJ0cmZzX3NpbmdsZSBidHJmc19yYWlkMTAgc3F1YXNoNF9nemlw IHNxdWFzaDRfeHogc3F1YXNoNF9sem8gaXNvOTY2MCB1ZGYKIyB1ZnMyIHVmczEgYWZmcyBi ZnMgemZzX2x6amIgemZzX2d6aXAgemZzX3psZSB6ZnNfcmFpZHozIHpmc19yYWlkejIgemZz X3JhaWR6IHpmc19taXJyb3IgemZzX3N0cmlwZSB6ZnMgCiMgbWRyYWlkMDlfcmFpZDAgbWRy YWlkMDlfcmFpZDEgbWRyYWlkMDlfcmFpZDQgbWRyYWlkMDlfcmFpZDUgbWRyYWlkMDlfcmFp ZDYgbWRyYWlkMDlfcmFpZDEwIG1kcmFpZDEwX3JhaWQwIG1kcmFpZDEwX3JhaWQxIG1kcmFp ZDEwX3JhaWQ0IG1kcmFpZDEwX3JhaWQ1IG1kcmFpZDEwX3JhaWQ2IG1kcmFpZDEwX3JhaWQx MCBtZHJhaWQxMV9yYWlkMCBtZHJhaWQxMV9yYWlkMSBtZHJhaWQxMV9yYWlkNCBtZHJhaWQx MV9yYWlkNSBtZHJhaWQxMV9yYWlkNiBtZHJhaWQxMV9yYWlkMTAgbWRyYWlkMTJfcmFpZDAg bWRyYWlkMTJfcmFpZDEgbWRyYWlkMTJfcmFpZDQgbWRyYWlkMTJfcmFpZDUgbWRyYWlkMTJf cmFpZDYgbWRyYWlkMTJfcmFpZDEwIGx2bSBsdm1fbWlycm9yYWxsIGx2bV9taXJyb3IxIGx2 bV9zdHJpcGUgbHZtX3JhaWQ0IGx2bV9yYWlkNSBsdm1fcmFpZDYgCiMgUFJPQkxFTVM6IGJm cyBoZnMgYnRyZnMgYnRyZnNfemxpYiBidHJmc19sem8gYnRyZnNfcmFpZDAgYnRyZnNfcmFp ZDEgYnRyZnNfc2luZ2xlIGJ0cmZzX3JhaWQxMApmb3IgZnMgaW4gbmlsZnMyOyBkbwogICAg TUlOU0VDU0laRT01MTIKICAgIE1BWFNFQ1NJWkU9NTEyCiAgICBjYXNlIHgiJGZzIiBpbgoJ eG50ZnMqKQoJICAgIE1JTlNFQ1NJWkU9MjU2CgkgICAgTUFYU0VDU0laRT00MDk2OzsKCXhm YXQxMmEpCgkgICAgTUlOU0VDU0laRT01MTIKCSAgICAjICBPUyBMSU1JVEFUSU9OOiBJdCBj b3VsZCBnbyB1cCB0byAzMjc2OCBidXQgTGludXggcmVqZWN0cyBzZWN0b3Igc2l6ZXMgPiAx MDI0CgkgICAgTUFYU0VDU0laRT0xMDI0OzsKCXhmYXQqKQoJICAgIE1JTlNFQ1NJWkU9NTEy CgkgICAgIyAgT1MgTElNSVRBVElPTjogSXQgY291bGQgZ28gdXAgdG8gMzI3NjggYnV0IExp bnV4IHJlamVjdHMgc2VjdG9yIHNpemVzID4gNDA5NgoJICAgIE1BWFNFQ1NJWkU9NDA5Njs7 Cgl4ZXh0KikKCSAgICBNSU5TRUNTSVpFPTI1NgoJICAgIE1BWFNFQ1NJWkU9MzI3Njg7OwoJ eGJ0cmZzKikKCSAgICBNSU5TRUNTSVpFPTI1NgoJICAgICMgIE9TIExJTUlUQVRJT046IEl0 IGNvdWxkIGdvIHVwIHRvIDMyNzY4IGJ1dCBMaW51eCByZWplY3RzIHNlY3RvciBzaXplcyA+ IDQwOTYKCSAgICBNQVhTRUNTSVpFPTQwOTY7OwoJeHhmcykKCSAgICBNSU5TRUNTSVpFPTUx MgoJICAgIE1BWFNFQ1NJWkU9MzI3Njg7OwogICAgZXNhYwogICAgZm9yICgoU0VDU0laRT1N SU5TRUNTSVpFO1NFQ1NJWkU8PU1BWFNFQ1NJWkU7U0VDU0laRT0yKlNFQ1NJWkUpKTsgZG8K CU1JTkJMS1NJWkU9NTEyCglNQVhCTEtTSVpFPTUxMgoJY2FzZSB4IiRmcyIgaW4KCSAgICB4 bnRmcyopCgkJTUlOQkxLU0laRT0kU0VDU0laRQoJCU1BWEJMS1NJWkU9NjU1MzYKCQlpZiBb IHgiJFNFQ1NJWkUiID0geDI1NiBdOyB0aGVuCgkJICAgIE1JTkJMS1NJWkU9NTEyCgkJICAg IE1BWEJMS1NJWkU9MzI3NjgKCQlmaQoJCTs7CgkgICAgeGZhdCopCgkJTUlOQkxLU0laRT0k U0VDU0laRQoJCU1BWEJMS1NJWkU9JCgoMTI4KlNFQ1NJWkUpKQoJCTs7CQkKCSAgICB4ZXhm YXQqKQoJCU1JTkJMS1NJWkU9JFNFQ1NJWkUKCQlNQVhCTEtTSVpFPTMzNTU0NDMyCgkJOzsK CSAgICB4aGZzKQoJCU1JTkJMS1NJWkU9NTEyCgkJTUFYQkxLU0laRT0xMDQ4NTc2CgkJOzsJ CQoJICAgIHhoZnNwbHVzKQoJCU1JTkJMS1NJWkU9NTEyCgkJTUFYQkxLU0laRT0xMDQ4NTc2 CgkJOzsJCQoJICAgIHhuaWxmczIpCgkJTUlOQkxLU0laRT0xMDI0CgkJTUFYQkxLU0laRT00 MDk2CgkJOzsKCSAgICB4cmVpc2VyZnMpCgkJTUlOQkxLU0laRT01MTIKCQkjIE9TIExJTUlU QVRJT046IDgxOTIgaXNuJ3Qgc3VwcG9ydGVkLgoJCU1BWEJMS1NJWkU9NDA5NgoJCTs7Cgkg ICAgeCJtZHJhaWQiKikKCQlNSU5CTEtTSVpFPTQKCQlNQVhCTEtTSVpFPTMyNzY4CgkJOzsK CSAgICB4Imx2bSIqKQoJCU1JTkJMS1NJWkU9MQoJCU1BWEJMS1NJWkU9NjU1MzYKCQk7OwoK CSAgICB4ZXh0KikKCQlNSU5CTEtTSVpFPTEwMjQKCQlpZiBbICRNSU5CTEtTSVpFIC1sdCAk U0VDU0laRSBdOyB0aGVuCgkJICAgIE1JTkJMS1NJWkU9JFNFQ1NJWkUKCQlmaQoJCU1BWEJM S1NJWkU9NDA5NgoJCTs7CgkgICAgeHNxdWFzaCopCgkJTUlOQkxLU0laRT00MDk2CgkJTUFY QkxLU0laRT0xMDQ4NTc2OzsKCSAgICB4eGZzKQoJCU1JTkJMS1NJWkU9JFNFQ1NJWkUKCQkj IE9TIExpbWl0YXRpb246IEdOVS9MaW51eCBkb2Vzbid0IGFjY2VwdCA+IDQwOTYKCQlNQVhC TEtTSVpFPTQwOTY7OwoJICAgIHh1ZGYpCgkJTUlOQkxLU0laRT0xMDI0CgkJTUFYQkxLU0la RT00MDk2OzsKCSAgICB4dWZzKikKCQlNSU5CTEtTSVpFPTQwOTYKCQlNQVhCTEtTSVpFPTEw NDg1NzY7OwoJZXNhYwoJZm9yICgoQkxLU0laRT1NSU5CTEtTSVpFO0JMS1NJWkU8PU1BWEJM S1NJWkU7QkxLU0laRT0yKkJMS1NJWkUpKTsgZG8KCSAgICBNQVhERVZJQ0VTPTEKCSAgICBN SU5ERVZJQ0VTPTEKCSAgICBleHBvcnQgZnMKCSAgICBjYXNlIHgiJGZzIiBpbgoJCXgiemZz X3JhaWR6IiB8IHgiemZzX3N0cmlwZSIgfCB4Inpmc19taXJyb3IiIHwgeGJ0cmZzX3JhaWQw IFwKCQkgICAgfCB4YnRyZnNfcmFpZDEgfCB4Im1kcmFpZCIqIl9yYWlkNCIgfCB4Im1kcmFp ZCIqIl9yYWlkNSIgXAoJCSAgICB8IHgibWRyYWlkIioiX3JhaWQxMCIgfCB4bHZtX21pcnJv cjEgfCB4bHZtX21pcnJvcmFsbCkKCQkgICAgTUlOREVWSUNFUz0yCgkJICAgIE1BWERFVklD RVM9NwoJCSAgICA7OwoJCXhidHJmc19yYWlkMTApCgkJICAgIE1JTkRFVklDRVM9NAoJCSAg ICBNQVhERVZJQ0VTPTcKCQkgICAgOzsKCQl4Inpmc19yYWlkejIifCB4bHZtX3JhaWQ1IHwg eGx2bV9yYWlkNCkKCQkgICAgTUlOREVWSUNFUz0zCgkJICAgIE1BWERFVklDRVM9Nzs7CgkJ eCJ6ZnNfcmFpZHozIiB8IHgibWRyYWlkIioiX3JhaWQ2IiB8IHhsdm1fcmFpZDYpCgkJICAg IE1JTkRFVklDRVM9NAoJCSAgICBNQVhERVZJQ0VTPTc7OwoJCXgibWRyYWlkIioiX3JhaWQw IiB8IHgibWRyYWlkIioiX3JhaWQxIiB8IHgibHZtIiB8IHhsdm1fc3RyaXBlKQoJCSAgICBN SU5ERVZJQ0VTPTEKCQkgICAgTUFYREVWSUNFUz03OzsJICAgIAoJICAgIGVzYWMKCgkgICAg Zm9yICgoTkRFVklDRVM9TUlOREVWSUNFUzsgTkRFVklDRVMgPD0gTUFYREVWSUNFUzsgTkRF VklDRVMrKykpOyBkbwoJCWV4cG9ydCBOREVWSUNFUwoJCXVuc2V0IEZTSU1BR0VTCgkJZm9y ICgoaT0wOyBpIDwgTkRFVklDRVM7IGkrKykpOyBkbwoJCSAgICBGU0lNQUdFU1tpXT0iL2hv bWUvcGhjb2Rlci9jb21waWxlLyR7ZnN9XyR7U0VDU0laRX1fJHtCTEtTSVpFfV8ke05ERVZJ Q0VTfV8kaS5pbWciCgkJZG9uZQoJCWV4cG9ydCBGU0lNQUdFUwoJCXVuc2V0IE5FRURfSU1B R0VTOwoJCQoJCWNhc2UgeCRmcyBpbgogIAkgICAgIyBSQUlEIDEgaGFzIHRvIHdvcmsgd2l0 aCBldmVuIG9uZSBkZXZpY2Ugb2YgdGhlIHNldC4KCQkgICAgeHpmc19taXJyb3IgfCB4Im1k cmFpZCIqIl9yYWlkMSIgfCB4bHZtX21pcnJvcmFsbCkKCQkJTkVFRF9JTUFHRVNfTj0xOzsK ICAgICAgICAgICAgIyBEZWdyYWRlIHJhaWR6IGJ5IHJlbW92aW5nIDMgZGV2aWNlcwoJCSAg ICB4emZzX3JhaWR6MykKCQkJTkVFRF9JTUFHRVNfTj0kKChOREVWSUNFUy0zKSk7OwoJICAg ICAjIERlZ3JhZGUgcmFpZHogYnkgcmVtb3ZpbmcgMiBkZXZpY2VzCgkJICAgIHh6ZnNfcmFp ZHoyIHwgeCJtZHJhaWQiKiJfcmFpZDYiIHwgeCJsdm1fcmFpZDYiKQoJCQlORUVEX0lNQUdF U19OPSQoKE5ERVZJQ0VTLTIpKTs7CgkgICAgIyBEZWdyYWRlIHJhaWR6IGFuZCBidHJmcyBS QUlEMSBieSByZW1vdmluZyBvbmUgZGV2aWNlCiAJCSAgICB4YnRyZnNfcmFpZDEgfCB4YnRy ZnNfcmFpZDEwIHwgeHpmc19yYWlkeiB8IHgibWRyYWlkIioiX3JhaWQ0IiBcCgkJCXwgeCJt ZHJhaWQiKiJfcmFpZDUiIHwgeCJtZHJhaWQiKiJfcmFpZDEwIiB8IHhsdm1fbWlycm9yMSBc CgkJCXwgeCJsdm1fcmFpZDQiIHwgeCJsdm1fcmFpZDUiKQoJCQlORUVEX0lNQUdFU19OPSQo KE5ERVZJQ0VTLTEpKTs7CgkJICAgICopCgkJCU5FRURfSU1BR0VTX049JE5ERVZJQ0VTOzsK CQllc2FjCgkJZm9yICgoaT0wO2kgPCBORUVEX0lNQUdFU19OOyBpKyspKTsgZG8KCQkgICAg TkVFRF9JTUFHRVNbaV09IiR7RlNJTUFHRVNbaV19IjsKCQlkb25lCgkJZXhwb3J0IE5FRURf SU1BR0VTX04KCQlleHBvcnQgTkVFRF9JTUFHRVMKCgkJTU5UUE9JTlRSTz0iL21udC8ke2Zz fV9ybyIKCQlNTlRQT0lOVFJXPSIvbW50LyR7ZnN9X3J3IgoJCU1PVU5UT1BUUz0iIgoJCU1P VU5URlM9IiRmcyIKCQlNQVNURVI9bWFzdGVyCgkJRlNMQUJFTD0iZ3J1Yl90ZXN0w6nRgmkg dXJld2ZjZW5pdWV3cnVldnJld251dWlyZXVyZXZ1ZXVybmlldnJld2ZuZXJmY25ldmlyaXZp bnJld3ZuaXJld25pdnJld2l1dmNyZXd2bnVld3ZycnJld25pdWVyd3JlaXV2aXVyZXdpdXZp dXJld251dmV3bnZyZW51cm51bnV2cmV2dXVyZXJlamlyZW12cmVpam52Y3JlaXZpcmUgbnZl cml2bnJlaXZyZXZudXJlaW9yZm5mcnZvZW9pcm9pcmVvaXJlb2lmcmVmb2llcm9pZm9pcmVv aWZvaXJlZm9pcmVvaWZvaWpmb2lyZXJlb2lyZW9pdm9pb2lyZXZvaW52b2lucmVvaW52bm9p ZW9pbnJlb2ludmVvaW52ZW9pbnJlb2ludm9pbmVvaW5vaW5vaW5lb2luZXJub2l2ZW9pbnZy ZW9paW9ld2Rpb2V3b2lydm5vaXJlb2l2Zm9pcmV3ZmV3b2lmb2lqZXdvaWpmb2lqZXdmb2lq ZmV3b2lqb2lqb2lqb2lqb2lqb2lqb2lqZmV3Y2VuaXVld3J1ZXZyZXdudXVpcmV1cmV2dWV1 cm5pZXZyZXdmbmVyZmNuZXZpcml2aW5yZXd2bmlyZXduaXZyZXdpdXZjcmV3dm51ZXd2cnJy ZXduaXVlcndyZWl1dml1cmV3aXV2aXVyZXdudXZld252cmVudXJudW51dnJldnV1cmVyZWpp cmVtdnJlaWpudmNyZWl2aXJlIG52ZXJpdm5yZWl2cmV2bnVyZWlvcmZuZnJ2b2VvaXJvaXJl b2lyZW9pZnJlZm9pZXJvaWZvaXJlb2lmb2lyZWZvaXJlb2lmb2lqZm9pcmVyZW9pcmVvaXZv aW9pcmV2b2ludm9pbnJlb2ludm5vaWVvaW5yZW9pbnZlb2ludmVvaW5yZW9pbnZvaW5lb2lu b2lub2luZW9pbmVybm9pdmVvaW52cmVvaWlvZXdkaW9ld29pcnZub2lyZW9pdmZvaXJld2Zl d29pZm9pamV3b2lqZm9pamV3Zm9pamZld29pam9pam9pam9pam9pam9pam9pamZld3Jld2Zj ZW5pdWV3cnVldnJld251dWlyZXVyZXZ1ZXVybmlldnJld2ZuZXJmY25ldmlyaXZpbnJld3Zu aXJld25pdnJld2l1dmNyZXd2bnVld3ZycnJld25pdWVyd3JlaXV2aXVyZXdpdXZpdXJld251 dmV3bnZyZW51cm51bnV2cmV2dXVyZXJlamlyZW12cmVpam52Y3JlaXZpcmUgbnZlcml2bnJl aXZyZXZudXJlaW9yZm5mcnZvZW9pcm9pcmVvaXJlb2lmcmVmb2llcm9pZm9pcmVvaWZvaXJl Zm9pcmVvaWZvaWpmb2lyZXJlb2lyZW9pdm9pb2lyZXZvaW52b2lucmVvaW52bm9pZW9pbnJl b2ludmVvaW52ZW9pbnJlb2ludm9pbmVvaW5vaW5vaW5lb2luZXJub2l2ZW9pbnZyZW9paW9l d2Rpb2V3b2lydm5vaXJlb2l2Zm9pcmV3ZmV3b2lmb2lqZXdvaWpmb2lqZXdmb2lqZmV3b2lq b2lqb2lqb2lqb2lqb2lqb2lqZmV3Y2VuaXVld3J1ZXZyZXdudXVpcmV1cmV2dWV1cm5pZXZy ZXdmbmVyZmNuZXZpcml2aW5yZXd2bmlyZXduaXZyZXdpdXZjcmV3dm51ZXd2cnJyZXduaXVl cndyZWl1dml1cmV3aXV2aXVyZXdudXZld252cmVudXJudW51dnJldnV1cmVyZWppcmVtdnJl aWpudmNyZWl2aXJlIG52ZXJpdm5yZWl2cmV2bnVyZWlvcmZuZnJ2b2VvaXJvaXJlb2lyZW9p ZnJlZm9pZXJvaWZvaXJlb2lmb2lyZWZvaXJlb2lmb2lqZm9pcmVyZW9pcmVvaXZvaW9pcmV2 b2ludm9pbnJlb2ludm5vaWVvaW5yZW9pbnZlb2ludmVvaW5yZW9pbnZvaW5lb2lub2lub2lu ZW9pbmVybm9pdmVvaW52cmVvaWlvZXdkaW9ld29pcnZub2lyZW9pdmZvaXJld2Zld29pZm9p amV3b2lqZm9pamV3Zm9pamZld29pam9pam9pam9pam9pam9pam9pamZldyIKCQlDRklMRVNO PTEKCQlpZiB0ZXN0IC1mIC91c3Ivc2hhcmUvZGljdC9hbWVyaWNhbi1lbmdsaXNoOyB0aGVu CgkJICAgIENGSUxFU1NSQ1swXT0iL3Vzci9zaGFyZS9kaWN0L2FtZXJpY2FuLWVuZ2xpc2gi CgkJZWxzZQoJCSAgICBDRklMRVNTUkNbMF09Ii91c3Ivc2hhcmUvZGljdC9saW51eC53b3Jk cyIKCQlmaQoJCUNGSUxFU1swXT0iYW1lcmljYW4tZW5nbGlzaCIKICAgICAgICAjIEZJWE1F OiBMaW1pdGVkIGJ5IE5BTUVfTUFYICh1c3VhbGx5IDI1NSkgaW4gR05VL0xpbnV4CgkJTE9O R05BTUU9InF3ZXJ0enVpb3Bhc2RmZ2hqa2x5eGN2Ym5tMTIzNDU2Nzg5MHF3ZXJ0enVpb3Bh c2RmZ2hqa2x5eGN2Ym5tMTIzNDU2Nzg5MG9pZXdxZmlld2lvcW9pcW9pdXJxcnVld3FvaXV3 b2llb2lpdWV3cXJvcmVxaXVmaWVpdXdybnVyZXdlcml1dmNlb2lyb2lld3FvaXJpY2RzYWxr Y25kc2FrZmlyZWZvaXdxZW9pcmNvcmVqd29pamZyZW9pam9qb2lld2pmd25mY29pcmVuZm9p cmVmbnJlb2lmZW5vaXdmbm9pcmV3b2lmb2l3cXdvaWVxZnJxd2lvZXJpamV3ciIKCQlybSAt cmYgIiRNQVNURVIiCgoJCWNhc2UgeCIkZnMiIGluCgkgICAgIyBGUyBMSU1JVEFUSU9OOiBI RlMrIGxhYmVsIGlzIGF0IG1vc3QgMjU1IFVURi0xNiBjaGFycwoJICAgICMgRklYTUU6IG1r ZnMuaGZzcGx1cyBidWdzIGFmdGVyIDI1NSBVVEYtOCBjaGFycwoJCSAgICB4Imhmc3BsdXMi KQoJCQlGU0xBQkVMPSJncnViX3Rlc3TDqdGCaSB1cmV3ZmNlbml1ZXdydWV2cmV3bnV1aXJl dXJldnVldXJuaWV2cmV3Zm5lcmZjbmV2aXJpdmlucmV3dm5pcmV3bml2cmV3aXV2Y3Jld3Zu dWV3dnJycmV3bml1ZXJ3cmVpdXZpdXJld2l1dml1cmV3bnV2ZXdudnJlbnVybnVudXZyZXZ1 dXJlcmVqaXJlbXZyZWlqbnZjcmVpdmlyZSBudmVyaXZucmVpdnJldm51cmVpb3JmbmZydm9l b2lyb2lyZW9pcmVvaWZyZWZvaWVyb2lmb2lyZW9pZm9pcmVmb2lyZW9pZm9pamZvaXJlcmUi OzsKCSAgICAjIEZTIExJTUlUQVRJT046IGJ0cmZzIGxhYmVsIGlzIGF0IG1vc3QgMjU1IFVU Ri04IGNoYXJzCgkJICAgIHgiYnRyZnMiKikKCQkJRlNMQUJFTD0iZ3J1Yl90ZXN0w6nRgmkg dXJld2ZjZW5pdWV3cnVldnJld251dWlyZXVyZXZ1ZXVybmlldnJld2ZuZXJmY25ldmlyaXZp bnJld3ZuaXJld25pdnJld2l1dmNyZXd2bnVld3ZycnJld25pdWVyd3JlaXV2aXVyZXdpdXZp dXJld251dmV3bnZyZW51cm51bnV2cmV2dXVyZXJlamlyZW12cmVpam52Y3JlaXZpcmUgbnZl cml2bnJlaXZyZXZudXJlaW9yZm5mcnZvZW9pcm9pcmVvaXJlb2lmcmVmb2llcm9pZm9pcmVv aWZvaXJlZm9pcmVvaWZvaWpmb2lyZXJlIjs7CgoJICAgICMgRlMgTElNSVRBVElPTjogZXhm YXQgaXMgYXQgbW9zdCAxNSBVVEYtMTYgY2hhcnMKCQkgICAgeCJleGZhdCIpCgkJCUZTTEFC RUw9ImdydWJfdGVzdMOp0YJpIHIiOzsKCSAgICAjIEZTIExJTUlUQVRJT046IG50ZnMgbGFi ZWwgaXMgYXQgbW9zdCA/PyBVVEYtMTYgY2hhcnMKCQkgICAgeCJudGZzIiopCgkJCUZTTEFC RUw9ImdydWJfdGVzdMOp0YJpIHVyZXdmY2VuaXVld3J1ZXZyZXdudXVpcmV1cmV2dWV1cm5p ZXZyZXdmbmVyZmNuZXZpcml2aW5yZXd2bmlyZXduaXZyZXdpdXZjcmV3dm51ZXd2cnJyZXdu aXVyZWlmaXVld2lmaml3d2V3ZWNmcmZzeHoiOzsKCSAgICAjIEZTIExJTUlUQVRJT046IG5p bGZzMiBsYWJlbCBpcyBhdCBtb3N0IDgwIFVURi04IGNoYXJhY3RlcnMKCQkgICAgeCJuaWxm czIiKQoJCQlGU0xBQkVMPSJncnViX3Rlc3TDqdGCaSB1cmV3ZmNlbml1ZXdydWV2cmV3bnV1 aXJldXJldnVldXJuaWV2cmV3Zm5lcmZjbmV2aXJpdmlucmV3dm5pcmV3biI7OwoJICAgICMg RlMgTElNSVRBVElPTjogYmZzIGFuZCBpc285NjYwIGxhYmVsIGlzIGF0IG1vc3QgMzIgVVRG LTggY2hhcmFjdGVycwoJCSAgICB4ImJmcyIgfCB4Imlzbzk2NjAiKQoJCQlGU0xBQkVMPSJn cnViX3Rlc3TDqdGCaSB1cmV3ZmNlbml1ZXdydWV2Ijs7CgkgICAgIyBGUyBMSU1JVEFUSU9O OiByZWlzZXJmcywgZXh0TiBhbmQgamZzIGxhYmVsIGlzIGF0IG1vc3QgMTYgVVRGLTggY2hh cmFjdGVycwoJCSAgICB4InJlaXNlcmZzIiB8IHgiZXh0MiIgfCB4ImV4dDMiIHwgeCJleHQ0 IiB8IHgibHZtIiogfCB4Im1kcmFpZCIqIHwgeCJqZnMiKQoJCQlGU0xBQkVMPSJncnViX3Rl c3TDqdGCaSB1Ijs7CiAgICAgICAgICAgICMgRlMgTElNSVRBVElPTjogTm8gdW5kZXJzY29y ZSwgc3BhY2Ugb3IgaW50ZXJuYXRpb25hbCBjaGFyYWN0ZXJzIGluIFVGUyogaW4gbGFiZWwu IExpbWl0ZWQgdG8gMzIgVVRGLTggY2hhcmFjdGVycwoJCSAgICB4InVmczEiIHwgeCJ1ZnMy IikKCQkJRlNMQUJFTD0iZ3J1YnRlc3QiImlldWZpdWNuZW5yZWVpdXJ1ZXVyZXdmIjs7Cgkg ICAgIyBGUyBMSU1JVEFUSU9OOiBYRlMgbGFiZWwgaXMgYXQgbW9zdCAxMiBVVEYtOCBjaGFy YWN0ZXJzCgkJICAgIHgieGZzIikKCQkJRlNMQUJFTD0iZ3JfdCBzw6nRgtGBIjs7CiAgICAg ICAgICAgICMgRlMgTElNSVRBVElPTjogRkFUIGxhYmVscyBsaW1pdGVkIHRvIDExIGNoYXJh Y3RlcnMsIG5vIHVuZGVyc2NvcmVzLCBzcGFjZXMsIGludGVybmF0aW9uYWwgY2hhcmFjdGVy cyBvciBsb3dlcmNhc2UKCQkgICAgeCJmYXQiKikKCQkJRlNMQUJFTD0iR1JVQlRFU1RYWVoi OzsKCSAgICAjIEZTIExJTUlUQVRJT046IEFGRlMgaXMgbGF0aW4xLiBBdCBtb3N0IDI5IGNo YXJhY3RlcnMKCQkgICAgeCJhZmZzIikKCQkJRlNMQUJFTD0iZ3J1Yl90ZXN0PyAjKndlwqNA wqHCpMK9wr57W119PD4uLCI7OwoJICAgICMgRlMgTElNSVRBVElPTjogIEhGUyBpcyBNYWNS b21hbi4gQXQgbW9zdCAyNyBjaGFyYWN0ZXJzCgkJICAgIHgiaGZzIikKCQkJRlNMQUJFTD0i Z3J1Yl90ZXN0w6nDoMOow6jDqWllIGZpdWNuZW5yZWUiOzsKCSAgICAjIEZJWE1FOiAgdWRm dG9vbHMgYnVnIHdpdGggdW5pY29kZQoJICAgICMgRlMgTElNSVRBVElPTjogVURGIGxhYmVs IGlzIGVpdGhlciB1cCB0byAxMjcgbGF0aW4xIGNoYXJhY3RlcnMgb3IgNjMgVVRGLTE2IG9u ZXMKCSAgICAjIEZJWE1FOiB1ZGZ0b29scyBidWcgd2l0aCBtb3JlIHRoYW4gMTI1IGNoYXJh Y3RlcnMKCQkgICAgeCJ1ZGYiKQoJCQlGU0xBQkVMPSJncnViX3Rlc3RpZXVmaXVjbiBucmVl aXVydWV1cmV3ZnJucmV3aWZld3JmY2lld3VpZXd1aWZoZXdodWZ3dWlyZXVmaGV3dWlmaXVy ZWZpcmVmaXVyZWZ1cmV1aGZudmNlcm52ZmlyZXduZmN1aXJld2Z1d2l3ZmVpcnVmbiI7OwoJ ICAgICMgRlMgTElNSVRBVElPTjogIFpGUyBkb2Vzbid0IGFjY2VwdCBub24tQVNDSUkgaW4g bGFiZWwKCSAgICAjIEZJWE1FOiBzaW5jZSB0aGlzIGlzIHVzZWQgYXMgYSBwYXRoIGNvbXBv bmVudCBmb3IgbW91bnQgaXQncyB2ZXJ5IGxpbWl0ZWQgaW4gbGVuZ3RoCgkJICAgIHh6ZnNf KiB8IHh6ZnMpCgkJCUZTTEFCRUw9ImdydWJfdGVzdGlldWZpdWNuZSByIjs7CgkJZXNhYwog ICAgICAgICMgRlMgTElNSVRBVElPTjogc29tZSBmaWxlc3lzdGVtcyB1c2UgdGhlIHNlY3Rv ciAwLgoJIyBObyBib290IGlzIHBvc3NpYmxlIG9uIHRob3NlLgoJIyBGUyBMSU1JVEFUSU9O OiBuaWxmczIgc2VjdG9yIDAgaXMgYXZhaWxhYmxlIGJ1dAogICAgICAgICNpdCBoYXMgbm8g ZW1iZWRkaW5nIHpvbmUgYW5kIGlzIENPVwoJIyBJU085NjYwIGNhbiBiZSBib290YWJsZSBi dXQgaXQncyBkb25lIHdpdGggZ3J1Yi1ta3Jlc2N1ZSBzY3JpcHQgYW5kIHRlc3RlZCBzZXBh cmF0ZWx5CgkJTk9JTlNUPW4KCQljYXNlIHgiJGZzIiBpbgoJCSAgICB4YWZmcyB8IHhjcGlv X29kYyB8IHhjcGlvX25ld2MgfCB4Y3Bpb19jcmMgfCB4Y3Bpb191c3RhciBcCgkJCXwgeGNw aW9faHBiaW4gfCB4Y3Bpb19ocG9kYyB8IHh0YXJmcyB8IHhyb21mcyB8IHhzZnMgXAoJCQl8 IHhzcXVhc2g0XyogfCB4eGZzIHwgeGNwaW9fYmluIFwKCQkJfCB4bmlsZnMyIFwKCQkJfCB4 aXNvOTY2MCBcCgkJCXwgeG1kcmFpZCogXAoJCQl8IHhsdm0qKQkKCQkJTk9JTlNUPXk7OwoJ CWVzYWMKICAgICAgICAjIEZTIExJTUlUQVRJT046IHNvbWUgZmlsZXN5c3RlbXMgbGltaXQg ZmlsZSBzaXplCgkJQklHQkxPQ0tDTlQ9NTAwMAoJCWNhc2UgeCIkZnMiIGluCgkJICAgIHgi ZmF0MTIiKikKCQkJQklHQkxPQ0tDTlQ9MTs7CgkJICAgIHgiZmF0MTYiKikKCQkJQklHQkxP Q0tDTlQ9NTAwOzsKCQkgICAgeCJmYXQiKiB8IHgiY3Bpb19iaW4iIHwgeCJyb21mcyIpCgkJ CUJJR0JMT0NLQ05UPTQwOTU7OwoJICAgICMgbWluaXggRlMgaXMgYXRtb3N0IDY0TS4gTGVh dmUgc29tZSBzcGFjZSBmb3Igb3RoZXIgZmlsZXMuCgkJICAgIHgibWluaXgiKQoJCQlCSUdC TE9DS0NOVD01Mzs7CgkJICAgIHgibWluaXgzIiB8IHgibWluaXgyIiB8IHgiaGZzIiB8IHgi YWZmcyIpCgkJCUJJR0JMT0NLQ05UPTIwNDc7OwogICAJICAgICMgV2UgYWxyZWFkeSB0ZXN0 IHRoZSBGUyBmb3IgYmlnIGZpbGVzIHNlcGFyYXRlbHkuIFNhdmUgc29tZSB0aW1lIGhlcmUu CgkJICAgIHgiemZzXyIqIHwgeCJidHJmc18iKikKCQkJQklHQkxPQ0tDTlQ9MTAwMDs7CgkJ ZXNhYwogICAgICAgICMgRlMgTElNSVRBVElPTjogbm8gc3ltbGlua3Mgb24gRkFULCBleEZB VCBhbmQgSEZTCiAgICAgICAgIyBudGZzLTNnIGxpbWl0YXRpb246IGl0IGNyZWF0ZXMgaW50 ZXJpeCBzeW1saW5rcyB3aGljaCBhcmVuJ3QgcmVhbCBzeW1saW5rcwoJCU5PU1lNTElOSz1u CgkJY2FzZSB4IiRmcyIgaW4KCSAgICAjIEZJWE1FOiBOb3Qgc3VyZSBhYm91dCBIRlMuIENo ZWNrIGl0LgoJCSAgICB4ImZhdCIqIHwgeCJoZnMiIHwgeCJleGZhdCIgfCB4Im50ZnMiKikK CQkJTk9TWU1MSU5LPXk7OwoJCWVzYWMKICAgICAgICAjIEZTIExJTUlUQVRJT046IHNvbWUg ZmlsZXN5c3RlbXMgbGltaXQgZmlsZSBuYW1lIHNpemUKCQljYXNlIHgiJGZzIiBpbgoJCSAg ICB4ImNwaW9fdXN0YXIiKQoJCQlMT05HTkFNRT0iYGVjaG8gJExPTkdOQU1FIHxoZWFkIC1j IDk5YCI7OwoJCSAgICB4ImhmcyIpCgkJCUxPTkdOQU1FPSJgZWNobyAkTE9OR05BTUUgfGhl YWQgLWMgMzFgIjs7CgkJICAgIHgibWluaXgiIHwgeCJtaW5peDIiIHwgeCJhZmZzIikKCQkJ TE9OR05BTUU9ImBlY2hvICRMT05HTkFNRSB8aGVhZCAtYyAzMGAiOzsKCQkgICAgeCJtaW5p eDMiKQoJCQlMT05HTkFNRT0iYGVjaG8gJExPTkdOQU1FIHxoZWFkIC1jIDYwYCI7OwoJCSAg ICB4InVkZiIpCgkJCUxPTkdOQU1FPSJgZWNobyAkTE9OR05BTUUgfGhlYWQgLWMgMTkyYCI7 OwoJCWVzYWMKCQlOT0ZJTEVUSU1FPW4KCQlOT0ZTVElNRT1uCgkJY2FzZSB4IiRmcyIgaW4K CSAgICAjIEZJWE1FOiBub3Qgc3VyZSBhYm91dCBOVEZTLCBKRlMgYW5kIEFGUy4gQ2hlY2sg aXQuCgkjIEZTIExJTUlUQVRJT046IGFzIGZhciBhcyBJIGtub3cgdGhvc2UgRlMgZG9uJ3Qg c3RvcmUgdGhlaXIgbGFzdCBtb2RpZmljYXRpb24gZGF0ZS4KCQkgICAgeCJqZnMiIHwgeCJ4 ZnMifCB4ImJ0cmZzIiogfCB4InJlaXNlcmZzIiB8IHgiYmZzIiBcCgkJCXwgeCJ0YXJmcyIg fCB4ImNwaW9fIiogfCB4Im1pbml4IiB8IHgibWluaXgyIiBcCgkJCXwgeCJtaW5peDMiIHwg eCJudGZzIiogfCB4ImFmZnMiIHwgeCJ1ZGYiKQoJCQlOT0ZTVElNRT15OzsKCSAgICAjIEZJ WE1FOiBzdXBwb3J0IHRoZXNlIHRpbWVzdGFtcHM/PwoJICAgICMgRlMgTElNSVRBVElPTjog IEZBVCBhbmQgZXhGQVQgdXNlIGxvY2FsdGltZS4gVW51c2FibGUgZm9yIEdSVUIKCQkgICAg eCJmYXQiKiB8IHgiZXhmYXQiKQoJCQlOT0ZJTEVUSU1FPXk7IE5PRlNUSU1FPXk7OwoJIyBG UyBMSU1JVEFUSU9OOiByb21mcyBoYXMgbm8gdGltZXN0YW1wcy4KCQkgICAgeCJyb21mcyIp CgkJCU5PRklMRVRJTUU9eTsgTk9GU1RJTUU9eTs7CgkJZXNhYwoKCQlOT0ZTTEFCRUw9bgoJ CWNhc2UgeCIkZnMiIGluCiAgIAkgICAgIyBGUyBMSU1JVEFUSU9OOiB0aGVzZSBmaWxlc3lz dGVtcyBoYXZlIG5vIGxhYmVsLgoJCSAgICB4ImNwaW9fIiogfCB4InRhcmZzIiB8IHgic3F1 YXNoNF8iKiB8IHgibWluaXgiIHwgeCJtaW5peDIiIFwKCQkJfCB4Im1pbml4MyIpCgkJCU5P RlNMQUJFTD15OzsKCQllc2FjCgoJCXByaW50ZiAiJS0xNnMlN2QlN2QlNWQgIiAkZnMgJFNF Q1NJWkUgJEJMS1NJWkUgJE5ERVZJQ0VTOwoJCWVjaG8gJGZzICROREVWSUNFUyA+PiByZXBv cnQudHh0CgkJdW5zZXQgTE9ERVZJQ0VTCgkJR0VORVJBVEVEPW4KCQljYXNlIHgiJGZzIiBp bgoJCSAgICB4bWRyYWlkKiB8IHhsdm0qKQoJCQlESVNLU0laRT0zMTQ1NzI4MDs7CgkJICAg IHgiZmF0MTIiKQoJCQlESVNLU0laRT0kKCg0MDAwKkJMS1NJWkUpKTs7CgkJICAgIHgiZmF0 MTJhIikKCQkJRElTS1NJWkU9MTQ3NDU2MDs7CgkJICAgIHgiZmF0MTYiKQoJCQlESVNLU0la RT0kKCg2NTAwMCpCTEtTSVpFKSk7OwoJCSAgICB4ImZhdDE2YSIpCgkJCURJU0tTSVpFPSQo KDYwMDAwKlNFQ1NJWkUpKQoJCQk7OwoJCSAgICAqKQoJCQlESVNLU0laRT0xMDczNzQxODI0 MDs7CgkJZXNhYwoKCQljYXNlIHgiJGZzIiBpbgoJCSAgICB4InRhcmZzIiB8IHgiY3Bpb18i KiB8IHgiaXNvOTY2MCIgfCB4Inppc285NjYwIiB8IHgicm9tZnMiIHwgeCJzcXVhc2g0XyIq KQoJCQlNTlRQT0lOVFJXPSIkTUFTVEVSIgoJCQlNTlRQT0lOVFJPPSIkTUFTVEVSIgoJCQlH RU5FUkFURUQ9eQoJCQlta2RpciAtcCAiJE1BU1RFUiI7OwoJICAgICMgTm8gbWtmcyBmb3Ig R05VL0xpbnV4LiBKdXN0IHVucGFjayBwcmVmb3JtYXR0ZWQgZW1wdHkgaW1hZ2UKCQkgICAg eCJhZmZzIikKCQkJbWtkaXIgLXAgIiRNTlRQT0lOVFJXIgoJCQlta2RpciAtcCAiJE1OVFBP SU5UUk8iCgkJCXh6IC1kIDwgL2hvbWUvcGhjb2Rlci9kaXNraW1nLyR7ZnN9LmltZy54eiA+ ICIke0ZTSU1BR0VTWzBdfSIKCQkJZm9yICgoaT0wOyBpIDwgTkRFVklDRVM7IGkrKykpOyBk bwoJCQkgICAgTE9ERVZJQ0VTW2ldPWBsb3NldHVwIC1mYAoJCQkgICAgbG9zZXR1cCAiJHtM T0RFVklDRVNbaV19IiAiJHtGU0lNQUdFU1tpXX0iCgkJCWRvbmUgOzsKCQkgICAgKikKCQkJ bWtkaXIgLXAgIiRNTlRQT0lOVFJXIgoJCQlta2RpciAtcCAiJE1OVFBPSU5UUk8iCgkJCWZv ciAoKGk9MDsgaSA8IE5ERVZJQ0VTOyBpKyspKTsgZG8KCQkJICAgIGRkIGlmPS9kZXYvemVy byBvZj0iJHtGU0lNQUdFU1tpXX0iIGNvdW50PTEgYnM9MSBzZWVrPSQoKERJU0tTSVpFLTEp KSAmPiAvZGV2L251bGwKCQkJICAgIExPREVWSUNFU1tpXT1gbG9zZXR1cCAtZmAKCQkJICAg IGxvc2V0dXAgIiR7TE9ERVZJQ0VTW2ldfSIgIiR7RlNJTUFHRVNbaV19IgoJCQlkb25lIDs7 CgkJZXNhYwoKCQlNT1VOVERFVklDRT0iJHtMT0RFVklDRVNbMF19IgoJCWNhc2UgeCIkZnMi IGluCgkJICAgIHgiYWZmcyIpIAoJCQlNT1VOVE9QVFM9InJvb3Q9JCgoMTYjOWZmZmY4KSks Ijs7CgkJICAgIHgiYmZzIikKCQkJTERfTElCUkFSWV9QQVRIPS9ob21lL3BoY29kZXIvcmVw b3MvYmZzX2xlIC9ob21lL3BoY29kZXIvcmVwb3MvYmZzX2xlL2Jmc19zaGVsbCAtLWluaXRp YWxpemUgIiR7RlNJTUFHRVNbMF19IiAiJEZTTEFCRUwiICY+PiByZXBvcnQudHh0OzsKCQkg ICAgeCJidHJmcyIpCgkJCSIvc2Jpbi9ta2ZzLmJ0cmZzIiAtcyAkU0VDU0laRSAtTCAiJEZT TEFCRUwiICIke0xPREVWSUNFU1swXX0iICY+PiByZXBvcnQudHh0OzsKCQkgICAgeCJidHJm c196bGliIiB8IHgiYnRyZnNfbHpvIikKCQkJIi9zYmluL21rZnMuYnRyZnMiIC1zICRTRUNT SVpFIC1MICIkRlNMQUJFTCIgIiR7TE9ERVZJQ0VTWzBdfSIgJj4+IHJlcG9ydC50eHQKCQkJ TU9VTlRPUFRTPSJjb21wcmVzcz0ke2ZzL2J0cmZzXy99LCIKCQkJTU9VTlRGUz0iYnRyZnMi CgkJCTs7CgkJICAgIHgiYnRyZnNfcmFpZDAiKQoJCQkiL3NiaW4vbWtmcy5idHJmcyIgLXMg JFNFQ1NJWkUgLWQgcmFpZDAgLUwgIiRGU0xBQkVMIiAiJHtMT0RFVklDRVNbQF19IiAmPj4g cmVwb3J0LnR4dAoJCQlNT1VOVEZTPSJidHJmcyIKCQkJOzsKCQkgICAgeCJidHJmc19yYWlk MSIpCgkJCSIvc2Jpbi9ta2ZzLmJ0cmZzIiAtcyAkU0VDU0laRSAtZCByYWlkMSAtTCAiJEZT TEFCRUwiICIke0xPREVWSUNFU1tAXX0iICY+PiByZXBvcnQudHh0CgkJCU1PVU5URlM9ImJ0 cmZzIgoJCQk7OwoJCSAgICB4ImJ0cmZzX3JhaWQxMCIpCgkJCSIvc2Jpbi9ta2ZzLmJ0cmZz IiAtcyAkU0VDU0laRSAtZCByYWlkMTAgLUwgIiRGU0xBQkVMIiAiJHtMT0RFVklDRVNbQF19 IiAmPj4gcmVwb3J0LnR4dAoJCQlNT1VOVEZTPSJidHJmcyIKCQkJOzsKCQkgICAgeCJidHJm c19zaW5nbGUiKQoJCQkiL3NiaW4vbWtmcy5idHJmcyIgLXMgJFNFQ1NJWkUgLWQgc2luZ2xl IC1MICIkRlNMQUJFTCIgIiR7TE9ERVZJQ0VTW0BdfSIgJj4+IHJlcG9ydC50eHQKCQkJTU9V TlRGUz0iYnRyZnMiCgkJCTs7CgkJICAgIHgiZXhmYXQiKQoJCQkiL3NiaW4vbWtmcy4kZnMi IC1zICQoKEJMS1NJWkUvNTEyKSkgLW4gIiRGU0xBQkVMIiAiJHtMT0RFVklDRVNbMF19IiAm Pj4gcmVwb3J0LnR4dAoJCQlNT1VOVE9QVFM9ImlvY2hhcnNldD11dGY4LCIKCQkJTU9VTlRG Uz0iZXhmYXQtZnVzZSI7OwoJCSAgICB4Im1pbml4IikKCQkJaWYgdGVzdCAteCAvdXNyL2xv Y2FsL3NiaW4vbWtmcy5taW5peDsgdGhlbgoJCQkgICAgIi91c3IvbG9jYWwvc2Jpbi9ta2Zz Lm1pbml4IiAiJHtMT0RFVklDRVNbMF19IiAmPj4gcmVwb3J0LnR4dAoJCQllbHNlCgkJCSAg ICAiL3NiaW4vbWtmcy5taW5peCIgIiR7TE9ERVZJQ0VTWzBdfSIgJj4+IHJlcG9ydC50eHQK CQkJZmk7OwoJIyBta2ZzLmhmcyBhbmQgbWtmcy5oZnNwbHVzIGRvbid0IGZpbGwgVVVJRC4K CQkgICAgeCJoZnNwbHVzIikKCQkJIi9zYmluL21rZnMuaGZzcGx1cyIgLWIgJEJMS1NJWkUg LXYgIiRGU0xBQkVMIiAiJHtMT0RFVklDRVNbMF19IiAmPj4gcmVwb3J0LnR4dAoJCQlkZCBp Zj0vZGV2L3VyYW5kb20gb2Y9IiR7TE9ERVZJQ0VTWzBdfSIgYnM9MSBzZWVrPSQoKDE2IzQ2 OCkpIGNvbnY9bm90cnVuYyBjb3VudD04ICY+PiByZXBvcnQudHh0OzsKCQkgICAgeCJoZnMi KQoJCQkiL3NiaW4vbWtmcy5oZnMiIC1iICRCTEtTSVpFIC12ICJgZWNobyAkRlNMQUJFTCB8 cmVjb2RlIHV0ZjguLm1hY3JvbWFuYCIgLWggIiR7TE9ERVZJQ0VTWzBdfSIgJj4+IHJlcG9y dC50eHQKCQkJZGQgaWY9L2Rldi91cmFuZG9tIG9mPSIke0xPREVWSUNFU1swXX0iIGJzPTEg c2Vlaz0kKCgxNiM0NzQpKSBjb252PW5vdHJ1bmMgY291bnQ9OCAmPj4gcmVwb3J0LnR4dAoJ CQk7OwoJCSAgICB4ImZhdCIqKQoJCQlCSVRTPSIke2ZzL2ZhdC99IgoJCQlpZiBbICJ4JHtC SVRTOjI6MX0iID0geGEgXTsgdGhlbgoJCQkgICAgQT0tQQoJCQllbHNlCgkJCSAgICBBPQoJ CQlmaQoJCQllY2hvICIvc2Jpbi9ta2ZzLnZmYXQiIC1hICRBIC1TICRTRUNTSVpFIC1zICQo KEJMS1NJWkUvU0VDU0laRSkpIC1GICIke0JJVFM6MDoyfSIgLW4gIiRGU0xBQkVMIiAiJHtM T0RFVklDRVNbMF19IiAmPj4gcmVwb3J0LnR4dAoJCQkiL3NiaW4vbWtmcy52ZmF0IiAtYSAk QSAtUyAkU0VDU0laRSAtcyAkKChCTEtTSVpFL1NFQ1NJWkUpKSAtRiAiJHtCSVRTOjA6Mn0i IC1uICIkRlNMQUJFTCIgIiR7TE9ERVZJQ0VTWzBdfSIgJj4+IHJlcG9ydC50eHQKCQkJTU9V TlRPUFRTPSJpb2NoYXJzZXQ9dXRmOCwiCgkJCU1PVU5URlM9InZmYXQiOzsKCQkgICAgeCJt aW5peDIiKQoJCQlpZiB0ZXN0IC14IC91c3IvbG9jYWwvc2Jpbi9ta2ZzLm1pbml4OyB0aGVu CgkJCSAgICAiL3Vzci9sb2NhbC9zYmluL21rZnMubWluaXgiIC12ICIke0xPREVWSUNFU1sw XX0iICY+PiByZXBvcnQudHh0CgkJCWVsc2UKCQkJICAgICIvc2Jpbi9ta2ZzLm1pbml4IiAt diAiJHtMT0RFVklDRVNbMF19IiAmPj4gcmVwb3J0LnR4dAoJCQlmaQoJCQlNT1VOVEZTPSJt aW5peCI7OwoJCSAgICB4Im1pbml4MyIpCgkJCWlmIHRlc3QgLXggL3Vzci9sb2NhbC9zYmlu L21rZnMubWluaXg7IHRoZW4KCQkJICAgICIvdXNyL2xvY2FsL3NiaW4vbWtmcy5taW5peCIg LTMgIiR7TE9ERVZJQ0VTWzBdfSIgJj4+IHJlcG9ydC50eHQKCQkJZWxzZQoJCQkgICAgIi9z YmluL21rZnMubWluaXgiIC0zICIke0xPREVWSUNFU1swXX0iICY+PiByZXBvcnQudHh0CgkJ CWZpCgkJCU1PVU5URlM9Im1pbml4Ijs7CgkJICAgIHgibnRmcyIqKQoJCQllY2hvICIvc2Jp bi9ta2ZzLm50ZnMiIC1zICIkU0VDU0laRSIgLWMgIiRCTEtTSVpFIiAtTCAiJEZTTEFCRUwi IC1RIC1xICIke0xPREVWSUNFU1swXX0iICY+PiByZXBvcnQudHh0CgkJCSIvc2Jpbi9ta2Zz Lm50ZnMiIC1zICIkU0VDU0laRSIgLWMgIiRCTEtTSVpFIiAtTCAiJEZTTEFCRUwiIC1RIC1x ICIke0xPREVWSUNFU1swXX0iICY+PiByZXBvcnQudHh0CgkJCU1PVU5UT1BUUz0iaW9jaGFy c2V0PXV0ZjgsY29tcHJlc3Npb24sIgoJCQlNT1VOVEZTPSJudGZzLTNnIjs7CgkJICAgIHgi dWRmIikKCQkJIi91c3IvYmluL21rdWRmZnMiIC1iICRCTEtTSVpFIC0tdXRmOCAtLWx2aWQ9 IiRGU0xBQkVMIiAiJHtMT0RFVklDRVNbMF19IiAmPj4gcmVwb3J0LnR4dAoJCQlNT1VOVE9Q VFM9ImlvY2hhcnNldD11dGY4LGJzPSRCTEtTSVpFLCI7OwoJCSAgICB4InVmczIiKQoJCQki L3NiaW4vbWtmcy51ZnMiIC1iICRCTEtTSVpFIC1MICIkRlNMQUJFTCIgLU8gMiAiJHtMT0RF VklDRVNbMF19IiAmPj4gcmVwb3J0LnR4dAoJCQlNT1VOVE9QVFM9InVmc3R5cGU9dWZzMiwi CgkJCU1PVU5URlM9InVmcyI7OwoJCSAgICB4InVmczEiKQoJCQkiL3NiaW4vbWtmcy51ZnMi IC1iICRCTEtTSVpFIC1MICIkRlNMQUJFTCIgLU8gMSAiJHtMT0RFVklDRVNbMF19IiAmPj4g cmVwb3J0LnR4dAoJCQlNT1VOVE9QVFM9InVmc3R5cGU9NDRic2QsIgoJCQlNT1VOVEZTPSJ1 ZnMiOzsKCQkgICAgeCJ6ZnMiKQoJCQkienBvb2wiIGNyZWF0ZSAtUiAiJE1OVFBPSU5UUlci ICIkRlNMQUJFTCIgIiR7TE9ERVZJQ0VTWzBdfSIKCQkJc2xlZXAgMQoJCQkiemZzIiBjcmVh dGUgIiRGU0xBQkVMIi8iZ3J1YiBmcyIKCQkJc2xlZXAgMTs7CgkJICAgIHgiemZzX2x6amIi IHwgeHpmc19nemlwIHwgeHpmc196bGUpCgkJCSJ6cG9vbCIgY3JlYXRlIC1PIGNvbXByZXNz aW9uPSR7ZnMvemZzXy99IC1SICIkTU5UUE9JTlRSVyIgIiRGU0xBQkVMIiAiJHtMT0RFVklD RVNbMF19IgoJCQlzbGVlcCAxCgkJCSJ6ZnMiIGNyZWF0ZSAtbyBjb21wcmVzc2lvbj0ke2Zz L3pmc18vfSAiJEZTTEFCRUwiLyJncnViIGZzIgoJCQlzbGVlcCAxOzsKCQkgICAgeCJ6ZnNf cmFpZHoiKQoJCQkienBvb2wiIGNyZWF0ZSAtUiAiJE1OVFBPSU5UUlciICIkRlNMQUJFTCIg cmFpZHoxICIke0xPREVWSUNFU1tAXX0iCgkJCXNsZWVwIDEKCQkJInpmcyIgY3JlYXRlICIk RlNMQUJFTCIvImdydWIgZnMiCgkJCXNsZWVwIDE7OwoJCSAgICB4Inpmc19yYWlkejIiKQoJ CQkienBvb2wiIGNyZWF0ZSAtUiAiJE1OVFBPSU5UUlciICIkRlNMQUJFTCIgcmFpZHoyICIk e0xPREVWSUNFU1tAXX0iCgkJCXNsZWVwIDEKCQkJInpmcyIgY3JlYXRlICIkRlNMQUJFTCIv ImdydWIgZnMiCgkJCXNsZWVwIDE7OwoJCSAgICB4Inpmc19yYWlkejMiKQoJCQkienBvb2wi IGNyZWF0ZSAtUiAiJE1OVFBPSU5UUlciICIkRlNMQUJFTCIgcmFpZHozICIke0xPREVWSUNF U1tAXX0iCgkJCXNsZWVwIDEKCQkJInpmcyIgY3JlYXRlICIkRlNMQUJFTCIvImdydWIgZnMi CgkJCXNsZWVwIDE7OwoJCSAgICB4Inpmc19taXJyb3IiKQoJCQkienBvb2wiIGNyZWF0ZSAt UiAiJE1OVFBPSU5UUlciICIkRlNMQUJFTCIgbWlycm9yICIke0xPREVWSUNFU1tAXX0iCgkJ CXNsZWVwIDEKCQkJInpmcyIgY3JlYXRlICIkRlNMQUJFTCIvImdydWIgZnMiCgkJCXNsZWVw IDE7OwoJCSAgICB4Inpmc19zdHJpcGUiKQoJCQkienBvb2wiIGNyZWF0ZSAtUiAiJE1OVFBP SU5UUlciICIkRlNMQUJFTCIgIiR7TE9ERVZJQ0VTW0BdfSIKCQkJc2xlZXAgMQoJCQkiemZz IiBjcmVhdGUgIiRGU0xBQkVMIi8iZ3J1YiBmcyIKCQkJc2xlZXAgMTs7CgkJICAgIHgidGFy ZnMiIHwgeCJjcGlvXyIqIHwgeCJpc285NjYwIiB8IHgiemlzbzk2NjAiIHwgeCJyb21mcyIp IDs7CgkJICAgIHgic3F1YXNoNF8iKikKCQkJTU9VTlRGUz0ic3F1YXNoNCI7OwoJCSAgICB4 InJlaXNlcmZzIikKCQkJIi9zYmluL21rZnMuJGZzIiAtYiAkQkxLU0laRSAtbCAiJEZTTEFC RUwiIC1xICIke0xPREVWSUNFU1swXX0iICY+PiByZXBvcnQudHh0OzsKCQkgICAgeCJqZnMi KQoJCQkiL3NiaW4vbWtmcy5qZnMiIC1MICIkRlNMQUJFTCIgLXEgIiR7TE9ERVZJQ0VTWzBd fSIgJj4+IHJlcG9ydC50eHQKCQkJTU9VTlRPUFRTPSJpb2NoYXJzZXQ9dXRmOCwiOzsKCQkg ICAgeCJtZHJhaWQiKikKCQkJbWRhZG0gLUMgLS1jaHVuaz0kQkxLU0laRSAtLWZvcmNlIC1l ICIke2ZzOjY6MX0uJHtmczo3OjF9IiAiL2Rldi9tZC8ke2ZzfV8ke05ERVZJQ0VTfSIgLS1s ZXZlbD0iJHtmczoxM30iIC0tcmFpZC1kZXZpY2VzPSIkTkRFVklDRVMiICIke0xPREVWSUNF U1tAXX0iICY+PiByZXBvcnQudHh0CgkJCU1PVU5UREVWSUNFPSIvZGV2L21kLyR7ZnN9XyR7 TkRFVklDRVN9IgoJCQlNT1VOVEZTPWV4dDIKCQkJIm1rZnMuZXh0MiIgLUwgIiRGU0xBQkVM IiAtcSAiJHtNT1VOVERFVklDRX0iICY+PiByZXBvcnQudHh0OzsKCQkgICAgeCJsdm0iKikK CQkJZm9yICgoaT0wO2k8TkRFVklDRVM7aSsrKSk7IGRvCgkJCSAgICBwdmNyZWF0ZSAiJHtM T0RFVklDRVNbaV19IiAmPj4gcmVwb3J0LnR4dAoJCQlkb25lCgkJCXZnY3JlYXRlIC1zICRC TEtTSVpFIGdydWJfdGVzdCAiJHtMT0RFVklDRVNbQF19IiAmPj4gcmVwb3J0LnR4dAoJCQlp ZiBbIHgkZnMgPSB4bHZtIF0gOyB0aGVuCgkJCSAgICBsdmNyZWF0ZSAtbCAiJCgoTkRFVklD RVMqNykpIiAtbiB0ZXN0dm9sIGdydWJfdGVzdCAmPj4gcmVwb3J0LnR4dAoJCQllbGlmIFsg eCRmcyA9IHhsdm1fc3RyaXBlIF0gOyB0aGVuCgkJCSAgICBsdmNyZWF0ZSAtbCAiJCgoTkRF VklDRVMqNykpIiAtaSAiJE5ERVZJQ0VTIiAtbiB0ZXN0dm9sIGdydWJfdGVzdCAmPj4gcmVw b3J0LnR4dAoJCQllbGlmIFsgeCRmcyA9IHhsdm1fbWlycm9yMSBdIDsgdGhlbgoJCQkgICAg bHZjcmVhdGUgLW0gMSAtbCAiJCgoTkRFVklDRVMqMikpIiAtbiB0ZXN0dm9sIGdydWJfdGVz dCAmPj4gcmVwb3J0LnR4dAoJCQllbGlmIFsgeCRmcyA9IHhsdm1fbWlycm9yYWxsIF0gOyB0 aGVuCgkJCSAgICBsdmNyZWF0ZSAtbSAiJCgoTkRFVklDRVMtMSkpIiAtbCAiNiIgLW4gdGVz dHZvbCBncnViX3Rlc3QgJj4+IHJlcG9ydC50eHQKCQkJZWxpZiBbIHgkZnMgPSB4bHZtX3Jh aWQ0IF0gfHwgWyB4JGZzID0geGx2bV9yYWlkNSBdOyB0aGVuCgkJCSAgICBsdmNyZWF0ZSAt bCAiJCgoKE5ERVZJQ0VTLTEpICogNSkpIiAtaSAiJCgoTkRFVklDRVMtMSkpIiAtLXR5cGUg IiR7ZnMvbHZtXy99IiAtbiB0ZXN0dm9sIGdydWJfdGVzdCAmPj4gcmVwb3J0LnR4dAoJCQll bGlmIFsgeCRmcyA9IHhsdm1fcmFpZDYgXTsgdGhlbgoJCQkgICAgbHZjcmVhdGUgLWwgIiQo KChOREVWSUNFUy0yKSAqIDUpKSIgLWkgIiQoKE5ERVZJQ0VTLTIpKSIgLS10eXBlICIke2Zz L2x2bV8vfSIgLW4gdGVzdHZvbCBncnViX3Rlc3QgJj4+IHJlcG9ydC50eHQKCQkJZmkKCQkJ TU9VTlRERVZJQ0U9Ii9kZXYvbWFwcGVyL2dydWJfdGVzdC10ZXN0dm9sIgoJCQlNT1VOVEZT PWV4dDIKCQkJIm1rZnMuZXh0MiIgLUwgIiRGU0xBQkVMIiAtcSAiJHtNT1VOVERFVklDRX0i ICY+PiByZXBvcnQudHh0IDs7CgkJICAgIHhuaWxmczIpCgkJCSJta2ZzLm5pbGZzMiIgLUwg IiRGU0xBQkVMIiAtYiAkQkxLU0laRSAgLXEgIiR7TE9ERVZJQ0VTWzBdfSIgJj4+IHJlcG9y dC50eHQ7OwoJCSAgICB4ZXh0KikKCQkJTUtFMkZTX0RFVklDRV9TRUNUU0laRT0kU0VDU0la RSAibWtmcy4kZnMiIC1iICRCTEtTSVpFIC1MICIkRlNMQUJFTCIgLXEgIiR7TE9ERVZJQ0VT WzBdfSIgJj4+IHJlcG9ydC50eHQ7OwoJCSAgICB4eGZzKQoJCQkibWtmcy54ZnMiIC1iIHNp emU9JEJMS1NJWkUgLXMgc2l6ZT0kU0VDU0laRSAtTCAiJEZTTEFCRUwiIC1xICIke0xPREVW SUNFU1swXX0iICY+PiByZXBvcnQudHh0OzsKCQkgICAgKikKCQkJZWNobyAiQWRkIGFwcHJv cHJpYXRlIG1rZnMgY29tbWFuZCBoZXJlIgoJCQlleGl0IDEKCQkJOzsKCQllc2FjCgkJQkFT RUZJTEU9IjEuaW1nIgoJCU5BU1RZRklMRT0iLj8qXFwhXCIjJUBcJCUmJygpKyAsLS46Ozw9 Pl57X31bXVxgfH4uIgoJCWNhc2UgeCIkZnMiIGluCgkgICAgIyBGUyBMSU1JVEFUSU9OOiBB RkZTIGRvZXNuJ3QgYWNjZXB0IDoKCSAgICAjIEZTIExJTUlUQVRJT046IEFGRlMgaXMgbGlt aXRlZCBpbiBmaWxlIG5hbWUgbGVuZ3RoICgzMCkKCQkgICAgeCJhZmZzIikKCQkJTkFTVFlG SUxFPSIuPypcXCFcIiNAXCQnKCkrICwtOzw9Pl57X31bXVxgfH4uIjs7CgkgICAgIyBGUyBM SU1JVEFUSU9OOiBoZnMsIG1pbml4IGFuZCBtaW5peDIgYXJlIGxpbWl0ZWQgaW4gZmlsZSBu YW1lIGxlbmd0aCAoMzAgb3IgMzEpCgkJICAgIHgiaGZzIiB8IHgibWluaXgiIHwgeCJtaW5p eDIiKQoJCQlOQVNUWUZJTEU9Ii4/KlxcIVwiI0BcJCYnKCkrICwtOjs8PT57fVtdXGB8fi4i OzsKCSAgICAjIEZTIExJTUlUQVRJT046IEZBVCBkb2Vzbid0IGFjY2VwdCA/LCAqLCBcLCAi LCA6LCAgPCwgPiwgfAoJICAgICMgRlMgTElNSVRBVElPTjogRkFUIGRpc2NhcmRzIGRvdHMg YXQgdGhlIGVuZC4KCQkgICAgeCJmYXQiKiB8eCJleGZhdCIpCgkJICAgIE5BU1RZRklMRT0i LiEjJUBcJCUmJygpKyAsLS47PV57X31bXVxgfiI7OwoJCWVzYWMKCQkKCQljYXNlIHgiJGZz IiBpbgoJICAgICMgQUZGUyBpcyBsYXRpbjEKCQkgICAgeCJhZmZzIikKCQkJSUZJTEU9IsOp w6DDqMO8w7bDpMOrw7EiIAoJCSMgTGludXggQUZGUyBpcyBidWdneQoJCQlpZiBbIHgiYHVu YW1lIC1zYCIgPSB4TGludXggXTsgdGhlbgoJCQkgICAgSUZJTEVPUz0iYGVjaG8gJElGSUxF IHwgcmVjb2RlIHV0ZjguLmxhdGluMWAiCgkJCWVsc2UKCQkJICAgIElGSUxFT1M9IiRJRklM RSIKCQkJZmkKCQkJOzsKCSAgICAjIEhGUyBpcyBtYWNyb21hbgoJCSAgICB4ImhmcyIpCgkJ CUlGSUxFPSLDqcOgw6jDvMO2w6TDq8OxIiAKCQkjIExpbnV4IGxhY2tzIG1hY3JvbWFuIHN1 cHBvcnQKCQkJaWYgWyB4ImB1bmFtZSAtc2AiID0geExpbnV4IF07IHRoZW4KCQkJICAgIElG SUxFT1M9ImBlY2hvICRJRklMRSB8IHJlY29kZSB1dGY4Li5tYWNyb21hbmAiCgkJCWVsc2UK CQkJICAgIElGSUxFT1M9IiRJRklMRSIKCQkJZmkKCQkJOzsKCQkgICAgeCJtaW5peCIgfCB4 Im1pbml4MiIpCgkJCUlGSUxFPSLDqcOgw6jDvMO2w6TDq8Ox0LrQuM6VzrvOus6sIgoJCQlJ RklMRU9TPSIkSUZJTEUiOzsKCSAgICAjIEhGUysgdXNlcyBORkQuIEdSVUIgZG9lc24ndCBo YW5kbGUgTkYgY29udmVyc2lvbi4KCQkgICAgeCJoZnNwbHVzIikKCQkJSUZJTEU9ImXMgWHM gGXMgHXMiG/MiGHMiGXMiG7Mg9C60LjRgNC40LvQuNGG0LDOlc67zrvOt869zrnOus6xzI0i IAoJCQlJRklMRU9TPSIkSUZJTEUiOzsKCQkgICAgKikKCQkJSUZJTEU9IsOpw6DDqMO8w7bD pMOrw7HQutC40YDQuNC70LjRhtCwzpXOu867zrfOvc65zrrOrCIKCQkJSUZJTEVPUz0iJElG SUxFIjs7CgkJZXNhYwoJCUJJR0ZJTEU9ImJpZy5pbWciCgkJQkFTRVNZTT0ic3ltIgoJCVNT WU09InNkaXIvc3N5bSIKCQlMT05HU1lNPSJsb25nc3ltIgoJCU9TRElSPSIiCgkJR1JVQkRF VklDRT1sb29wMAoJCWNhc2UgeCIkZnMiIGluCgkJICAgIHhtZHJhaWQqKQoJCQlHUlVCREVW SUNFPSJtZHV1aWQvYG1kYWRtIC0tZGV0YWlsIC0tZXhwb3J0ICRNT1VOVERFVklDRSB8IGdy ZXAgTURfVVVJRD18c2VkICdzLE1EX1VVSUQ9LCxnO3MsOiwsZydgIjs7CgkJICAgIHhsdm0q KQoJCQlHUlVCREVWSUNFPSJsdm0vZ3J1Yl90ZXN0LXRlc3R2b2wiOzsKCQllc2FjCgkJR1JV QkRJUj0iKCRHUlVCREVWSUNFKSIKCQljYXNlIHgiJGZzIiBpbgoJCSAgICB4InpmcyIqKQkg ICAgCgkJCU9TRElSPSJncnViIGZzLyIKCQkJR1JVQkRJUj0iKCRHUlVCREVWSUNFKS9ncnVi IGZzQCI7OwoJCSAgICB4ImJmcyIpCgkJCS9ob21lL3BoY29kZXIvcmVwb3MvYmZzX2xlL2Jm c19mdXNlICIke0ZTSU1BR0VTWzBdfSIgIiRNTlRQT0lOVFJXIiAmPj4gcmVwb3J0LnR4dAoJ CQlPU0RJUj0ibXlmcy8iOzsKCQkgICAgeCJ0YXJmcyIgfCB4ImNwaW9fIiogfCB4Imlzbzk2 NjAiIHwgeCJ6aXNvOTY2MCIgfCB4InJvbWZzIiB8IHgic3F1YXNoNF8iKikgCgkJCTs7CgkJ ICAgICopCgkJCW1vdW50IC10ICIkTU9VTlRGUyIgIiR7TU9VTlRERVZJQ0V9IiAiJE1OVFBP SU5UUlciIC1vICR7TU9VTlRPUFRTfWNvbnRleHQ9dW5jb25maW5lZF91Om9iamVjdF9yOmRv c2ZzX3Q6czAscncgJj4+IHJlcG9ydC50eHQ7OwoJCWVzYWMKCQljYXNlIHgiJGZzIiBpbgoJ CSAgICB4bWRyYWlkKiB8IHhsdm0qKQoJCQlCTE9DS0NOVD0xMDQ4NTc2OzsKCQkgICAgeCJm YXQxNmEiKQoJCQlCTE9DS0NOVD02NTUzNjs7CgkJICAgIHgiZmF0MTJhIikKCQkJQkxPQ0tD TlQ9NjU1MzY7OwoJCSAgICB4bWluaXgpCgkJCUJMT0NLQ05UPTUyNDI4ODA7OwoJCSAgICB4 ZmF0MTYpCgkJCUJMT0NLQ05UPTUyNDI4ODA7OwoJCSAgICB4ZmF0MTIpCgkJCUJMT0NLQ05U PSQoKDEwMCpCTEtTSVpFKSkKCQkJaWYgWyAkQkxPQ0tDTlQgLWd0IDUyNDI4ODAgXTsgdGhl bgoJCQkgICAgQkxPQ0tDTlQ9NTI0Mjg4MDsKCQkJZmkKCQkJOzsKCQkgICAgKikKCQkJQkxP Q0tDTlQ9NTI0Mjg4MDs7CgkJZXNhYwoJCWNhc2UgeCIkZnMiIGluCgkJICAgIHgibnRmc2Nv bXAiKQoJCQlzZXRmYXR0ciAtaCAtdiAweDAwMDAwODAwIC1uIHN5c3RlbS5udGZzX2F0dHJp Yl9iZSAiJE1OVFBPSU5UUlcvJE9TRElSIjs7CgkJZXNhYwoJCW1rZGlyICIkTU5UUE9JTlRS Vy8kT1NESVIvc2RpciIKCQlvcGVuc3NsIHJhbmQgJEJMT0NLQ05UID4gIiRNTlRQT0lOVFJX LyRPU0RJUi9zZGlyLzIuaW1nIgoJCW9wZW5zc2wgcmFuZCAkQkxPQ0tDTlQgPiAiJE1OVFBP SU5UUlcvJE9TRElSLyRCQVNFRklMRSIKCQlvcGVuc3NsIHJhbmQgJEJMT0NLQ05UID4gIiRN TlRQT0lOVFJXLyRPU0RJUi8kTkFTVFlGSUxFIgoJCW9wZW5zc2wgcmFuZCAkQkxPQ0tDTlQg PiAiJE1OVFBPSU5UUlcvJE9TRElSLyRJRklMRU9TIgoJCW9wZW5zc2wgcmFuZCAkQkxPQ0tD TlQgPiAiJE1OVFBPSU5UUlcvJE9TRElSLyRMT05HTkFNRSIKCQlpZiB0ZXN0IHgkZnMgPSB4 ZmF0MTJhICYmIHRlc3QgeCRCTEtTSVpFID0geDEzMTA3MjsgdGhlbgoJCSAgICAjIFdpdGgg dGhpcyBjb25maWcgdGhlcmUgaXNuJ3QgZW5vdWdoIHNwYWNlIGZvciBmdWxsIGNvcHkuCgkJ ICAgICMgQ29weSBhcyBtdWNoIGFzIHdlIGNhbgoJCSAgICBjcCAiJHtDRklMRVNTUkNbMF19 IiAiJE1OVFBPSU5UUlcvJE9TRElSLyR7Q0ZJTEVTWzBdfSIgJj4gL2Rldi9udWxsOwoJCWVs c2UKCQkgICAgZm9yICgoaT0wO2k8JENGSUxFU047aSsrKSk7IGRvCgkJCWNwICIke0NGSUxF U1NSQ1tpXX0iICIkTU5UUE9JTlRSVy8kT1NESVIvJHtDRklMRVNbaV19IjsKCQkgICAgZG9u ZQoJCWZpCgkJIyBGUyBMSU1JVEFUSU9OOiBXaXRoIHRvbyBiaWcgY2x1c3RlciB0aGVyZSBp cyB2ZXJ5IHRpZ2h0CgkJIyBsaW1pdCBvbiBudW1iZXIgb2YgZmlsZXMuIE5vIHdheSB3ZSBj YW4gaW5zdGFsbCB0aGVyZS4KCQlpZiB0ZXN0IHgkZnMgIT0geGZhdDEyYSB8fCB0ZXN0ICRC TEtTSVpFIC1sdCA2NTUzNjsgdGhlbgoJCSAgICBta2RpciAtcCAiJE1OVFBPSU5UUlcvJE9T RElSL2Jvb3QvZ3J1YiIKCQkgICAgY2F0ID4gIiRNTlRQT0lOVFJXLyRPU0RJUi9ib290L2dy dWIvZ3J1Yi5jZmciIDw8RU9GCnRlcm1pbmFsX291dHB1dCAtLWFwcGVuZCBzZXJpYWxfY29t MAplY2hvIGJmMDNlNTMzLTNjMmEtNDkyMi04YTJlLTkyM2ViYzM0YmU1NwpoYWx0CkVPRgoJ CWZpCgkJaWYgdGVzdCB4JEdFTkVSQVRFRCA9IHhuICYmIFsgeCROT0JPT1QgIT0geHkgXTsg dGhlbgoJCSAgICBpZiBncnViLWluc3RhbGwgLS1mb3JjZSAtLWJvb3QtZGlyZWN0b3J5PSIk TU5UUE9JTlRSVy8kT1NESVIvYm9vdCIgIiRNT1VOVERFVklDRSIgICY+PiByZXBvcnQudHh0 IDsgdGhlbgoJCQlpZiB0ZXN0IHgkTk9JTlNUID0geHk7IHRoZW4KCQkJICAgIGVjaG8gIklO U1QgRkFJTCAoaW5zdGFsbGVkIHdoZW4gaXQgc2hvdWxkbid0LCBwcm9iYWJseSBjb3JydXB0 ZWQgZnMpIiA+PiByZXBvcnQudHh0CgkJCSAgICBlY2hvIC1uICJGQUlMICIKCQkJZWxzZQoJ CQkgICAgZWNobyAiSU5TVCBPSyAoaW5zdGFsbGVkKSIgPj4gcmVwb3J0LnR4dAoJCQkgICAg ZWNobyAtbiAiT0sgICAiCgkJCWZpCgkJICAgIGVsc2UKCQkJaWYgdGVzdCB4JE5PSU5TVCA9 IHh5OyB0aGVuCgkJCSAgICBlY2hvICJJTlNUIE9LIChza2lwcGVkIGxpa2UgaXQgc2hvdWxk KSIgPj4gcmVwb3J0LnR4dAoJCQkgICAgZWNobyAtbiAiT0sgICAiCgkJCWVsc2UKCQkJICAg IGVjaG8gIklOU1QgRkFJTCAoZmFpbGVkIHRvIGluc3RhbGwgb24gY29tcGF0aWJsZSkiID4+ IHJlcG9ydC50eHQKCQkJICAgIGVjaG8gLW4gIkZBSUwgIgoJCQlmaQoJCSAgICBmaQoJCWZp CgkJCgkJaWYgWyB4JE5PQklHICE9IHh5IF07IHRoZW4KCQkgICAgKG9wZW5zc2wgcmFuZCAk KChCSUdCTE9DS0NOVCAqIDI2MjE0NCkpOyBvcGVuc3NsIHJhbmQgJCgoQklHQkxPQ0tDTlQg KiAyNjIxNDQpKTsgb3BlbnNzbCByYW5kICQoKEJJR0JMT0NLQ05UICogMjYyMTQ0KSk7IG9w ZW5zc2wgcmFuZCAkKChCSUdCTE9DS0NOVCAqIDI2MjE0NCkpKSA+ICIkTU5UUE9JTlRSVy8k T1NESVIvJEJJR0ZJTEUiCgkJZmkKCgkJaWYgWyB4JE5PU1lNTElOSyAhPSB4eSBdOyB0aGVu CgkJICAgIGxuIC1zICIkQkFTRUZJTEUiICIkTU5UUE9JTlRSVy8kT1NESVIvJEJBU0VTWU0i CgkJICAgIGxuIC1zICIyLmltZyIgIiRNTlRQT0lOVFJXLyRPU0RJUi8kU1NZTSIKCQkgICAg bG4gLXMgIiRMT05HTkFNRSIgIiRNTlRQT0lOVFJXLyRPU0RJUi8kTE9OR1NZTSIKCQlmaQoJ CWNhc2UgeCIkZnMiIGluCgkJICAgIHgiemZzIiopCgkJCXdoaWxlICEgenBvb2wgZXhwb3J0 ICIkRlNMQUJFTCIgJj4+IHJlcG9ydC50eHQ7IGRvCgkJCSAgICBzbGVlcCAxOwoJCQlkb25l CgkJCXNsZWVwIDUKCQkJInpwb29sIiBpbXBvcnQgLWQgL2RldiAtUiAiJE1OVFBPSU5UUk8i ICIkRlNMQUJFTCIKCQkJOzsKCQkgICAgeCJ0YXJmcyIpCgkJCShjZCAiJE1BU1RFUiI7IHRh ciBjZiAiJHtGU0lNQUdFU1swXX0iIC4pICY+PiByZXBvcnQudHh0OzsKCQkgICAgeCJjcGlv XyIqKQoJCQkoY2QgIiRNQVNURVIiOyBmaW5kIC4gfCBjcGlvIC1vIC1IICIke2ZzL2NwaW9f L30iID4gIiR7RlNJTUFHRVNbMF19IiApICY+PiByZXBvcnQudHh0OzsKCQkgICAgeCJ6aXNv OTY2MCIpCgkJCUZTVVVJRD0kKGRhdGUgLXUgKyVZLSVtLSVkLSVILSVNLSVTLTAwKTsKCQkJ eG9ycmlzbyAtY29tcGxpYW5jZSByZWNfbXRpbWUgLXNldF9maWx0ZXJfciAtLXppc29mcyAt LSAtemlzb2ZzIGRlZmF1bHQgLWFzIG1raXNvZnMgLWdyYWZ0LXBvaW50cyAtUiAtSiAtViAi JEZTTEFCRUwiIC0tbW9kaWZpY2F0aW9uLWRhdGU9JChlY2hvICR7RlNVVUlEfSB8IHNlZCAn cy8tLy9nOycpIC1vICIke0ZTSU1BR0VTWzBdfSIgIC0tIC1zZXRfZmlsdGVyX3IgLS16aXNv ZnMgLS0gLXppc29mcyBkZWZhdWx0IC1hZGQgLz0iJE1BU1RFUiIgJj4+IHJlcG9ydC50eHQ7 OwoJCSAgICB4Imlzbzk2NjAiKQoJCQlGU1VVSUQ9JChkYXRlIC11ICslWS0lbS0lZC0lSC0l TS0lUy0wMCk7CgkJCXhvcnJpc28gLWNvbXBsaWFuY2UgcmVjX210aW1lIC1hcyBta2lzb2Zz IC1ncmFmdC1wb2ludHMgLVIgLUogLVYgIiRGU0xBQkVMIiAtLW1vZGlmaWNhdGlvbi1kYXRl PSQoZWNobyAke0ZTVVVJRH0gfCBzZWQgJ3MvLS8vZzsnKSAtbyAiJHtGU0lNQUdFU1swXX0i IC89IiRNQVNURVIiICY+PiByZXBvcnQudHh0OzsKCQkgICAgCgkJICAgIHgicm9tZnMiKQoJ CQlnZW5yb21mcyAtViAiJEZTTEFCRUwiIC1mICIke0ZTSU1BR0VTWzBdfSIgLWQgIiRNQVNU RVIiICY+PiByZXBvcnQudHh0OzsKCQkgICAgeHNxdWFzaDRfKikKCQkJZWNobyBta3NxdWFz aGZzICIkTUFTVEVSIiAiJHtGU0lNQUdFU1swXX0iIC1jb21wICIke2ZzL3NxdWFzaDRfL30i IC1iICRCTEtTSVpFICY+PiByZXBvcnQudHh0CgkJCW1rc3F1YXNoZnMgIiRNQVNURVIiICIk e0ZTSU1BR0VTWzBdfSIgLWNvbXAgIiR7ZnMvc3F1YXNoNF8vfSIgLWIgJEJMS1NJWkUgJj4+ IHJlcG9ydC50eHQ7OwoJCSAgICB4ImJmcyIpCgkJCXNsZWVwIDEKCQkJT1NESVI9IiIKCQkJ ZnVzZXJtb3VudCAtdSAiJE1OVFBPSU5UUlciICY+PiByZXBvcnQudHh0CgkJCW1vdW50IC10 IGJlZnMgIiR7TE9ERVZJQ0VTWzBdfSIgIiRNTlRQT0lOVFJPIiAtbyAke01PVU5UT1BUU31j b250ZXh0PXVuY29uZmluZWRfdTpvYmplY3Rfcjpkb3Nmc190OnMwLHJvICY+PiByZXBvcnQu dHh0OzsKCQkgICAgeGx2bSopCgkJCXNsZWVwIDEKCQkJdW1vdW50ICIkTU5UUE9JTlRSVyIg Jj4+IHJlcG9ydC50eHQKCQkJc2xlZXAgMQoJCQl2Z2NoYW5nZSAtYSBuIGdydWJfdGVzdCAm Pj4gcmVwb3J0LnR4dAoJCQlzbGVlcCAxCgkJCXZnY2hhbmdlIC1hIHkgZ3J1Yl90ZXN0ICY+ PiByZXBvcnQudHh0CgkJCXNsZWVwIDEKCQkJbW91bnQgLXQgIiRNT1VOVEZTIiAiJHtNT1VO VERFVklDRX0iICIkTU5UUE9JTlRSTyIgLW8gJHtNT1VOVE9QVFN9Y29udGV4dD11bmNvbmZp bmVkX3U6b2JqZWN0X3I6ZG9zZnNfdDpzMCxybyAmPj4gcmVwb3J0LnR4dDs7CgkJICAgIHht ZHJhaWQqKQoJCQlzbGVlcCAxCgkJCXVtb3VudCAiJE1OVFBPSU5UUlciICY+PiByZXBvcnQu dHh0CgkJCXNsZWVwIDEKCQkJbWRhZG0gLS1zdG9wIC9kZXYvbWQvIiR7ZnN9XyROREVWSUNF UyIgJj4+IHJlcG9ydC50eHQKCQkJc2xlZXAgMQoJCQltZGFkbSAtLWFzc2VtYmxlIC9kZXYv bWQvIiR7ZnN9XyROREVWSUNFUyIgIiR7TE9ERVZJQ0VTW0BdfSIgJj4+IHJlcG9ydC50eHQK CQkJc2xlZXAgMQoJCQltb3VudCAtdCAiJE1PVU5URlMiICIke01PVU5UREVWSUNFfSIgIiRN TlRQT0lOVFJPIiAtbyAke01PVU5UT1BUU31jb250ZXh0PXVuY29uZmluZWRfdTpvYmplY3Rf cjpkb3Nmc190OnMwLHJvICY+PiByZXBvcnQudHh0OzsKCQkgICAgKikKCQkJc2xlZXAgMQoJ CQl1bW91bnQgIiRNTlRQT0lOVFJXIiAmPj4gcmVwb3J0LnR4dAoJCQlzbGVlcCAxCgkJCW1v dW50IC10ICIkTU9VTlRGUyIgIiR7TU9VTlRERVZJQ0V9IiAiJE1OVFBPSU5UUk8iIC1vICR7 TU9VTlRPUFRTfWNvbnRleHQ9dW5jb25maW5lZF91Om9iamVjdF9yOmRvc2ZzX3Q6czAscm8g Jj4+IHJlcG9ydC50eHQ7OwoJCWVzYWMKCgkJaWYgdGVzdCB4JEdFTkVSQVRFRCA9IHh5ICYm IFsgeCROT0JPT1QgIT0geHkgXTsgdGhlbgoJCSAgICBpZiBncnViLWluc3RhbGwgLS1mb3Jj ZSAtLWJvb3QtZGlyZWN0b3J5PSIkTU5UUE9JTlRSVy8kT1NESVIvYm9vdCIgIiR7RlNJTUFH RVNbMF19IiAmPj4gcmVwb3J0LnR4dCA7IHRoZW4KCQkJaWYgdGVzdCB4JE5PSU5TVCA9IHh5 OyB0aGVuCgkJCSAgICBlY2hvICJJTlNUIEZBSUwgKGluc3RhbGxlZCB3aGVuIGl0IHNob3Vs ZG4ndCwgcHJvYmFibHkgY29ycnVwdGVkIGZzKSIgPj4gcmVwb3J0LnR4dAoJCQkgICAgZWNo byAtbiAiRkFJTCAiCgkJCWVsc2UKCQkJICAgIGVjaG8gIklOU1QgT0sgKGluc3RhbGxlZCki ID4+IHJlcG9ydC50eHQKCQkJICAgIGVjaG8gLW4gIk9LICAgIgoJCQlmaQoJCSAgICBlbHNl CgkJCWlmIHRlc3QgeCROT0lOU1QgPSB4eTsgdGhlbgoJCQkgICAgZWNobyAiSU5TVCBPSyAo c2tpcHBlZCBsaWtlIGl0IHNob3VsZCkiID4+IHJlcG9ydC50eHQKCQkJICAgIGVjaG8gLW4g Ik9LICAgIgoJCQllbHNlCgkJCSAgICBlY2hvICJJTlNUIEZBSUwgKGZhaWxlZCB0byBpbnN0 YWxsIG9uIGNvbXBhdGlibGUpIiA+PiByZXBvcnQudHh0CgkJCSAgICBlY2hvIC1uICJGQUlM ICIKCQkJZmkKCQkgICAgZmkKCQlmaQoKCQlpZiBbIHgkTk9CT09UICE9IHh5IF07IHRoZW4K CQkgICAgaWYgdGVzdCB4JE5PSU5TVCA9IHh5IHx8IHRlc3QgJE5FRURfSU1BR0VTX04gLWd0 IDQ7IHRoZW4KCQkJZWNobyAtbiAiTi9BICAiCgkJCWVjaG8gIkJPT1QgTi9BIiA+PiByZXBv cnQudHh0CgkJICAgIGVsc2UKCQkJaWYgcnVuX3FlbXUgfCBncmVwIGJmMDNlNTMzLTNjMmEt NDkyMi04YTJlLTkyM2ViYzM0YmU1NyA+IC9kZXYvbnVsbDsgdGhlbgoJCQkgICAgZWNobyAi Qk9PVCBPSyIgPj4gcmVwb3J0LnR4dAoJCQkgICAgZWNobyAtbiAiT0sgICAiCgkJCWVsc2UK CQkJICAgIGVjaG8gIkJPT1QgRkFJTCIgPj4gcmVwb3J0LnR4dAoJCQkgICAgZWNobyAtbiAi RkFJTCAiCgkJCWZpCgkJICAgIGZpCgkJZmkKCgkJcnVuX2dydWJmc3Rlc3QgbHMgLS0gLWxh ICY+PiByZXBvcnQudHh0CgkJY2FzZSB4IiRmcyIgaW4KCQkgICAgeCJ6ZnMiKikKCQkJTFNS T1VUPSQocnVuX2dydWJmc3Rlc3QgbHMgLS0gLWxhICIoJEdSVUJERVZJQ0UpL2dydWIgZnNA LyIpOzsKCQkgICAgKikKCQkJTFNST1VUPSQocnVuX2dydWJmc3Rlc3QgbHMgLS0gLWxhICIo JEdSVUJERVZJQ0UpLyIpOzsKCQllc2FjCgkJaWYgZWNobyAiJExTUk9VVCIgfCBncmVwIC1G ICIkQkFTRUZJTEUiID4gL2Rldi9udWxsOyB0aGVuCgkJICAgIGVjaG8gTElTVCBPSyA+PiBy ZXBvcnQudHh0CgkJICAgIGVjaG8gLW4gIk9LICAgIgoJCWVsc2UKCQkgICAgZWNobyBMSVNU IEZBSUwgPj4gcmVwb3J0LnR4dAoJCSAgICBlY2hvICIkTFNST1VUIiA+PiByZXBvcnQudHh0 CgkJICAgIFRaPVVUQyBscyAtLXRpbWUtc3R5bGU9KyVZJW0lZCVIJU0lUy4lTiAtbCAiJE1O VFBPSU5UUk8iID4+IHJlcG9ydC50eHQKCQkgICAgZWNobyAtbiAiRkFJTCAiCgkJZmkKCgkJ aWYgZWNobyAiJExTUk9VVCIgfCBncmVwIC1GICIkTkFTVFlGSUxFIiA+IC9kZXYvbnVsbDsg dGhlbgoJCSAgICBlY2hvIE5MSVNUIE9LID4+IHJlcG9ydC50eHQKCQkgICAgZWNobyAtbiAi T0sgICAiCgkJZWxzZQoJCSAgICBlY2hvIE5MSVNUIEZBSUwgPj4gcmVwb3J0LnR4dAoJCSAg ICBlY2hvICIkTFNST1VUIiA+PiByZXBvcnQudHh0CgkJICAgIFRaPVVUQyBscyAtLXRpbWUt c3R5bGU9KyVZJW0lZCVIJU0lUy4lTiAtbEEgIiRNTlRQT0lOVFJPIiA+PiByZXBvcnQudHh0 CgkJICAgIGVjaG8gLW4gIkZBSUwgIgoJCWZpCgoJCWlmIGVjaG8gIiRMU1JPVVQiIHwgZ3Jl cCAtRiAiJElGSUxFIiA+IC9kZXYvbnVsbDsgdGhlbgoJCSAgICBlY2hvIElMSVNUIE9LID4+ IHJlcG9ydC50eHQKCQkgICAgZWNobyAtbiAiT0sgICAiCgkJZWxzZQoJCSAgICBlY2hvIElM SVNUIEZBSUwgPj4gcmVwb3J0LnR4dAoJCSAgICBlY2hvICIkTFNST1VUIiA+PiByZXBvcnQu dHh0CgkJICAgIFRaPVVUQyBscyAtLXRpbWUtc3R5bGU9KyVZJW0lZCVIJU0lUy4lTiAtbCAi JE1OVFBPSU5UUk8iID4+IHJlcG9ydC50eHQKCQkgICAgZWNobyAtbiAiRkFJTCAiCgkJZmkK CgkJaWYgZWNobyAiJExTUk9VVCIgfCBncmVwIC1GICIkTE9OR05BTUUiID4gL2Rldi9udWxs OyB0aGVuCgkJICAgIGVjaG8gTE9ORyBMSVNUIE9LID4+IHJlcG9ydC50eHQKCQkgICAgZWNo byAtbiAiT0sgICAiCgkJZWxzZQoJCSAgICBlY2hvIExPTkcgTElTVCBGQUlMID4+IHJlcG9y dC50eHQKCQkgICAgZWNobyAiJExTUk9VVCIgPj4gcmVwb3J0LnR4dAoJCSAgICBUWj1VVEMg bHMgLS10aW1lLXN0eWxlPSslWSVtJWQlSCVNJVMuJU4gLWwgIiRNTlRQT0lOVFJPIiA+PiBy ZXBvcnQudHh0CgkJICAgIGVjaG8gLW4gIkZBSUwgIgoJCWZpCgoJCWlmIFsgeCROT0ZJTEVU SU1FICE9IHh5IF07IHRoZW4KCQkgICAgZmlsdGltZT0kKFRaPVVUQyBscyAtLXRpbWUtc3R5 bGU9KyVZJW0lZCVIJU0lUyAtbCAtZCAiJE1OVFBPSU5UUk8vJE9TRElSLyRCQVNFRklMRSJ8 YXdrICd7cHJpbnQgJDY7IH0nKQoJCSAgICBpZiBlY2hvICIkTFNST1VUIiB8IGdyZXAgLUYg IiRmaWx0aW1lICRCQVNFRklMRSIgPiAvZGV2L251bGw7IHRoZW4KCQkJZWNobyBUSU1FIE9L ID4+IHJlcG9ydC50eHQKCQkJZWNobyAtbiAiT0sgICAiCgkJICAgIGVsc2UKCQkJZWNobyBU SU1FIEZBSUwgPj4gcmVwb3J0LnR4dAoJCQllY2hvICIkTFNST1VUIiA+PiByZXBvcnQudHh0 CgkJCVRaPVVUQyBscyAtLXRpbWUtc3R5bGU9KyVZJW0lZCVIJU0lUy4lTiAtbCAiJE1OVFBP SU5UUk8iID4+IHJlcG9ydC50eHQKCQkJZWNobyAtbiAiRkFJTCAiCgkJICAgIGZpCgkJICAg IAoJCSAgICBmaWx0aW1lPSQoVFo9VVRDIGxzIC0tdGltZS1zdHlsZT0rJVklbSVkJUglTSVT IC1sIC1kICIkTU5UUE9JTlRSTy8kT1NESVIvJExPTkdOQU1FInxhd2sgJ3twcmludCAkNjsg fScpCgkJICAgIGlmIGVjaG8gIiRMU1JPVVQiIHwgZ3JlcCAtRiAiJGZpbHRpbWUgJExPTkdO QU1FIiA+IC9kZXYvbnVsbDsgdGhlbgoJCQllY2hvIExPTkcgVElNRSBPSyA+PiByZXBvcnQu dHh0CgkJCWVjaG8gLW4gIk9LICAgIgoJCSAgICBlbHNlCgkJCWVjaG8gTE9ORyBUSU1FIEZB SUwgPj4gcmVwb3J0LnR4dAoJCQllY2hvICIkTFNST1VUIiA+PiByZXBvcnQudHh0CgkJCVRa PVVUQyBscyAtLXRpbWUtc3R5bGU9KyVZJW0lZCVIJU0lUy4lTiAtbCAiJE1OVFBPSU5UUk8i ID4+IHJlcG9ydC50eHQKCQkJZWNobyAtbiAiRkFJTCAiCgkJICAgIGZpCgkJZWxzZQoJCSAg ICBlY2hvIC1uICJOL0EgIE4vQSAgIgoJCWZpCgoJCWNhc2UgeCIkZnMiIGluCgkJICAgIHgi emZzIiopCgkJCUxTUk9VVD0kKHJ1bl9ncnViZnN0ZXN0IGxzIC0tIC1sICIoJEdSVUJERVZJ Q0UpL2dydWIgZnNAL3NkaXIiKTs7CgkJICAgICopCgkJCUxTUk9VVD0kKHJ1bl9ncnViZnN0 ZXN0IGxzIC0tIC1sICIoJEdSVUJERVZJQ0UpL3NkaXIiKTs7CgkJZXNhYwoJCWlmIGVjaG8g IiRMU1JPVVQiIHwgZ3JlcCAtRiAiMi5pbWciID4gL2Rldi9udWxsOyB0aGVuCgkJICAgIGVj aG8gU0xJU1QgT0sgPj4gcmVwb3J0LnR4dAoJCSAgICBlY2hvIC1uICJPSyAgICIKCQllbHNl CgkJICAgIGVjaG8gU0xJU1QgRkFJTCA+PiByZXBvcnQudHh0CgkJICAgIGVjaG8gIiRMU1JP VVQiID4+IHJlcG9ydC50eHQKCQkgICAgVFo9VVRDIGxzIC0tdGltZS1zdHlsZT0rJVklbSVk JUglTSVTLiVOIC1sICIkTU5UUE9JTlRSTyIgPj4gcmVwb3J0LnR4dAoJCSAgICBlY2hvIC1u ICJGQUlMICIKCQlmaQoKCQlMU09VVD1gcnVuX2dydWJmc3Rlc3QgbHMgLS0gLWwgIigkR1JV QkRFVklDRSkiYAoJCWlmIFsgeCIkTk9GU0xBQkVMIiA9IHh5IF07IHRoZW4KCQkgICAgZWNo byAtbiAiTi9BICAiCgkJZWxpZiBlY2hvICIkTFNPVVQiIHwgZ3JlcCAtRiAiTGFiZWwgXGAk RlNMQUJFTCciID4gL2Rldi9udWxsOyB0aGVuCgkJICAgIGVjaG8gTEFCRUwgT0sgPj4gcmVw b3J0LnR4dAoJCSAgICBlY2hvIC1uICJPSyAgICIKCQllbHNlCgkJICAgIGVjaG8gTEFCRUwg RkFJTCA+PiByZXBvcnQudHh0CgkJICAgIGVjaG8gIiRMU09VVCIgPj4gcmVwb3J0LnR4dAoJ CSAgICBibGtpZCAiJHtNT1VOVERFVklDRX0iID4+IHJlcG9ydC50eHQKCQkgICAgZWNobyAt biAiRkFJTCAiCgkJZmkKCiAgICAjIEluY29uc2lzdGVuY2llcyBiZXR3ZWVuIEdSVUIgYW5k IGJsa2lkLgoJCWNhc2UgeCIkZnMiIGluCgkJICAgIHgiaXNvOTY2MCIgfCB4Inppc285NjYw IikgOzsKCQkgICAgeCJ1ZnMxIiB8IHgidWZzMiIpCgkJCUlEPSQoZHVtcGZzLnVmcyAiJHtM T0RFVklDRVNbMF19IiB8aGVhZCAtbiAyfHRhaWwgLW4gMSB8IHNlZCAncyxeLippZCwsZztz LFxbLCxnO3MsXF0sLGcnKQoJCQlJRDE9IiQoZWNobyAkSUQgfCBhd2sgJ3sgcHJpbnQgJDE7 IH0nKSIKCQkJSUQyPSIkKGVjaG8gJElEIHwgYXdrICd7IHByaW50ICQyOyB9JykiCgkJCUZT VVVJRD0kKHByaW50ZiAiJTA4eCUwOHhcbiIgMHgkSUQxIDB4JElEMikKCQkJOzsKCQkgICAg eCJ6ZnMiKikKCQkJRlNVVUlEPSQocHJpbnRmICIlMDE2eFxuIiAkKGJsa2lkIC1vIGV4cG9y dCAiJHtMT0RFVklDRVNbMF19IiB8Z3JlcCAtRiBVVUlEPXxzZWQgcyxVVUlEPSwsZykpOzsK CQkgICAgKikKCQkJRlNVVUlEPWBibGtpZCAtbyBleHBvcnQgIiR7TU9VTlRERVZJQ0V9IiB8 Z3JlcCAtRiBVVUlEPXxzZWQgcyxVVUlEPSwsZ2AKCQkJOzsKCQllc2FjCgkJY2FzZSB4IiRm cyIgaW4KCQkgICAgeCJoZnMiIHwgeCJoZnNwbHVzIikKCQkJR1JVQlVVSUQ9ImBydW5fZ3J1 YmZzdGVzdCB4bnVfdXVpZCAiJEdSVUJERVZJQ0UiYCIgJj4+cmVwb3J0LnR4dAoJCQlpZiBb IHgiJEdSVUJVVUlEIiA9IHgiJEZTVVVJRCIgXTsgdGhlbgoJCQkgICAgZWNobyBVVUlEIE9L ID4+IHJlcG9ydC50eHQKCQkJICAgIGVjaG8gLW4gIk9LICAgIgoJCQllbHNlCgkJCSAgICBl Y2hvIFVVSUQgRkFJTCA+PiByZXBvcnQudHh0CgkJCSAgICBlY2hvICIkTFNPVVQiID4+IHJl cG9ydC50eHQKCQkJICAgIGVjaG8gIiRHUlVCVVVJRCIgPj4gcmVwb3J0LnR4dAoJCQkgICAg YmxraWQgIiR7TE9ERVZJQ0VTWzBdfSIgPj4gcmVwb3J0LnR4dAoJCQkgICAgZWNobyAtbiAi RkFJTCAiCgkJCWZpCgkJCTs7CiAgICAgICAgIyBGUyBMSU1JVEFUSU9OOiByb21mcywgY3Bp bywgdGFyLCBzcXVhc2g0LCBtaW5peCBhbmQgbWluaXgyIAoJIyBoYXZlIG5vIFVVSUQuCgkg ICAgIyBGSVhNRTogU3VwcG9ydCBBdGFyaSBVVUlEcwoJCSAgICB4InJvbWZzIiB8IHgiY3Bp b18iKiB8IHgidGFyZnMiIHwgeCJzcXVhc2g0XyIqIHwgeCJtaW5peCIgXAoJCQl8IHgibWlu aXgyIiB8IHgibWluaXgzIiB8IHgiYWZmcyIgfCB4InVkZiIgXAoJCQl8IHhmYXQxMmEgfCB4 ZmF0MTZhKQoJCQllY2hvIC1uICJOL0EgICI7OwoJCSAgICAKCQkgICAgKikKCQkJaWYgZWNo byAiJExTT1VUIiB8IGdyZXAgLUYgJ1VVSUQgJyIkRlNVVUlEIicgJyA+IC9kZXYvbnVsbDsg dGhlbgoJCQkgICAgZWNobyBVVUlEIE9LID4+IHJlcG9ydC50eHQKCQkJICAgIGVjaG8gLW4g Ik9LICAgIgoJCQllbHNlCgkJCSAgICBlY2hvIFVVSUQgRkFJTCA+PiByZXBvcnQudHh0CgkJ CSAgICBlY2hvICIkRlNVVUlEIiA+PiByZXBvcnQudHh0CgkJCSAgICBlY2hvICIkTFNPVVQi ID4+IHJlcG9ydC50eHQKCQkJICAgIGJsa2lkICIke0xPREVWSUNFU1swXX0iID4+IHJlcG9y dC50eHQKCQkJICAgIGVjaG8gLW4gIkZBSUwgIgoJCQlmaQoJCQk7OwoJCWVzYWMKCgkJaWYg WyB4JGZzICE9IHhpc285NjYwIF0gJiYgWyB4JGZzICE9IHh6aXNvOTY2MCBdOyB0aGVuCgkJ ICAgIEZTVElNRT0iJChUWj1VVEMgbHMgLS10aW1lLXN0eWxlPSIrJVktJW0tJWRfJUg6JU06 JVMiIC1sIC1kICIke0ZTSU1BR0VTWzBdfSJ8YXdrICd7cHJpbnQgJDY7IH0nfHNlZCAncyxf LCAsZycpIgoJCWVsc2UKCQkgICAgRlNUSU1FPSIkKGRhdGUgLWQgIiQoZWNobyAke0ZTVVVJ RH0gfCBhd2sgLUYgLSAneyBwcmludCAkMSItIiQyIi0iJDMiICIkNCI6IiQ1IjoiJDYgO30n KSIgJyslWS0lbS0lZCAlSDolTTolUycpIgoJCWZpCgoJCWlmIFsgeCROT0ZTVElNRSA9IHh5 IF07IHRoZW4KCQkgICAgZWNobyAtbiAiTi9BICAiCgkJZWxpZiBlY2hvICIkTFNPVVQiIHwg Z3JlcCAtRiAnTGFzdCBtb2RpZmljYXRpb24gdGltZSAnIiRGU1RJTUUiID4gL2Rldi9udWxs OyB0aGVuCgkJICAgIGVjaG8gRlNUSU1FIE9LID4+IHJlcG9ydC50eHQKCQkgICAgZWNobyAt biAiT0sgICAiCgkJZWxzZQoJCSAgICBlY2hvIEZTVElNRSBGQUlMID4+IHJlcG9ydC50eHQK CQkgICAgZWNobyAiJEZTVElNRSIgPj4gcmVwb3J0LnR4dAoJCSAgICBlY2hvICIkTFNPVVQi ID4+IHJlcG9ydC50eHQKCQkgICAgZWNobyAtbiAiRkFJTCAiCgkJZmkKCgkJaWYgWyB4JE5P U1lNTElOSyAhPSB4eSBdOyB0aGVuCgkJICAgIGlmIHJ1bl9ncnViZnN0ZXN0IGNtcCAiJEdS VUJESVIvJEJBU0VTWU0iICIkTU5UUE9JTlRSTy8kT1NESVIvJEJBU0VGSUxFIiAmPj4gcmVw b3J0LnR4dCA7IHRoZW4KCQkJZWNobyBTWU1MSU5LIE9LID4+IHJlcG9ydC50eHQKCQkJZWNo byAtbiAiT0sgICAiCgkJICAgIGVsc2UKCQkJZWNobyAtbiAiRkFJTCAiCgkJCWVjaG8gU1lN TElOSyBGQUlMID4+IHJlcG9ydC50eHQKCQkgICAgZmkKCQkgICAgaWYgcnVuX2dydWJmc3Rl c3QgY21wICIkR1JVQkRJUi8kTE9OR1NZTSIgIiRNTlRQT0lOVFJPLyRPU0RJUi8kTE9OR05B TUUiICY+PiByZXBvcnQudHh0IDsgdGhlbgoJCQllY2hvIExPTkcgU1lNTElOSyBPSyA+PiBy ZXBvcnQudHh0CgkJCWVjaG8gLW4gIk9LICAgIgoJCSAgICBlbHNlCgkJCWVjaG8gLW4gIkZB SUwgIgoJCQllY2hvIExPTkcgU1lNTElOSyBGQUlMID4+IHJlcG9ydC50eHQKCQkgICAgZmkK CQkgICAgaWYgcnVuX2dydWJmc3Rlc3QgY21wICIkR1JVQkRJUi8kU1NZTSIgIiRNTlRQT0lO VFJPLyRPU0RJUi9zZGlyLzIuaW1nIiAmPj4gcmVwb3J0LnR4dCA7IHRoZW4KCQkJZWNobyBT RElSIFNZTUxJTksgT0sgPj4gcmVwb3J0LnR4dAoJCQllY2hvIC1uICJPSyAgICIKCQkgICAg ZWxzZQoJCQllY2hvIC1uICJGQUlMICIKCQkJZWNobyBTRElSIFNZTUxJTksgRkFJTCA+PiBy ZXBvcnQudHh0CgkJICAgIGZpCgkJZWxzZQoJCSAgICBlY2hvIC1uICJOL0EgIE4vQSAgTi9B ICAiCQoJCWZpCgoJCWlmIHJ1bl9ncnViZnN0ZXN0IGNtcCAiJEdSVUJESVIvJEJBU0VGSUxF IiAiJE1OVFBPSU5UUk8vJE9TRElSLyRCQVNFRklMRSIgJj4+IHJlcG9ydC50eHQgOyB0aGVu CgkJICAgIGVjaG8gUkVBRCBPSyA+PiByZXBvcnQudHh0CgkJICAgIGVjaG8gLW4gIk9LICAg IgoJCWVsc2UKCQkgICAgZWNobyAtbiAiRkFJTCAiCgkJICAgIGVjaG8gUkVBRCBGQUlMID4+ IHJlcG9ydC50eHQKCQlmaQoJCWlmIHJ1bl9ncnViZnN0ZXN0IGNtcCAiJEdSVUJESVIvJE5B U1RZRklMRSIgIiRNTlRQT0lOVFJPLyRPU0RJUi8kTkFTVFlGSUxFIiAmPj4gcmVwb3J0LnR4 dCA7IHRoZW4KCQkgICAgZWNobyBOUkVBRCBPSyA+PiByZXBvcnQudHh0CgkJICAgIGVjaG8g LW4gIk9LICAgIgoJCWVsc2UKCQkgICAgZWNobyAtbiAiRkFJTCAiCgkJICAgIGVjaG8gTlJF QUQgRkFJTCA+PiByZXBvcnQudHh0CgkJZmkKCQlpZiBydW5fZ3J1YmZzdGVzdCBjbXAgIiRH UlVCRElSLyRMT05HTkFNRSIgIiRNTlRQT0lOVFJPLyRPU0RJUi8kTE9OR05BTUUiICY+PiBy ZXBvcnQudHh0IDsgdGhlbgoJCSAgICBlY2hvIExPTkcgTkFNRSBSRUFEIE9LID4+IHJlcG9y dC50eHQKCQkgICAgZWNobyAtbiAiT0sgICAiCgkJZWxzZQoJCSAgICBlY2hvIC1uICJGQUlM ICIKCQkgICAgZWNobyBMT05HIE5BTUUgUkVBRCBGQUlMID4+IHJlcG9ydC50eHQKCQlmaQoJ CWlmIHJ1bl9ncnViZnN0ZXN0IGNtcCAiJEdSVUJESVIvc2Rpci8yLmltZyIgIiRNTlRQT0lO VFJPLyRPU0RJUi9zZGlyLzIuaW1nIiAmPj4gcmVwb3J0LnR4dCA7IHRoZW4KCQkgICAgZWNo byBMT05HIE5BTUUgUkVBRCBPSyA+PiByZXBvcnQudHh0CgkJICAgIGVjaG8gLW4gIk9LICAg IgoJCWVsc2UKCQkgICAgZWNobyAtbiAiRkFJTCAiCgkJICAgIGVjaG8gTE9ORyBOQU1FIFJF QUQgRkFJTCA+PiByZXBvcnQudHh0CgkJZmkKCQlpZiBydW5fZ3J1YmZzdGVzdCBjbXAgIiRH UlVCRElSLyRJRklMRSIgIiRNTlRQT0lOVFJPLyRPU0RJUi8kSUZJTEVPUyIgJj4+IHJlcG9y dC50eHQgOyB0aGVuCgkJICAgIGVjaG8gSVJFQUQgT0sgPj4gcmVwb3J0LnR4dAoJCSAgICBl Y2hvIC1uICJPSyAgICIKCQllbHNlCgkJICAgIGVjaG8gLW4gIkZBSUwgIgoJCSAgICBlY2hv IElSRUFEIEZBSUwgPj4gcmVwb3J0LnR4dAoJCWZpCgkJb2s9dHJ1ZQoJCWZvciAoKGk9MDtp PCRDRklMRVNOO2krKykpOyBkbwoJCSAgICBpZiAhIHJ1bl9ncnViZnN0ZXN0IGNtcCAiJEdS VUJESVIvJHtDRklMRVNbaV19IiAiJE1OVFBPSU5UUk8vJE9TRElSLyR7Q0ZJTEVTW2ldfSIg Jj4+IHJlcG9ydC50eHQgOyB0aGVuCgkJCW9rPWZhbHNlOwoJCSAgICBmaQoJCWRvbmUKCQlp ZiAgdGVzdCB4JG9rID0geHRydWU7IHRoZW4KCQkgICAgZWNobyBDUkVBRCBPSyA+PiByZXBv cnQudHh0CgkJICAgIGVjaG8gLW4gIk9LICAgIgoJCWVsc2UKCQkgICAgZWNobyAtbiAiRkFJ TCAiCgkJICAgIGVjaG8gQ1JFQUQgRkFJTCA+PiByZXBvcnQudHh0CgkJZmkKCQlpZiBbIHgk Tk9CSUcgIT0geHkgXTsgdGhlbgoJCSAgICBpZiBydW5fZ3J1YmZzdGVzdCBjbXAgIiRHUlVC RElSLyRCSUdGSUxFIiAiJE1OVFBPSU5UUk8vJE9TRElSLyRCSUdGSUxFIiAmPj4gcmVwb3J0 LnR4dCA7IHRoZW4KCQkJZWNobyBCSUcgT0sgPj4gcmVwb3J0LnR4dAoJCQllY2hvIC1uICJP SyAiCgkJICAgIGVsc2UKCQkJZWNobyAtbiAiRkFJTCAiCgkJCWVjaG8gQklHIEZBSUwgPj4g cmVwb3J0LnR4dAoJCSAgICBmaQoJCWZpCgkJZWNobwoJCWNhc2UgeCIkZnMiIGluCgkJICAg IHgiemZzIiopCgkJCXdoaWxlICEgenBvb2wgZXhwb3J0ICIkRlNMQUJFTCIgJj4+IHJlcG9y dC50eHQ7IGRvCgkJCSAgICBzbGVlcCAxOwoJCQlkb25lCgkJCXNsZWVwIDU7OwoJCSAgICB4 InRhcmZzIiB8IHgiY3Bpb18iKiB8IHgiaXNvOTY2MCIgfCB4Inppc285NjYwIiB8IHgicm9t ZnMiIHwgeCJzcXVhc2g0XyIqKQoJCQk7OwoJCSAgICAqKQoJCQlzbGVlcCAxCgkJCXVtb3Vu dCAiJE1OVFBPSU5UUk8iICY+PiByZXBvcnQudHh0IHx8IHRydWUKCQkJdW1vdW50ICIkTU5U UE9JTlRSVyImPj4gcmVwb3J0LnR4dCB8fCB0cnVlIAoJCWVzYWMKCQlzbGVlcCAxCgkJY2Fz ZSB4IiRmcyIgaW4KCQkgICAgeG1kcmFpZCopCgkJCW1kYWRtIC0tc3RvcCAvZGV2L21kLyIk e2ZzfV8kTkRFVklDRVMiICY+PiByZXBvcnQudHh0CgkJCXNsZWVwIDEKCQkJOzsKCQkgICAg eGx2bSopCgkJCXZnY2hhbmdlIC1hIG4gZ3J1Yl90ZXN0ICY+PiByZXBvcnQudHh0CgkJCXNs ZWVwIDEKCQkJOzsKCQllc2FjCgkJZm9yICgoaT0wOyBpIDwgTkRFVklDRVM7IGkrKykpOyBk bwoJCSAgICBjYXNlIHgiJGZzIiBpbgoJCQl4InRhcmZzIiB8IHgiY3Bpb18iKiB8IHgiaXNv OTY2MCIgfCB4Inppc285NjYwIiB8IHgicm9tZnMiIHwgeCJzcXVhc2g0XyIqKSA7OwoJCQkq KQoJCQkgICAgd2hpbGUgISBsb3NldHVwIC1kICIke0xPREVWSUNFU1tpXX0iOyBkbwoJCQkJ c2xlZXAgMQoJCQkgICAgZG9uZTs7CgkJICAgIGVzYWMKIwkJICAgIHJtICIke0ZTSU1BR0VT W2ldfSIKCQlkb25lCgkJaWYgWyB4IiRmcyIgPSB4InpmcyIgXTsgdGhlbgoJCSAgICBybWRp ciAiJE1OVFBPSU5UUlciLyJncnViIGZzIiAmPj4gcmVwb3J0LnR4dCB8fCB0cnVlIAoJCSAg ICBybWRpciAiJE1OVFBPSU5UUk8iLyJncnViIGZzIiAmPj4gcmVwb3J0LnR4dCB8fCB0cnVl CgkJZmkKCQlybWRpciAiJE1OVFBPSU5UUlciICY+PiByZXBvcnQudHh0IHx8IHRydWUKCQly bWRpciAiJE1OVFBPSU5UUk8iICY+PiByZXBvcnQudHh0IHx8IHRydWUKCSAgICBkb25lCglk b25lCiAgICBkb25lCmRvbmU= --------------020000010608070407010901-- --------------enig00FB38F93A6FF553EF78910C Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iF4EAREKAAYFAk+YTIcACgkQNak7dOguQgnPpAEAnSaHjpagEbbyAYlvFTe79B2J q/pfI7kUOeBMKU+KwaYA/1ZYAXcUGmFKjbLyQ1LzjNxxanPK3WUdExCttnm9jDwE =I4Yn -----END PGP SIGNATURE----- --------------enig00FB38F93A6FF553EF78910C--