From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joao Cortes Subject: Re: Python source block and :dir header arg Date: Mon, 1 Apr 2019 18:23:15 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from eggs.gnu.org ([209.51.188.92]:40107) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hB1am-0006Yo-EL for emacs-orgmode@gnu.org; Mon, 01 Apr 2019 14:23:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hB1aa-0005px-7F for emacs-orgmode@gnu.org; Mon, 01 Apr 2019 14:23:32 -0400 Received: from mail-oln040092068018.outbound.protection.outlook.com ([40.92.68.18]:52871 helo=EUR02-HE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hB1aZ-0005ne-At for emacs-orgmode@gnu.org; Mon, 01 Apr 2019 14:23:20 -0400 In-Reply-To: (John Kitchin's message of "Mon, 1 Apr 2019 14:12:46 -0400") Content-Language: en-US Content-ID: <3E66A7EFE2F3C8488FE5DC337854B63E@eurprd07.prod.outlook.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: "emacs-orgmode@gnu.org" DQpTb3JyeSBJIGZvcmdvdCB0aGF0LiBIZXJlIGl0IGlzLg0KDQoNCkVtYWNzICA6IEdOVSBFbWFj cyAyNi4xIChidWlsZCAxLCB4ODZfNjQtcmVkaGF0LWxpbnV4LWdudSwgR1RLKyBWZXJzaW9uIDMu MjMuMikNCiBvZiAyMDE4LTA4LTEzDQpQYWNrYWdlOiBPcmcgbW9kZSB2ZXJzaW9uIDkuMi4yIChy ZWxlYXNlXzkuMi4yLTMyNC1nODZiZmYyIEAgfi8uZW1hY3MuZC9vcmctbW9kZS9saXNwLykNCg0K Y3VycmVudCBzdGF0ZToNCj09PT09PT09PT09PT09DQooc2V0cQ0KIG9yZy1zcmMtbW9kZS1ob29r ICcob3JnLXNyYy1iYWJlbC1jb25maWd1cmUtZWRpdC1idWZmZXIgb3JnLXNyYy1tb2RlLWNvbmZp Z3VyZS1lZGl0LWJ1ZmZlcikNCiBvcmctbGluay1zaGVsbC1jb25maXJtLWZ1bmN0aW9uICd5ZXMt b3Itbm8tcA0KIG9yZy1iYWJlbC1hZnRlci1leGVjdXRlLWhvb2sgJyhvcmctZGlzcGxheS1pbmxp bmUtaW1hZ2VzKQ0KIG9yZy1tZXRhZG93bi1ob29rICcob3JnLWJhYmVsLXBvcC10by1zZXNzaW9u LW1heWJlKQ0KIG9yZy1jbG9jay1vdXQtaG9vayAnKG9yZy1jbG9jay1yZW1vdmUtZW1wdHktY2xv Y2stZHJhd2VyKQ0KIG9yZy1odG1sLWZvcm1hdC1pbmxpbmV0YXNrLWZ1bmN0aW9uICdvcmctaHRt bC1mb3JtYXQtaW5saW5ldGFzay1kZWZhdWx0LWZ1bmN0aW9uDQogb3JnLWVuZm9yY2UtdG9kby1k ZXBlbmRlbmNpZXMgdA0KIG9yZy1yZWYtY3JlYXRlLW5vdGVzLWhvb2sgJygobGFtYmRhIG5pbCAo b3JnLW5hcnJvdy10by1zdWJ0cmVlKQ0KCQkJICAgICAgKGluc2VydCAoZm9ybWF0ICJjaXRlOiVz XG4iIChvcmctZW50cnktZ2V0IChwb2ludCkgIkN1c3RvbV9JRCIpKSkpDQoJCQkgICAgICkNCiBv cmctb2R0LWZvcm1hdC1oZWFkbGluZS1mdW5jdGlvbiAnb3JnLW9kdC1mb3JtYXQtaGVhZGxpbmUt ZGVmYXVsdC1mdW5jdGlvbg0KIG9yZy1yZWYtc2hvdy1icm9rZW4tbGlua3MgbmlsDQogb3JnLWFn ZW5kYS1maWxlcyAnKCJ+L09uZURyaXZlL0RvY3VtZW50cy9lc2NvbGEvZG91dG9yYW1lbnRvL29m ZmljZS9sb2dib29rL1BoRC5vcmciICJ+L09uZURyaXZlL0RvY3VtZW50cy9iaWJsaW90ZWNhLy9v ZmZpY2UvYmlibGlvdGhlY2FyeS5vcmciICJ+L09uZURyaXZlL0RvY3VtZW50cy9nZXJhbC5vcmci KQ0KIG9yZy1hc2NpaS1mb3JtYXQtaW5saW5ldGFzay1mdW5jdGlvbiAnb3JnLWFzY2lpLWZvcm1h dC1pbmxpbmV0YXNrLWRlZmF1bHQNCiBvcmctcmVmLXBkZi1kaXJlY3RvcnkgIn4vT25lRHJpdmUv RG9jdW1lbnRzL2JpYmxpb3RlY2EvcGFuZG9yYS8iDQogb3JnLW1vZHVsZXMgJyhvbC1iYmRiIG9s LWJpYnRleCBvbC1kb2N2aWV3IG9sLWV3dyBvbC1nbnVzIG9yZy1oYWJpdCBvbC1pbmZvIG9sLWly YyBvbC1taGUgb2wtcm1haWwNCgkgICAgICAgb2wtdzNtKQ0KIG9yZy1ibG9ja2VyLWhvb2sgJyhv cmctYmxvY2stdG9kby1mcm9tLWNoaWxkcmVuLW9yLXNpYmxpbmdzLW9yLXBhcmVudCkNCiBvcmct bW9kZS1ob29rICcoKGxhbWJkYSBuaWwgKGFiYnJldi1tb2RlIDEpKSBvcmctdGVtcG8tc2V0dXAg b3JnLWNsb2NrLWxvYWQgb3JnLXJlZi1vcmctbWVudQ0KCQkgKGxhbWJkYSBuaWwgKG9yZy1idWxs ZXRzLW1vZGUgMSkpDQoJCSAjWzAgIlwzMDFcMjExLlwyMDciIFtpbWVudS1jcmVhdGUtaW5kZXgt ZnVuY3Rpb24gb3JnLWltZW51LWdldC10cmVlXSAyXQ0KCQkgdHVybi1vbi1hdXRvLWZpbGwNCgkJ ICNbMCAiXDMwMFwzMDFcMzAyXDMwM1wzMDQkXDIwNyINCgkJICAgW2FkZC1ob29rIGNoYW5nZS1t YWpvci1tb2RlLWhvb2sgb3JnLXNob3ctYWxsIGFwcGVuZCBsb2NhbF0gNV0NCgkJICNbMCAiXDMw MFwzMDFcMzAyXDMwM1wzMDQkXDIwNyINCgkJICAgW2FkZC1ob29rIGNoYW5nZS1tYWpvci1tb2Rl LWhvb2sgb3JnLWJhYmVsLXNob3ctcmVzdWx0LWFsbCBhcHBlbmQgbG9jYWxdIDVdDQoJCSBvcmct YmFiZWwtcmVzdWx0LWhpZGUtc3BlYyBvcmctYmFiZWwtaGlkZS1hbGwtaGFzaGVzIG9yZy1lbGRv Yy1sb2FkKQ0KIG9yZy1jbG9jay1wZXJzaXN0ICdoaXN0b3J5DQogb3JnLXJlZi1pbnNlcnQtY2l0 ZS1mdW5jdGlvbiAnb3JnLXJlZi1oZWxtLWluc2VydC1jaXRlLWxpbmsNCiBvcmcteWFuay1hZGp1 c3RlZC1zdWJ0cmVlcyB0DQogb3JnLW9kdC1mb3JtYXQtZHJhd2VyLWZ1bmN0aW9uICNbNTE0ICJc MjA3IiBbXSAzICJcblxuKGZuIE5BTUUgQ09OVEVOVFMpIl0NCiBvcmctYXJjaGl2ZS1ob29rICco b3JnLWF0dGFjaC1hcmNoaXZlLWRlbGV0ZS1tYXliZSkNCiBvcmctY29uZmlybS1lbGlzcC1saW5r LWZ1bmN0aW9uICd5ZXMtb3Itbm8tcA0KIG9yZy1yZWYtY2xlYW4tYmlidGV4LWtleS1mdW5jdGlv biAnKGxhbWJkYSAoa2V5KSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICI6IiAiIiBrZXkpKQ0K IG9yZy1hZ2VuZGEtYmVmb3JlLXdyaXRlLWhvb2sgJyhvcmctYWdlbmRhLWFkZC1lbnRyeS10ZXh0 KQ0KIG9yZy1wcmV2aWV3LWxhdGV4LWRlZmF1bHQtcHJvY2VzcyAnZHZpc3ZnbQ0KIG9yZy1tZXRh dXAtaG9vayAnKG9yZy1iYWJlbC1sb2FkLWluLXNlc3Npb24tbWF5YmUpDQogb3JnLWJpYnRleC1o ZWFkbGluZS1mb3JtYXQtZnVuY3Rpb24gI1syNTcgIlwzMDAuXDIzNkFcMjA3IiBbOnRpdGxlXSAz ICJcblxuKGZuIEVOVFJZKSJdDQogb3JnLWxhdGV4LWZvcm1hdC1kcmF3ZXItZnVuY3Rpb24gI1s1 MTQgIlwyMDciIFtdIDMgIlxuXG4oZm4gXyBDT05URU5UUykiXQ0KIG9yZy1iYWJlbC1wcmUtdGFu Z2xlLWhvb2sgJyhzYXZlLWJ1ZmZlcikNCiBvcmctZmlsZS1hcHBzICcoKCJcXC5wZGZcXCciIGxh bWJkYSAoZmlsZSBsaW5rKSAob3JnLXBkZnZpZXctb3BlbiBsaW5rKSkgKGF1dG8tbW9kZSAuIGVt YWNzKQ0KCQkgKCJcXC5tbVxcJyIgLiBkZWZhdWx0KSAoIlxcLng/aHRtbD9cXCciIC4gZGVmYXVs dCkgKCJcXC5wZGZcXCciIC4gZGVmYXVsdCkpDQogb3JnLXRhYi1maXJzdC1ob29rICcob3JnLWJh YmVsLWhpZGUtcmVzdWx0LXRvZ2dsZS1tYXliZSBvcmctYmFiZWwtaGVhZGVyLWFyZy1leHBhbmQp DQogb3JnLXJlZi1iaWJsaW9ncmFwaHktbm90ZXMgIn4vT25lRHJpdmUvRG9jdW1lbnRzL2JpYmxp b3RlY2EvL29mZmljZS9iaWJsaW90aGVjYXJ5Lm9yZyINCiBvcmctYmFiZWwtbG9hZC1sYW5ndWFn ZXMgJygobGF0ZXggLiB0KSAocHl0aG9uIC4gdCkgKHNoZWxsIC4gdCkgKGdudXBsb3QgLiB0KSAo QyAuIHQpIChSIC4gdCkNCgkJCSAgICAocnVieSAuIHQpKQ0KIG9yZy1yZWYtY2xlYW4tYmlidGV4 LWVudHJ5LWhvb2sgJyhvcmctcmVmLWJpYnRleC1mb3JtYXQtdXJsLWlmLWRvaSBvcmNiLWtleS1j b21tYQ0KCQkJCSAgIG9yZy1yZWYtcmVwbGFjZS1ub25hc2NpaSBvcmNiLSYgb3JjYi0lIG9yZy1y ZWYtdGl0bGUtY2FzZS1hcnRpY2xlDQoJCQkJICAgb3JjYi1jbGVhbi15ZWFyIG9yY2Ita2V5IG9y Y2ItY2xlYW4tZG9pIG9yY2ItY2xlYW4tcGFnZXMNCgkJCQkgICBvcmNiLWNoZWNrLWpvdXJuYWwg b3JnLXJlZi1zb3J0LWJpYnRleC1lbnRyeSBvcmNiLWZpeC1zcGFjaW5nKQ0KIG9yZy1sb2ctZG9u ZSAndGltZQ0KIG9yZy1yZWYtaW5zZXJ0LWxhYmVsLWZ1bmN0aW9uICdvcmctcmVmLWhlbG0taW5z ZXJ0LWxhYmVsLWxpbmsNCiBvcmctcmVmLW9wZW4tcGRmLWZ1bmN0aW9uICdvcmctcmVmLW9wZW4t cGRmLWF0LXBvaW50DQogb3JnLWNvbHVtbnMtc3VtbWFyeS10eXBlcyAnKCgiWCsiIG9yZy1jb2x1 bW5zLS1zdW1tYXJ5LXN1bSBqb2Mvb3JnLWNvbGxlY3QtZW5yb2xsZWQpKQ0KIG9yZy1hc2NpaS1m b3JtYXQtZHJhd2VyLWZ1bmN0aW9uICNbNzcxICIuXDIwNyIgW10gNCAiXG5cbihmbiBOQU1FIENP TlRFTlRTIFdJRFRIKSJdDQogb3JnLXJlZi1vcGVuLW5vdGVzLWZ1bmN0aW9uICcobGFtYmRhIG5p bCAob3JnLXNob3ctZW50cnkpIChvdXRsaW5lLXNob3ctYnJhbmNoZXMpDQoJCQkgICAgICAgKG91 dGxpbmUtc2hvdy1jaGlsZHJlbikgKG9yZy1jeWNsZSAocXVvdGUgKDY0KSkpDQoJCQkgICAgICAg KHJlY2VudGVyLXRvcC1ib3R0b20gMCkpDQogb3JnLXNyYy1sYW5nLW1vZGVzICcoKCJhcmR1aW5v IiAuIGFyZHVpbm8pICgicmVkaXMiIC4gcmVkaXMpICgicGhwIiAuIHBocCkgKCJDIiAuIGMpICgi QysrIiAuIGMrKykNCgkJICAgICAgKCJhc3ltcHRvdGUiIC4gYXN5KSAoImJhc2giIC4gc2gpICgi YmVhbWVyIiAuIGxhdGV4KSAoImNhbGMiIC4gZnVuZGFtZW50YWwpDQoJCSAgICAgICgiY3BwIiAu IGMrKykgKCJkaXRhYSIgLiBhcnRpc3QpICgiZG90IiAuIGZ1bmRhbWVudGFsKSAoImVsaXNwIiAu IGVtYWNzLWxpc3ApDQoJCSAgICAgICgib2NhbWwiIC4gdHVhcmVnKSAoInNjcmVlbiIgLiBzaGVs bC1zY3JpcHQpICgic2hlbGwiIC4gc2gpICgic3FsaXRlIiAuIHNxbCkpDQogb3JnLW9jY3VyLWhv b2sgJyhvcmctZmlyc3QtaGVhZGxpbmUtcmVjZW50ZXIpDQogb3JnLWxvZy1pbnRvLWRyYXdlciAi TE9HQk9PSyINCiBvcmctcmVmLWJpYnRleC1hc3NvYy1wZGYtd2l0aC1lbnRyeS1tb3ZlLWZ1bmN0 aW9uICdyZW5hbWUtZmlsZQ0KIG9yZy1yZWYtaW5zZXJ0LWxpbmstZnVuY3Rpb24gJ29yZy1yZWYt aGVsbS1pbnNlcnQtY2l0ZS1saW5rDQogb3JnLXJlZi1pbnNlcnQtcmVmLWZ1bmN0aW9uICdvcmct cmVmLWhlbG0taW5zZXJ0LXJlZi1saW5rDQogb3JnLWFnZW5kYS1pbmNsdWRlLWRpYXJ5IHQNCiBv cmctc3RydWN0dXJlLXRlbXBsYXRlLWFsaXN0ICcoKCJlbCIgLiAic3JjIGVtYWNzLWxpc3AiKSAo ImEiIC4gImV4cG9ydCBhc2NpaSIpICgiYyIgLiAiY2VudGVyIikNCgkJCQkoIkMiIC4gImNvbW1l bnQiKSAoImUiIC4gImV4YW1wbGUiKSAoIkUiIC4gImV4cG9ydCIpDQoJCQkJKCJoIiAuICJleHBv cnQgaHRtbCIpICgibCIgLiAiZXhwb3J0IGxhdGV4IikgKCJxIiAuICJxdW90ZSIpDQoJCQkJKCJz IiAuICJzcmMiKSAoInYiIC4gInZlcnNlIikpDQogb3JnLWN5Y2xlLWhvb2sgJyhvcmctY3ljbGUt aGlkZS1hcmNoaXZlZC1zdWJ0cmVlcyBvcmctY3ljbGUtc2hvdy1lbXB0eS1saW5lcw0KCQkgIG9y Zy1vcHRpbWl6ZS13aW5kb3ctYWZ0ZXItdmlzaWJpbGl0eS1jaGFuZ2UpDQogb3JnLXNwZWVkLWNv bW1hbmQtaG9vayAnKG9yZy1zcGVlZC1jb21tYW5kLWFjdGl2YXRlIG9yZy1iYWJlbC1zcGVlZC1j b21tYW5kLWFjdGl2YXRlKQ0KIG9yZy1yZWYtZGVmYXVsdC1iaWJsaW9ncmFwaHkgJygifi9PbmVE cml2ZS9Eb2N1bWVudHMvYmlibGlvdGVjYS9vZmZpY2UvYmlibGlvdGVjYS5iaWIiKQ0KIG9yZy1w cmV2aWV3LWxhdGV4LXByb2Nlc3MtYWxpc3QgJygoZHZpcG5nIDpwcm9ncmFtcyAoImxhdGV4IiAi ZHZpcG5nIikgOmRlc2NyaXB0aW9uICJkdmkgPiBwbmciDQoJCQkJICAgIDptZXNzYWdlICJ5b3Ug bmVlZCB0byBpbnN0YWxsIHRoZSBwcm9ncmFtczogbGF0ZXggYW5kIGR2aXBuZy4iDQoJCQkJICAg IDppbWFnZS1pbnB1dC10eXBlICJkdmkiIDppbWFnZS1vdXRwdXQtdHlwZSAicG5nIg0KCQkJCSAg ICA6aW1hZ2Utc2l6ZS1hZGp1c3QgKDEuMCAuIDEuMCkgOmxhdGV4LWNvbXBpbGVyDQoJCQkJICAg ICgibGF0ZXggLWludGVyYWN0aW9uIG5vbnN0b3Btb2RlIC1vdXRwdXQtZGlyZWN0b3J5ICVvICVm IikNCgkJCQkgICAgOmltYWdlLWNvbnZlcnRlciAoImR2aXBuZyAtRCAlRCAtVCB0aWdodCAtbyAl TyAlZiIpKQ0KCQkJCSAgIChkdmlzdmdtIDpwcm9ncmFtcyAoImxhdGV4IiAiZHZpc3ZnbSIpIDpk ZXNjcmlwdGlvbiAiZHZpID4gc3ZnIg0KCQkJCSAgICA6bWVzc2FnZSAieW91IG5lZWQgdG8gaW5z dGFsbCB0aGUgcHJvZ3JhbXM6IGxhdGV4IGFuZCBkdmlzdmdtLiINCgkJCQkgICAgOmltYWdlLWlu cHV0LXR5cGUgImR2aSIgOmltYWdlLW91dHB1dC10eXBlICJzdmciDQoJCQkJICAgIDppbWFnZS1z aXplLWFkanVzdCAoMS43IC4gMS41KSA6bGF0ZXgtY29tcGlsZXINCgkJCQkgICAgKCJsYXRleCAt aW50ZXJhY3Rpb24gbm9uc3RvcG1vZGUgLW91dHB1dC1kaXJlY3RvcnkgJW8gJWYiKQ0KCQkJCSAg ICA6aW1hZ2UtY29udmVydGVyICgiZHZpc3ZnbSAlZiAtbiAtYiBtaW4gLS1leGFjdCAtYyAlUyAt byAlTyIpKQ0KCQkJCSAgIChpbWFnZW1hZ2ljayA6cHJvZ3JhbXMgKCJsYXRleCIgImNvbnZlcnQi KSA6ZGVzY3JpcHRpb24gInBkZiA+IHBuZyINCgkJCQkgICAgOm1lc3NhZ2UNCgkJCQkgICAgInlv dSBuZWVkIHRvIGluc3RhbGwgdGhlIHByb2dyYW1zOiBsYXRleCBhbmQgaW1hZ2VtYWdpY2suIg0K CQkJCSAgICA6aW1hZ2UtaW5wdXQtdHlwZSAicGRmIiA6aW1hZ2Utb3V0cHV0LXR5cGUgInBuZyIN CgkJCQkgICAgOmltYWdlLXNpemUtYWRqdXN0ICgxLjAgLiAxLjApIDpsYXRleC1jb21waWxlcg0K CQkJCSAgICAoInBkZmxhdGV4IC1pbnRlcmFjdGlvbiBub25zdG9wbW9kZSAtb3V0cHV0LWRpcmVj dG9yeSAlbyAlZiIpDQoJCQkJICAgIDppbWFnZS1jb252ZXJ0ZXINCgkJCQkgICAgKCJjb252ZXJ0 IC1kZW5zaXR5ICVEIC10cmltIC1hbnRpYWxpYXMgJWYgLXF1YWxpdHkgMTAwICVPIikpDQoJCQkJ ICAgKQ0KIG9yZy1vZHQtZm9ybWF0LWlubGluZXRhc2stZnVuY3Rpb24gJ29yZy1vZHQtZm9ybWF0 LWlubGluZXRhc2stZGVmYXVsdC1mdW5jdGlvbg0KIG9yZy1hdHRhY2gtbWV0aG9kICdsbg0KIG9y Zy1yZWYtY29tcGxldGlvbi1saWJyYXJ5ICdvcmctcmVmLWl2eS1jaXRlDQogb3JnLWR5bmFtaWMt YmxvY2stYWxpc3QgJygoImNvbHVtbnZpZXciIC4gb3JnLWNvbHVtbnMtaW5zZXJ0LWRibG9jaykN CgkJCSAgICgiY2xvY2t0YWJsZSIgLiBvcmctY2xvY2stcmVwb3J0KSkNCiBvcmctYmFiZWwtdGFu Z2xlLWxhbmctZXh0cyAnKCgicnVieSIgLiAicmIiKSAoIkQiIC4gImQiKSAoIkMrKyIgLiAiY3Bw IikgKCJweXRob24iIC4gInB5IikNCgkJCSAgICAgICgibGF0ZXgiIC4gInRleCIpICgiZW1hY3Mt bGlzcCIgLiAiZWwiKSAoImVsaXNwIiAuICJlbCIpKQ0KIG9yZy1jb25maXJtLXNoZWxsLWxpbmst ZnVuY3Rpb24gJ3llcy1vci1uby1wDQogb3JnLWxpbmstcGFyYW1ldGVycyAnKCgiaWQiIDpmb2xs b3cgb3JnLWlkLW9wZW4pICgidzNtIiA6c3RvcmUgb3JnLXczbS1zdG9yZS1saW5rKQ0KCQkgICAg ICAgKCJybWFpbCIgOmZvbGxvdyBvcmctcm1haWwtb3BlbiA6c3RvcmUgb3JnLXJtYWlsLXN0b3Jl LWxpbmspDQoJCSAgICAgICAoIm1oZSIgOmZvbGxvdyBvcmctbWhlLW9wZW4gOnN0b3JlIG9yZy1t aGUtc3RvcmUtbGluaykNCgkJICAgICAgICgiaXJjIiA6Zm9sbG93IG9yZy1pcmMtdmlzaXQgOnN0 b3JlIG9yZy1pcmMtc3RvcmUtbGluayA6ZXhwb3J0IG9yZy1pcmMtZXhwb3J0KQ0KCQkgICAgICAg KCJpbmZvIiA6Zm9sbG93IG9yZy1pbmZvLW9wZW4gOmV4cG9ydCBvcmctaW5mby1leHBvcnQgOnN0 b3JlDQoJCQlvcmctaW5mby1zdG9yZS1saW5rKQ0KCQkgICAgICAgKCJnbnVzIiA6Zm9sbG93IG9y Zy1nbnVzLW9wZW4gOnN0b3JlIG9yZy1nbnVzLXN0b3JlLWxpbmspDQoJCSAgICAgICAoImV3dyIg OmZvbGxvdyBld3cgOnN0b3JlIG9yZy1ld3ctc3RvcmUtbGluaykNCgkJICAgICAgICgiYmJkYiIg OmZvbGxvdyBvcmctYmJkYi1vcGVuIDpleHBvcnQgb3JnLWJiZGItZXhwb3J0IDpjb21wbGV0ZQ0K CQkJb3JnLWJiZGItY29tcGxldGUtbGluayA6c3RvcmUgb3JnLWJiZGItc3RvcmUtbGluaykNCgkJ ICAgICAgICgiZG9jdmlldyIgOmZvbGxvdyBvcmctZG9jdmlldy1vcGVuIDpleHBvcnQgb3JnLWRv Y3ZpZXctZXhwb3J0IDpzdG9yZQ0KCQkJb3JnLWRvY3ZpZXctc3RvcmUtbGluaykNCgkJICAgICAg ICgibWFuIiA6Zm9sbG93IG9yZy1tYW4tb3BlbiA6ZXhwb3J0IG9yZy1tYW4tZXhwb3J0IDpzdG9y ZSBvcmctbWFuLXN0b3JlLWxpbmspDQoJCSAgICAgICAoInByaW50aW5kZXgiIDpmb2xsb3cgb3Jn LXJlZi1pbmRleCA6ZXhwb3J0DQoJCQkjWyhwYXRoIGRlc2MgZm9ybWF0KSAiCFwzMDE9XDIwNQku XDMwMFwzMDIhXDIwNyINCgkJCSAgW2Zvcm1hdCBsYXRleCAiXFxwcmludGluZGV4Il0gMl0NCgkJ CSkNCgkJICAgICAgICgiaW5kZXgiIDpmb2xsb3cgI1socGF0aCkgIlwzMDEIIVwyMDciIFtwYXRo IG9jY3VyXSAyXSA6ZXhwb3J0DQoJCQkjWyhwYXRoIGRlc2MgZm9ybWF0KSAiCFwzMDI9XDIwNVxu LlwzMDBcMzAzCVwiXDIwNyINCgkJCSAgW2Zvcm1hdCBwYXRoIGxhdGV4ICJcXGluZGV4eyVzfSJd IDNdDQoJCQkpDQoJCSAgICAgICAoImJpYmVudHJ5IiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5j YWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1y ZWYtZm9ybWF0LWJpYmVudHJ5IDpjb21wbGV0ZSBvcmctYmliZW50cnktY29tcGxldGUtbGluaw0K CQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikNCgkJCSAo d2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNhdmUtZXhjdXJzaW9u IChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJlZi1mb3JtYXQtZW50 cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0KCQkJICAgICh3aXRo LXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVmZmVyLXN0cmluZykp KQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFj ZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAgLiBvcmctcmVmLXNv cnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkg KG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAo aW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpDQoJCQkgKEMtcmln aHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpDQoJ CQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1l cyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiINCgkJCSAgKGludGVy YWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpDQoJ CQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIgKGlu dGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChv cmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZp bGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoc2F2 ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAgIChraWxs LW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpDQoJCQkgICkNCgkJ CSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVyYWN0aXZlKQ0KCQkJ ICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgt ZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkNCgkJ CSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMy NiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjggLiBvcmctcmVm LW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50 KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAo MTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1saW5rIC4gbW91c2Ut ZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpIChtb3VzZS0yIC4g b3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJBdXRvY2l0ZXMiIDpmb2xsb3cg KGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkN CgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtQXV0b2NpdGVzIDpjb21wbGV0ZSBvcmctQXV0b2Np dGVzLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRvdyBvYmpl Y3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyDQoJ CQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxldCAoKHMg KG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNv cikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFw aCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpmYWNlIG9y Zy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQkoa2V5bWFw IChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQgbGFtYmRh IG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkNCgkJCSAo Uy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxp bmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAuIG9yZy1y ZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQYXN0ZSBr ZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBh IGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAo Y2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUg a2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3NzczMzUg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdl dC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQt cG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1w b2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1h dC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQi IChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkgKG9y Zy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1j aXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1w b2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpDQoJCQkg KDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4gb3JnLXJl Zi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRp b24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpIChm b2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0 LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAgICAgICgi YXV0b2NpdGVzIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNs aWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWF1dG9jaXRlcyA6 Y29tcGxldGUgb3JnLWF1dG9jaXRlcy1jb21wbGV0ZS1saW5rDQoJCQk6aGVscC1lY2hvDQoJCQko bGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1j aXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlv bikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3JnLXJlZi1nZXQtYmli dGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2Vy dCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkgICApDQoJCQkgICkN CgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwg OmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQ0K CQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0 aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1y ZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1r ZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3NzczMzcgbGFtYmRh IG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBp biB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLWlu c2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3NzczMDMgbGFtYmRh IG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3RpdmUpDQoJCQkgIChr aWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQp KSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1u ZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkNCgkJCSAoMTY3Nzcz MTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJl Zi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1h dC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3NzMxOSAuIG9yZy1y ZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVt YWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpDQoJCQkgKDE2Nzc3 MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMzMCAuIG9yZy1y ZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5v dGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQp ICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE0IC4g b3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYt Y2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0KCQkJIChtb3VzZS0z IC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkp DQoJCQkpDQoJCSAgICAgICAoInN1cGVyY2l0ZXMiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNh bGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJl Zi1mb3JtYXQtc3VwZXJjaXRlcyA6Y29tcGxldGUgb3JnLXN1cGVyY2l0ZXMtY29tcGxldGUtbGlu aw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikNCgkJ CSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNhdmUtZXhjdXJz aW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJlZi1mb3JtYXQt ZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0KCQkJICAgICh3 aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVmZmVyLXN0cmlu ZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmst ZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAgLiBvcmctcmVm LXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2 ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQgbGFtYmRhIG5p bCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpDQoJCQkgKEMt cmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkp DQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNz dW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiINCgkJCSAgKGlu dGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkp DQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIg KGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRo IChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5k LWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAo c2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAgIChr aWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpDQoJCQkgICkN CgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQ0KCQkJICgx Njc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVyYWN0aXZlKQ0K CQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1lbWFpbC1iaWJ0 ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkN CgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjggLiBvcmct cmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBv aW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJ CSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1saW5rIC4gbW91 c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpIChtb3VzZS0y IC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJUZXh0Y2l0ZXMiIDpmb2xs b3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmls KSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtVGV4dGNpdGVzIDpjb21wbGV0ZSBvcmctVGV4 dGNpdGVzLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRvdyBv YmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVy DQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxldCAo KHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1 cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFn cmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpmYWNl IG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQkoa2V5 bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQgbGFt YmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkNCgkJ CSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9u LWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAuIG9y Zy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQYXN0 ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBp cyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2lu dCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0 aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmctZWxl bWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3Nzcz MzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVm LWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24t YXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1h dC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xh ci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9p bnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkg KG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdv cy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1h dC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpDQoJ CQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4gb3Jn LXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkp IChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxl LWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAgICAg ICgidGV4dGNpdGVzIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1v bmNsaWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LXRleHRjaXRl cyA6Y29tcGxldGUgb3JnLXRleHRjaXRlcy1jb21wbGV0ZS1saW5rDQoJCQk6aGVscC1lY2hvDQoJ CQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9yZy1yZWYtc2hv dy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3Np dGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3JnLXJlZi1nZXQt YmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGlu c2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkgICApDQoJCQkg ICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1 bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5r KQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNp dGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9y Zy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4 dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3NzczMzcgbGFt YmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGlu ZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVm LWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3NzczMDMgbGFt YmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3RpdmUpDQoJCQkg IChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRl eHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoa2ls bC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkNCgkJCSAoMTY3 NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3Jn LXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZv cm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3NzMxOSAuIG9y Zy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwg IkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpDQoJCQkgKDE2 Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMzMCAuIG9y Zy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVu LW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9p bnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE0 IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNyAuIG9yZy1y ZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0KCQkJIChtb3Vz ZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3Vz ZSkpDQoJCQkpDQoJCSAgICAgICAoIlNtYXJ0Y2l0ZXMiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1 bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3Jn LXJlZi1mb3JtYXQtU21hcnRjaXRlcyA6Y29tcGxldGUgb3JnLVNtYXJ0Y2l0ZXMtY29tcGxldGUt bGluaw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikN CgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNhdmUtZXhj dXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJlZi1mb3Jt YXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0KCQkJICAg ICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVmZmVyLXN0 cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxp bmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAgLiBvcmct cmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQgbGFtYmRh IG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpDQoJCQkg KEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1r ZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4g QXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiINCgkJCSAg KGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5n KSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50 LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpw YXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXkt YW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJ ICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAg IChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpDQoJCQkg ICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQ0KCQkJ ICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVyYWN0aXZl KQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1lbWFpbC1i aWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2lu dCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0KCQkJICgx Njc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjggLiBv cmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0 LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkN CgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1saW5rIC4g bW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpIChtb3Vz ZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJzbWFydGNpdGVzIiA6 Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9u IG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LXNtYXJ0Y2l0ZXMgOmNvbXBsZXRlIG9y Zy1zbWFydGNpdGVzLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdp bmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9u LWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAg KGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVu ZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxs LXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJ CTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJ CQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmln aHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAx KSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNp dGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVm dCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkg ICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxs cmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1h dC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5 IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChv cmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAo MTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChv cmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1l bnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUt c2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkg YXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmct cmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVs YXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9p bnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMz IC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJh L2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmlu ZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJ ICAgICAgICgiZm9vdGNpdGV0ZXh0cyIgOmZvbGxvdw0KCQkJKGxhbWJkYSAoXykgKGZ1bmNhbGwg b3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkgOmV4cG9ydA0KCQkJb3JnLXJlZi1m b3JtYXQtZm9vdGNpdGV0ZXh0cyA6Y29tcGxldGUgb3JnLWZvb3RjaXRldGV4dHMtY29tcGxldGUt bGluaw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikN CgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNhdmUtZXhj dXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJlZi1mb3Jt YXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0KCQkJICAg ICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVmZmVyLXN0 cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxp bmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAgLiBvcmct cmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQgbGFtYmRh IG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpDQoJCQkg KEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1r ZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4g QXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiINCgkJCSAg KGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5n KSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50 LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpw YXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXkt YW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJ ICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAg IChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpDQoJCQkg ICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQ0KCQkJ ICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVyYWN0aXZl KQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1lbWFpbC1i aWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2lu dCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0KCQkJICgx Njc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjggLiBv cmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0 LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkN CgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1saW5rIC4g bW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpIChtb3Vz ZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJmb290Y2l0ZXMiIDpm b2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24g bmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtZm9vdGNpdGVzIDpjb21wbGV0ZSBvcmct Zm9vdGNpdGVzLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRv dyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVu dGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxl dCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVy LWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBh cmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpm YWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQko a2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkN CgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0 aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAu IG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQ YXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmlu ZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1w b2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFs bCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3 NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmct cmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmls IChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRp b24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRy eS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2No b2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQg cG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2lu dCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVm LXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRl ZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQp DQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4g b3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2Jv ZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1m aWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAg ICAgICgiUGFyZW5jaXRlcyIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNp dGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1QYXJl bmNpdGVzIDpjb21wbGV0ZSBvcmctUGFyZW5jaXRlcy1jb21wbGV0ZS1saW5rDQoJCQk6aGVscC1l Y2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9yZy1y ZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hh ciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3JnLXJl Zi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1idWZm ZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkgICAp DQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNw bGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlv bi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1z d2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2 ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9yZy1y ZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3Nzcz MzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJz dCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUpIChv cmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3Nzcz MDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3RpdmUp DQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50 LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJ ICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkNCgkJ CSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vyc2lv biAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChvcmct cmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3NzMx OSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxhbWJk YSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpDQoJ CQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMz MCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJl Zi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYt YXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkgKDE2 Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNyAu IG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0KCQkJ IChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Blbi1h dC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoInBhcmVuY2l0ZXMiIDpmb2xsb3cgKGxhbWJkYSAo XykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBv cnQgb3JnLXJlZi1mb3JtYXQtcGFyZW5jaXRlcyA6Y29tcGxldGUgb3JnLXBhcmVuY2l0ZXMtY29t cGxldGUtbGluaw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3Np dGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNh dmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJl Zi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0K CQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVm ZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1j aXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAg LiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkp DQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2 aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBw b2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIN CgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2ls bC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0 IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRl eC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZl KQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkN CgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkp DQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50 KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVy YWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1l bWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1h dC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0K CQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3Nzcz MjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4t dXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1s aW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2Up IChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJDaXRlcyIg OmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlv biBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1DaXRlcyA6Y29tcGxldGUgb3JnLUNp dGVzLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBw b3NpdGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAg KHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3Jn LXJlZi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkp KQ0KCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAo YnVmZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJl Zi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMt dXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmls IChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxl ZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAt MSkpDQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1w cmV2aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBh dCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5 LiINCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIg a2lsbC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlz IGF0IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJp YnRleC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2lu dCkNCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50 KSkpDQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBv aW50KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGlu dGVyYWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJl Zi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGlu Zy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50 KQ0KCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3 NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9w ZW4tdXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1h dC1wb2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxv dy1saW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91 c2UpIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJjaXRl cyIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5j dGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRlcyA6Y29tcGxldGUgb3Jn LWNpdGVzLWNvbXBsZXRlLWxpbmsgOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVj dCBwb3NpdGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJ CSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAo b3JnLXJlZi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29y KSkpKQ0KCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBo KSAoYnVmZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3Jn LXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAg KFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChT LWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGlu ayAtMSkpDQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJl Zi1wcmV2aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtl eSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEg a2V5LiINCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChj YXIga2lsbC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBr ZXlzIGF0IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0 LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVy YWN0aXZlKQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkNCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBv aW50KSkpDQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0 LXBvaW50KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIg KGludGVyYWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3Jn LXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNp dGluZy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBv aW50KQ0KCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAo MTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVm LW9wZW4tdXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlv bi1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZv bGxvdy1saW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQt bW91c2UpIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJm bm90ZWNpdGUiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xp Y2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtZm5vdGVjaXRlIDpj b21wbGV0ZSBvcmctZm5vdGVjaXRlLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShs YW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNp dGF0aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9u KQ0KCQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0 ZXgta2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0 IHMpIChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0K CQkJICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6 a2V5bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJ CQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRp b24tbGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtl eSkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEg bmlsDQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGlu IHRoZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5z ZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEg bmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtp bGwtbmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkp KSkNCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5l dyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMx OCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0 LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJl Zi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1h aWwgZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRh dGlvbi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3Nzcz MTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJl Zi13b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90 ZXMtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkg KDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBv cmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1j aXRlLWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMg LiBvcmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkN CgkJCSkNCgkJICAgICAgICgiUG5vdGVjaXRlIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxs IG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYt Zm9ybWF0LVBub3RlY2l0ZSA6Y29tcGxldGUgb3JnLVBub3RlY2l0ZS1jb21wbGV0ZS1saW5rDQoJ CQk6aGVscC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3 aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24g KGdvdG8tY2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRy eSAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgt dGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkp DQoJCQkgICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNl LWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29y dC1jaXRhdGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAo b3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdo dCAuIG9yZy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJ CSAoMTY3NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVz IHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJh Y3RpdmUpIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJ CSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50 ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9y Zy1lbGVtZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQ0KCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmls ZSkpKSkNCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZl LWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwt bmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJ ICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3 MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkg IChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1l bnRyeSkpDQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJ ICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2 IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYt b3Blbi1wZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQp DQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgx Njc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1m YWNlKQ0KCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBv cmctb3Blbi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoInBub3RlY2l0ZSIgOmZvbGxvdyAo bGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0K CQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1wbm90ZWNpdGUgOmNvbXBsZXRlIG9yZy1wbm90ZWNp dGUtY29tcGxldGUtbGluaw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVj dCBwb3NpdGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJ CSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAo b3JnLXJlZi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29y KSkpKQ0KCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBo KSAoYnVmZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3Jn LXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAg KFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChT LWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGlu ayAtMSkpDQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJl Zi1wcmV2aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtl eSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEg a2V5LiINCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChj YXIga2lsbC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBr ZXlzIGF0IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0 LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVy YWN0aXZlKQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkNCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBv aW50KSkpDQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0 LXBvaW50KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIg KGludGVyYWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3Jn LXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNp dGluZy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBv aW50KQ0KCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAo MTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVm LW9wZW4tdXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlv bi1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZv bGxvdy1saW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQt bW91c2UpIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJO b3RlY2l0ZSIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGlj ay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1Ob3RlY2l0ZSA6Y29t cGxldGUgb3JnLU5vdGVjaXRlLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1i ZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0 aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0K CQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgt a2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMp IChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJ ICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5 bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkg KFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24t bGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1z d2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkg KEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmls DQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRo ZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0 LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmls ICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwt bmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkN CgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAo Y2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJp YnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1n b29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwg ZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlv bi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUg LiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13 b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMt YXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2 Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRl LWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBv cmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJ CSkNCgkJICAgICAgICgibm90ZWNpdGUiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3Jn LXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3Jt YXQtbm90ZWNpdGUgOmNvbXBsZXRlIG9yZy1ub3RlY2l0ZS1jb21wbGV0ZS1saW5rDQoJCQk6aGVs cC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9y Zy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8t Y2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3Jn LXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1i dWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkg ICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpk aXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRh dGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9y Zy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3 NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBm aXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUp IChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3 NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3Rp dmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVt ZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0K CQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkN CgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vy c2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChv cmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3 NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxh bWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkp DQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3Jn LXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1w ZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkg KDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMy NyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0K CQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Bl bi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoImZvb3RmdWxsY2l0ZSIgOmZvbGxvdw0KCQkJ KGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkg OmV4cG9ydA0KCQkJb3JnLXJlZi1mb3JtYXQtZm9vdGZ1bGxjaXRlIDpjb21wbGV0ZSBvcmctZm9v dGZ1bGxjaXRlLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRv dyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVu dGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxl dCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVy LWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBh cmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpm YWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQko a2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkN CgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0 aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAu IG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQ YXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmlu ZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1w b2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFs bCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3 NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmct cmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmls IChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRp b24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRy eS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2No b2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQg cG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2lu dCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVm LXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRl ZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQp DQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4g b3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2Jv ZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1m aWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAg ICAgICgiZnVsbGNpdGUiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRl LW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtZnVsbGNp dGUgOmNvbXBsZXRlIG9yZy1mdWxsY2l0ZS1jb21wbGV0ZS1saW5rDQoJCQk6aGVscC1lY2hvDQoJ CQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9yZy1yZWYtc2hv dy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3Np dGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3JnLXJlZi1nZXQt YmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGlu c2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkgICApDQoJCQkg ICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1 bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5r KQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNp dGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9y Zy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4 dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3NzczMzcgbGFt YmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGlu ZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVm LWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3NzczMDMgbGFt YmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3RpdmUpDQoJCQkg IChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRl eHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoa2ls bC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkNCgkJCSAoMTY3 NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3Jn LXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZv cm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3NzMxOSAuIG9y Zy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwg IkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpDQoJCQkgKDE2 Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMzMCAuIG9y Zy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVu LW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9p bnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE0 IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNyAuIG9yZy1y ZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0KCQkJIChtb3Vz ZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3Vz ZSkpDQoJCQkpDQoJCSAgICAgICAoImNpdGV1cmwiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNh bGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJl Zi1mb3JtYXQtY2l0ZXVybCA6Y29tcGxldGUgb3JnLWNpdGV1cmwtY29tcGxldGUtbGluayA6aGVs cC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9y Zy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8t Y2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3Jn LXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1i dWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkg ICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpk aXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRh dGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9y Zy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3 NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBm aXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUp IChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3 NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3Rp dmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVt ZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0K CQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkN CgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vy c2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChv cmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3 NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxh bWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkp DQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3Jn LXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1w ZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkg KDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMy NyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0K CQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Bl bi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoImNpdGVkYXRlKiIgOmZvbGxvdyAobGFtYmRh IChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4 cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRlZGF0ZSogOmNvbXBsZXRlIG9yZy1jaXRlZGF0ZSotY29t cGxldGUtbGluaw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3Np dGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNh dmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJl Zi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0K CQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVm ZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1j aXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAg LiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkp DQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2 aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBw b2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIN CgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2ls bC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0 IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRl eC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZl KQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkN CgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkp DQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50 KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVy YWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1l bWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1h dC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0K CQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3Nzcz MjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4t dXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1s aW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2Up IChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJjaXRlZGF0 ZSIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5j dGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRlZGF0ZSA6Y29tcGxldGUg b3JnLWNpdGVkYXRlLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdp bmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9u LWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAg KGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVu ZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxs LXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJ CTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJ CQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmln aHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAx KSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNp dGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVm dCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkg ICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxs cmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1h dC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5 IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChv cmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAo MTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChv cmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1l bnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUt c2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkg YXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmct cmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVs YXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9p bnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMz IC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJh L2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmlu ZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJ ICAgICAgICgiY2l0ZXRpdGxlKiIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVm LWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1j aXRldGl0bGUqIDpjb21wbGV0ZSBvcmctY2l0ZXRpdGxlKi1jb21wbGV0ZS1saW5rDQoJCQk6aGVs cC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9y Zy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8t Y2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3Jn LXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1i dWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkg ICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpk aXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRh dGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9y Zy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3 NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBm aXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUp IChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3 NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3Rp dmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVt ZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0K CQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkN CgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vy c2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChv cmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3 NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxh bWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkp DQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3Jn LXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1w ZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkg KDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMy NyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0K CQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Bl bi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoImNpdGV0aXRsZSIgOmZvbGxvdyAobGFtYmRh IChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4 cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRldGl0bGUgOmNvbXBsZXRlIG9yZy1jaXRldGl0bGUtY29t cGxldGUtbGluaw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3Np dGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNh dmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJl Zi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0K CQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVm ZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1j aXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAg LiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkp DQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2 aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBw b2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIN CgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2ls bC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0 IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRl eC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZl KQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkN CgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkp DQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50 KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVy YWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1l bWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1h dC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0K CQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3Nzcz MjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4t dXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1s aW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2Up IChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJDaXRlYXV0 aG9yKiIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1m dW5jdGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1DaXRlYXV0aG9yKiA6Y29t cGxldGUgb3JnLUNpdGVhdXRob3IqLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShs YW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNp dGF0aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9u KQ0KCQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0 ZXgta2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0 IHMpIChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0K CQkJICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6 a2V5bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJ CQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRp b24tbGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtl eSkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEg bmlsDQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGlu IHRoZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5z ZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEg bmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtp bGwtbmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkp KSkNCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5l dyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMx OCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0 LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJl Zi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1h aWwgZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRh dGlvbi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3Nzcz MTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJl Zi13b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90 ZXMtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkg KDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBv cmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1j aXRlLWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMg LiBvcmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkN CgkJCSkNCgkJICAgICAgICgiQXV0b2NpdGUqIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxs IG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYt Zm9ybWF0LUF1dG9jaXRlKiA6Y29tcGxldGUgb3JnLUF1dG9jaXRlKi1jb21wbGV0ZS1saW5rDQoJ CQk6aGVscC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3 aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24g KGdvdG8tY2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRy eSAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgt dGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkp DQoJCQkgICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNl LWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29y dC1jaXRhdGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAo b3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdo dCAuIG9yZy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJ CSAoMTY3NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVz IHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJh Y3RpdmUpIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJ CSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50 ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9y Zy1lbGVtZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQ0KCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmls ZSkpKSkNCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZl LWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwt bmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJ ICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3 MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkg IChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1l bnRyeSkpDQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJ ICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2 IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYt b3Blbi1wZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQp DQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgx Njc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1m YWNlKQ0KCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBv cmctb3Blbi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoImF1dG9jaXRlKiIgOmZvbGxvdyAo bGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0K CQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1hdXRvY2l0ZSogOmNvbXBsZXRlIG9yZy1hdXRvY2l0 ZSotY29tcGxldGUtbGluaw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVj dCBwb3NpdGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJ CSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAo b3JnLXJlZi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29y KSkpKQ0KCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBo KSAoYnVmZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3Jn LXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAg KFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChT LWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGlu ayAtMSkpDQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJl Zi1wcmV2aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtl eSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEg a2V5LiINCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChj YXIga2lsbC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBr ZXlzIGF0IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0 LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVy YWN0aXZlKQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkNCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBv aW50KSkpDQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0 LXBvaW50KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIg KGludGVyYWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3Jn LXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNp dGluZy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBv aW50KQ0KCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAo MTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVm LW9wZW4tdXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlv bi1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZv bGxvdy1saW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQt bW91c2UpIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJB dXRvY2l0ZSIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGlj ay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1BdXRvY2l0ZSA6Y29t cGxldGUgb3JnLUF1dG9jaXRlLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1i ZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0 aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0K CQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgt a2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMp IChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJ ICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5 bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkg KFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24t bGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1z d2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkg KEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmls DQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRo ZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0 LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmls ICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwt bmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkN CgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAo Y2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJp YnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1n b29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwg ZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlv bi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUg LiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13 b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMt YXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2 Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRl LWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBv cmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJ CSkNCgkJICAgICAgICgiYXV0b2NpdGUiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3Jn LXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3Jt YXQtYXV0b2NpdGUgOmNvbXBsZXRlIG9yZy1hdXRvY2l0ZS1jb21wbGV0ZS1saW5rDQoJCQk6aGVs cC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9y Zy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8t Y2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3Jn LXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1i dWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkg ICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpk aXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRh dGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9y Zy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3 NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBm aXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUp IChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3 NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3Rp dmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVt ZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0K CQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkN CgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vy c2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChv cmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3 NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxh bWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkp DQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3Jn LXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1w ZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkg KDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMy NyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0K CQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Bl bi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoInN1cGVyY2l0ZSIgOmZvbGxvdyAobGFtYmRh IChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4 cG9ydCBvcmctcmVmLWZvcm1hdC1zdXBlcmNpdGUgOmNvbXBsZXRlIG9yZy1zdXBlcmNpdGUtY29t cGxldGUtbGluaw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3Np dGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNh dmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJl Zi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0K CQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVm ZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1j aXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAg LiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkp DQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2 aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBw b2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiIN CgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2ls bC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0 IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRl eC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZl KQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkN CgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkp DQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50 KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVy YWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1l bWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1h dC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0K CQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3Nzcz MjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4t dXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1s aW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2Up IChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJwYXJlbmNp dGUqIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1 bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LXBhcmVuY2l0ZSogOmNvbXBs ZXRlIG9yZy1wYXJlbmNpdGUqLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1i ZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0 aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0K CQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgt a2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMp IChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJ ICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5 bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkg KFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24t bGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1z d2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkg KEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmls DQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRo ZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0 LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmls ICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwt bmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkN CgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAo Y2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJp YnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1n b29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwg ZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlv bi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUg LiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13 b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMt YXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2 Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRl LWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBv cmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJ CSkNCgkJICAgICAgICgiY2l0ZSoiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJl Zi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQt Y2l0ZSogOmNvbXBsZXRlIG9yZy1jaXRlKi1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8NCgkJCShs YW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNp dGF0aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9u KQ0KCQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0 ZXgta2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0 IHMpIChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0K CQkJICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6 a2V5bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJ CQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRp b24tbGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtl eSkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEg bmlsDQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGlu IHRoZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5z ZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEg bmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtp bGwtbmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkp KSkNCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5l dyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMx OCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0 LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJl Zi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1h aWwgZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRh dGlvbi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3Nzcz MTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJl Zi13b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90 ZXMtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkg KDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBv cmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1j aXRlLWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMg LiBvcmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkN CgkJCSkNCgkJICAgICAgICgiU21hcnRjaXRlIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxs IG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYt Zm9ybWF0LVNtYXJ0Y2l0ZSA6Y29tcGxldGUgb3JnLVNtYXJ0Y2l0ZS1jb21wbGV0ZS1saW5rDQoJ CQk6aGVscC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3 aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24g KGdvdG8tY2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRy eSAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgt dGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkp DQoJCQkgICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNl LWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29y dC1jaXRhdGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAo b3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdo dCAuIG9yZy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJ CSAoMTY3NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVz IHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJh Y3RpdmUpIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJ CSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50 ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9y Zy1lbGVtZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKQ0KCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmls ZSkpKSkNCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZl LWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwt bmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJ ICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3 MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkg IChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1l bnRyeSkpDQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJ ICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2 IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYt b3Blbi1wZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQp DQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgx Njc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1m YWNlKQ0KCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBv cmctb3Blbi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoInNtYXJ0Y2l0ZSIgOmZvbGxvdyAo bGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0K CQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1zbWFydGNpdGUgOmNvbXBsZXRlIG9yZy1zbWFydGNp dGUtY29tcGxldGUtbGluaw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVj dCBwb3NpdGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJ CSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAo b3JnLXJlZi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29y KSkpKQ0KCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBo KSAoYnVmZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3Jn LXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAg KFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChT LWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGlu ayAtMSkpDQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJl Zi1wcmV2aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtl eSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEg a2V5LiINCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChj YXIga2lsbC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBr ZXlzIGF0IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0 LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVy YWN0aXZlKQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkNCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBv aW50KSkpDQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0 LXBvaW50KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIg KGludGVyYWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3Jn LXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNp dGluZy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBv aW50KQ0KCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAo MTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVm LW9wZW4tdXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlv bi1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZv bGxvdy1saW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQt bW91c2UpIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJU ZXh0Y2l0ZSIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGlj ay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1UZXh0Y2l0ZSA6Y29t cGxldGUgb3JnLVRleHRjaXRlLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1i ZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0 aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0K CQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgt a2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMp IChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJ ICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5 bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkg KFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24t bGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1z d2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkg KEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmls DQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRo ZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0 LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmls ICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwt bmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkN CgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAo Y2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJp YnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1n b29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwg ZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlv bi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUg LiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13 b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMt YXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2 Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRl LWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBv cmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJ CSkNCgkJICAgICAgICgidGV4dGNpdGUiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3Jn LXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3Jt YXQtdGV4dGNpdGUgOmNvbXBsZXRlIG9yZy10ZXh0Y2l0ZS1jb21wbGV0ZS1saW5rDQoJCQk6aGVs cC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9y Zy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8t Y2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3Jn LXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1i dWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkg ICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpk aXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRh dGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9y Zy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3 NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBm aXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUp IChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3 NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3Rp dmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVt ZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0K CQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkN CgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vy c2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChv cmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3 NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxh bWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkp DQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3Jn LXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1w ZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkg KDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMy NyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0K CQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Bl bi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoImZvb3RjaXRldGV4dCIgOmZvbGxvdw0KCQkJ KGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkg OmV4cG9ydA0KCQkJb3JnLXJlZi1mb3JtYXQtZm9vdGNpdGV0ZXh0IDpjb21wbGV0ZSBvcmctZm9v dGNpdGV0ZXh0LWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRv dyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVu dGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxl dCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVy LWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBh cmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpm YWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQko a2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQg bGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkN CgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0 aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAu IG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQ YXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmlu ZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1w b2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFs bCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmct ZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3 NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmct cmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmls IChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRp b24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRy eS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2No b2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQg cG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2lu dCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVm LXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRl ZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQp DQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4g b3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2Jv ZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1m aWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAg ICAgICgiZm9vdGNpdGUiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRl LW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtZm9vdGNp dGUgOmNvbXBsZXRlIG9yZy1mb290Y2l0ZS1jb21wbGV0ZS1saW5rDQoJCQk6aGVscC1lY2hvDQoJ CQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9yZy1yZWYtc2hv dy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3Np dGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3JnLXJlZi1nZXQt YmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGlu c2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkgICApDQoJCQkg ICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1 bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5r KQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNp dGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9y Zy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4 dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3NzczMzcgbGFt YmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGlu ZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVm LWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3NzczMDMgbGFt YmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3RpdmUpDQoJCQkg IChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRl eHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoa2ls bC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkNCgkJCSAoMTY3 NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3Jn LXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZv cm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3NzMxOSAuIG9y Zy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwg IkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpDQoJCQkgKDE2 Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMzMCAuIG9y Zy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVu LW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9p bnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE0 IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNyAuIG9yZy1y ZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0KCQkJIChtb3Vz ZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3Vz ZSkpDQoJCQkpDQoJCSAgICAgICAoIlBhcmVuY2l0ZSIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVu Y2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmct cmVmLWZvcm1hdC1QYXJlbmNpdGUgOmNvbXBsZXRlIG9yZy1QYXJlbmNpdGUtY29tcGxldGUtbGlu aw0KCQkJOmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikNCgkJ CSAod2hlbiBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNhdmUtZXhjdXJz aW9uIChnb3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJlZi1mb3JtYXQt ZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0KCQkJICAgICh3 aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVmZmVyLXN0cmlu ZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmst ZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAgLiBvcmctcmVm LXNvcnQtY2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2 ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQgbGFtYmRhIG5p bCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpDQoJCQkgKEMt cmlnaHQgLiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkp DQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNz dW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiINCgkJCSAgKGlu dGVyYWN0aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkp DQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIg KGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRo IChvcmctZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5k LWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAo c2F2ZS1leGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAgIChr aWxsLW5ldyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpDQoJCQkgICkN CgkJCSAoMTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQ0KCQkJICgx Njc3NzMxNyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVyYWN0aXZlKQ0K CQkJICAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1lbWFpbC1iaWJ0 ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkN CgkJCSAoMTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjggLiBvcmct cmVmLW9wZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBv aW50KQ0KCQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJ CSAoMTY3NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1saW5rIC4gbW91 c2UtZmFjZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpIChtb3VzZS0y IC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJwYXJlbmNpdGUiIDpmb2xs b3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmls KSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtcGFyZW5jaXRlIDpjb21wbGV0ZSBvcmctcGFy ZW5jaXRlLWNvbXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRvdyBv YmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVy DQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxldCAo KHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1 cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFn cmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpmYWNl IG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQkoa2V5 bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQgbGFt YmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkNCgkJ CSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9u LWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAuIG9y Zy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQYXN0 ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBp cyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2lu dCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0 aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmctZWxl bWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3Nzcz MzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVm LWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24t YXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1h dC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xh ci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9p bnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkg KG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdv cy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1h dC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpDQoJ CQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4gb3Jn LXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkp IChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxl LWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAgICAg ICgiQ2l0ZSIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGlj ay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1DaXRlIDpjb21wbGV0 ZSBvcmctQ2l0ZS1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRvdyBv YmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVy DQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxldCAo KHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1 cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFn cmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpmYWNl IG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQkoa2V5 bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQgbGFt YmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkNCgkJ CSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9u LWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAuIG9y Zy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQYXN0 ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBp cyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2lu dCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0 aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmctZWxl bWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3Nzcz MzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVm LWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24t YXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1h dC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xh ci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9p bnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkg KG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdv cy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1h dC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpDQoJ CQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4gb3Jn LXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkp IChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxl LWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAgICAg ICgiQ2l0ZWF1dGhvciIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUt b25jbGljay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1DaXRlYXV0 aG9yIDpjb21wbGV0ZSBvcmctQ2l0ZWF1dGhvci1jb21wbGV0ZS1saW5rDQoJCQk6aGVscC1lY2hv DQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9yZy1yZWYt c2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBw b3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3JnLXJlZi1n ZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIg KGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkgICApDQoJ CQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5 IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1s aW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2Fw LWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkg KG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYt bmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3NzczMzcg bGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0 aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUpIChvcmct cmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3NzczMDMg bGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3RpdmUpDQoJ CQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNv bnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAo a2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkNCgkJCSAo MTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAo b3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChvcmctcmVm LWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3NzMxOSAu IG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBu aWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpDQoJCQkg KDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMzMCAu IG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1v cGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQt cG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3 MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNyAuIG9y Zy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0KCQkJICht b3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1t b3VzZSkpDQoJCQkpDQoJCSAgICAgICAoIkNpdGVhbHAiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1 bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3Jn LXJlZi1mb3JtYXQtQ2l0ZWFscCA6Y29tcGxldGUgb3JnLUNpdGVhbHAtY29tcGxldGUtbGluayA6 aGVscC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVu IG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdv dG8tY2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAo b3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVt cC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJ CQkgICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZu IDpkaXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1j aXRhdGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3Jn LXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRl cmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAu IG9yZy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAo MTY3NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRo ZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3Rp dmUpIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAo MTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJh Y3RpdmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1l bGVtZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZl KQ0KCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkp KSkNCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4 Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3 IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgx Njc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3 IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChv cmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRy eSkpDQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgx Njc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4g b3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Bl bi1wZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJ CQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNl KQ0KCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmct b3Blbi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoIkNpdGVhbHQiIDpmb2xsb3cgKGxhbWJk YSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpl eHBvcnQgb3JnLXJlZi1mb3JtYXQtQ2l0ZWFsdCA6Y29tcGxldGUgb3JnLUNpdGVhbHQtY29tcGxl dGUtbGluayA6aGVscC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0K CQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1 cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZvcm1h dC1lbnRyeSAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkgICAg KHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXItc3Ry aW5nKSkpDQoJCQkgICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUtbGlu ay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9yZy1y ZWYtc29ydC1jaXRhdGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVyYWN0 aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJCSAo Qy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3VzLWtl eSkNCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50LiBB c3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJICAo aW50ZXJhY3RpdmUpIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJpbmcp KSkNCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9pbnQu IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBh dGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGlu dGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtleS1h bmQtZmlsZSkpKSkNCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkg IChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICAg KGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJCSAg KQ0KCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJCQkg KDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUp DQoJCQkgIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWlsLWJp YnRleC1lbnRyeSkpDQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBvaW50 KQ0KCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2 Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAuIG9y Zy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwtYXQt cG9pbnQpDQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0K CQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsgLiBt b3VzZS1mYWNlKQ0KCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNl LTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoIkNpdGVwIiA6Zm9sbG93 IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkp DQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LUNpdGVwIDpjb21wbGV0ZSBvcmctQ2l0ZXAtY29t cGxldGUtbGluayA6aGVscC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0aW9u KQ0KCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2ZS1l eGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVmLWZv cm1hdC1lbnRyeSAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJCQkg ICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZmZXIt c3RyaW5nKSkpDQoJCQkgICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNpdGUt bGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAuIG9y Zy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGludGVy YWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkNCgkJ CSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZpb3Vz LWtleSkNCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBvaW50 LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0KCQkJ ICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxsLXJp bmcpKSkNCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQgcG9p bnQuIiAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVydHkg OnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBuaWwg KGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4LWtl eS1hbmQtZmlsZSkpKSkNCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJ CQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJ ICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkNCgkJ CSAgKQ0KCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQpDQoJ CQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJhY3Rp dmUpDQoJCQkgIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVtYWls LWJpYnRleC1lbnRyeSkpDQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0LXBv aW50KQ0KCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJCQkg KDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyOCAu IG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11cmwt YXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQ0KCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxpbmsg LiBtb3VzZS1mYWNlKQ0KCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkgKG1v dXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoIkNpdGV0IiA6Zm9s bG93IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5p bCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LUNpdGV0IDpjb21wbGV0ZSBvcmctQ2l0ZXQt Y29tcGxldGUtbGluayA6aGVscC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBvc2l0 aW9uKQ0KCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAoc2F2 ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmctcmVm LWZvcm1hdC1lbnRyeSAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkpDQoJ CQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChidWZm ZXItc3RyaW5nKSkpDQoJCQkgICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVmLWNp dGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11cCAu IG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwgKGlu dGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVmdCBs YW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0xKSkN CgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXByZXZp b3VzLWtleSkNCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0IHBv aW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXkuIg0K CQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBraWxs LXJpbmcpKSkNCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMgYXQg cG9pbnQuIiAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJvcGVy dHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJkYSBu aWwgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmlidGV4 LWtleS1hbmQtZmlsZSkpKSkNCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUp DQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0K CQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQpKSkN CgkJCSAgKQ0KCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9pbnQp DQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50ZXJh Y3RpdmUpDQoJCQkgIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVmLWVt YWlsLWJpYnRleC1lbnRyeSkpDQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5nLWF0 LXBvaW50KQ0KCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQpDQoJ CQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMy OCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Blbi11 cmwtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBv aW50KQ0KCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93LWxp bmsgLiBtb3VzZS1mYWNlKQ0KCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3VzZSkg KG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoImNpdGV5ZWFy cGFyIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1 bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWNpdGV5ZWFycGFyIDpjb21w bGV0ZSBvcmctY2l0ZXllYXJwYXItY29tcGxldGUtbGluaw0KCQkJOmhlbHAtZWNobw0KCQkJKGxh bWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ctY2l0 YXRpb24tb24tZW50ZXINCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRpb24p DQoJCQkgICAobGV0ICgocyAob3JnLXJlZi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJpYnRl eC1rZXktdW5kZXItY3Vyc29yKSkpKQ0KCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQg cykgKGZpbGwtcGFyYWdyYXBoKSAoYnVmZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICApDQoJ CQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxsIDpr ZXltYXANCgkJCShrZXltYXAgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykNCgkJ CSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlv bi1saW5rIDEpKQ0KCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVm LXN3YXAtY2l0YXRpb24tbGluayAtMSkpDQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQta2V5 KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJkYSBu aWwNCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcgaW4g dGhlIGtpbGxyaW5nIGlzIGEga2V5LiINCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1pbnNl cnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJkYSBu aWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAoa2ls bC1uZXcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0KSkp KQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3 IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3MzE4 IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1yZWYt b3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3JtYXQt YmlidGV4LWVudHJ5LWF0LXBvaW50KSkpDQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmctcmVm LWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJFbWFp bCBlbnRyeSBhdCBwb2ludCIgKGludGVyYWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNpdGF0 aW9uLWF0LXBvaW50KSAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3NzMx NSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmctcmVm LXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1ub3Rl cy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50KSAo MTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAuIG9y Zy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVmLWNp dGUtaHlkcmEvYm9keSkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2UtMyAu IG9yZy1maW5kLWZpbGUtYXQtbW91c2UpIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2UpKQ0K CQkJKQ0KCQkgICAgICAgKCJjaXRleWVhcioiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwg b3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1m b3JtYXQtY2l0ZXllYXIqIDpjb21wbGV0ZSBvcmctY2l0ZXllYXIqLWNvbXBsZXRlLWxpbmsNCgkJ CTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdo ZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAo Z290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5 IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10 ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkN CgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2Ut Zm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0 LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChv cmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGlu dGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0 IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJ ICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMg dGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFj dGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJ ICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRl cmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3Jn LWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxl KSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUt ZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1u ZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkg KDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3Nzcz MTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAg KG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVu dHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkg KDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYg LiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1v cGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkN CgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2 Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZh Y2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9y Zy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAgICAgICgiY2l0ZXllYXIiIDpmb2xsb3cgKGxh bWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJ CTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtY2l0ZXllYXIgOmNvbXBsZXRlIG9yZy1jaXRleWVhci1j b21wbGV0ZS1saW5rDQoJCQk6aGVscC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2JqZWN0IHBv c2l0aW9uKQ0KCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0KCQkJICAo c2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChzIChvcmct cmVmLWZvcm1hdC1lbnRyeSAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJzb3IpKSkp DQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3JhcGgpIChi dWZmZXItc3RyaW5nKSkpDQoJCQkgICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBvcmctcmVm LWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1hcCAoUy11 cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJkYSBuaWwg KGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkgKFMtbGVm dCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIC0x KSkNCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmctcmVmLXBy ZXZpb3VzLWtleSkNCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUga2V5IGF0 IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMgYSBrZXku Ig0KCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQgKGNhciBr aWxsLXJpbmcpKSkNCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhlIGtleXMg YXQgcG9pbnQuIiAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1IGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1nZXQtYmli dGV4LWtleS1hbmQtZmlsZSkpKSkNCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50 KQ0KCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQtcG9pbnQp KSkNCgkJCSAgKQ0KCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXItYXQtcG9p bnQpDQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50IiAoaW50 ZXJhY3RpdmUpDQoJCQkgIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChvcmctcmVm LWVtYWlsLWJpYnRleC1lbnRyeSkpDQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3MtY2l0aW5n LWF0LXBvaW50KQ0KCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQtcG9pbnQp DQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1yZWYtb3Bl bi11cmwtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0 LXBvaW50KQ0KCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAoZm9sbG93 LWxpbmsgLiBtb3VzZS1mYWNlKQ0KCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1hdC1tb3Vz ZSkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAoImNpdGVh dXRob3IqIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNr LWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWNpdGVhdXRob3IqIDpj b21wbGV0ZSBvcmctY2l0ZWF1dGhvciotY29tcGxldGUtbGluaw0KCQkJOmhlbHAtZWNobw0KCQkJ KGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikNCgkJCSAod2hlbiBvcmctcmVmLXNob3ct Y2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgcG9zaXRp b24pDQoJCQkgICAobGV0ICgocyAob3JnLXJlZi1mb3JtYXQtZW50cnkgKG9yZy1yZWYtZ2V0LWJp YnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0KCQkJICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNl cnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVmZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0KCQkJICAp DQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxheSBmdWxs IDprZXltYXANCgkJCShrZXltYXAgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24tbGluaykN CgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRh dGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmct cmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpDQoJCQkgKEMtcmlnaHQgLiBvcmctcmVmLW5leHQt a2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3IGxhbWJk YSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3QgdGhpbmcg aW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiINCgkJCSAgKGludGVyYWN0aXZlKSAob3JnLXJlZi1p bnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAzIGxhbWJk YSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIgKGludGVyYWN0aXZlKQ0KCQkJICAo a2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1jb250ZXh0 KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwt bmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpDQoJCQkgKDE2Nzc3 MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoc2F2ZS1leGN1cnNpb24gKG9yZy1y ZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAgIChraWxsLW5ldyAob3JnLXJlZi1mb3Jt YXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpDQoJCQkgICkNCgkJCSAoMTY3NzczMTkgLiBvcmct cmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEgbmlsICJF bWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVyYWN0aXZlKQ0KCQkJICAob3JnLXJlZi1vcGVuLWNp dGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJICgxNjc3 NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMzAgLiBvcmct cmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYtb3Blbi1u b3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0LXBvaW50 KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNCAu IG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjcgLiBvcmctcmVm LWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkNCgkJCSAobW91c2Ut MyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQtbW91c2Up KQ0KCQkJKQ0KCQkgICAgICAgKCJjaXRlYXV0aG9yIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5j YWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1y ZWYtZm9ybWF0LWNpdGVhdXRob3IgOmNvbXBsZXRlIG9yZy1jaXRlYXV0aG9yLWNvbXBsZXRlLWxp bmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJ CQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vy c2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0 LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAo d2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJp bmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5r LWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJl Zi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3Rp dmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBu aWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChD LXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5 KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFz c3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChp bnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykp KQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4i IChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0 aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50 ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFu ZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAg KHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAo a2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICAp DQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAo MTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkN CgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmli dGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQp DQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3 NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3Jn LXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1w b2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJ CQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1v dXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2Ut MiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAgICAgICgiY2l0ZXRleHQiIDpmb2xs b3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmls KSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtY2l0ZXRleHQgOmNvbXBsZXRlIG9yZy1jaXRl dGV4dC1jb21wbGV0ZS1saW5rDQoJCQk6aGVscC1lY2hvDQoJCQkobGFtYmRhICh3aW5kb3cgb2Jq ZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1vbi1lbnRlcg0K CQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikNCgkJCSAgIChsZXQgKChz IChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11bmRlci1jdXJz b3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmlsbC1wYXJhZ3Jh cGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkgICApDQoJCQkgICkNCgkJCSApDQoJCQk6ZmFjZSBv cmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcA0KCQkJKGtleW1h cCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQ0KCQkJIChTLXJpZ2h0IGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgMSkpDQoJCQkg KFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1jaXRhdGlvbi1s aW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpIChDLWxlZnQgLiBvcmct cmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbA0KCQkJICAiUGFzdGUg a2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2lsbHJpbmcgaXMg YSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLWluc2VydC1rZXktYXQtcG9pbnQg KGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29weSBhbGwgdGhl IGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAob3JnLWVsZW1l bnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkpDQoJCQkgKDE2Nzc3MzM1 IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKGNhciAob3JnLXJlZi1n ZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkNCgkJCSAoMTY3NzczMTggbGFtYmRhIG5pbCAoaW50 ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0 LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgtZW50cnktYXQt cG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xlLXNjaG9sYXIt YXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5IGF0IHBvaW50 IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpIChv cmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpDQoJCQkgKDE2Nzc3MzE1IC4gb3JnLXJlZi13b3Mt Y2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJlbGF0ZWQtYXQt cG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBvaW50KQ0KCQkJ ICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpICgxNjc3NzMzMyAuIG9yZy1y ZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1vcGVuLWNpdGF0 aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRyYS9ib2R5KSAo Zm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0KCQkJIChtb3VzZS0zIC4gb3JnLWZpbmQtZmlsZS1h dC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpDQoJCQkpDQoJCSAgICAgICAo ImNpdGVudW0iIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRlLW9uY2xp Y2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtY2l0ZW51bSA6Y29t cGxldGUgb3JnLWNpdGVudW0tY29tcGxldGUtbGluayA6aGVscC1lY2hvDQoJCQkobGFtYmRhICh3 aW5kb3cgb2JqZWN0IHBvc2l0aW9uKQ0KCQkJICh3aGVuIG9yZy1yZWYtc2hvdy1jaXRhdGlvbi1v bi1lbnRlcg0KCQkJICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciBwb3NpdGlvbikNCgkJCSAg IChsZXQgKChzIChvcmctcmVmLWZvcm1hdC1lbnRyeSAob3JnLXJlZi1nZXQtYmlidGV4LWtleS11 bmRlci1jdXJzb3IpKSkpDQoJCQkgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCBzKSAoZmls bC1wYXJhZ3JhcGgpIChidWZmZXItc3RyaW5nKSkpDQoJCQkgICApDQoJCQkgICkNCgkJCSApDQoJ CQk6ZmFjZSBvcmctcmVmLWNpdGUtbGluay1mYWNlLWZuIDpkaXNwbGF5IGZ1bGwgOmtleW1hcA0K CQkJKGtleW1hcCAoUy11cCAuIG9yZy1yZWYtc29ydC1jaXRhdGlvbi1saW5rKQ0KCQkJIChTLXJp Z2h0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsg MSkpDQoJCQkgKFMtbGVmdCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dhcC1j aXRhdGlvbi1saW5rIC0xKSkNCgkJCSAoQy1yaWdodCAuIG9yZy1yZWYtbmV4dC1rZXkpIChDLWxl ZnQgLiBvcmctcmVmLXByZXZpb3VzLWtleSkNCgkJCSAoMTY3NzczMzcgbGFtYmRhIG5pbA0KCQkJ ICAiUGFzdGUga2V5IGF0IHBvaW50LiBBc3N1bWVzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUga2ls bHJpbmcgaXMgYSBrZXkuIg0KCQkJICAoaW50ZXJhY3RpdmUpIChvcmctcmVmLWluc2VydC1rZXkt YXQtcG9pbnQgKGNhciBraWxsLXJpbmcpKSkNCgkJCSAoMTY3NzczMDMgbGFtYmRhIG5pbCAiQ29w eSBhbGwgdGhlIGtleXMgYXQgcG9pbnQuIiAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAo b3JnLWVsZW1lbnQtcHJvcGVydHkgOnBhdGggKG9yZy1lbGVtZW50LWNvbnRleHQpKSkpDQoJCQkg KDE2Nzc3MzM1IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKGNhciAo b3JnLXJlZi1nZXQtYmlidGV4LWtleS1hbmQtZmlsZSkpKSkNCgkJCSAoMTY3NzczMTggbGFtYmRh IG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAob3JnLXJlZi1vcGVuLWNp dGF0aW9uLWF0LXBvaW50KQ0KCQkJICAgKGtpbGwtbmV3IChvcmctcmVmLWZvcm1hdC1iaWJ0ZXgt ZW50cnktYXQtcG9pbnQpKSkNCgkJCSAgKQ0KCQkJICgxNjc3NzMxOSAuIG9yZy1yZWYtZ29vZ2xl LXNjaG9sYXItYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE3IGxhbWJkYSBuaWwgIkVtYWlsIGVudHJ5 IGF0IHBvaW50IiAoaW50ZXJhY3RpdmUpDQoJCQkgIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQt cG9pbnQpIChvcmctcmVmLWVtYWlsLWJpYnRleC1lbnRyeSkpDQoJCQkgKDE2Nzc3MzE1IC4gb3Jn LXJlZi13b3MtY2l0aW5nLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMzMCAuIG9yZy1yZWYtd29zLXJl bGF0ZWQtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI2IC4gb3JnLXJlZi1vcGVuLW5vdGVzLWF0LXBv aW50KQ0KCQkJICgxNjc3NzMyOCAuIG9yZy1yZWYtb3Blbi1wZGYtYXQtcG9pbnQpICgxNjc3NzMz MyAuIG9yZy1yZWYtb3Blbi11cmwtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzE0IC4gb3JnLXJlZi1v cGVuLWNpdGF0aW9uLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNyAuIG9yZy1yZWYtY2l0ZS1oeWRy YS9ib2R5KSAoZm9sbG93LWxpbmsgLiBtb3VzZS1mYWNlKQ0KCQkJIChtb3VzZS0zIC4gb3JnLWZp bmQtZmlsZS1hdC1tb3VzZSkgKG1vdXNlLTIgLiBvcmctb3Blbi1hdC1tb3VzZSkpDQoJCQkpDQoJ CSAgICAgICAoImNpdGVhbHAqIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYt Y2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWNp dGVhbHAqIDpjb21wbGV0ZSBvcmctY2l0ZWFscCotY29tcGxldGUtbGluaw0KCQkJOmhlbHAtZWNo bw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikNCgkJCSAod2hlbiBvcmctcmVm LXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIg cG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJlZi1mb3JtYXQtZW50cnkgKG9yZy1yZWYt Z2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0KCQkJICAgICh3aXRoLXRlbXAtYnVmZmVy IChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVmZmVyLXN0cmluZykpKQ0KCQkJICAgKQ0K CQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1mbiA6ZGlzcGxh eSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAgLiBvcmctcmVmLXNvcnQtY2l0YXRpb24t bGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtc3dh cC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUp IChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpDQoJCQkgKEMtcmlnaHQgLiBvcmctcmVm LW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpDQoJCQkgKDE2Nzc3MzM3 IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0aGUgZmlyc3Qg dGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiINCgkJCSAgKGludGVyYWN0aXZlKSAob3Jn LXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpDQoJCQkgKDE2Nzc3MzAz IGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIgKGludGVyYWN0aXZlKQ0K CQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmctZWxlbWVudC1j b250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAg KGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUpKSkpDQoJCQkg KDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoc2F2ZS1leGN1cnNpb24g KG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAgIChraWxsLW5ldyAob3JnLXJl Zi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpDQoJCQkgICkNCgkJCSAoMTY3NzczMTkg LiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMxNyBsYW1iZGEg bmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVyYWN0aXZlKQ0KCQkJICAob3JnLXJlZi1v cGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50cnkpKQ0KCQkJ ICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMzAg LiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNiAuIG9yZy1yZWYt b3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9wZW4tcGRmLWF0 LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQ0KCQkJICgxNjc3 NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjcgLiBv cmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFjZSkNCgkJCSAo bW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpIChtb3VzZS0yIC4gb3JnLW9wZW4tYXQt bW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJjaXRlYWxwIiA6Zm9sbG93IChsYW1iZGEgKF8pIChm dW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9y Zy1yZWYtZm9ybWF0LWNpdGVhbHAgOmNvbXBsZXRlIG9yZy1jaXRlYWxwLWNvbXBsZXRlLWxpbmsg OmhlbHAtZWNobw0KCQkJKGxhbWJkYSAod2luZG93IG9iamVjdCBwb3NpdGlvbikNCgkJCSAod2hl biBvcmctcmVmLXNob3ctY2l0YXRpb24tb24tZW50ZXINCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChn b3RvLWNoYXIgcG9zaXRpb24pDQoJCQkgICAobGV0ICgocyAob3JnLXJlZi1mb3JtYXQtZW50cnkg KG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktdW5kZXItY3Vyc29yKSkpKQ0KCQkJICAgICh3aXRoLXRl bXAtYnVmZmVyIChpbnNlcnQgcykgKGZpbGwtcGFyYWdyYXBoKSAoYnVmZmVyLXN0cmluZykpKQ0K CQkJICAgKQ0KCQkJICApDQoJCQkgKQ0KCQkJOmZhY2Ugb3JnLXJlZi1jaXRlLWxpbmstZmFjZS1m biA6ZGlzcGxheSBmdWxsIDprZXltYXANCgkJCShrZXltYXAgKFMtdXAgLiBvcmctcmVmLXNvcnQt Y2l0YXRpb24tbGluaykNCgkJCSAoUy1yaWdodCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKG9y Zy1yZWYtc3dhcC1jaXRhdGlvbi1saW5rIDEpKQ0KCQkJIChTLWxlZnQgbGFtYmRhIG5pbCAoaW50 ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAtMSkpDQoJCQkgKEMtcmlnaHQg LiBvcmctcmVmLW5leHQta2V5KSAoQy1sZWZ0IC4gb3JnLXJlZi1wcmV2aW91cy1rZXkpDQoJCQkg KDE2Nzc3MzM3IGxhbWJkYSBuaWwNCgkJCSAgIlBhc3RlIGtleSBhdCBwb2ludC4gQXNzdW1lcyB0 aGUgZmlyc3QgdGhpbmcgaW4gdGhlIGtpbGxyaW5nIGlzIGEga2V5LiINCgkJCSAgKGludGVyYWN0 aXZlKSAob3JnLXJlZi1pbnNlcnQta2V5LWF0LXBvaW50IChjYXIga2lsbC1yaW5nKSkpDQoJCQkg KDE2Nzc3MzAzIGxhbWJkYSBuaWwgIkNvcHkgYWxsIHRoZSBrZXlzIGF0IHBvaW50LiIgKGludGVy YWN0aXZlKQ0KCQkJICAoa2lsbC1uZXcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpwYXRoIChvcmct ZWxlbWVudC1jb250ZXh0KSkpKQ0KCQkJICgxNjc3NzMzNSBsYW1iZGEgbmlsIChpbnRlcmFjdGl2 ZSkNCgkJCSAgKGtpbGwtbmV3IChjYXIgKG9yZy1yZWYtZ2V0LWJpYnRleC1rZXktYW5kLWZpbGUp KSkpDQoJCQkgKDE2Nzc3MzE4IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKQ0KCQkJICAoc2F2ZS1l eGN1cnNpb24gKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAgIChraWxsLW5l dyAob3JnLXJlZi1mb3JtYXQtYmlidGV4LWVudHJ5LWF0LXBvaW50KSkpDQoJCQkgICkNCgkJCSAo MTY3NzczMTkgLiBvcmctcmVmLWdvb2dsZS1zY2hvbGFyLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMx NyBsYW1iZGEgbmlsICJFbWFpbCBlbnRyeSBhdCBwb2ludCIgKGludGVyYWN0aXZlKQ0KCQkJICAo b3JnLXJlZi1vcGVuLWNpdGF0aW9uLWF0LXBvaW50KSAob3JnLXJlZi1lbWFpbC1iaWJ0ZXgtZW50 cnkpKQ0KCQkJICgxNjc3NzMxNSAuIG9yZy1yZWYtd29zLWNpdGluZy1hdC1wb2ludCkNCgkJCSAo MTY3NzczMzAgLiBvcmctcmVmLXdvcy1yZWxhdGVkLWF0LXBvaW50KQ0KCQkJICgxNjc3NzMyNiAu IG9yZy1yZWYtb3Blbi1ub3Rlcy1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjggLiBvcmctcmVmLW9w ZW4tcGRmLWF0LXBvaW50KSAoMTY3NzczMzMgLiBvcmctcmVmLW9wZW4tdXJsLWF0LXBvaW50KQ0K CQkJICgxNjc3NzMxNCAuIG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkNCgkJCSAoMTY3 NzczMjcgLiBvcmctcmVmLWNpdGUtaHlkcmEvYm9keSkgKGZvbGxvdy1saW5rIC4gbW91c2UtZmFj ZSkNCgkJCSAobW91c2UtMyAuIG9yZy1maW5kLWZpbGUtYXQtbW91c2UpIChtb3VzZS0yIC4gb3Jn LW9wZW4tYXQtbW91c2UpKQ0KCQkJKQ0KCQkgICAgICAgKCJjaXRlYWx0KiIgOmZvbGxvdyAobGFt YmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0KCQkJ OmV4cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRlYWx0KiA6Y29tcGxldGUgb3JnLWNpdGVhbHQqLWNv bXBsZXRlLWxpbmsNCgkJCTpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9z aXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVyDQoJCQkgIChz YXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxldCAoKHMgKG9yZy1y ZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpKSkN CgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkgKGJ1 ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpmYWNlIG9yZy1yZWYt Y2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQkoa2V5bWFwIChTLXVw IC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAo aW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkNCgkJCSAoUy1sZWZ0 IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEp KQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAuIG9yZy1yZWYtcHJl dmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQYXN0ZSBrZXkgYXQg cG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4i DQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtp bGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBh dCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3NzczMzUgbGFtYmRh IG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0 ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2 ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQp DQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkp KQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2lu dCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiIChpbnRl cmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkgKG9yZy1yZWYt ZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmct YXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkN CgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3 MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVu LXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQt cG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpIChmb2xsb3ct bGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNl KSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAgICAgICgiY2l0ZWFs dCIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVuY2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5j dGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmctcmVmLWZvcm1hdC1jaXRlYWx0IDpjb21wbGV0ZSBv cmctY2l0ZWFsdC1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdpbmRvdyBv YmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9uLWVudGVy DQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAgKGxldCAo KHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1 cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFn cmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJCTpmYWNl IG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJCQkoa2V5 bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmlnaHQgbGFt YmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAxKSkNCgkJ CSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNpdGF0aW9u LWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVmdCAuIG9y Zy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkgICJQYXN0 ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxscmluZyBp cyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1hdC1wb2lu dCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0 aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChvcmctZWxl bWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAoMTY3Nzcz MzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChvcmctcmVm LWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEgbmlsIChp bnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0YXRpb24t YXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1h dC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xh ci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkgYXQgcG9p bnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1wb2ludCkg KG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmctcmVmLXdv cy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVsYXRlZC1h dC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9pbnQpDQoJ CQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMzIC4gb3Jn LXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkp IChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmluZC1maWxl LWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJICAgICAg ICgiY2l0ZXAqIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYtY2l0ZS1vbmNs aWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWNpdGVwKiA6Y29t cGxldGUgb3JnLWNpdGVwKi1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8NCgkJCShsYW1iZGEgKHdp bmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9uLW9u LWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJICAg KGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LXVu ZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChmaWxs LXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkNCgkJ CTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFwDQoJ CQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMtcmln aHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGluayAx KSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2FwLWNp dGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMtbGVm dCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJCQkg ICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBraWxs cmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtleS1h dC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJDb3B5 IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3IChv cmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJCSAo MTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2FyIChv cmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1iZGEg bmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4tY2l0 YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRleC1l bnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29nbGUt c2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50cnkg YXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1hdC1w b2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBvcmct cmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3MtcmVs YXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQtcG9p bnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3MzMz IC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVmLW9w ZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5ZHJh L2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmctZmlu ZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkNCgkJ ICAgICAgICgiY2l0ZXAiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3JnLXJlZi1jaXRl LW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3JtYXQtY2l0ZXAg OmNvbXBsZXRlIG9yZy1jaXRlcC1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8NCgkJCShsYW1iZGEg KHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNpdGF0aW9u LW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9uKQ0KCQkJ ICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5 LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0IHMpIChm aWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0KCQkJICkN CgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6a2V5bWFw DQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJCQkgKFMt cmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRpb24tbGlu ayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJlZi1zd2Fw LWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtleSkgKEMt bGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEgbmlsDQoJ CQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBr aWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5zZXJ0LWtl eS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEgbmlsICJD b3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtpbGwtbmV3 IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkpKSkNCgkJ CSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5ldyAoY2Fy IChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMxOCBsYW1i ZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVmLW9wZW4t Y2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0LWJpYnRl eC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJlZi1nb29n bGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1haWwgZW50 cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRhdGlvbi1h dC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3NzczMTUgLiBv cmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJlZi13b3Mt cmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90ZXMtYXQt cG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkgKDE2Nzc3 MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1jaXRlLWh5 ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMgLiBvcmct ZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkNCgkJCSkN CgkJICAgICAgICgiY2l0ZXQqIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxsIG9yZy1yZWYt Y2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYtZm9ybWF0LWNp dGV0KiA6Y29tcGxldGUgb3JnLWNpdGV0Ki1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8NCgkJCShs YW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93LWNp dGF0aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0aW9u KQ0KCQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1iaWJ0 ZXgta2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0 IHMpIChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAgKQ0K CQkJICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVsbCA6 a2V5bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmspDQoJ CQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0YXRp b24tbGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3JnLXJl Zi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0LWtl eSkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1iZGEg bmlsDQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5nIGlu IHRoZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYtaW5z ZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1iZGEg bmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAgKGtp bGwtbmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4dCkp KSkNCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxsLW5l dyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3NzMx OCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmctcmVm LW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9ybWF0 LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3JnLXJl Zi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAiRW1h aWwgZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1jaXRh dGlvbi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3Nzcz MTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3JnLXJl Zi13b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4tbm90 ZXMtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2ludCkg KDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQgLiBv cmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJlZi1j aXRlLWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNlLTMg LiBvcmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNlKSkN CgkJCSkNCgkJICAgICAgICgiY2l0ZXQiIDpmb2xsb3cgKGxhbWJkYSAoXykgKGZ1bmNhbGwgb3Jn LXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gbmlsKSkNCgkJCTpleHBvcnQgb3JnLXJlZi1mb3Jt YXQtY2l0ZXQgOmNvbXBsZXRlIG9yZy1jaXRldC1jb21wbGV0ZS1saW5rIDpoZWxwLWVjaG8NCgkJ CShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJlZi1zaG93 LWNpdGF0aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIHBvc2l0 aW9uKQ0KCQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVmLWdldC1i aWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5z ZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkNCgkJCSAg KQ0KCQkJICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3BsYXkgZnVs bCA6a2V5bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9uLWxpbmsp DQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3YXAtY2l0 YXRpb24tbGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZlKSAob3Jn LXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJlZi1uZXh0 LWtleSkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMzNyBsYW1i ZGEgbmlsDQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0IHRoaW5n IGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9yZy1yZWYt aW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMwMyBsYW1i ZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkNCgkJCSAg KGtpbGwtbmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQtY29udGV4 dCkpKSkNCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkgIChraWxs LW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJICgxNjc3 NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9uIChvcmct cmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1yZWYtZm9y bWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5IC4gb3Jn LXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRhIG5pbCAi RW1haWwgZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYtb3Blbi1j aXRhdGlvbi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJCSAoMTY3 NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMwIC4gb3Jn LXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVmLW9wZW4t bm90ZXMtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1hdC1wb2lu dCkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTQg LiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4gb3JnLXJl Zi1jaXRlLWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkgKG1vdXNl LTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0LW1vdXNl KSkNCgkJCSkNCgkJICAgICAgICgibm9jaXRlIiA6Zm9sbG93IChsYW1iZGEgKF8pIChmdW5jYWxs IG9yZy1yZWYtY2l0ZS1vbmNsaWNrLWZ1bmN0aW9uIG5pbCkpDQoJCQk6ZXhwb3J0IG9yZy1yZWYt Zm9ybWF0LW5vY2l0ZSA6Y29tcGxldGUgb3JnLW5vY2l0ZS1jb21wbGV0ZS1saW5rIDpoZWxwLWVj aG8NCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJl Zi1zaG93LWNpdGF0aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFy IHBvc2l0aW9uKQ0KCQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVm LWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZl ciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkN CgkJCSAgKQ0KCQkJICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3Bs YXkgZnVsbCA6a2V5bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9u LWxpbmspDQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3 YXAtY2l0YXRpb24tbGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZl KSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJl Zi1uZXh0LWtleSkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMz NyBsYW1iZGEgbmlsDQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0 IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9y Zy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMw MyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkN CgkJCSAgKGtpbGwtbmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQt Y29udGV4dCkpKSkNCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkg IChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJ ICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9u IChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1y ZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5 IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRh IG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYt b3Blbi1jaXRhdGlvbi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJ CSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMw IC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVm LW9wZW4tbm90ZXMtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1h dC1wb2ludCkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3 NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4g b3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkg KG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0 LW1vdXNlKSkNCgkJCSkNCgkJICAgICAgICgiY2l0ZSIgOmZvbGxvdyAobGFtYmRhIChfKSAoZnVu Y2FsbCBvcmctcmVmLWNpdGUtb25jbGljay1mdW5jdGlvbiBuaWwpKQ0KCQkJOmV4cG9ydCBvcmct cmVmLWZvcm1hdC1jaXRlIDpjb21wbGV0ZSBvcmctY2l0ZS1jb21wbGV0ZS1saW5rIDpoZWxwLWVj aG8NCgkJCShsYW1iZGEgKHdpbmRvdyBvYmplY3QgcG9zaXRpb24pDQoJCQkgKHdoZW4gb3JnLXJl Zi1zaG93LWNpdGF0aW9uLW9uLWVudGVyDQoJCQkgIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFy IHBvc2l0aW9uKQ0KCQkJICAgKGxldCAoKHMgKG9yZy1yZWYtZm9ybWF0LWVudHJ5IChvcmctcmVm LWdldC1iaWJ0ZXgta2V5LXVuZGVyLWN1cnNvcikpKSkNCgkJCSAgICAod2l0aC10ZW1wLWJ1ZmZl ciAoaW5zZXJ0IHMpIChmaWxsLXBhcmFncmFwaCkgKGJ1ZmZlci1zdHJpbmcpKSkNCgkJCSAgICkN CgkJCSAgKQ0KCQkJICkNCgkJCTpmYWNlIG9yZy1yZWYtY2l0ZS1saW5rLWZhY2UtZm4gOmRpc3Bs YXkgZnVsbCA6a2V5bWFwDQoJCQkoa2V5bWFwIChTLXVwIC4gb3JnLXJlZi1zb3J0LWNpdGF0aW9u LWxpbmspDQoJCQkgKFMtcmlnaHQgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpIChvcmctcmVmLXN3 YXAtY2l0YXRpb24tbGluayAxKSkNCgkJCSAoUy1sZWZ0IGxhbWJkYSBuaWwgKGludGVyYWN0aXZl KSAob3JnLXJlZi1zd2FwLWNpdGF0aW9uLWxpbmsgLTEpKQ0KCQkJIChDLXJpZ2h0IC4gb3JnLXJl Zi1uZXh0LWtleSkgKEMtbGVmdCAuIG9yZy1yZWYtcHJldmlvdXMta2V5KQ0KCQkJICgxNjc3NzMz NyBsYW1iZGEgbmlsDQoJCQkgICJQYXN0ZSBrZXkgYXQgcG9pbnQuIEFzc3VtZXMgdGhlIGZpcnN0 IHRoaW5nIGluIHRoZSBraWxscmluZyBpcyBhIGtleS4iDQoJCQkgIChpbnRlcmFjdGl2ZSkgKG9y Zy1yZWYtaW5zZXJ0LWtleS1hdC1wb2ludCAoY2FyIGtpbGwtcmluZykpKQ0KCQkJICgxNjc3NzMw MyBsYW1iZGEgbmlsICJDb3B5IGFsbCB0aGUga2V5cyBhdCBwb2ludC4iIChpbnRlcmFjdGl2ZSkN CgkJCSAgKGtpbGwtbmV3IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCAob3JnLWVsZW1lbnQt Y29udGV4dCkpKSkNCgkJCSAoMTY3NzczMzUgbGFtYmRhIG5pbCAoaW50ZXJhY3RpdmUpDQoJCQkg IChraWxsLW5ldyAoY2FyIChvcmctcmVmLWdldC1iaWJ0ZXgta2V5LWFuZC1maWxlKSkpKQ0KCQkJ ICgxNjc3NzMxOCBsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkNCgkJCSAgKHNhdmUtZXhjdXJzaW9u IChvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgICAoa2lsbC1uZXcgKG9yZy1y ZWYtZm9ybWF0LWJpYnRleC1lbnRyeS1hdC1wb2ludCkpKQ0KCQkJICApDQoJCQkgKDE2Nzc3MzE5 IC4gb3JnLXJlZi1nb29nbGUtc2Nob2xhci1hdC1wb2ludCkNCgkJCSAoMTY3NzczMTcgbGFtYmRh IG5pbCAiRW1haWwgZW50cnkgYXQgcG9pbnQiIChpbnRlcmFjdGl2ZSkNCgkJCSAgKG9yZy1yZWYt b3Blbi1jaXRhdGlvbi1hdC1wb2ludCkgKG9yZy1yZWYtZW1haWwtYmlidGV4LWVudHJ5KSkNCgkJ CSAoMTY3NzczMTUgLiBvcmctcmVmLXdvcy1jaXRpbmctYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzMw IC4gb3JnLXJlZi13b3MtcmVsYXRlZC1hdC1wb2ludCkNCgkJCSAoMTY3NzczMjYgLiBvcmctcmVm LW9wZW4tbm90ZXMtYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI4IC4gb3JnLXJlZi1vcGVuLXBkZi1h dC1wb2ludCkgKDE2Nzc3MzMzIC4gb3JnLXJlZi1vcGVuLXVybC1hdC1wb2ludCkNCgkJCSAoMTY3 NzczMTQgLiBvcmctcmVmLW9wZW4tY2l0YXRpb24tYXQtcG9pbnQpDQoJCQkgKDE2Nzc3MzI3IC4g b3JnLXJlZi1jaXRlLWh5ZHJhL2JvZHkpIChmb2xsb3ctbGluayAuIG1vdXNlLWZhY2UpDQoJCQkg KG1vdXNlLTMgLiBvcmctZmluZC1maWxlLWF0LW1vdXNlKSAobW91c2UtMiAuIG9yZy1vcGVuLWF0 LW1vdXNlKSkNCgkJCTpzdG9yZSBvcmctcmVmLWJpYnRleC1zdG9yZS1saW5rKQ0KCQkgICAgICAg KCJDcmVmIiA6Zm9sbG93IG9yZy1yZWYtcmVmLWZvbGxvdyA6ZXhwb3J0IG9yZy1yZWYtQ3JlZi1l eHBvcnQgOmNvbXBsZXRlDQoJCQlvcmctcmVmLWNvbXBsZXRlLWxpbmsgOmZhY2Ugb3JnLXJlZi1y ZWYtZmFjZS1mbiA6aGVscC1lY2hvDQoJCQlvcmctcmVmLXJlZi1oZWxwLWVjaG8pDQoJCSAgICAg ICAoImNyZWYiIDpmb2xsb3cgb3JnLXJlZi1yZWYtZm9sbG93IDpleHBvcnQgb3JnLXJlZi1jcmVm LWV4cG9ydCA6Y29tcGxldGUNCgkJCW9yZy1yZWYtY29tcGxldGUtbGluayA6ZmFjZSBvcmctcmVm LXJlZi1mYWNlLWZuIDpoZWxwLWVjaG8NCgkJCW9yZy1yZWYtcmVmLWhlbHAtZWNobykNCgkJICAg ICAgICgiYXV0b3JlZiIgOmZvbGxvdyBvcmctcmVmLXJlZi1mb2xsb3cgOmV4cG9ydCBvcmctcmVm LWF1dG9yZWYtZXhwb3J0IDpjb21wbGV0ZQ0KCQkJb3JnLXJlZi1jb21wbGV0ZS1saW5rIDpmYWNl IG9yZy1yZWYtcmVmLWZhY2UtZm4gOmhlbHAtZWNobw0KCQkJb3JnLXJlZi1yZWYtaGVscC1lY2hv KQ0KCQkgICAgICAgKCJlcXJlZiIgOmZvbGxvdyBvcmctcmVmLXJlZi1mb2xsb3cgOmV4cG9ydCBv cmctcmVmLWVxcmVmLWV4cG9ydCA6Y29tcGxldGUNCgkJCW9yZy1yZWYtY29tcGxldGUtbGluayA6 ZmFjZSBvcmctcmVmLXJlZi1mYWNlLWZuIDpoZWxwLWVjaG8NCgkJCW9yZy1yZWYtcmVmLWhlbHAt ZWNobykNCgkJICAgICAgICgibmFtZXJlZiIgOmZvbGxvdyBvcmctcmVmLXJlZi1mb2xsb3cgOmV4 cG9ydCBvcmctcmVmLWV4cG9ydC1uYW1lcmVmIDpjb21wbGV0ZQ0KCQkJb3JnLXJlZi1jb21wbGV0 ZS1saW5rIDpmYWNlIG9yZy1yZWYtcmVmLWZhY2UtZm4gOmhlbHAtZWNobw0KCQkJb3JnLXJlZi1y ZWYtaGVscC1lY2hvKQ0KCQkgICAgICAgKCJwYWdlcmVmIiA6Zm9sbG93IG9yZy1yZWYtcmVmLWZv bGxvdyA6ZXhwb3J0DQoJCQkjWyhwYXRoIGRlc2MgZm9ybWF0KQ0KCQkJICAiCFwzMDJcMjY3XDIw Mi4AXDMwMFwzMDMJXCJcMjA3XDMwMFwzMDQJXCJcMjA3XDMwNVwyMDciDQoJCQkgIFtmb3JtYXQg cGF0aCAjcw0KCQkJICAgKGhhc2gtdGFibGUgc2l6ZSAyIHRlc3QgZXEgcmVoYXNoLXNpemUgMS41 IHJlaGFzaC10aHJlc2hvbGQgMC44MTI1IHB1cmVjb3B5DQoJCQkgICAgdCBkYXRhIChodG1sIDYg bGF0ZXggMTEpKQ0KCQkJICAgIig8cGFnZXJlZj4lczwvcGFnZXJlZj4pIiAiXFxwYWdlcmVmeyVz fSIgbmlsXQ0KCQkJICAzXQ0KCQkJOmZhY2Ugb3JnLXJlZi1yZWYtZmFjZS1mbiA6Y29tcGxldGUg b3JnLXBhZ2VyZWYtY29tcGxldGUtbGluayA6aGVscC1lY2hvDQoJCQlvcmctcmVmLXJlZi1oZWxw LWVjaG8pDQoJCSAgICAgICAoInJlZiIgOmZvbGxvdyBvcmctcmVmLXJlZi1mb2xsb3cgOmV4cG9y dCBvcmctcmVmLXJlZi1leHBvcnQgOmNvbXBsZXRlDQoJCQlvcmctcmVmLWNvbXBsZXRlLWxpbmsg OmZhY2Ugb3JnLXJlZi1yZWYtZmFjZS1mbiA6aGVscC1lY2hvDQoJCQlvcmctcmVmLXJlZi1oZWxw LWVjaG8pDQoJCSAgICAgICAoImxhYmVsIiA6Zm9sbG93DQoJCQkjWyhsYWJlbCkNCgkJCSAgIlwz MDIIIS5cMzAzXDMwNFwzMDUJXDIxMVwzMDZVXDIwNC4ACVwzMDdWXDIwMy4AXDMxMFwyMDIuAFwz MTEjXDMwMgghXCIpXDIwNyINCgkJCSAgW2xhYmVsIGNvdW50IG9yZy1yZWYtY291bnQtbGFiZWxz IG1lc3NhZ2UgZm9ybWF0ICIlcyBvY2N1cmVuY2UlcyIgMCAxICJzIiAiIl0NCgkJCSAgNg0KCQkJ ICAiT24gY2xpY2tpbmcgY291bnQgdGhlIG51bWJlciBvZiBsYWJlbCB0YWdzIHVzZWQgaW4gdGhl IGJ1ZmZlci5cbkEgbnVtYmVyIGdyZWF0ZXIgdGhhbiBvbmUgbWVhbnMgbXVsdGlwbGUgbGFiZWxz ISJdDQoJCQk6ZXhwb3J0DQoJCQkjWyhrZXl3b3JkIGRlc2MgZm9ybWF0KQ0KCQkJICAiCFwzMDJc MjY3XDIwMi4AXDMwMFwzMDMJXCJcMjA3XDMwMFwzMDQJXCJcMjA3XDMwMFwzMDUJXCJcMjA3XDMw NlwyMDciDQoJCQkgIFtmb3JtYXQNCgkJCSAgIA0KCQkJICAga2V5d29yZA0KCQkJICAgDQoJCQkg ICAjcw0KCQkJICAgDQoJCQkgICAoaGFzaC10YWJsZQ0KCQkJICAgIA0KCQkJCQkJCQkJCQkJCSAg DQoJCQkJCQkJCQkJCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkgICAgDQoJCQkgICAgc2l6ZQ0KCQkJ ICAgIA0KCQkJCQkJCQkJCQkJCSAgDQoJCQkJCQkJCQkJCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkg ICAgDQoJCQkgICAgMw0KCQkJICAgIA0KCQkJCQkJCQkJCQkJCSAgDQoJCQkJCQkJCQkJCQkJICAg IA0KCQkJCQkJCQkJCQkJCQkgICAgDQoJCQkgICAgdGVzdA0KCQkJICAgIA0KCQkJCQkJCQkJCQkJ CSAgDQoJCQkJCQkJCQkJCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkgICAgDQoJCQkgICAgZXENCgkJ CSAgICANCgkJCQkJCQkJCQkJCQkgIA0KCQkJCQkJCQkJCQkJCSAgICANCgkJCQkJCQkJCQkJCQkJ ICAgIA0KCQkJICAgIHJlaGFzaC1zaXplDQoJCQkgICAgDQoJCQkJCQkJCQkJCQkJICANCgkJCQkJ CQkJCQkJCQkgICAgDQoJCQkJCQkJCQkJCQkJCSAgICANCgkJCSAgICAxLjUNCgkJCSAgICANCgkJ CQkJCQkJCQkJCQkgIA0KCQkJCQkJCQkJCQkJCSAgICANCgkJCQkJCQkJCQkJCQkJICAgIA0KCQkJ ICAgIHJlaGFzaC10aHJlc2hvbGQNCgkJCSAgICANCgkJCQkJCQkJCQkJCQkgIA0KCQkJCQkJCQkJ CQkJCSAgICANCgkJCQkJCQkJCQkJCQkJICAgIA0KCQkJICAgIDAuODEyNQ0KCQkJICAgIA0KCQkJ CQkJCQkJCQkJCSAgDQoJCQkJCQkJCQkJCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkgICAgDQoJCQkg ICAgcHVyZWNvcHkNCgkJCSAgICANCgkJCQkJCQkJCQkJCQkgIA0KCQkJCQkJCQkJCQkJCSAgICAN CgkJCQkJCQkJCQkJCQkJICAgIA0KCQkJICAgIHQNCgkJCSAgICANCgkJCQkJCQkJCQkJCQkgIA0K CQkJCQkJCQkJCQkJCSAgICANCgkJCQkJCQkJCQkJCQkJICAgIA0KCQkJICAgIGRhdGENCgkJCSAg ICANCgkJCQkJCQkJCQkJCQkgIA0KCQkJCQkJCQkJCQkJCSAgICANCgkJCQkJCQkJCQkJCQkJICAg IA0KCQkJICAgIChodG1sIDYgbWQgMTEgbGF0ZXggMTYpDQoJCQkgICAgDQoJCQkJCQkJCQkJCQkJ ICANCgkJCQkJCQkJCQkJCQkgICAgDQoJCQkJCQkJCQkJCQkJCSAgICANCgkJCSAgICApDQoJCQkg ICANCgkJCSAgICI8ZGl2IGlkPVwiJXNcIj48L2Rpdj4iICI8YSBuYW1lPVwiJXNcIj48L2E+IiAi XFxsYWJlbHslc30iIG5pbF0NCgkJCSAgM10NCgkJCTpzdG9yZSBvcmctbGFiZWwtc3RvcmUtbGlu ayA6ZmFjZSBvcmctcmVmLWxhYmVsLWZhY2UtZm4gOmhlbHAtZWNobw0KCQkJI1sod2luZG93IG9i amVjdCBwb3NpdGlvbikNCgkJCSAgIlwyMTIIYlwyMTBcMzAzIC5cMzA0XDMwNSEuclxucVwyMTBc MzA2XDIxNgljXDIxMFwzMDcgXDIxMFwzMTAgLVwyMDciDQoJCQkgIFtwb3NpdGlvbg0KCQkJICAg DQoJCQkgICBzDQoJCQkgICANCgkJCSAgIHRlbXAtYnVmZmVyDQoJCQkgICANCgkJCSAgIG9yZy1y ZWYtbGluay1tZXNzYWdlDQoJCQkgICANCgkJCSAgIGdlbmVyYXRlLW5ldy1idWZmZXINCgkJCSAg IA0KCQkJICAgIiAqdGVtcCoiDQoJCQkgICANCgkJCSAgICNbbmlsDQoJCQkgICAgIA0KCQkJCQkJ CQkJCQkJCSAgICAgDQoJCQkJCQkJCQkJCQkJCSAgICAgICANCgkJCQkJCQkJCQkJCQkJCQkJICAg DQoJCQkJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJICAgIA0KCQkJCQkJ CQkJCQkJCQkJCQkJCQkJICAgICAgDQoJCQkgICAgICJcMzAxCCFcMjA1CS5cMzAyCCFcMjA3Ig0K CQkJICAgICANCgkJCQkJCQkJCQkJCQkgICAgIA0KCQkJCQkJCQkJCQkJCQkgICAgICAgDQoJCQkJ CQkJCQkJCQkJCQkJCSAgIA0KCQkJCQkJCQkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQkJ CQkJCSAgICANCgkJCQkJCQkJCQkJCQkJCQkJCQkJCSAgICAgIA0KCQkJICAgICBbdGVtcC1idWZm ZXIgYnVmZmVyLW5hbWUga2lsbC1idWZmZXJdDQoJCQkgICAgIA0KCQkJICAgICANCgkJCSAgICAg DQoJCQkgICAgIA0KCQkJICAgICANCgkJCSAgICAgDQoJCQkJCQkJCQkJCQkJICAgICANCgkJCQkJ CQkJCQkJCQkJICAgICAgIA0KCQkJCQkJCQkJCQkJCQkJCQkgICANCgkJCQkJCQkJCQkJCQkJCQkJ CQkJDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkgICAg ICANCgkJCSAgICAgMl0NCgkJCSAgIA0KCQkJICAgZmlsbC1wYXJhZ3JhcGggYnVmZmVyLXN0cmlu Z10NCgkJCSAgMl0NCgkJCSkNCgkJICAgICAgICgibGlzdC1vZi10YWJsZXMiIDpmb2xsb3cgb3Jn LXJlZi1saXN0LW9mLXRhYmxlcyA6ZXhwb3J0DQoJCQkjWyhrZXl3b3JkIGRlc2MgZm9ybWF0KSAi CFwzMDE9XDIwNQkuXDMwMFwzMDIhXDIwNyINCgkJCSAgW2Zvcm1hdCBsYXRleCAiXFxsaXN0b2Z0 YWJsZXMiXSAyXQ0KCQkJKQ0KCQkgICAgICAgKCJsaXN0LW9mLWZpZ3VyZXMiIDpmb2xsb3cgb3Jn LXJlZi1saXN0LW9mLWZpZ3VyZXMgOmV4cG9ydA0KCQkJI1soa2V5d29yZCBkZXNjIGZvcm1hdCkg IghcMzAxPVwyMDUJLlwzMDBcMzAyIVwyMDciDQoJCQkgIFtmb3JtYXQgbGF0ZXggIlxcbGlzdG9m ZmlndXJlcyJdIDJdDQoJCQkpDQoJCSAgICAgICAoImFkZGJpYnJlc291cmNlIiA6Zm9sbG93IG9y Zy1yZWYtZm9sbG93LWFkZGJpYnJlc291cmNlIDpleHBvcnQNCgkJCSNbKGtleXdvcmQgZGVzYyBm b3JtYXQpDQoJCQkgICIIXDMwMlwyNjdcMjAyLgBcMzAwXDMwMyFcMjA3XDMwMFwzMDQJXCJcMjA3 XDMwNVwyMDciDQoJCQkgIFtmb3JtYXQga2V5d29yZCAjcw0KCQkJICAgKGhhc2gtdGFibGUgc2l6 ZSAyIHRlc3QgZXEgcmVoYXNoLXNpemUgMS41IHJlaGFzaC10aHJlc2hvbGQgMC44MTI1IHB1cmVj b3B5DQoJCQkgICAgdCBkYXRhIChodG1sIDYgbGF0ZXggMTApKQ0KCQkJICAgIiIgIlxcYWRkYmli cmVzb3VyY2V7JXN9IiBuaWxdDQoJCQkgIDNdDQoJCQkpDQoJCSAgICAgICAoImJpYmxpb2dyYXBo eXN0eWxlIiA6ZXhwb3J0DQoJCQkjWyhrZXl3b3JkIGRlc2MgZm9ybWF0KQ0KCQkJICAiCFwzMDI9 XDIwNFxmLghcMzAzPVwyMDMuAFwzMDBcMzA0CVwiXDIwN1wzMDVcMjA3Ig0KCQkJICBbZm9ybWF0 IGtleXdvcmQgbGF0ZXggYmVhbWVyICJcXGJpYmxpb2dyYXBoeXN0eWxleyVzfSIgIiJdIDNdDQoJ CQkpDQoJCSAgICAgICAoInByaW50YmlibGlvZ3JhcGh5IiA6Zm9sbG93IG9yZy1yZWYtb3Blbi1i aWJsaW9ncmFwaHkgOmV4cG9ydA0KCQkJI1soa2V5d29yZCBkZXNjIGZvcm1hdCkgIghcMzAyXDI2 N1wyMDIuAFwzMDMgXDIwN1wzMDQgXDIwNwlcMjA3XDMwNVwyMDciDQoJCQkgIFtmb3JtYXQgb3Jn LXJlZi1wcmludGJpYmxpb2dyYXBoeS1jbWQgI3MNCgkJCSAgIChoYXNoLXRhYmxlIHNpemUgMyB0 ZXN0IGVxIHJlaGFzaC1zaXplIDEuNSByZWhhc2gtdGhyZXNob2xkIDAuODEyNSBwdXJlY29weQ0K CQkJICAgIHQgZGF0YSAob3JnIDYgaHRtbCA5IGxhdGV4IDEyKSkNCgkJCSAgIG9yZy1yZWYtZ2V0 LW9yZy1iaWJsaW9ncmFwaHkgb3JnLXJlZi1nZXQtaHRtbC1iaWJsaW9ncmFwaHkgbmlsXQ0KCQkJ ICAyXQ0KCQkJKQ0KCQkgICAgICAgKCJub2JpYmxpb2dyYXBoeSIgOmZvbGxvdyBvcmctcmVmLW9w ZW4tYmlibGlvZ3JhcGh5IDpleHBvcnQNCgkJCW9yZy1yZWYtbm9iaWJsaW9ncmFwaHktZm9ybWF0 KQ0KCQkgICAgICAgKCJiaWJsaW9ncmFwaHkiIDpmb2xsb3cgb3JnLXJlZi1vcGVuLWJpYmxpb2dy YXBoeSA6ZXhwb3J0DQoJCQlvcmctcmVmLWJpYmxpb2dyYXBoeS1mb3JtYXQgOmNvbXBsZXRlIG9y Zy1iaWJsaW9ncmFwaHktY29tcGxldGUtbGluaw0KCQkJOmhlbHAtZWNobw0KCQkJI1sod2luZG93 IG9iamVjdCBwb3NpdGlvbikNCgkJCSAgIlwyMTIIYlwyMTBcMzAzIC5cMzA0XDMwNSEuclxucVwy MTBcMzA2XDIxNgljXDIxMFwzMDcgXDIxMFwzMTAgLVwyMDciDQoJCQkgIFtwb3NpdGlvbg0KCQkJ ICAgDQoJCQkgICBzDQoJCQkgICANCgkJCSAgIHRlbXAtYnVmZmVyDQoJCQkgICANCgkJCSAgIG9y Zy1yZWYtbGluay1tZXNzYWdlDQoJCQkgICANCgkJCSAgIGdlbmVyYXRlLW5ldy1idWZmZXINCgkJ CSAgIA0KCQkJICAgIiAqdGVtcCoiDQoJCQkgICANCgkJCSAgICNbbmlsDQoJCQkgICAgIA0KCQkJ CQkJCQkJCQkJCSAgICAgDQoJCQkJCQkJCQkJCQkJCSAgICAgICANCgkJCQkJCQkJCQkJCQkJCQkJ ICAgDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJICAgIA0KCQkJ CQkJCQkJCQkJCQkJCQkJCQkJICAgICAgDQoJCQkgICAgICJcMzAxCCFcMjA1CS5cMzAyCCFcMjA3 Ig0KCQkJICAgICANCgkJCQkJCQkJCQkJCQkgICAgIA0KCQkJCQkJCQkJCQkJCQkgICAgICAgDQoJ CQkJCQkJCQkJCQkJCQkJCSAgIA0KCQkJCQkJCQkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJ CQkJCQkJCSAgICANCgkJCQkJCQkJCQkJCQkJCQkJCQkJCSAgICAgIA0KCQkJICAgICBbdGVtcC1i dWZmZXIgYnVmZmVyLW5hbWUga2lsbC1idWZmZXJdDQoJCQkgICAgIA0KCQkJICAgICANCgkJCSAg ICAgDQoJCQkgICAgIA0KCQkJICAgICANCgkJCSAgICAgDQoJCQkJCQkJCQkJCQkJICAgICANCgkJ CQkJCQkJCQkJCQkJICAgICAgIA0KCQkJCQkJCQkJCQkJCQkJCQkgICANCgkJCQkJCQkJCQkJCQkJ CQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkg ICAgICANCgkJCSAgICAgMl0NCgkJCSAgIA0KCQkJICAgZmlsbC1wYXJhZ3JhcGggYnVmZmVyLXN0 cmluZ10NCgkJCSAgMl0NCgkJCTpmYWNlIG9yZy1yZWYtYmlibGlvZ3JhcGh5LWZhY2UtZm4pDQoJ CSAgICAgICAoIkFjcCIgOmZvbGxvdyBvci1mb2xsb3ctYWNyb255bSA6ZmFjZSBvcmctcmVmLWFj cm9ueW0tZmFjZSA6aGVscC1lY2hvDQoJCQlvci1hY3JvbnltLXRvb2x0aXAgOmV4cG9ydA0KCQkJ I1s3NzEgIlwyMTFcMzAxXDI2N1wyMDIuAFwzMDJcMzAzXDMwMEEuI1wyMDdcMzAyXDMwNC5cMjI2 XCJcMjA3Ig0KCQkJICBbKCJBY3AiIC4gIkdsc3BsIikgI3MNCgkJCSAgIChoYXNoLXRhYmxlIHNp emUgMSB0ZXN0IGVxIHJlaGFzaC1zaXplIDEuNSByZWhhc2gtdGhyZXNob2xkIDAuODEyNSBwdXJl Y29weQ0KCQkJICAgIHQgZGF0YSAobGF0ZXggNikpDQoJCQkgICBmb3JtYXQgIlxcJXN7JXN9IiAi JXMiXQ0KCQkJICA3ICJcblxuKGZuIFBBVEggXyBGT1JNQVQpIl0NCgkJCSkNCgkJICAgICAgICgi YWNwIiA6Zm9sbG93IG9yLWZvbGxvdy1hY3JvbnltIDpmYWNlIG9yZy1yZWYtYWNyb255bS1mYWNl IDpoZWxwLWVjaG8NCgkJCW9yLWFjcm9ueW0tdG9vbHRpcCA6ZXhwb3J0DQoJCQkjWzc3MSAiXDIx MVwzMDFcMjY3XDIwMi4AXDMwMlwzMDNcMzAwQS4jXDIwN1wzMDJcMzA0LlwyMjZcIlwyMDciDQoJ CQkgIFsoImFjcCIgLiAiZ2xzcGwiKSAjcw0KCQkJICAgKGhhc2gtdGFibGUgc2l6ZSAxIHRlc3Qg ZXEgcmVoYXNoLXNpemUgMS41IHJlaGFzaC10aHJlc2hvbGQgMC44MTI1IHB1cmVjb3B5DQoJCQkg ICAgdCBkYXRhIChsYXRleCA2KSkNCgkJCSAgIGZvcm1hdCAiXFwlc3slc30iICIlcyJdDQoJCQkg IDcgIlxuXG4oZm4gUEFUSCBfIEZPUk1BVCkiXQ0KCQkJKQ0KCQkgICAgICAgKCJBYyIgOmZvbGxv dyBvci1mb2xsb3ctYWNyb255bSA6ZmFjZSBvcmctcmVmLWFjcm9ueW0tZmFjZSA6aGVscC1lY2hv DQoJCQlvci1hY3JvbnltLXRvb2x0aXAgOmV4cG9ydA0KCQkJI1s3NzEgIlwyMTFcMzAxXDI2N1wy MDIuAFwzMDJcMzAzXDMwMEEuI1wyMDdcMzAyXDMwNC5cMjI2XCJcMjA3Ig0KCQkJICBbKCJBYyIg LiAiR2xzIikgI3MNCgkJCSAgIChoYXNoLXRhYmxlIHNpemUgMSB0ZXN0IGVxIHJlaGFzaC1zaXpl IDEuNSByZWhhc2gtdGhyZXNob2xkIDAuODEyNSBwdXJlY29weQ0KCQkJICAgIHQgZGF0YSAobGF0 ZXggNikpDQoJCQkgICBmb3JtYXQgIlxcJXN7JXN9IiAiJXMiXQ0KCQkJICA3ICJcblxuKGZuIFBB VEggXyBGT1JNQVQpIl0NCgkJCSkNCgkJICAgICAgICgiYWMiIDpmb2xsb3cgb3ItZm9sbG93LWFj cm9ueW0gOmZhY2Ugb3JnLXJlZi1hY3JvbnltLWZhY2UgOmhlbHAtZWNobw0KCQkJb3ItYWNyb255 bS10b29sdGlwIDpleHBvcnQNCgkJCSNbNzcxICJcMjExXDMwMVwyNjdcMjAyLgBcMzAyXDMwM1wz MDBBLiNcMjA3XDMwMlwzMDQuXDIyNlwiXDIwNyINCgkJCSAgWygiYWMiIC4gImdscyIpICNzDQoJ CQkgICAoaGFzaC10YWJsZSBzaXplIDEgdGVzdCBlcSByZWhhc2gtc2l6ZSAxLjUgcmVoYXNoLXRo cmVzaG9sZCAwLjgxMjUgcHVyZWNvcHkNCgkJCSAgICB0IGRhdGEgKGxhdGV4IDYpKQ0KCQkJICAg Zm9ybWF0ICJcXCVzeyVzfSIgIiVzIl0NCgkJCSAgNyAiXG5cbihmbiBQQVRIIF8gRk9STUFUKSJd DQoJCQkpDQoJCSAgICAgICAoImFjcmZ1bGwiIDpmb2xsb3cgb3ItZm9sbG93LWFjcm9ueW0gOmZh Y2Ugb3JnLXJlZi1hY3JvbnltLWZhY2UgOmhlbHAtZWNobw0KCQkJb3ItYWNyb255bS10b29sdGlw IDpleHBvcnQNCgkJCSNbNzcxICJcMjExXDMwMVwyNjdcMjAyLgBcMzAyXDMwM1wzMDBBLiNcMjA3 XDMwMlwzMDQuXDIyNlwiXDIwNyINCgkJCSAgWygiYWNyZnVsbCIgLiAiYWNyZnVsbCIpICNzDQoJ CQkgICAoaGFzaC10YWJsZSBzaXplIDEgdGVzdCBlcSByZWhhc2gtc2l6ZSAxLjUgcmVoYXNoLXRo cmVzaG9sZCAwLjgxMjUgcHVyZWNvcHkNCgkJCSAgICB0IGRhdGEgKGxhdGV4IDYpKQ0KCQkJICAg Zm9ybWF0ICJcXCVzeyVzfSIgIiVzIl0NCgkJCSAgNyAiXG5cbihmbiBQQVRIIF8gRk9STUFUKSJd DQoJCQkpDQoJCSAgICAgICAoImFjcmxvbmciIDpmb2xsb3cgb3ItZm9sbG93LWFjcm9ueW0gOmZh Y2Ugb3JnLXJlZi1hY3JvbnltLWZhY2UgOmhlbHAtZWNobw0KCQkJb3ItYWNyb255bS10b29sdGlw IDpleHBvcnQNCgkJCSNbNzcxICJcMjExXDMwMVwyNjdcMjAyLgBcMzAyXDMwM1wzMDBBLiNcMjA3 XDMwMlwzMDQuXDIyNlwiXDIwNyINCgkJCSAgWygiYWNybG9uZyIgLiAiYWNybG9uZyIpICNzDQoJ CQkgICAoaGFzaC10YWJsZSBzaXplIDEgdGVzdCBlcSByZWhhc2gtc2l6ZSAxLjUgcmVoYXNoLXRo cmVzaG9sZCAwLjgxMjUgcHVyZWNvcHkNCgkJCSAgICB0IGRhdGEgKGxhdGV4IDYpKQ0KCQkJICAg Zm9ybWF0ICJcXCVzeyVzfSIgIiVzIl0NCgkJCSAgNyAiXG5cbihmbiBQQVRIIF8gRk9STUFUKSJd DQoJCQkpDQoJCSAgICAgICAoImFjcnNob3J0IiA6Zm9sbG93IG9yLWZvbGxvdy1hY3JvbnltIDpm YWNlIG9yZy1yZWYtYWNyb255bS1mYWNlIDpoZWxwLWVjaG8NCgkJCW9yLWFjcm9ueW0tdG9vbHRp cCA6ZXhwb3J0DQoJCQkjWzc3MSAiXDIxMVwzMDFcMjY3XDIwMi4AXDMwMlwzMDNcMzAwQS4jXDIw N1wzMDJcMzA0LlwyMjZcIlwyMDciDQoJCQkgIFsoImFjcnNob3J0IiAuICJhY3JzaG9ydCIpICNz DQoJCQkgICAoaGFzaC10YWJsZSBzaXplIDEgdGVzdCBlcSByZWhhc2gtc2l6ZSAxLjUgcmVoYXNo LXRocmVzaG9sZCAwLjgxMjUgcHVyZWNvcHkNCgkJCSAgICB0IGRhdGEgKGxhdGV4IDYpKQ0KCQkJ ICAgZm9ybWF0ICJcXCVzeyVzfSIgIiVzIl0NCgkJCSAgNyAiXG5cbihmbiBQQVRIIF8gRk9STUFU KSJdDQoJCQkpDQoJCSAgICAgICAoImdsc2xpbmsiIDpmb2xsb3cgb3ItZm9sbG93LWdsb3NzYXJ5 IDpmYWNlIG9yZy1yZWYtZ2xvc3NhcnktZmFjZSA6aGVscC1lY2hvDQoJCQlvci1nbG9zc2FyeS10 b29sdGlwIDpleHBvcnQNCgkJCSNbNzcxICJcMjExXDMwMFwyNjdcMjAyXGYuXDMwMVwzMDIuBCNc MjA3XDMwMVwzMDMuXCJcMjA3Ig0KCQkJICBbI3MNCgkJCSAgIChoYXNoLXRhYmxlIHNpemUgMSB0 ZXN0IGVxIHJlaGFzaC1zaXplIDEuNSByZWhhc2gtdGhyZXNob2xkIDAuODEyNSBwdXJlY29weQ0K CQkJICAgIHQgZGF0YSAobGF0ZXggNikpDQoJCQkgICBmb3JtYXQgIlxcZ2xzbGlua3slc317JXN9 IiAiJXMiXQ0KCQkJICA3ICJcblxuKGZuIFBBVEggREVTQyBGT1JNQVQpIl0NCgkJCSkNCgkJICAg ICAgICgiZ2xzZGVzYyIgOmZvbGxvdyBvci1mb2xsb3ctZ2xvc3NhcnkgOmZhY2Ugb3JnLXJlZi1n bG9zc2FyeS1mYWNlIDpoZWxwLWVjaG8NCgkJCW9yLWdsb3NzYXJ5LXRvb2x0aXAgOmV4cG9ydA0K CQkJI1s3NzEgIlwyMTFcMzAxXDI2N1wyMDJcZi5cMzAyXDMwM1wzMDAuI1wyMDdcMzAyXDMwNC5c IlwyMDciDQoJCQkgIFsiZ2xzZGVzYyIgI3MNCgkJCSAgIChoYXNoLXRhYmxlIHNpemUgMSB0ZXN0 IGVxIHJlaGFzaC1zaXplIDEuNSByZWhhc2gtdGhyZXNob2xkIDAuODEyNSBwdXJlY29weQ0KCQkJ ICAgIHQgZGF0YSAobGF0ZXggNikpDQoJCQkgICBmb3JtYXQgIlxcJXN7JXN9IiAiJXMiXQ0KCQkJ ICA3ICJcblxuKGZuIFBBVEggXyBGT1JNQVQpIl0NCgkJCSkNCgkJICAgICAgICgiZ2xzc3ltYm9s IiA6Zm9sbG93IG9yLWZvbGxvdy1nbG9zc2FyeSA6ZmFjZSBvcmctcmVmLWdsb3NzYXJ5LWZhY2Ug OmhlbHAtZWNobw0KCQkJb3ItZ2xvc3NhcnktdG9vbHRpcCA6ZXhwb3J0DQoJCQkjWzc3MSAiXDIx MVwzMDFcMjY3XDIwMlxmLlwzMDJcMzAzXDMwMC4jXDIwN1wzMDJcMzA0LlwiXDIwNyINCgkJCSAg WyJnbHNzeW1ib2wiICNzDQoJCQkgICAoaGFzaC10YWJsZSBzaXplIDEgdGVzdCBlcSByZWhhc2gt c2l6ZSAxLjUgcmVoYXNoLXRocmVzaG9sZCAwLjgxMjUgcHVyZWNvcHkNCgkJCSAgICB0IGRhdGEg KGxhdGV4IDYpKQ0KCQkJICAgZm9ybWF0ICJcXCVzeyVzfSIgIiVzIl0NCgkJCSAgNyAiXG5cbihm biBQQVRIIF8gRk9STUFUKSJdDQoJCQkpDQoJCSAgICAgICAoIkdsc3BsIiA6Zm9sbG93IG9yLWZv bGxvdy1nbG9zc2FyeSA6ZmFjZSBvcmctcmVmLWdsb3NzYXJ5LWZhY2UgOmhlbHAtZWNobw0KCQkJ b3ItZ2xvc3NhcnktdG9vbHRpcCA6ZXhwb3J0DQoJCQkjWzc3MSAiXDIxMVwzMDFcMjY3XDIwMlxm LlwzMDJcMzAzXDMwMC4jXDIwN1wzMDJcMzA0LlwiXDIwNyINCgkJCSAgWyJHbHNwbCIgI3MNCgkJ CSAgIChoYXNoLXRhYmxlIHNpemUgMSB0ZXN0IGVxIHJlaGFzaC1zaXplIDEuNSByZWhhc2gtdGhy ZXNob2xkIDAuODEyNSBwdXJlY29weQ0KCQkJICAgIHQgZGF0YSAobGF0ZXggNikpDQoJCQkgICBm b3JtYXQgIlxcJXN7JXN9IiAiJXMiXQ0KCQkJICA3ICJcblxuKGZuIFBBVEggXyBGT1JNQVQpIl0N CgkJCSkNCgkJICAgICAgICgiR2xzIiA6Zm9sbG93IG9yLWZvbGxvdy1nbG9zc2FyeSA6ZmFjZSBv cmctcmVmLWdsb3NzYXJ5LWZhY2UgOmhlbHAtZWNobw0KCQkJb3ItZ2xvc3NhcnktdG9vbHRpcCA6 ZXhwb3J0DQoJCQkjWzc3MSAiXDIxMVwzMDFcMjY3XDIwMlxmLlwzMDJcMzAzXDMwMC4jXDIwN1wz MDJcMzA0LlwiXDIwNyINCgkJCSAgWyJHbHMiICNzDQoJCQkgICAoaGFzaC10YWJsZSBzaXplIDEg dGVzdCBlcSByZWhhc2gtc2l6ZSAxLjUgcmVoYXNoLXRocmVzaG9sZCAwLjgxMjUgcHVyZWNvcHkN CgkJCSAgICB0IGRhdGEgKGxhdGV4IDYpKQ0KCQkJICAgZm9ybWF0ICJcXCVzeyVzfSIgIiVzIl0N CgkJCSAgNyAiXG5cbihmbiBQQVRIIF8gRk9STUFUKSJdDQoJCQkpDQoJCSAgICAgICAoImdsc3Bs IiA6Zm9sbG93IG9yLWZvbGxvdy1nbG9zc2FyeSA6ZmFjZSBvcmctcmVmLWdsb3NzYXJ5LWZhY2Ug OmhlbHAtZWNobw0KCQkJb3ItZ2xvc3NhcnktdG9vbHRpcCA6ZXhwb3J0DQoJCQkjWzc3MSAiXDIx MVwzMDFcMjY3XDIwMlxmLlwzMDJcMzAzXDMwMC4jXDIwN1wzMDJcMzA0LlwiXDIwNyINCgkJCSAg WyJnbHNwbCIgI3MNCgkJCSAgIChoYXNoLXRhYmxlIHNpemUgMSB0ZXN0IGVxIHJlaGFzaC1zaXpl IDEuNSByZWhhc2gtdGhyZXNob2xkIDAuODEyNSBwdXJlY29weQ0KCQkJICAgIHQgZGF0YSAobGF0 ZXggNikpDQoJCQkgICBmb3JtYXQgIlxcJXN7JXN9IiAiJXMiXQ0KCQkJICA3ICJcblxuKGZuIFBB VEggXyBGT1JNQVQpIl0NCgkJCSkNCgkJICAgICAgICgiZ2xzIiA6Zm9sbG93IG9yLWZvbGxvdy1n bG9zc2FyeSA6ZmFjZSBvcmctcmVmLWdsb3NzYXJ5LWZhY2UgOmhlbHAtZWNobw0KCQkJb3ItZ2xv c3NhcnktdG9vbHRpcCA6ZXhwb3J0DQoJCQkjWzc3MSAiXDIxMVwzMDFcMjY3XDIwMlxmLlwzMDJc MzAzXDMwMC4jXDIwN1wzMDJcMzA0LlwiXDIwNyINCgkJCSAgWyJnbHMiICNzDQoJCQkgICAoaGFz aC10YWJsZSBzaXplIDEgdGVzdCBlcSByZWhhc2gtc2l6ZSAxLjUgcmVoYXNoLXRocmVzaG9sZCAw LjgxMjUgcHVyZWNvcHkNCgkJCSAgICB0IGRhdGEgKGxhdGV4IDYpKQ0KCQkJICAgZm9ybWF0ICJc XCVzeyVzfSIgIiVzIl0NCgkJCSAgNyAiXG5cbihmbiBQQVRIIF8gRk9STUFUKSJdDQoJCQkpDQoJ CSAgICAgICAoImJpYnRleCIgOmZvbGxvdyBvcmctYmlidGV4LW9wZW4gOnN0b3JlIG9yZy1iaWJ0 ZXgtc3RvcmUtbGluaykNCgkJICAgICAgICgicGRmdmlldyIgOmZvbGxvdyBvcmctcGRmdmlldy1v cGVuIDpjb21wbGV0ZSBvcmctcGRmdmlldy1jb21wbGV0ZS1saW5rIDpzdG9yZQ0KCQkJb3JnLXBk ZnZpZXctc3RvcmUtbGluayA6ZXhwb3J0IGpvYy1vcmctcGRmdmlldy1wYWdlLWV4cG9ydCkNCgkJ ICAgICAgICgiYm9va21hcmstb3RoZXItd2luIiA6Zm9sbG93IGJvb2ttYXJrLWp1bXAtb3RoZXIt d2luZG93IDpleHBvcnQgbmlsKQ0KCQkgICAgICAgKCJib29rbWFyayIgOmZvbGxvdyBib29rbWFy ay1qdW1wIDpleHBvcnQgbmlsKSAoImZpbGUrc3lzIikgKCJmaWxlK2VtYWNzIikNCgkJICAgICAg ICgic2hlbGwiIDpmb2xsb3cgb3JnLWxpbmstLW9wZW4tc2hlbGwpDQoJCSAgICAgICAoIm5ld3Mi IDpmb2xsb3cNCgkJCSNbMjU3ICJcMzAxXDMwMFwzMDIuUSFcMjA3IiBbIm5ld3MiIGJyb3dzZS11 cmwgIjoiXSA1ICJcblxuKGZuIFVSTCkiXSkNCgkJICAgICAgICgibWFpbHRvIiA6Zm9sbG93DQoJ CQkjWzI1NyAiXDMwMVwzMDBcMzAyLlEhXDIwNyIgWyJtYWlsdG8iIGJyb3dzZS11cmwgIjoiXSA1 ICJcblxuKGZuIFVSTCkiXSkNCgkJICAgICAgICgiaHR0cHMiIDpmb2xsb3cNCgkJCSNbMjU3ICJc MzAxXDMwMFwzMDIuUSFcMjA3IiBbImh0dHBzIiBicm93c2UtdXJsICI6Il0gNSAiXG5cbihmbiBV UkwpIl0pDQoJCSAgICAgICAoImh0dHAiIDpmb2xsb3cNCgkJCSNbMjU3ICJcMzAxXDMwMFwzMDIu USFcMjA3IiBbImh0dHAiIGJyb3dzZS11cmwgIjoiXSA1ICJcblxuKGZuIFVSTCkiXSkNCgkJICAg ICAgICgiZnRwIiA6Zm9sbG93DQoJCQkjWzI1NyAiXDMwMVwzMDBcMzAyLlEhXDIwNyIgWyJmdHAi IGJyb3dzZS11cmwgIjoiXSA1ICJcblxuKGZuIFVSTCkiXSkNCgkJICAgICAgICgiaGVscCIgOmZv bGxvdyBvcmctbGluay0tb3Blbi1lbGlzcCkgKCJmaWxlIiA6Y29tcGxldGUgb3JnLWxpbmstY29t cGxldGUtZmlsZSkNCgkJICAgICAgICgiZWxpc3AiIDpmb2xsb3cgb3JnLWxpbmstLW9wZW4tZWxp c3ApDQoJCSAgICAgICAoImRvaSIgOmZvbGxvdyBkb2ktbGluay1tZW51IDpleHBvcnQNCgkJCSNb KGRvaSBkZXNjIGZvcm1hdCkNCgkJCSAgIghcMzA0XDI2N1wyMDIgLlwzMDBcMzA1CVxuC1wyMDYu AFwzMDZcblAkXDIwN1wzMDBcMzA3CVxuC1wyMDYuAFwzMDZcblAkXDIwN1wzMTBcMjA3Ig0KCQkJ ICBbZm9ybWF0DQoJCQkgICANCgkJCSAgIGRvaS11dGlscy1keC1kb2ktb3JnLXVybA0KCQkJICAg DQoJCQkgICBkb2kNCgkJCSAgIA0KCQkJICAgZGVzYw0KCQkJICAgDQoJCQkgICAjcw0KCQkJICAg DQoJCQkgICAoaGFzaC10YWJsZQ0KCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkJCSAgICANCgkJCQkJ CQkJCQkJCQkJCQkgICAgICANCgkJCQkJCQkJCQkJCQkJCQkJICAgDQoJCQkJCQkJCQkJCQkJCQkJ CSAgICAgICANCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJICAgIHNpemUNCgkJCSAgICANCgkJ CQkJCQkJCQkJCQkJCQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJICAgICAgDQoJCQkJCQkJCQkJCQkJ CQkJCSAgIA0KCQkJCQkJCQkJCQkJCQkJCQkgICAgICAgDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkN CgkJCSAgICAyDQoJCQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkJ CSAgICAgIA0KCQkJCQkJCQkJCQkJCQkJCQkgICANCgkJCQkJCQkJCQkJCQkJCQkJICAgICAgIA0K CQkJCQkJCQkJCQkJCQkJCQkJCQkJDQoJCQkgICAgdGVzdA0KCQkJICAgIA0KCQkJCQkJCQkJCQkJ CQkJCSAgICANCgkJCQkJCQkJCQkJCQkJCQkgICAgICANCgkJCQkJCQkJCQkJCQkJCQkJICAgDQoJ CQkJCQkJCQkJCQkJCQkJCSAgICAgICANCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJICAgIGVx DQoJCQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkJCSAgICAgIA0K CQkJCQkJCQkJCQkJCQkJCQkgICANCgkJCQkJCQkJCQkJCQkJCQkJICAgICAgIA0KCQkJCQkJCQkJ CQkJCQkJCQkJCQkJDQoJCQkgICAgcmVoYXNoLXNpemUNCgkJCSAgICANCgkJCQkJCQkJCQkJCQkJ CQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJICAgICAgDQoJCQkJCQkJCQkJCQkJCQkJCSAgIA0KCQkJ CQkJCQkJCQkJCQkJCQkgICAgICAgDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCgkJCSAgICAxLjUN CgkJCSAgICANCgkJCQkJCQkJCQkJCQkJCQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJICAgICAgDQoJ CQkJCQkJCQkJCQkJCQkJCSAgIA0KCQkJCQkJCQkJCQkJCQkJCQkgICAgICAgDQoJCQkJCQkJCQkJ CQkJCQkJCQkJCQkNCgkJCSAgICByZWhhc2gtdGhyZXNob2xkDQoJCQkgICAgDQoJCQkJCQkJCQkJ CQkJCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkJCSAgICAgIA0KCQkJCQkJCQkJCQkJCQkJCQkgICAN CgkJCQkJCQkJCQkJCQkJCQkJICAgICAgIA0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJDQoJCQkgICAg MC44MTI1DQoJCQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkJCSAg ICAgIA0KCQkJCQkJCQkJCQkJCQkJCQkgICANCgkJCQkJCQkJCQkJCQkJCQkJICAgICAgIA0KCQkJ CQkJCQkJCQkJCQkJCQkJCQkJDQoJCQkgICAgcHVyZWNvcHkNCgkJCSAgICANCgkJCQkJCQkJCQkJ CQkJCQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJICAgICAgDQoJCQkJCQkJCQkJCQkJCQkJCSAgIA0K CQkJCQkJCQkJCQkJCQkJCQkgICAgICAgDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCgkJCSAgICB0 DQoJCQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkJCSAgICAgIA0K CQkJCQkJCQkJCQkJCQkJCQkgICANCgkJCQkJCQkJCQkJCQkJCQkJICAgICAgIA0KCQkJCQkJCQkJ CQkJCQkJCQkJCQkJDQoJCQkgICAgZGF0YQ0KCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkJCSAgICAN CgkJCQkJCQkJCQkJCQkJCQkgICAgICANCgkJCQkJCQkJCQkJCQkJCQkJICAgDQoJCQkJCQkJCQkJ CQkJCQkJCSAgICAgICANCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJICAgIChodG1sIDYgbGF0 ZXggMTkpDQoJCQkgICAgDQoJCQkJCQkJCQkJCQkJCQkJICAgIA0KCQkJCQkJCQkJCQkJCQkJCSAg ICAgIA0KCQkJCQkJCQkJCQkJCQkJCQkgICANCgkJCQkJCQkJCQkJCQkJCQkJICAgICAgIA0KCQkJ CQkJCQkJCQkJCQkJCQkJCQkJDQoJCQkgICAgKQ0KCQkJICAgDQoJCQkgICAiPGEgaHJlZj1cIiVz JXNcIj4lczwvYT4iICJkb2k6IiAiXFxocmVmeyVzJXN9eyVzfSIgbmlsXQ0KCQkJICA2XQ0KCQkJ KQ0KCQkgICAgICAgKQ0KIG9yZy1idWxsZXRzLWJ1bGxldC1saXN0ICcoIuKXiSIgIuKXiyIgIuKc uCIgIuKcvyIgIuKZoCIgIuKZoyIpDQogb3JnLWxhdGV4LWZvcm1hdC1oZWFkbGluZS1mdW5jdGlv biAnb3JnLWxhdGV4LWZvcm1hdC1oZWFkbGluZS1kZWZhdWx0LWZ1bmN0aW9uDQogb3JnLWxpbmst ZWxpc3AtY29uZmlybS1mdW5jdGlvbiAneWVzLW9yLW5vLXANCiBvcmctbGF0ZXgtZm9ybWF0LWlu bGluZXRhc2stZnVuY3Rpb24gJ29yZy1sYXRleC1mb3JtYXQtaW5saW5ldGFzay1kZWZhdWx0LWZ1 bmN0aW9uDQogb3JnLXRhYi1iZWZvcmUtdGFiLWVtdWxhdGlvbi1ob29rICcob3JnLXRlbXBvLWNv bXBsZXRlLXRhZykNCiBvcmctaHRtbC1mb3JtYXQtZHJhd2VyLWZ1bmN0aW9uICNbNTE0ICJcMjA3 IiBbXSAzICJcblxuKGZuIE5BTUUgQ09OVEVOVFMpIl0NCiBvcmctcmVmLWdldC1wZGYtZmlsZW5h bWUtZnVuY3Rpb24gJ29yZy1yZWYtZ2V0LXBkZi1maWxlbmFtZQ0KIG9yZy1odG1sLWZvcm1hdC1o ZWFkbGluZS1mdW5jdGlvbiAnb3JnLWh0bWwtZm9ybWF0LWhlYWRsaW5lLWRlZmF1bHQtZnVuY3Rp b24NCiBvcmctc3JjLXdpbmRvdy1zZXR1cCAnc3BsaXQtd2luZG93LWJlbG93DQogb3JnLWNvbmZp cm0tYmFiZWwtZXZhbHVhdGUgbmlsDQogb3JnLXJlZi1jaXRlLW9uY2xpY2stZnVuY3Rpb24gJ29y Zy1yZWYtY2l0ZS1jbGljay1oZWxtDQogb3JnLXJlZi1ub3Rlcy1mdW5jdGlvbiAnb3JnLXJlZi1u b3Rlcy1mdW5jdGlvbi1vbmUtZmlsZQ0KIG9yZy11c2Utc3BlZWQtY29tbWFuZHMgdA0KIG9yZy10 YWdzLWV4Y2x1ZGUtZnJvbS1pbmhlcml0YW5jZSAnKCJTVCIpDQogb3JnLWxhdGV4LWJpYi1jb21w aWxlciAiYmlibGF0ZXgiDQogb3JnLWluc2VydC1oZWFkaW5nLWhvb2sgJyhqb2Mtb3JnLWNyZWF0 aW9uLXRpbWUpDQogKQ0K