From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Mauger Newsgroups: gmane.emacs.devel Subject: [patch] SQL enhancements Date: Thu, 15 Apr 2010 21:14:40 -0700 (PDT) Message-ID: <313753.60852.qm@web62504.mail.re1.yahoo.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0-264348697-1271391280=:60852" X-Trace: dough.gmane.org 1271391368 10542 80.91.229.12 (16 Apr 2010 04:16:08 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 16 Apr 2010 04:16:08 +0000 (UTC) To: Emacs Devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Apr 16 06:16:06 2010 connect(): No such file or directory Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1O2cxH-00011J-5t for ged-emacs-devel@m.gmane.org; Fri, 16 Apr 2010 06:16:06 +0200 Original-Received: from localhost ([127.0.0.1]:47490 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O2cxF-0004PY-FH for ged-emacs-devel@m.gmane.org; Fri, 16 Apr 2010 00:14:57 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O2cx7-0004PG-GS for emacs-devel@gnu.org; Fri, 16 Apr 2010 00:14:49 -0400 Original-Received: from [140.186.70.92] (port=60681 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O2cx1-0004Ol-V8 for emacs-devel@gnu.org; Fri, 16 Apr 2010 00:14:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O2cwz-0001E6-Vc for emacs-devel@gnu.org; Fri, 16 Apr 2010 00:14:43 -0400 Original-Received: from web62504.mail.re1.yahoo.com ([69.147.75.96]:22427) by eggs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1O2cwz-0001Dv-Mp for emacs-devel@gnu.org; Fri, 16 Apr 2010 00:14:41 -0400 Original-Received: (qmail 61180 invoked by uid 60001); 16 Apr 2010 04:14:40 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1271391280; bh=wCpcyf3D45400gF/+wVk+ly6NtN7Bi8RZgLLdHOBrjs=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=zf8zY+ZyfwPWR6b5qg85CMjuJ1SbZiEj5035QbqqhzpJyvVKMrZ2rboosHaqg8SbSXySKxhq/Y/E5w9G9++85qBlKAXgDZ9MZ8V+Nvl8M1FZtfmhVG9Q+gkTFbNL1yRcjRcljE21/IKIMWPF6padarfb3RQH++t0wE4+lbjiW2Y= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=xtYzBuXSkhTkQHqQZ57rorH1qETMNppEa+qxf5MC32d+GXJlYEE/rXO/bbfvEPEyIGHk6fgqLRF7S/Qw/WRVMa8hRH60yPfhhWfcRX92kAU2SeFpg2tLL14jfvvt/LKIhxOa8S/h33+yf29oua5wsrsUoxbyooPX40DJnT4t2I0=; X-YMail-OSG: NA4NH_MVM1nx__I4GAzPQxwXhQAt8plCLLFtUyNKur_L_iK dkI_Uey.qjkNbA54M9A99T8kJlEEmvpExZagpvcO9g5iNwAXFUVsdo4TNz9K r709bisYmzUPVOSb7S2tXNLWMBFF8nZuac4e1F8jPsH77rq1XLbWLnE3XV9h LWHfISumj7h8ZZnyycc68hPLNF20jpITrvO7vcui_x7zSpo5foiYt2p8CGIS gDU7SoLmMDU1EWRTQ1Ydot57C29sVqjde6gYIYNxtLnTJPnlwmQDroA182nQ Am26EQZS_UOK4LKy845n5Dlaa3YcM5QxXfAH6QG7cD2gTavEkflvknEBa1BK xi.n5pY.GvUUSZjLVAuKuCYHl2Q-- Original-Received: from [98.216.52.54] by web62504.mail.re1.yahoo.com via HTTP; Thu, 15 Apr 2010 21:14:40 PDT X-Mailer: YahooMailRC/348.5 YahooMailWebService/0.8.100.260964 X-detected-operating-system: by eggs.gnu.org: FreeBSD 6.x (1) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:123745 Archived-At: --0-264348697-1271391280=:60852 Content-Type: text/plain; charset=us-ascii Since my employer has decided that they no longer need my services, I've got time to dedicate to Emacs! Attached is an accumulation of changes I've made to sql.el over the last couple of years. It includes more code reuse and an API for defining and accessing product specific features. I've got more code after this which uses the API but I want to look into integrating it with some of the IDE features added in Emacs 23. Looking for feedback on code style and quality. NEWS entry ========= ** SQL enhancements. *** Several variables have been marked as safe local variables. *** Added option `sql-send-terminator'. *** Added option `sql-oracle-scan-on'. *** SQL interactive mode will replace tabs with spaces. This prevents the comand interpretter for MySQL and Postgres from listing object name completions when being sent text via `sql-send-' functions. *** An API for manipulating SQL product definitions has been added. ChangeLog entry ============ 2010-04-15 Michael R. Mauger * progmodes/sql.el: Version 2.1 (sql-product-alist): Redesigned structure of product info. (sql-interactive-product): New variable. (sql-send-terminator): New variable. (sql-imenu-generic-expression): Added "Types" imenu entry. (sql-oracle-login-params, sql-sqlite-login-params) (sql-mysql-login-params, sql-solid-login-params) (sql-sybase-login-params, sql-informix-login-params) (sql-ingres-login-params, sql-ms-login-params) (sql-postgres-login-params, sql-interbase-login-params) (sql-db2-login-params, sql-linter-login-params) (sql-oracle-scan-on): New variables. (sql-port, sql-port-history): New variables. (sql-mode-map): Added C-c C-z to start interactive mode. (sql-mode-menu): Updated existing menu entries. (sql-mode-oracle-font-lock-keywords) (sql-mode-postgres-font-lock-keywords) (sql-mode-ms-font-lock-keywords) (sql-mode-sybase-font-lock-keywords) (sql-mode-informix-font-lock-keywords) (sql-mode-interbase-font-lock-keywords) (sql-mode-ingres-font-lock-keywords) (sql-mode-solid-font-lock-keywords) (sql-mode-mysql-font-lock-keywords) (sql-mode-sqlite-font-lock-keywords) (sql-mode-db2-font-lock-keywords) (sql-mode-linter-font-lock-keywords): Updated initialization to reduce run-time complexity. (sql-add-product, sql-del-product): New functions. (sql-set-product-feature, sql-get-product-feature): New functions. (sql-product-font-lock): Update product API. (sql-add-product-keywords): New function. (sql-highlight-product): Update product API. (sql-help-list-products): New function. (sql-help): Dynamically lists free and non-free products. (sql-get-login): Corrected bug in handling history and added prompt for port. (sqli-buffer): Renamed from `sql-buffer'. (sql-set-sqli-buffer-generally, sql-set-sqli-buffer): Updated use of `sqli-buffer'. (sql-copy-column): Copy without properties. (sqli-input-sender): Apply filters to SQLi input. (sql-query-placeholders-and-send): Obey `sql-oracle-scan-on' setting. Implement as a filter. (sql-escape-newlines-filter): Implement as a filter. (sql-remove-tabs-filter): New function. (sql-send-magic-terminator): New function. (sql-send-string): Implement magic terminator. (sql-send-region): Use `sql-send-string'. (sql-mode): Use `sqli-buffer'. (sql-interactive-mode): Use product API. (sql-product-interactive): Use product API. (sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql) (sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase) (sql-db2, sql-linter): Use `sql-product-interactive'. (sql-connect): New function. (sql-connect-oracle, sql-connect-sybase, sql-connect-informix) (sql-connect-sqlite, sql-connect-mysql, sql-connect-solid) (sql-connect-ingres, sql-connect-ms, sql-connect-postgres) (sql-connect-interbase, sql-connect-db2, sql-connect-linter): Use `sql-connect'. --0-264348697-1271391280=:60852 Content-Type: application/octet-stream; name="sql.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sql.diff" PT09IG1vZGlmaWVkIGZpbGUgJ2xpc3AvcHJvZ21vZGVzL3NxbC5lbCcKLS0t IG9sZC9saXNwL3Byb2dtb2Rlcy9zcWwuZWwJMjAxMC0wMS0xMyAwODozNTox MCArMDAwMAorKysgbmV3L2xpc3AvcHJvZ21vZGVzL3NxbC5lbAkyMDEwLTA0 LTE2IDAzOjA3OjM2ICswMDAwCkBAIC01LDcgKzUsNyBAQAogCiA7OyBBdXRo b3I6IEFsZXggU2Nocm9lZGVyIDxhbGV4QGdudS5vcmc+CiA7OyBNYWludGFp bmVyOiBNaWNoYWVsIE1hdWdlciA8bW1hdWdAeWFob28uY29tPgotOzsgVmVy c2lvbjogMi4wLjIKKzs7IFZlcnNpb246IDIuMQogOzsgS2V5d29yZHM6IGNv bW0gbGFuZ3VhZ2VzIHByb2Nlc3NlcwogOzsgVVJMOiBodHRwOi8vc2F2YW5u YWguZ251Lm9yZy9jZ2ktYmluL3ZpZXdjdnMvZW1hY3MvZW1hY3MvbGlzcC9w cm9nbW9kZXMvc3FsLmVsCiA7OyBVUkw6IGh0dHA6Ly93d3cuZW1hY3N3aWtp Lm9yZy9jZ2ktYmluL3dpa2kucGw/U3FsTW9kZQpAQCAtMTAzLDgzICsxMDMs NzMgQEAKIDs7IGlkZW50aWZpZXJzOyBtcyAoTWljcm9zb2Z0IFNRTFNlcnZl cikgYWxzbyBzdXBwb3J0cyBpZGVudGlmaWVycwogOzsgZW5jbG9zZWQgd2l0 aGluIGJyYWNrZXRzIFtdLgogCi07OyBDaGFuZ2VMb2cgYXZhaWxhYmxlIG9u IHJlcXVlc3QuCi0KIDs7OyBQcm9kdWN0IFN1cHBvcnQ6CiAKIDs7IFRvIGFk ZCBzdXBwb3J0IGZvciBhZGRpdGlvbmFsIFNRTCBwcm9kdWN0cyB0aGUgZm9s bG93aW5nIHN0ZXBzCiA7OyBtdXN0IGJlIGZvbGxvd2VkICgieHl6IiBpcyB0 aGUgbmFtZSBvZiB0aGUgcHJvZHVjdCBpbiB0aGUgZXhhbXBsZXMKIDs7IGJl bG93KToKIAotOzsgMSkgQWRkIHRoZSBwcm9kdWN0IHRvIGBzcWwtcHJvZHVj dCcgY2hvaWNlIGxpc3QuCi0KLTs7ICAgICAoY29uc3QgOnRhZyAiWHl6REIi IHh5eikKLQotOzsgMikgQWRkIGFuIGVudHJ5IHRvIHRoZSBgc3FsLXByb2R1 Y3QtYWxpc3QnIGxpc3QuCi0KLTs7ICAgICAoeHl6Ci07OyAgICAgIDpmb250 LWxvY2sgc3FsLW1vZGUteHl6LWZvbnQtbG9jay1rZXl3b3JkcwotOzsgICAg ICA6c3FsaS1sb2dpbiAodXNlciBwYXNzd29yZCBzZXJ2ZXIgZGF0YWJhc2Up Ci07OyAgICAgIDpzcWxpLWNvbm5lY3Qgc3FsLWNvbm5lY3QteHl6Ci07OyAg ICAgIDpzcWxpLXByb21wdC1yZWdleHAgIl54eXpkYj4gIgotOzsgICAgICA6 c3FsaS1wcm9tcHQtbGVuZ3RoIDcKLTs7ICAgICAgOnNxbGktaW5wdXQtc2Vu ZGVyIG5pbAotOzsgICAgICA6c3ludGF4LWFsaXN0ICgoPyMgLiAidyIpKSkK LQotOzsgMykgQWRkIGN1c3RvbWl6YWJsZSB2YWx1ZXMgZm9yIHRoZSBwcm9k dWN0IGludGVycHJldGVyIGFuZCBvcHRpb25zLgotCi07OyAgICAgOzsgQ3Vz dG9taXphdGlvbiBmb3IgWHl6REIKLTs7Ci07OyAgICAgKGRlZmN1c3RvbSBz cWwteHl6LXByb2dyYW0gIml4eXoiCi07OyAgICAgICAiKkNvbW1hbmQgdG8g c3RhcnQgaXh5eiBieSBYeXpEQi4iCis7OyAxKSBBZGQgdGhlIHByb2R1Y3Qg dG8gdGhlIGxpc3Qgb2Yga25vd24gcHJvZHVjdHMuCisKKzs7ICAgICAoc3Fs LWFkZC1wcm9kdWN0ICd4eXogIlh5ekRCIgorOzsgICAgIAkgICAgICAgICAg ICAgICAgJyg6ZnJlZS1zb2Z0d2FyZSB0KSkKKworOzsgMikgRGVmaW5lIGZv bnQgbG9jayBzZXR0aW5ncy4gIEFsbCBBTlNJIGtleXdvcmRzIHdpbGwgYmUK Kzs7ICAgIGhpZ2hsaWdodGVkIGF1dG9tYXRpY2FsbHksIHNvIG9ubHkgcHJv ZHVjdCBzcGVjaWZpYyBrZXl3b3JkcworOzsgICAgbmVlZCB0byBiZSBkZWZp bmVkIGhlcmUuCisKKzs7ICAgICAoZGVmdmFyIG15LXNxbC1tb2RlLXh5ei1m b250LWxvY2sta2V5d29yZHMKKzs7ICAgICAgICcoKCJcXGJcXChyZWRcXHxv cmFuZ2VcXHx5ZWxsb3dcXClcXGIiCis7OyAgICAgICAgICAuIGZvbnQtbG9j ay1rZXl3b3JkLWZhY2UpKQorOzsgICAgICAgIlh5ekRCIFNRTCBrZXl3b3Jk cyB1c2VkIGJ5IGZvbnQtbG9jay4iKQorCis7OyAgICAgKHNxbC1zZXQtcHJv ZHVjdC1mZWF0dXJlICd4eXoKKzs7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOmZvbnQtbG9jaworOzsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnbXktc3FsLW1vZGUteHl6LWZvbnQtbG9jay1rZXl3b3JkcykKKwor OzsgMykgRGVmaW5lIGFueSBzcGVjaWFsIHN5bnRheCBjaGFyYWN0ZXJzIGlu Y2x1ZGluZyBjb21tZW50cyBhbmQKKzs7ICAgIGlkZW50aWZpZXIgY2hhcmFj dGVycy4KKworOzsgICAgIChzcWwtc2V0LXByb2R1Y3QtZmVhdHVyZSAneHl6 Cis7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzeW50YXgtYWxp c3QgKCg/IyAuICJ3IikpKQorCis7OyA0KSBEZWZpbmUgdGhlIGludGVyYWN0 aXZlIGNvbW1hbmQgaW50ZXJwcmV0ZXIgZm9yIHRoZSBkYXRhYmFzZQorOzsg ICAgcHJvZHVjdC4KKworOzsgICAgIChkZWZjdXN0b20gbXktc3FsLXh5ei1w cm9ncmFtICJpeHl6IgorOzsgICAgICAgIkNvbW1hbmQgdG8gc3RhcnQgaXh5 eiBieSBYeXpEQi4iCiA7OyAgICAgICA6dHlwZSAnZmlsZQogOzsgICAgICAg Omdyb3VwICdTUUwpCi07OwotOzsgICAgIChkZWZjdXN0b20gc3FsLXh5ei1v cHRpb25zICcoIi1YIiAiLVkiICItWiIpCi07OyAgICAgICAiKkxpc3Qgb2Yg YWRkaXRpb25hbCBvcHRpb25zIGZvciBgc3FsLXh5ei1wcm9ncmFtJy4iCisK Kzs7ICAgICAoc3FsLXNldC1wcm9kdWN0LWZlYXR1cmUgJ3h5egorOzsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6c3FsLXByb2dyYW0gJ215LXNx bC14eXotcHJvZ3JhbSkKKzs7ICAgICAoc3FsLXNldC1wcm9kdWN0LWZlYXR1 cmUgJ3h5egorOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c3Fs aS1wcm9tcHQtcmVnZXhwICJeeHl6ZGI+ICIpCis7OyAgICAgKHNxbC1zZXQt cHJvZHVjdC1mZWF0dXJlICd4eXoKKzs7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOnNxbGktcHJvbXB0LWxlbmd0aCA3KQorCis7OyA1KSBEZWZp bmUgbG9naW4gcGFyYW1ldGVycyBhbmQgY29tbWFuZCBsaW5lIGZvcm1hdHRp bmcuCisKKzs7ICAgICAoZGVmY3VzdG9tIG15LXNxbC14eXotbG9naW4tcGFy YW1zICcodXNlciBwYXNzd29yZCBzZXJ2ZXIgZGF0YWJhc2UpCis7OyAgICAg ICAiTG9naW4gcGFyYW1ldGVycyB0byBuZWVkZWQgdG8gY29ubmVjdCB0byBY eXpEQi4iCis7OyAgICAgICA6dHlwZSAnKHJlcGVhdCAoY2hvaWNlCis7OyAg ICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB1c2VyKQorOzsgICAgICAg ICAgICAgICAgICAgICAgICAoY29uc3QgcGFzc3dvcmQpCis7OyAgICAgICAg ICAgICAgICAgICAgICAgIChjb25zdCBzZXJ2ZXIpCis7OyAgICAgICAgICAg ICAgICAgICAgICAgIChjb25zdCBkYXRhYmFzZSkpKQorOzsgICAgICAgOmdy b3VwICdTUUwpCisKKzs7ICAgICAoZGVmY3VzdG9tIG15LXNxbC14eXotb3B0 aW9ucyAnKCItWCIgIi1ZIiAiLVoiKQorOzsgICAgICAgIkxpc3Qgb2YgYWRk aXRpb25hbCBvcHRpb25zIGZvciBgc3FsLXh5ei1wcm9ncmFtJy4iCiA7OyAg ICAgICA6dHlwZSAnKHJlcGVhdCBzdHJpbmcpCiA7OyAgICAgICA6Z3JvdXAg J1NRTCkKIAotOzsgNCkgQWRkIGFuIGVudHJ5IHRvIFNRTC0+UHJvZHVjdCBz dWJtZW51LgotCi07OyAgICAgWyJYeXpEQiIgc3FsLWhpZ2hsaWdodC14eXot a2V5d29yZHMKLTs7ICAgICAgOnN0eWxlIHJhZGlvCi07OyAgICAgIDpzZWxl Y3RlZCAoZXEgc3FsLXByb2R1Y3QgJ3h5eildCi0KLTs7IDUpIEFkZCB0aGUg Zm9udC1sb2NrIHNwZWNpZmljYXRpb25zLiAgQXQgYSBtaW5pbXVtLCBkZWZh dWx0IHRvCi07OyAgICB1c2luZyBBTlNJIGtleXdvcmRzLiAgU2VlIHNxbC1t b2RlLW9yYWNsZS1mb250LWxvY2sta2V5d29yZHMgZm9yCi07OyAgICBhIG1v cmUgY29tcGxleCBleGFtcGxlLgotCi07OyAgICAgKGRlZnZhciBzcWwtbW9k ZS14eXotZm9udC1sb2NrLWtleXdvcmRzIG5pbAotOzsgICAgICAgIlh5ekRC IFNRTCBrZXl3b3JkcyB1c2VkIGJ5IGZvbnQtbG9jay4iKQotCi07OyA2KSBB ZGQgYSBwcm9kdWN0IGhpZ2hsaWdodGluZyBmdW5jdGlvbi4KLQotOzsgICAg IChkZWZ1biBzcWwtaGlnaGxpZ2h0LXh5ei1rZXl3b3JkcyAoKQotOzsgICAg ICAgIkhpZ2hsaWdodCBYeXpEQiBrZXl3b3Jkcy4iCi07OyAgICAgICAoaW50 ZXJhY3RpdmUpCi07OyAgICAgICAoc3FsLXNldC1wcm9kdWN0ICd4eXopKQot Ci07OyA3KSBBZGQgYW4gYXV0b2xvYWRlZCBTUUxpIGZ1bmN0aW9uLgotCi07 OyAgICAgOzs7IyMjYXV0b2xvYWQKLTs7ICAgICAoZGVmdW4gc3FsLXh5eiAo KQotOzsgICAgICAgIlJ1biBpeHl6IGJ5IFh5ekRCIGFzIGFuIGluZmVyaW9y IHByb2Nlc3MuIgotOzsgICAgICAgKGludGVyYWN0aXZlKQotOzsgICAgICAg KHNxbC1wcm9kdWN0LWludGVyYWN0aXZlICd4eXopKQotCi07OyA4KSBBZGQg YSBjb25uZWN0IGZ1bmN0aW9uIHdoaWNoIGZvcm1hdHMgdGhlIGNvbW1hbmQg bGluZSBhcmd1bWVudHMKLTs7ICAgIGFuZCBzdGFydHMgdGhlIHByb2R1Y3Qg aW50ZXJwcmV0ZXIgaW4gYSBjb21pbnQgYnVmZmVyLiAgU2VlIHRoZQotOzsg ICAgZXhpc3RpbmcgY29ubmVjdCBmdW5jdGlvbnMgZm9yIGV4YW1wbGVzIG9m IHRoZSB0eXBlcyBvZgotOzsgICAgcHJvY2Vzc2luZyBhdmFpbGFibGUuCi0K LTs7ICAgICAoZGVmdW4gc3FsLWNvbm5lY3QteHl6ICgpCi07OyAgICAgICAi Q3JlYXRlIGNvbWludCBidWZmZXIgYW5kIGNvbm5lY3QgdG8gWHl6REIgdXNp bmcgdGhlIGxvZ2luCi07OyAgICAgcGFyYW1ldGVycyBhbmQgY29tbWFuZCBv cHRpb25zLiIKKzs7ICAgICAoZGVmdW4gbXktc3FsLWNvbm5lY3QteHl6ICgp Cis7OyAgICAgICAiQ29ubmVjdCB0aSBYeXpEQiBpbiBhIGNvbWludCBidWZm ZXIuIgogOzsKIDs7ICAgICAgICAgOzsgRG8gc29tZXRoaW5nIHdpdGggYHNx bC11c2VyJywgYHNxbC1wYXNzd29yZCcsCiA7OyAgICAgICAgIDs7IGBzcWwt ZGF0YWJhc2UnLCBhbmQgYHNxbC1zZXJ2ZXInLgotOzsgICAgICAgICAobGV0 ICgocGFyYW1zIHNxbC14eXotb3B0aW9ucykpCis7OyAgICAgICAgIChsZXQg KChwYXJhbXMgbXktc3FsLXh5ei1vcHRpb25zKSkKIDs7ICAgICAgICAgICAo aWYgKG5vdCAoc3RyaW5nPSAiIiBzcWwtc2VydmVyKSkKIDs7ICAgICAgICAg ICAgICAoc2V0cSBwYXJhbXMgKGFwcGVuZCAobGlzdCAiLVMiIHNxbC1zZXJ2 ZXIpIHBhcmFtcykpKQogOzsgICAgICAgICAgIChpZiAobm90IChzdHJpbmc9 ICIiIHNxbC1kYXRhYmFzZSkpCkBAIC0xODgsMjUgKzE3OCwzOCBAQAogOzsg ICAgICAgICAgICAgICAoc2V0cSBwYXJhbXMgKGFwcGVuZCAobGlzdCAiLVAi IHNxbC1wYXNzd29yZCkgcGFyYW1zKSkpCiA7OyAgICAgICAgICAgKGlmIChu b3QgKHN0cmluZz0gIiIgc3FsLXVzZXIpKQogOzsgICAgICAgICAgICAgICAo c2V0cSBwYXJhbXMgKGFwcGVuZCAobGlzdCAiLVUiIHNxbC11c2VyKSBwYXJh bXMpKSkKLTs7ICAgICAgICAgICAoc2V0LWJ1ZmZlciAoYXBwbHkgJ21ha2Ut Y29taW50ICJTUUwiIHNxbC14eXotcHJvZ3JhbQotOzsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuaWwgcGFyYW1zKSkpKQotCi07OyA5KSBTYXZl IGFuZCBjb21waWxlIHNxbC5lbC4KKzs7ICAgICAgICAgICAoc3FsLWNvbm5l Y3QtMSBteS1zcWwteHl6LXByb2dyYW0gcGFyYW1zKSkpCisKKzs7ICAgICAo c3FsLXNldC1wcm9kdWN0LWZlYXR1cmUgJ3h5egorOzsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6c3FsaS1sb2dpbiAnbXktc3FsLXh5ei1sb2dp bi1wYXJhbXMpCis7OyAgICAgKHNxbC1zZXQtcHJvZHVjdC1mZWF0dXJlICd4 eXoKKzs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnNxbGktY29u bmVjdCAnbXktc3FsLWNvbm5lY3QteHl6KQorCis7OyA2KSBEZWZpbmUgYSBj b252aWVuZW5jZSBmdW5jdGlvbiB0byBpbnZva2UgdGhlIFNRTCBpbnRlcnBy ZXRlci4KKworOzsgICAgIChkZWZ1biBteS1zcWwteHl6ICgpCis7OyAgICAg ICAiUnVuIGl4eXogYnkgWHl6REIgYXMgYW4gaW5mZXJpb3IgcHJvY2Vzcy4i Cis7OyAgICAgICAoaW50ZXJhY3RpdmUpCis7OyAgICAgICAoc3FsLXByb2R1 Y3QtaW50ZXJhY3RpdmUgJ3h5eikpCiAKIDs7OyBUbyBEbzoKIAotOzsgQWRk IGJldHRlciBoaWxpZ2h0IHN1cHBvcnQgZm9yIG90aGVyIGJyYW5kczsgdGhl cmUgaXMgYSBiaWFzIHRvd2FyZHMKLTs7IE9yYWNsZSBiZWNhdXNlIHRoYXQn cyB3aGF0IEkgdXNlIGF0IHdvcmsuICBBbnlib2R5IGVsc2UganVzdCBzZW5k IGluCi07OyB5b3VyIGxpc3RzIG9mIHJlc2VydmVkIHdvcmRzLCBrZXl3b3Jk cyBhbmQgYnVpbHRpbiBmdW5jdGlvbnMhICBBcwotOzsgbG9uZyBhcyBJIGRv bid0IHJlY2VpdmUgYW55IGZlZWRiYWNrLCBldmVyeXRoaW5nIGlzIGhpbGln aHRlZCB3aXRoCi07OyBBTlNJIGtleXdvcmRzIG9ubHkuICBJIHJlY2VpdmVk IHRoZSBsaXN0IG9mIEFOU0kga2V5d29yZHMgZnJvbSBhCi07OyB1c2VyOyBp ZiB5b3Uga25vdyBvZiBhbnkgY2hhbmdlcywgbGV0IG1lIGtub3cuCi0KLTs7 IEFkZCBkaWZmZXJlbnQgaGlsaWdodGluZyBsZXZlbHMuCis7OyBJbXByb3Zl IGtleXdvcmQgaGlnaGxpZ2h0aW5nIGZvciBpbmRpdmlkdWFsIHByb2R1Y3Rz LiAgSSBoYXZlIHRyaWVkCis7OyB0byB1cGRhdGUgdGhvc2UgZGF0YWJhc2Ug dGhhdCBJIHVzZS4gIEZlZWwgZnJlZSB0byBzZW5kIG1lIHVwZGF0ZXMsCis7 OyBvciBkaXJlY3QgbWUgdG8gdGhlIHJlZmVyZW5jZSBtYW51YWxzIGZvciB5 b3VyIGZhdm9yaXRlIGRhdGFiYXNlLgorCis7OyBXaGVuIHRoZXJlIGFyZSBu byBrZXl3b3JkcyBkZWZpbmVkLCB0aGUgQU5TSSBrZXl3b3JkcyBhcmUKKzs7 IGhpZ2hsaWdodGVkLiAgQU5TSSBrZXl3b3JkcyBhcmUgaGlnaGxpZ2h0ZWQg ZXZlbiBpZiB0aGUga2V5d29yZCBpcworOzsgbm90IHVzZWQgZm9yIHlvdXIg Y3VycmVudCBwcm9kdWN0LiAgVGhpcyBzaG91bGQgaGVscCBpZGVudGlmeQor OzsgcG9ydGFiaWxpdHkgY29uY2VybnMuCisKKzs7IEFkZCBkaWZmZXJlbnQg aGlnaGxpZ2h0aW5nIGxldmVscy4KKworOzsgQWRkIHN1cHBvcnQgZm9yIGxp c3RpbmcgYXZhaWxhYmxlIHRhYmxlcyBvciB0aGUgY29sdW1ucyBpbiBhIHRh YmxlLgogCiA7OzsgVGhhbmtzIHRvIGFsbCB0aGUgcGVvcGxlIHdobyBoZWxw ZWQgbWUgb3V0OgogCi07OyBBbGV4IFNjaHJvZWRlciA8YWxleEBnbnUub3Jn PgorOzsgQWxleCBTY2hyb2VkZXIgPGFsZXhAZ251Lm9yZz4gLS0gdGhlIG9y aWdpbmFsIGF1dGhvcgogOzsgS2FpIEJsYXViZXJnIDxrYWkuYmxhdWJlcmdA bWV0bGEuZmk+CiA7OyA8aWJhbGFiYW5AZGFsZXQuY29tPgogOzsgWWFpciBG cmllZG1hbiA8eWZyaWVkbWFASm9obkJyeWNlLkNvLklsPgpAQCAtMjE3LDcg KzIyMCw3IEBACiA7OyBNaWNoYWVsIE1hdWdlciA8bW1hdWdAeWFob28uY29t PiAtLSBpbXByb3ZlZCBwcm9kdWN0IHN1cHBvcnQKIDs7IERyZXcgQWRhbXMg PGRyZXcuYWRhbXNAb3JhY2xlLmNvbT4gLS0gRW1hY3MgMjAgc3VwcG9ydAog OzsgSGFyYWxkIE1haWVyIDxtYWllcmhAbXlzZWxmLmNvbT4gLS0gc3FsLXNl bmQtc3RyaW5nCi07OyBTdGVmYW4gTW9ubmllciA8bW9ubmllckBpcm8udW1v bnRyZWFsLmNhPiAtLSBmb250LWxvY2sgY29ycmVjdGlvbnMKKzs7IFN0ZWZh biBNb25uaWVyIDxtb25uaWVyQGlyby51bW9udHJlYWwuY2E+IC0tIGZvbnQt bG9jayBjb3JyZWN0aW9uczsgY29kZSBwb2xpc2gKIAogDAogCkBAIC0yNDAs MzIgKzI0Myw0MyBAQAogKGRlZmdyb3VwIFNRTCBuaWwKICAgIlJ1bm5pbmcg YSBTUUwgaW50ZXJwcmV0ZXIgZnJvbSB3aXRoaW4gRW1hY3MgYnVmZmVycy4i CiAgIDp2ZXJzaW9uICIyMC40IgorICA6Z3JvdXAgJ2xhbmd1YWdlcwogICA6 Z3JvdXAgJ3Byb2Nlc3NlcykKIAogOzsgVGhlc2UgZm91ciB2YXJpYWJsZXMg d2lsbCBiZSB1c2VkIGFzIGRlZmF1bHRzLCBpZiBzZXQuCiAKIChkZWZjdXN0 b20gc3FsLXVzZXIgIiIKLSAgIipEZWZhdWx0IHVzZXJuYW1lLiIKKyAgIkRl ZmF1bHQgdXNlcm5hbWUuIgogICA6dHlwZSAnc3RyaW5nCiAgIDpncm91cCAn U1FMKQorKHB1dCAnc3FsLXVzZXIgJ3NhZmUtbG9jYWwtdmFyaWFibGUgJ3N0 cmluZ3ApCiAKIChkZWZjdXN0b20gc3FsLXBhc3N3b3JkICIiCi0gICIqRGVm YXVsdCBwYXNzd29yZC4KKyAgIkRlZmF1bHQgcGFzc3dvcmQuCiAKIFN0b3Jp bmcgeW91ciBwYXNzd29yZCBpbiBhIHRleHRmaWxlIHN1Y2ggYXMgfi8uZW1h Y3MgY291bGQgYmUgZGFuZ2Vyb3VzLgogQ3VzdG9taXppbmcgeW91ciBwYXNz d29yZCB3aWxsIHN0b3JlIGl0IGluIHlvdXIgfi8uZW1hY3MgZmlsZS4iCiAg IDp0eXBlICdzdHJpbmcKICAgOmdyb3VwICdTUUwpCisocHV0ICdzcWwtcGFz c3dvcmQgJ3Jpc2t5LWxvY2FsLXZhcmlhYmxlIHQpCiAKIChkZWZjdXN0b20g c3FsLWRhdGFiYXNlICIiCi0gICIqRGVmYXVsdCBkYXRhYmFzZS4iCisgICJE ZWZhdWx0IGRhdGFiYXNlLiIKICAgOnR5cGUgJ3N0cmluZwogICA6Z3JvdXAg J1NRTCkKKyhwdXQgJ3NxbC1kYXRhYmFzZSAnc2FmZS1sb2NhbC12YXJpYWJs ZSAnc3RyaW5ncCkKIAogKGRlZmN1c3RvbSBzcWwtc2VydmVyICIiCisgICJE ZWZhdWx0IHNlcnZlciBvciBob3N0LiIKKyAgOnR5cGUgJ3N0cmluZworICA6 Z3JvdXAgJ1NRTCkKKyhwdXQgJ3NxbC1zZXJ2ZXIgJ3NhZmUtbG9jYWwtdmFy aWFibGUgJ3N0cmluZ3ApCisKKyhkZWZjdXN0b20gc3FsLXBvcnQgbmlsCiAg ICIqRGVmYXVsdCBzZXJ2ZXIgb3IgaG9zdC4iCi0gIDp0eXBlICdzdHJpbmcK KyAgOnR5cGUgJ251bWJlcgogICA6Z3JvdXAgJ1NRTCkKKyhwdXQgJ3NxbC1w b3J0ICdzYWZlLWxvY2FsLXZhcmlhYmxlICdudW1iZXJwKQogCiA7OyBTUUwg UHJvZHVjdCBzdXBwb3J0CiAKQEAgLTI3NCwxMTAgKzI4OCwxNjMgQEAKIAog KGRlZnZhciBzcWwtcHJvZHVjdC1hbGlzdAogICAnKChhbnNpCi0gICAgIDpu YW1lICJBTlNJIgorICAgICA6ZGlzcGxheSAiQU5TSSIKICAgICAgOmZvbnQt bG9jayBzcWwtbW9kZS1hbnNpLWZvbnQtbG9jay1rZXl3b3JkcykKKwogICAg IChkYjIKLSAgICAgOm5hbWUgIkRCMiIKKyAgICAgOmRpc3BsYXkgIkRCMiIK ICAgICAgOmZvbnQtbG9jayBzcWwtbW9kZS1kYjItZm9udC1sb2NrLWtleXdv cmRzCi0gICAgIDpzcWxpLWxvZ2luIG5pbAorICAgICA6c3FsLXByb2dyYW0g c3FsLWRiMi1wcm9ncmFtCisgICAgIDpzcWxpLWxvZ2luIHNxbC1kYjItbG9n aW4tcGFyYW1zCiAgICAgIDpzcWxpLWNvbm5lY3Qgc3FsLWNvbm5lY3QtZGIy CiAgICAgIDpzcWxpLXByb21wdC1yZWdleHAgIl5kYjIgPT4gIgotICAgICA6 c3FsaS1wcm9tcHQtbGVuZ3RoIDcpCisgICAgIDpzcWxpLXByb21wdC1sZW5n dGggNworICAgICA6c3FsaS1pbnB1dC1maWx0ZXIgc3FsLWVzY2FwZS1uZXds aW5lcy1maWx0ZXIpCisKICAgICAoaW5mb3JtaXgKKyAgICAgOmRpc3BsYXkg IkluZm9ybWl4IgogICAgICA6Zm9udC1sb2NrIHNxbC1tb2RlLWluZm9ybWl4 LWZvbnQtbG9jay1rZXl3b3JkcwotICAgICA6c3FsaS1sb2dpbiAoZGF0YWJh c2UpCisgICAgIDpzcWwtcHJvZ3JhbSBzcWwtaW5mb3JtaXgtcHJvZ3JhbQor ICAgICA6c3FsaS1sb2dpbiBzcWwtaW5mb3JtaXgtbG9naW4tcGFyYW1zCiAg ICAgIDpzcWxpLWNvbm5lY3Qgc3FsLWNvbm5lY3QtaW5mb3JtaXgKLSAgICAg OnNxbGktcHJvbXB0LXJlZ2V4cCAiXlNRTD4gIgotICAgICA6c3FsaS1wcm9t cHQtbGVuZ3RoIDUpCisgICAgIDpzcWxpLXByb21wdC1yZWdleHAgIl4+ICIK KyAgICAgOnNxbGktcHJvbXB0LWxlbmd0aCAyCisgICAgIDpzeW50YXgtYWxp c3QgKCg/eyAuICI8IikgKD99IC4gIj4iKSkpCisKICAgICAoaW5ncmVzCisg ICAgIDpkaXNwbGF5ICJJbmdyZXMiCiAgICAgIDpmb250LWxvY2sgc3FsLW1v ZGUtaW5ncmVzLWZvbnQtbG9jay1rZXl3b3JkcwotICAgICA6c3FsaS1sb2dp biAoZGF0YWJhc2UpCisgICAgIDpzcWwtcHJvZ3JhbSBzcWwtaW5ncmVzLXBy b2dyYW0KKyAgICAgOnNxbGktbG9naW4gc3FsLWluZ3Jlcy1sb2dpbi1wYXJh bXMKICAgICAgOnNxbGktY29ubmVjdCBzcWwtY29ubmVjdC1pbmdyZXMKICAg ICAgOnNxbGktcHJvbXB0LXJlZ2V4cCAiXlwqICIKICAgICAgOnNxbGktcHJv bXB0LWxlbmd0aCAyKQorCiAgICAgKGludGVyYmFzZQorICAgICA6ZGlzcGxh eSAiSW50ZXJiYXNlIgogICAgICA6Zm9udC1sb2NrIHNxbC1tb2RlLWludGVy YmFzZS1mb250LWxvY2sta2V5d29yZHMKLSAgICAgOnNxbGktbG9naW4gKHVz ZXIgcGFzc3dvcmQgZGF0YWJhc2UpCisgICAgIDpzcWwtcHJvZ3JhbSBzcWwt aW50ZXJiYXNlLXByb2dyYW0KKyAgICAgOnNxbGktbG9naW4gc3FsLWludGVy YmFzZS1sb2dpbi1wYXJhbXMKICAgICAgOnNxbGktY29ubmVjdCBzcWwtY29u bmVjdC1pbnRlcmJhc2UKICAgICAgOnNxbGktcHJvbXB0LXJlZ2V4cCAiXlNR TD4gIgogICAgICA6c3FsaS1wcm9tcHQtbGVuZ3RoIDUpCisKICAgICAobGlu dGVyCisgICAgIDpkaXNwbGF5ICJMaW50ZXIiCiAgICAgIDpmb250LWxvY2sg c3FsLW1vZGUtbGludGVyLWZvbnQtbG9jay1rZXl3b3JkcwotICAgICA6c3Fs aS1sb2dpbiAodXNlciBwYXNzd29yZCBkYXRhYmFzZSBzZXJ2ZXIpCisgICAg IDpzcWwtcHJvZ3JhbSBzcWwtbGludGVyLXByb2dyYW0KKyAgICAgOnNxbGkt bG9naW4gc3FsLWxpbnRlci1sb2dpbi1wYXJhbXMKICAgICAgOnNxbGktY29u bmVjdCBzcWwtY29ubmVjdC1saW50ZXIKICAgICAgOnNxbGktcHJvbXB0LXJl Z2V4cCAiXlNRTD4iCiAgICAgIDpzcWxpLXByb21wdC1sZW5ndGggNCkKKwog ICAgIChtcwotICAgICA6bmFtZSAiTVMgU1FMU2VydmVyIgorICAgICA6ZGlz cGxheSAiTWljcm9zb2Z0IgogICAgICA6Zm9udC1sb2NrIHNxbC1tb2RlLW1z LWZvbnQtbG9jay1rZXl3b3JkcwotICAgICA6c3FsaS1sb2dpbiAodXNlciBw YXNzd29yZCBzZXJ2ZXIgZGF0YWJhc2UpCisgICAgIDpzcWwtcHJvZ3JhbSBz cWwtbXMtcHJvZ3JhbQorICAgICA6c3FsaS1sb2dpbiBzcWwtbXMtbG9naW4t cGFyYW1zCiAgICAgIDpzcWxpLWNvbm5lY3Qgc3FsLWNvbm5lY3QtbXMKICAg ICAgOnNxbGktcHJvbXB0LXJlZ2V4cCAiXlswLTldKj4iCiAgICAgIDpzcWxp LXByb21wdC1sZW5ndGggNQotICAgICA6c3ludGF4LWFsaXN0ICgoP0AgLiAi dyIpKSkKKyAgICAgOnN5bnRheC1hbGlzdCAoKD9AIC4gInciKSkKKyAgICAg OnNxbC1zZW5kLXRlcm1pbmF0b3IgKCJeZ28iIC4gImdvIikpCisKICAgICAo bXlzcWwKLSAgICAgOm5hbWUgIk15U1FMIgorICAgICA6ZGlzcGxheSAiTXlT UUwiCisgICAgIDpmcmVlLXNvZnR3YXJlIHQKICAgICAgOmZvbnQtbG9jayBz cWwtbW9kZS1teXNxbC1mb250LWxvY2sta2V5d29yZHMKLSAgICAgOnNxbGkt bG9naW4gKHVzZXIgcGFzc3dvcmQgZGF0YWJhc2Ugc2VydmVyKQorICAgICA6 c3FsLXByb2dyYW0gc3FsLW15c3FsLXByb2dyYW0KKyAgICAgOnNxbGktbG9n aW4gc3FsLW15c3FsLWxvZ2luLXBhcmFtcwogICAgICA6c3FsaS1jb25uZWN0 IHNxbC1jb25uZWN0LW15c3FsCiAgICAgIDpzcWxpLXByb21wdC1yZWdleHAg Il5teXNxbD4gIgotICAgICA6c3FsaS1wcm9tcHQtbGVuZ3RoIDYpCisgICAg IDpzcWxpLXByb21wdC1sZW5ndGggNgorICAgICA6c3FsLWlucHV0LWZpbHRl ciBzcWwtcmVtb3ZlLXRhYnMtZmlsdGVyKQorCiAgICAgKG9yYWNsZQorICAg ICA6ZGlzcGxheSAiT3JhY2xlIgogICAgICA6Zm9udC1sb2NrIHNxbC1tb2Rl LW9yYWNsZS1mb250LWxvY2sta2V5d29yZHMKLSAgICAgOnNxbGktbG9naW4g KHVzZXIgcGFzc3dvcmQgZGF0YWJhc2UpCisgICAgIDpzcWwtcHJvZ3JhbSBz cWwtb3JhY2xlLXByb2dyYW0KKyAgICAgOnNxbGktbG9naW4gc3FsLW9yYWNs ZS1sb2dpbi1wYXJhbXMKICAgICAgOnNxbGktY29ubmVjdCBzcWwtY29ubmVj dC1vcmFjbGUKICAgICAgOnNxbGktcHJvbXB0LXJlZ2V4cCAiXlNRTD4gIgog ICAgICA6c3FsaS1wcm9tcHQtbGVuZ3RoIDUKLSAgICAgOnN5bnRheC1hbGlz dCAoKD8kIC4gInciKSAoPyMgLiAidyIpKSkKKyAgICAgOnN5bnRheC1hbGlz dCAoKD8kIC4gInciKSAoPyMgLiAidyIpKQorICAgICA6c3FsLXNlbmQtdGVy bWluYXRvciAoIlxcKF4vXFx8O1xcKSIgLiAiLyIpCisgICAgIDpzcWxpLWlu cHV0LWZpbHRlciBzcWwtcGxhY2Vob2xkZXJzLWZpbHRlcikKKwogICAgIChw b3N0Z3JlcworICAgICA6ZGlzcGxheSAiUG9zdGdyZXMiCisgICAgIDpmcmVl LXNvZnR3YXJlIHQKICAgICAgOmZvbnQtbG9jayBzcWwtbW9kZS1wb3N0Z3Jl cy1mb250LWxvY2sta2V5d29yZHMKLSAgICAgOnNxbGktbG9naW4gKHVzZXIg ZGF0YWJhc2Ugc2VydmVyKQorICAgICA6c3FsLXByb2dyYW0gc3FsLXBvc3Rn cmVzLXByb2dyYW0KKyAgICAgOnNxbGktbG9naW4gc3FsLXBvc3RncmVzLWxv Z2luLXBhcmFtcwogICAgICA6c3FsaS1jb25uZWN0IHNxbC1jb25uZWN0LXBv c3RncmVzCiAgICAgIDpzcWxpLXByb21wdC1yZWdleHAgIl4uKlsjPl0gKiIK LSAgICAgOnNxbGktcHJvbXB0LWxlbmd0aCA1KQorICAgICA6c3FsaS1wcm9t cHQtbGVuZ3RoIDUKKyAgICAgOnNxbC1pbnB1dC1maWx0ZXIgc3FsLXJlbW92 ZS10YWJzLWZpbHRlcgorICAgICA6c3FsLXNlbmQtdGVybWluYXRvciAoIlxc KF5bXFxdZ1xcfDtcXCkiIC4gIjsiKSkKKwogICAgIChzb2xpZAorICAgICA6 ZGlzcGxheSAiU29saWQiCiAgICAgIDpmb250LWxvY2sgc3FsLW1vZGUtc29s aWQtZm9udC1sb2NrLWtleXdvcmRzCi0gICAgIDpzcWxpLWxvZ2luICh1c2Vy IHBhc3N3b3JkIHNlcnZlcikKKyAgICAgOnNxbC1wcm9ncmFtIHNxbC1zb2xp ZC1wcm9ncmFtCisgICAgIDpzcWxpLWxvZ2luIHNxbC1zb2xpZC1sb2dpbi1w YXJhbXMKICAgICAgOnNxbGktY29ubmVjdCBzcWwtY29ubmVjdC1zb2xpZAog ICAgICA6c3FsaS1wcm9tcHQtcmVnZXhwICJeIgogICAgICA6c3FsaS1wcm9t cHQtbGVuZ3RoIDApCisKICAgICAoc3FsaXRlCi0gICAgIDpuYW1lICJTUUxp dGUiCisgICAgIDpkaXNwbGF5ICJTUUxpdGUiCisgICAgIDpmcmVlLXNvZnR3 YXJlIHQKICAgICAgOmZvbnQtbG9jayBzcWwtbW9kZS1zcWxpdGUtZm9udC1s b2NrLWtleXdvcmRzCi0gICAgIDpzcWxpLWxvZ2luIChkYXRhYmFzZSkKKyAg ICAgOnNxbC1wcm9ncmFtIHNxbC1zcWxpdGUtcHJvZ3JhbQorICAgICA6c3Fs aS1sb2dpbiBzcWwtc3FsaXRlLWxvZ2luLXBhcmFtcwogICAgICA6c3FsaS1j b25uZWN0IHNxbC1jb25uZWN0LXNxbGl0ZQogICAgICA6c3FsaS1wcm9tcHQt cmVnZXhwICJec3FsaXRlPiAiCiAgICAgIDpzcWxpLXByb21wdC1sZW5ndGgg OCkKKwogICAgIChzeWJhc2UKKyAgICAgOmRpc3BsYXkgIlN5YmFzZSIKICAg ICAgOmZvbnQtbG9jayBzcWwtbW9kZS1zeWJhc2UtZm9udC1sb2NrLWtleXdv cmRzCi0gICAgIDpzcWxpLWxvZ2luIChzZXJ2ZXIgdXNlciBwYXNzd29yZCBk YXRhYmFzZSkKKyAgICAgOnNxbC1wcm9ncmFtIHNxbC1zeWJhc2UtcHJvZ3Jh bQorICAgICA6c3FsaS1sb2dpbiBzcWwtc3liYXNlLWxvZ2luLXBhcmFtcwog ICAgICA6c3FsaS1jb25uZWN0IHNxbC1jb25uZWN0LXN5YmFzZQogICAgICA6 c3FsaS1wcm9tcHQtcmVnZXhwICJeU1FMPiAiCiAgICAgIDpzcWxpLXByb21w dC1sZW5ndGggNQotICAgICA6c3ludGF4LWFsaXN0ICgoP0AgLiAidyIpKSkK KyAgICAgOnN5bnRheC1hbGlzdCAoKD9AIC4gInciKSkKKyAgICAgOnNxbC1z ZW5kLXRlcm1pbmF0b3IgKCJeZ28iIC4gImdvIikpCiAgICAgKQotICAiVGhp cyB2YXJpYWJsZSBjb250YWlucyBhIGxpc3Qgb2YgcHJvZHVjdCBmZWF0dXJl cyBmb3IgZWFjaCBvZiB0aGUKLVNRTCBwcm9kdWN0cyBoYW5kbGVkIGJ5IGBz cWwtbW9kZScuICBXaXRob3V0IGFuIGVudHJ5IGluIHRoaXMgbGlzdCBhCi1w cm9kdWN0IHdpbGwgbm90IGJlIHByb3Blcmx5IGhpZ2hsaWdodGVkIGFuZCB3 aWxsIG5vdCBzdXBwb3J0Ci1gc3FsLWludGVyYWN0aXZlLW1vZGUnLgorICAi QW4gYWxpc3Qgb2YgcHJvZHVjdCBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHNl dHRpbmdzLgorCitXaXRob3V0IGFuIGVudHJ5IGluIHRoaXMgbGlzdCBhIHBy b2R1Y3Qgd2lsbCBub3QgYmUgcHJvcGVybHkKK2hpZ2hsaWdodGVkIGFuZCB3 aWxsIG5vdCBzdXBwb3J0IGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuCiAKIEVh Y2ggZWxlbWVudCBpbiB0aGUgbGlzdCBpcyBpbiB0aGUgZm9sbG93aW5nIGZv cm1hdDoKIAogIFwoUFJPRFVDVCBGRUFUVVJFIFZBTFVFIC4uLikKIAotd2hl cmUgUFJPRFVDVCBpcyB0aGUgYXBwcm9wcmlhdGUgdmFsdWUgb2YgYHNxbC1w cm9kdWN0Jy4gIFRoZSBwcm9kdWN0Ci1uYW1lIGlzIHRoZW4gZm9sbG93ZWQg YnkgRkVBVFVSRS1WQUxVRSBwYWlycy4gIElmIGEgRkVBVFVSRSBpcyBub3QK LXNwZWNpZmllZCwgaXRzIFZBTFVFIGlzIHRyZWF0ZWQgYXMgbmlsLiAgRkVB VFVSRSBtdXN0IGJlIG9uZSBvZiB0aGUKLWZvbGxvd2luZzoKK3doZXJlIFBS T0RVQ1QgaXMgdGhlIGFwcHJvcHJpYXRlIHZhbHVlIG9mIGBzcWwtcHJvZHVj dCcuICBUaGUKK3Byb2R1Y3QgbmFtZSBpcyB0aGVuIGZvbGxvd2VkIGJ5IEZF QVRVUkUtVkFMVUUgcGFpcnMuICBJZiBhCitGRUFUVVJFIGlzIG5vdCBzcGVj aWZpZWQsIGl0cyBWQUxVRSBpcyB0cmVhdGVkIGFzIG5pbC4gIEZFQVRVUkUK K21heSBiZSBhbnkgb25lIG9mIHRoZSBmb2xsb3dpbmc6CisKKyA6ZGlzcGxh eSAgICAgICAgICAgICAgIHN0cmluZyBjb250YWluaW5nIHRoZSBkaXNwbGF5 YWJsZSBuYW1lIG9mCisgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcHJv ZHVjdC4KKworIDpmcmVlLXNvZnR3YXJlICAgICAgICAgaXMgdGhlIHByb2R1 Y3QgRnJlZSAoYXMgaW4gRnJlZWRvbSkgc29mdHdhcmU/CiAKICA6Zm9udC1s b2NrICAgICAgICAgICAgIG5hbWUgb2YgdGhlIHZhcmlhYmxlIGNvbnRhaW5p bmcgdGhlIHByb2R1Y3QKICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNp ZmljIGZvbnQgbG9jayBoaWdobGlnaHRpbmcgcGF0dGVybnMuCiAKLSA6c3Fs aS1sb2dpbiAgICAgICAgICAgIGEgbGlzdCBvZiBsb2dpbiBwYXJhbWV0ZXJz IChpLmUuLCB1c2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dv cmQsIGRhdGFiYXNlIGFuZCBzZXJ2ZXIpIG5lZWRlZCB0bwotICAgICAgICAg ICAgICAgICAgICAgICAgY29ubmVjdCB0byB0aGUgZGF0YWJhc2UuCi0KLSA6 c3FsaS1jb25uZWN0ICAgICAgICAgIHRoZSBuYW1lIG9mIGEgZnVuY3Rpb24g d2hpY2ggYWNjZXB0cyBubworIDpzcWwtcHJvZ3JhbSAgICAgICAgICAgbmFt ZSBvZiB0aGUgdmFyaWFibGUgY29udGFpbmluZyB0aGUgcHJvZHVjdAorICAg ICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWMgaW50ZXJhY3RpdmUgcHJv Z3JhbSBuYW1lLgorCisgOnNxbGktbG9naW4gICAgICAgICAgICBuYW1lIG9m IHRoZSB2YXJpYWJsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mCisgICAgICAg ICAgICAgICAgICAgICAgICBsb2dpbiBwYXJhbWV0ZXJzIChpLmUuLCB1c2Vy LCBwYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNl IGFuZCBzZXJ2ZXIpIG5lZWRlZCB0byBjb25uZWN0IHRvCisgICAgICAgICAg ICAgICAgICAgICAgICB0aGUgZGF0YWJhc2UuCisKKyA6c3FsaS1jb25uZWN0 ICAgICAgICAgIG5hbWUgb2YgYSBmdW5jdGlvbiB3aGljaCBhY2NlcHRzIG5v CiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzIHRoYXQgd2ls bCB1c2UgdGhlIHZhbHVlcyBvZgogICAgICAgICAgICAgICAgICAgICAgICAg YHNxbC11c2VyJywgYHNxbC1wYXNzd29yZCcsCiAgICAgICAgICAgICAgICAg ICAgICAgICBgc3FsLWRhdGFiYXNlJyBhbmQgYHNxbC1zZXJ2ZXInIHRvIG9w ZW4gYQpAQCAtMzg1LDMwICs0NTIsNTcgQEAKICAgICAgICAgICAgICAgICAg ICAgICAgIGRhdGFiYXNlLiAgRG8gcHJvZHVjdCBzcGVjaWZpYwogICAgICAg ICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBvZiBjb21pbnQgaW4g dGhpcyBmdW5jdGlvbi4KIAotIDpzcWxpLXByb21wdC1yZWdleHAgICAgYSBy ZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nIHRoYXQgbWF0Y2hlcworIDpzcWxp LXByb21wdC1yZWdleHAgICAgcmVndWxhciBleHByZXNzaW9uIHN0cmluZyB0 aGF0IG1hdGNoZXMKICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBwcm9t cHQgaXNzdWVkIGJ5IHRoZSBwcm9kdWN0Ci0gICAgICAgICAgICAgICAgICAg ICAgICBpbnRlcnByZXRlci4gIChOb3QgbmVlZGVkIGluIDIxLjMrKQotCi0g OnNxbGktcHJvbXB0LWxlbmd0aCAgICB0aGUgbGVuZ3RoIG9mIHRoZSBwcm9t cHQgb24gdGhlIGxpbmUuKE5vdAotICAgICAgICAgICAgICAgICAgICAgICAg bmVlZGVkIGluIDIxLjMrKQotCi0gOnN5bnRheC1hbGlzdCAgICAgICAgICBh biBhbGlzdCBvZiBzeW50YXggdGFibGUgZW50cmllcyB0byBlbmFibGUKLSAg ICAgICAgICAgICAgICAgICAgICAgIHNwZWNpYWwgY2hhcmFjdGVyIHRyZWF0 bWVudCBieSBmb250LWxvY2sgYW5kCi0gICAgICAgICAgICAgICAgICAgICAg ICBpbWVudS4gIikKLQorICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJw cmV0ZXIuCisKKyA6c3FsaS1wcm9tcHQtbGVuZ3RoICAgIGxlbmd0aCBvZiB0 aGUgcHJvbXB0IG9uIHRoZSBsaW5lLgorCisgOnNxbC1pbnB1dC1maWx0ZXIg ICAgICBmdW5jdGlvbiB3aGljaCBjYW4gZmlsdGVyIHN0cmluZ3Mgc2VudCB0 bworICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNvbW1hbmQgaW50ZXJw cmV0ZXIuICBJdCBpcyBhbHNvIHVzZWQKKyAgICAgICAgICAgICAgICAgICAg ICAgIGJ5IHRoZSBgc3FsLXNlbmQtc3RyaW5nJywKKyAgICAgICAgICAgICAg ICAgICAgICAgIGBzcWwtc2VuZC1yZWdpb24nLCBgc3FsLXNlbmQtcGFyYWdy YXBoJworICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGBzcWwtc2VuZC1i dWZmZXInIGZ1bmN0aW9ucy4gIFRoZQorICAgICAgICAgICAgICAgICAgICAg ICAgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBzdHJpbmcgc2VudCB0byB0aGUK KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQgaW50ZXJwcmV0ZXIg YW5kIG11c3QgcmV0dXJuIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAg ZmlsdGVyZWQgc3RyaW5nLgorCisgOnNxbC1zZW5kLXRlcm1pbmF0b3IgICB0 aGUgdGVybWluYXRvciB0byBiZSBzZW50IGFmdGVyIGEKKyAgICAgICAgICAg ICAgICAgICAgICAgIGBzcWwtc2VuZC1zdHJpbmcnLCBgc3FsLXNlbmQtcmVn aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGBzcWwtc2VuZC1wYXJh Z3JhcGgnIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgYHNxbC1zZW5k LWJ1ZmZlcicgY29tbWFuZC4gIE1heSBiZSB0aGUKKyAgICAgICAgICAgICAg ICAgICAgICAgIGxpdGVyYWwgc3RyaW5nIG9yIGEgY29ucyBvZiBhIHJlZ2V4 cCB0bworICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggYW4gZXhpc3Rp bmcgdGVybWluYXRvciBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg IHN0cmluZyBhbmQgdGhlIHRlcm1pbmF0b3IgdG8gYmUgdXNlZCBpZgorICAg ICAgICAgICAgICAgICAgICAgICAgaXRzIGFic2VudC4gIEJ5IGRlZmF1bHQg XCI7XCIuCisKKyA6c3ludGF4LWFsaXN0ICAgICAgICAgIGFsaXN0IG9mIHN5 bnRheCB0YWJsZSBlbnRyaWVzIHRvIGVuYWJsZQorICAgICAgICAgICAgICAg ICAgICAgICAgc3BlY2lhbCBjaGFyYWN0ZXIgdHJlYXRtZW50IGJ5IGZvbnQt bG9jaworICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGltZW51LgorCitP dGhlciBmZWF0dXJlcyBjYW4gYmUgc3RvcmVkIGJ1dCB0aGV5IHdpbGwgYmUg aWdub3JlZC4gIEhvd2V2ZXIsCit5b3UgY2FuIGRldmVsb3AgbmV3IGZ1bmN0 aW9uYWxpdHkgd2hpY2ggaXMgcHJvZHVjdCBpbmRlcGVuZGVudCBieQordXNp bmcgYHNxbC1nZXQtcHJvZHVjdC1mZWF0dXJlJyB0byBsb29rdXAgdGhlIHBy b2R1Y3Qgc3BlY2lmaWMKK3NldHRpbmdzLiIpCisKKzs7OyMjI2F1dG9sb2Fk CiAoZGVmY3VzdG9tIHNxbC1wcm9kdWN0ICdhbnNpCiAgICIqU2VsZWN0IHRo ZSBTUUwgZGF0YWJhc2UgcHJvZHVjdCB1c2VkIHNvIHRoYXQgYnVmZmVycyBj YW4gYmUKIGhpZ2hsaWdodGVkIHByb3Blcmx5IHdoZW4geW91IG9wZW4gdGhl bS4iCiAgIDp0eXBlIGAoY2hvaWNlCiAgICAgICAgICAgLEAobWFwY2FyIChs YW1iZGEgKHByb2QtaW5mbykKICAgICAgICAgICAgICAgICAgICAgICBgKGNv bnN0IDp0YWcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwob3Ig KHBsaXN0LWdldCAoY2RyIHByb2QtaW5mbykgOm5hbWUpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAsKG9yIChwbGlzdC1nZXQgKGNkciBwcm9k LWluZm8pIDpkaXNwbGF5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoY2FwaXRhbGl6ZSAoc3ltYm9sLW5hbWUgKGNhciBwcm9kLWlu Zm8pKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsKGNhciBw cm9kLWluZm8pKSkKICAgICAgICAgICAgICAgICAgICAgc3FsLXByb2R1Y3Qt YWxpc3QpKQogICA6Z3JvdXAgJ1NRTCkKLQotOzsgbWlzYyBjdXN0b21pemF0 aW9uIG9mIHNxbC5lbCBiZWhhdmlvcgorKHB1dCAnc3FsLXByb2R1Y3QgJ3Nh ZmUtbG9jYWwtdmFyaWFibGUgJ3N5bWJvbHApCisKKyhkZWZ2YXIgc3FsLWlu dGVyYWN0aXZlLXByb2R1Y3QgbmlsCisgICJQcm9kdWN0IHVuZGVyIGBzcWwt aW50ZXJhY3RpdmUtbW9kZScuIikKKworOzsgbWlzYyBjdXN0b21pemF0aW9u IG9mIHNxbC5lbCBiZWhhdmlvdXIKIAogKGRlZmN1c3RvbSBzcWwtZWxlY3Ry aWMtc3R1ZmYgbmlsCiAgICJUcmVhdCBzb21lIGlucHV0IGFzIGVsZWN0cmlj LgpAQCAtNDI0LDE0ICs1MTgsNDQgQEAKICAgOnZlcnNpb24gIjIwLjgiCiAg IDpncm91cCAnU1FMKQogCisoZGVmY3VzdG9tIHNxbC1zZW5kLXRlcm1pbmF0 b3IgbmlsCisgICJXaGVuIG5vbi1uaWwsIGFkZCBhIHRlcm1pbmF0b3IgdG8g dGV4dCBzZW50IHRvIHRoZSBTUUwgaW50ZXJwcmV0ZXIuCisKK1doZW4gdGV4 dCBpcyBzZW50IHRvIHRoZSBTUUwgaW50ZXJwcmV0ZXIgKHZpYSBgc3FsLXNl bmQtc3RyaW5nJywKK2BzcWwtc2VuZC1yZWdpb24nLCBgc3FsLXNlbmQtcGFy YWdyYXBoJyBvciBgc3FsLXNlbmQtYnVmZmVyJyksIGEKK2NvbW1hbmQgdGVy bWluYXRvciBjYW4gYmUgYXV0b21hdGljYWxseSBzZW50IGFzIHdlbGwuICBU aGUKK3Rlcm1pbmF0b3IgaXMgbm90IHNlbnQsIGlmIHRoZSBzdHJpbmcgc2Vu dCBhbHJlYWR5IGVuZHMgd2l0aCB0aGUKK3Rlcm1pbmF0b3IuCisKK0lmIHRo aXMgdmFsdWUgaXMgdCwgdGhlbiB0aGUgZGVmYXVsdCBjb21tYW5kIHRlcm1p bmF0b3IgZm9yIHRoZQorU1FMIGludGVycHJldGVyIGlzIHNlbnQuICBJZiB0 aGlzIHZhbHVlIGlzIGEgc3RyaW5nLCB0aGVuIHRoZQorc3RyaW5nIGlzIHNl bnQuCisKK0lmIHRoZSB2YWx1ZSBpcyBhIGNvbnMgY2VsbCBvZiB0aGUgZm9y bSAoUEFUIC4gVEVSTSksIHRoZW4gUEFUIGlzCithIHJlZ2V4cCB1c2VkIHRv IG1hdGNoIHRoZSB0ZXJtaW5hdG9yIGluIHRoZSBzdHJpbmcgYW5kIFRFUk0g aXMKK3RoZSB0ZXJtaW5hdG9yIHRvIGJlIHNlbnQuICBUaGlzIGZvcm0gaXMg dXNlZnVsIGlmIHRoZSBTUUwKK2ludGVycHJldGVyIGhhcyBtb3JlIHRoYW4g b25lIHdheSBvZiBzdWJtaXR0aW5nIGEgU1FMIGNvbW1hbmQuCitUaGUgUEFU IHJlZ2V4cCBjYW4gbWF0Y2ggYW55IG9mIHRoZW0sIGFuZCBURVJNIGlzIHRo ZSB3YXkgd2UgZG8KK2l0IGF1dG9tYXRpY2FsbHkuIgorCisgIDp0eXBlICco Y2hvaWNlIChjb25zdCAgOnRhZyAiTm8gVGVybWluYXRvciIgbmlsKQorCQkg KGNvbnN0ICA6dGFnICJEZWZhdWx0IFRlcm1pbmF0b3IiIHQpCisJCSAoc3Ry aW5nIDp0YWcgIlRlcm1pbmF0b3IgU3RyaW5nIikKKwkJIChjb25zICAgOnRh ZyAiVGVybWluYXRvciBQYXR0ZXJuIGFuZCBTdHJpbmciCisJCQkgKHN0cmlu ZyA6dGFnICJUZXJtaW5hdG9yIFBhdHRlcm4iKQorCQkJIChzdHJpbmcgOnRh ZyAiVGVybWluYXRvciBTdHJpbmciKSkpCisgIDp2ZXJzaW9uICIyMi4yIgor ICA6Z3JvdXAgJ1NRTCkKKwogKGRlZmN1c3RvbSBzcWwtcG9wLXRvLWJ1ZmZl ci1hZnRlci1zZW5kLXJlZ2lvbiBuaWwKLSAgIipJZiB0LCBwb3AgdG8gdGhl IGJ1ZmZlciBTUUwgc3RhdGVtZW50cyBhcmUgc2VudCB0by4KKyAgIldoZW4g bm9uLW5pbCwgcG9wIHRvIHRoZSBidWZmZXIgU1FMIHN0YXRlbWVudHMgYXJl IHNlbnQgdG8uCiAKLUFmdGVyIGEgY2FsbCB0byBgc3FsLXNlbmQtcmVnaW9u JyBvciBgc3FsLXNlbmQtYnVmZmVyJywKLXRoZSB3aW5kb3cgaXMgc3BsaXQg YW5kIHRoZSBTUUxpIGJ1ZmZlciBpcyBzaG93bi4gIElmIHRoaXMKLXZhcmlh YmxlIGlzIG5vdCBuaWwsIHRoYXQgYnVmZmVyJ3Mgd2luZG93IHdpbGwgYmUg c2VsZWN0ZWQKLWJ5IGNhbGxpbmcgYHBvcC10by1idWZmZXInLiAgSWYgdGhp cyB2YXJpYWJsZSBpcyBuaWwsIHRoYXQKLWJ1ZmZlciBpcyBzaG93biB1c2lu ZyBgZGlzcGxheS1idWZmZXInLiIKK0FmdGVyIGEgY2FsbCB0byBgc3FsLXNl bnQtc3RyaW5nJywgYHNxbC1zZW5kLXJlZ2lvbicsCitgc3FsLXNlbmQtcGFy YWdyYXBoJyBvciBgc3FsLXNlbmQtYnVmZmVyJywgdGhlIHdpbmRvdyBpcyBz cGxpdAorYW5kIHRoZSBTUUxpIGJ1ZmZlciBpcyBzaG93bi4gIElmIHRoaXMg dmFyaWFibGUgaXMgbm90IG5pbCwgdGhhdAorYnVmZmVyJ3Mgd2luZG93IHdp bGwgYmUgc2VsZWN0ZWQgYnkgY2FsbGluZyBgcG9wLXRvLWJ1ZmZlcicuICBJ ZgordGhpcyB2YXJpYWJsZSBpcyBuaWwsIHRoYXQgYnVmZmVyIGlzIHNob3du IHVzaW5nCitgZGlzcGxheS1idWZmZXInLiIKICAgOnR5cGUgJ2Jvb2xlYW4K ICAgOmdyb3VwICdTUUwpCiAKQEAgLTQ0NSwxOSArNTY5LDIwIEBACiAgICAg KCJGdW5jdGlvbnMiICJeXFxzLSpcXChjcmVhdGVcXHMtK1xcKFxcdytcXHMt K1xcKSpcXCk/ZnVuY3Rpb25cXHMtK1xcKFxcdytcXCkiIDMpCiAgICAgKCJQ cm9jZWR1cmVzIiAiXlxccy0qXFwoY3JlYXRlXFxzLStcXChcXHcrXFxzLStc XCkqXFwpP3Byb2NcXChlZHVyZVxcKT9cXHMtK1xcKFxcdytcXCkiIDQpCiAg ICAgKCJQYWNrYWdlcyIgIl5cXHMtKmNyZWF0ZVxccy0rXFwoXFx3K1xccy0r XFwpKnBhY2thZ2VcXHMtK1xcKGJvZHlcXHMtK1xcKT9cXChcXHcrXFwpIiAz KQorICAgICgiVHlwZXMiICJeXFxzLSpjcmVhdGVcXHMtK1xcKFxcdytcXHMt K1xcKSp0eXBlXFxzLStcXChib2R5XFxzLStcXCk/XFwoXFx3K1xcKSIgMykK ICAgICAoIkluZGV4ZXMiICJeXFxzLSpjcmVhdGVcXHMtK1xcKFxcdytcXHMt K1xcKSppbmRleFxccy0rXFwoXFx3K1xcKSIgMikKICAgICAoIlRhYmxlcy9W aWV3cyIgIl5cXHMtKmNyZWF0ZVxccy0rXFwoXFx3K1xccy0rXFwpKlxcKHRh YmxlXFx8dmlld1xcKVxccy0rXFwoXFx3K1xcKSIgMykpCiAgICJEZWZpbmUg aW50ZXJlc3RpbmcgcG9pbnRzIGluIHRoZSBTUUwgYnVmZmVyIGZvciBgaW1l bnUnLgogCiBUaGlzIGlzIHVzZWQgdG8gc2V0IGBpbWVudS1nZW5lcmljLWV4 cHJlc3Npb24nIHdoZW4gU1FMIG1vZGUgaXMKLWVudGVyZWQuICBTdWJzZXF1 ZW50IGNoYW5nZXMgdG8gc3FsLWltZW51LWdlbmVyaWMtZXhwcmVzc2lvbiB3 aWxsIG5vdAotYWZmZWN0IGV4aXN0aW5nIFNRTCBidWZmZXJzIGJlY2F1c2Ug aW1lbnUtZ2VuZXJpYy1leHByZXNzaW9uIGlzIGEKK2VudGVyZWQuICBTdWJz ZXF1ZW50IGNoYW5nZXMgdG8gYHNxbC1pbWVudS1nZW5lcmljLWV4cHJlc3Np b24nIHdpbGwgbm90CithZmZlY3QgZXhpc3RpbmcgU1FMIGJ1ZmZlcnMgYmVj YXVzZSBgaW1lbnUtZ2VuZXJpYy1leHByZXNzaW9uJyBpcyBhCiBsb2NhbCB2 YXJpYWJsZS4iKQogCiA7OyBoaXN0b3J5IGZpbGUKIAogKGRlZmN1c3RvbSBz cWwtaW5wdXQtcmluZy1maWxlLW5hbWUgbmlsCi0gICIqSWYgbm9uLW5pbCwg bmFtZSBvZiB0aGUgZmlsZSB0byByZWFkL3dyaXRlIGlucHV0IGhpc3Rvcnku CisgICJJZiBub24tbmlsLCBuYW1lIG9mIHRoZSBmaWxlIHRvIHJlYWQvd3Jp dGUgaW5wdXQgaGlzdG9yeS4KIAogWW91IGhhdmUgdG8gc2V0IHRoaXMgdmFy aWFibGUgaWYgeW91IHdhbnQgdGhlIGhpc3Rvcnkgb2YgeW91ciBjb21tYW5k cwogc2F2ZWQgZnJvbSBvbmUgRW1hY3Mgc2Vzc2lvbiB0byB0aGUgbmV4dC4g IElmIHRoaXMgdmFyaWFibGUgaXMgc2V0LApAQCAtNDc0LDcgKzU5OSw3IEBA CiAgIDpncm91cCAnU1FMKQogCiAoZGVmY3VzdG9tIHNxbC1pbnB1dC1yaW5n LXNlcGFyYXRvciAiXG4tLVxuIgotICAiKlNlcGFyYXRvciBiZXR3ZWVuIGNv bW1hbmRzIGluIHRoZSBoaXN0b3J5IGZpbGUuCisgICJTZXBhcmF0b3IgYmV0 d2VlbiBjb21tYW5kcyBpbiB0aGUgaGlzdG9yeSBmaWxlLgogCiBJZiBzZXQg dG8gXCJcXG5cIiwgZWFjaCBsaW5lIGluIHRoZSBoaXN0b3J5IGZpbGUgd2ls bCBiZSBpbnRlcnByZXRlZCBhcwogb25lIGNvbW1hbmQuICBNdWx0aS1saW5l IGNvbW1hbmRzIGFyZSBzcGxpdCBpbnRvIHNldmVyYWwgY29tbWFuZHMgd2hl bgpAQCAtNDkyLDE5ICs2MTcsMTkgQEAKIDs7IFRoZSB1c3VhbCBob29rcwog CiAoZGVmY3VzdG9tIHNxbC1pbnRlcmFjdGl2ZS1tb2RlLWhvb2sgJygpCi0g ICIqSG9vayBmb3IgY3VzdG9taXppbmcgYHNxbC1pbnRlcmFjdGl2ZS1tb2Rl Jy4iCisgICJIb29rIGZvciBjdXN0b21pemluZyBgc3FsLWludGVyYWN0aXZl LW1vZGUnLiIKICAgOnR5cGUgJ2hvb2sKICAgOmdyb3VwICdTUUwpCiAKIChk ZWZjdXN0b20gc3FsLW1vZGUtaG9vayAnKCkKLSAgIipIb29rIGZvciBjdXN0 b21pemluZyBgc3FsLW1vZGUnLiIKKyAgIkhvb2sgZm9yIGN1c3RvbWl6aW5n IGBzcWwtbW9kZScuIgogICA6dHlwZSAnaG9vawogICA6Z3JvdXAgJ1NRTCkK IAogKGRlZmN1c3RvbSBzcWwtc2V0LXNxbGktaG9vayAnKCkKLSAgIipIb29r IGZvciByZWFjdGluZyB0byBjaGFuZ2VzIG9mIGBzcWwtYnVmZmVyJy4KKyAg Ikhvb2sgZm9yIHJlYWN0aW5nIHRvIGNoYW5nZXMgb2YgYHNxbGktYnVmZmVy Jy4KIAotVGhpcyBpcyBjYWxsZWQgYnkgYHNxbC1zZXQtc3FsaS1idWZmZXIn IHdoZW4gdGhlIHZhbHVlIG9mIGBzcWwtYnVmZmVyJworVGhpcyBpcyBjYWxs ZWQgYnkgYHNxbC1zZXQtc3FsaS1idWZmZXInIHdoZW4gdGhlIHZhbHVlIG9m IGBzcWxpLWJ1ZmZlcicKIGlzIGNoYW5nZWQuIgogICA6dHlwZSAnaG9vawog ICA6Z3JvdXAgJ1NRTCkKQEAgLTUxMiwxNDQgKzYzNywyMjIgQEAKIDs7IEN1 c3RvbWl6YXRpb24gZm9yIE9yYWNsZQogCiAoZGVmY3VzdG9tIHNxbC1vcmFj bGUtcHJvZ3JhbSAic3FscGx1cyIKLSAgIipDb21tYW5kIHRvIHN0YXJ0IHNx bHBsdXMgYnkgT3JhY2xlLgorICAiQ29tbWFuZCB0byBzdGFydCBzcWxwbHVz IGJ5IE9yYWNsZS4KIAogU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScg YWZ0ZXIgZG9pbmcgc29tZSBzZXR1cC4KIAogVW5kZXIgTlQsIFwic3FscGx1 c1wiIHVzdWFsbHkgc3RhcnRzIHRoZSBzcWxwbHVzIFwiR1VJXCIuICBJbiBv cmRlciB0bwogc3RhcnQgdGhlIHNxbHBsdXMgY29uc29sZSwgdXNlIFwicGx1 czMzXCIgb3Igc29tZXRoaW5nIHNpbWlsYXIuICBZb3UKLXdpbGwgZmluZCB0 aGUgZmlsZSBpbiB5b3VyIE9yYW50XFxiaW4gZGlyZWN0b3J5LgotCi1UaGUg cHJvZ3JhbSBjYW4gYWxzbyBzcGVjaWZ5IGEgVENQIGNvbm5lY3Rpb24uICBT ZWUgYG1ha2UtY29taW50Jy4iCit3aWxsIGZpbmQgdGhlIGZpbGUgaW4geW91 ciBPcmFudFxcYmluIGRpcmVjdG9yeS4iCiAgIDp0eXBlICdmaWxlCiAgIDpn cm91cCAnU1FMKQogCiAoZGVmY3VzdG9tIHNxbC1vcmFjbGUtb3B0aW9ucyBu aWwKLSAgIipMaXN0IG9mIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgYHNxbC1v cmFjbGUtcHJvZ3JhbScuIgorICAiTGlzdCBvZiBhZGRpdGlvbmFsIG9wdGlv bnMgZm9yIGBzcWwtb3JhY2xlLXByb2dyYW0nLiIKICAgOnR5cGUgJyhyZXBl YXQgc3RyaW5nKQogICA6dmVyc2lvbiAiMjAuOCIKICAgOmdyb3VwICdTUUwp CiAKKyhkZWZjdXN0b20gc3FsLW9yYWNsZS1sb2dpbi1wYXJhbXMgJyh1c2Vy IHBhc3N3b3JkIGRhdGFiYXNlKQorICAiTGlzdCBvZiBsb2dpbiBwYXJhbWV0 ZXJzIG5lZWRlZCB0byBjb25uZWN0IHRvIE9yYWNsZS4iCisgIDp0eXBlICco cmVwZWF0IChjaG9pY2UKKwkJICAoY29uc3QgdXNlcikKKwkJICAoY29uc3Qg cGFzc3dvcmQpCisJCSAgKGNvbnN0IHNlcnZlcikKKwkJICAoY29uc3QgZGF0 YWJhc2UpKSkKKyAgOnZlcnNpb24gIjI0LjEiCisgIDpncm91cCAnU1FMKQor CisoZGVmY3VzdG9tIHNxbC1vcmFjbGUtc2Nhbi1vbiB0CisgICJOb24tbmls IGlmIHBsYWNlaG9sZGVycyBzaG91bGQgYmUgcmVwbGFjZWQgaW4gT3JhY2xl IFNRTGkuCisKK1doZW4gbm9uLW5pbCwgRW1hY3Mgd2lsbCBzY2FuIHRleHQg c2VudCB0byBzcWxwbHVzIGFuZCBwcm9tcHQKK2ZvciByZXBsYWNlbWVudCB0 ZXh0IGZvciAmIHBsYWNlaG9sZGVycyBhcyBzcWxwbHVzIGRvZXMuICBUaGlz CitpcyBuZWVkZWQgb24gV2luZG93cyB3aGVyZSBzcWxwbHVzIG91dHB1dCBp cyBidWZmZXIgYW5kIHRoZQorcHJvbXB0cyBhcmUgbm90IHNob3duIHVudGls IGFmdGVyIHRoZSB0ZXh0IGlzIGVudGVyZWQuCisKK1lvdSB3aWxsIHByb2Jh Ymx5IHdhbnQgdG8gaXNzdWUgdGhlIGZvbGxvd2luZyBjb21tYW5kIGluIHNx bHBsdXMKK3RvIGJlIHNhZmU6CisKKyAgICBTRVQgU0NBTiBPRkYiCisgIDp0 eXBlICdib29sZWFuCisgIDpncm91cCAnU1FMKQorCiA7OyBDdXN0b21pemF0 aW9uIGZvciBTUUxpdGUKIAogKGRlZmN1c3RvbSBzcWwtc3FsaXRlLXByb2dy YW0gInNxbGl0ZSIKLSAgIipDb21tYW5kIHRvIHN0YXJ0IFNRTGl0ZS4KLQot U3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIgZG9pbmcgc29t ZSBzZXR1cC4KLQotVGhlIHByb2dyYW0gY2FuIGFsc28gc3BlY2lmeSBhIFRD UCBjb25uZWN0aW9uLiAgU2VlIGBtYWtlLWNvbWludCcuIgorICAiQ29tbWFu ZCB0byBzdGFydCBTUUxpdGUuCisKK1N0YXJ0cyBgc3FsLWludGVyYWN0aXZl LW1vZGUnIGFmdGVyIGRvaW5nIHNvbWUgc2V0dXAuIgogICA6dHlwZSAnZmls ZQogICA6Z3JvdXAgJ1NRTCkKIAogKGRlZmN1c3RvbSBzcWwtc3FsaXRlLW9w dGlvbnMgbmlsCi0gICIqTGlzdCBvZiBhZGRpdGlvbmFsIG9wdGlvbnMgZm9y IGBzcWwtc3FsaXRlLXByb2dyYW0nLgorICAiTGlzdCBvZiBhZGRpdGlvbmFs IG9wdGlvbnMgZm9yIGBzcWwtc3FsaXRlLXByb2dyYW0nLgorCiBUaGUgZm9s bG93aW5nIGxpc3Qgb2Ygb3B0aW9ucyBpcyByZXBvcnRlZCB0byBtYWtlIHRo aW5ncyB3b3JrCiBvbiBXaW5kb3dzOiBcIi1DXCIgXCItdFwiIFwiLWZcIiBc Ii1uXCIuIgogICA6dHlwZSAnKHJlcGVhdCBzdHJpbmcpCiAgIDp2ZXJzaW9u ICIyMC44IgogICA6Z3JvdXAgJ1NRTCkKIAorKGRlZmN1c3RvbSBzcWwtc3Fs aXRlLWxvZ2luLXBhcmFtcyAnKHVzZXIgcGFzc3dvcmQgc2VydmVyIGRhdGFi YXNlKQorICAiTGlzdCBvZiBsb2dpbiBwYXJhbWV0ZXJzIG5lZWRlZCB0byBj b25uZWN0IHRvIE9yYWNsZS4iCisgIDp0eXBlICcocmVwZWF0IChjaG9pY2UK KwkJICAoY29uc3QgdXNlcikKKwkJICAoY29uc3QgcGFzc3dvcmQpCisJCSAg KGNvbnN0IHNlcnZlcikKKwkJICAoY29uc3QgZGF0YWJhc2UpKSkKKyAgOnZl cnNpb24gIjI0LjEiCisgIDpncm91cCAnU1FMKQorCiA7OyBDdXN0b21pemF0 aW9uIGZvciBNeVNxbAogCiAoZGVmY3VzdG9tIHNxbC1teXNxbC1wcm9ncmFt ICJteXNxbCIKLSAgIipDb21tYW5kIHRvIHN0YXJ0IG15c3FsIGJ5IFRjWC4K LQotU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIgZG9pbmcg c29tZSBzZXR1cC4KLQotVGhlIHByb2dyYW0gY2FuIGFsc28gc3BlY2lmeSBh IFRDUCBjb25uZWN0aW9uLiAgU2VlIGBtYWtlLWNvbWludCcuIgorICAiQ29t bWFuZCB0byBzdGFydCBteXNxbCBieSBUY1guCisKK1N0YXJ0cyBgc3FsLWlu dGVyYWN0aXZlLW1vZGUnIGFmdGVyIGRvaW5nIHNvbWUgc2V0dXAuIgogICA6 dHlwZSAnZmlsZQogICA6Z3JvdXAgJ1NRTCkKIAogKGRlZmN1c3RvbSBzcWwt bXlzcWwtb3B0aW9ucyBuaWwKLSAgIipMaXN0IG9mIGFkZGl0aW9uYWwgb3B0 aW9ucyBmb3IgYHNxbC1teXNxbC1wcm9ncmFtJy4KKyAgIkxpc3Qgb2YgYWRk aXRpb25hbCBvcHRpb25zIGZvciBgc3FsLW15c3FsLXByb2dyYW0nLgogVGhl IGZvbGxvd2luZyBsaXN0IG9mIG9wdGlvbnMgaXMgcmVwb3J0ZWQgdG8gbWFr ZSB0aGluZ3Mgd29yawogb24gV2luZG93czogXCItQ1wiIFwiLXRcIiBcIi1m XCIgXCItblwiLiIKICAgOnR5cGUgJyhyZXBlYXQgc3RyaW5nKQogICA6dmVy c2lvbiAiMjAuOCIKICAgOmdyb3VwICdTUUwpCiAKKyhkZWZjdXN0b20gc3Fs LW15c3FsLWxvZ2luLXBhcmFtcyAnKHVzZXIgcGFzc3dvcmQgZGF0YWJhc2Ug c2VydmVyKQorICAiTGlzdCBvZiBsb2dpbiBwYXJhbWV0ZXJzIG5lZWRlZCB0 byBjb25uZWN0IHRvIE15U3FsLiIKKyAgOnR5cGUgJyhyZXBlYXQgKGNob2lj ZQorCQkgIChjb25zdCB1c2VyKQorCQkgIChjb25zdCBwYXNzd29yZCkKKwkJ ICAoY29uc3Qgc2VydmVyKQorCQkgIChjb25zdCBkYXRhYmFzZSkpKQorICA6 dmVyc2lvbiAiMjQuMSIKKyAgOmdyb3VwICdTUUwpCisKIDs7IEN1c3RvbWl6 YXRpb24gZm9yIFNvbGlkCiAKIChkZWZjdXN0b20gc3FsLXNvbGlkLXByb2dy YW0gInNvbHNxbCIKLSAgIipDb21tYW5kIHRvIHN0YXJ0IFNPTElEIFNRTCBF ZGl0b3IuCi0KLVN0YXJ0cyBgc3FsLWludGVyYWN0aXZlLW1vZGUnIGFmdGVy IGRvaW5nIHNvbWUgc2V0dXAuCi0KLVRoZSBwcm9ncmFtIGNhbiBhbHNvIHNw ZWNpZnkgYSBUQ1AgY29ubmVjdGlvbi4gIFNlZSBgbWFrZS1jb21pbnQnLiIK KyAgIkNvbW1hbmQgdG8gc3RhcnQgU09MSUQgU1FMIEVkaXRvci4KKworU3Rh cnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIgZG9pbmcgc29tZSBz ZXR1cC4iCiAgIDp0eXBlICdmaWxlCiAgIDpncm91cCAnU1FMKQogCisoZGVm Y3VzdG9tIHNxbC1zb2xpZC1sb2dpbi1wYXJhbXMgJyh1c2VyIHBhc3N3b3Jk IHNlcnZlcikKKyAgIkxpc3Qgb2YgbG9naW4gcGFyYW1ldGVycyBuZWVkZWQg dG8gY29ubmVjdCB0byBTb2xpZC4iCisgIDp0eXBlICcocmVwZWF0IChjaG9p Y2UKKwkJICAoY29uc3QgdXNlcikKKwkJICAoY29uc3QgcGFzc3dvcmQpCisJ CSAgKGNvbnN0IHNlcnZlcikKKwkJICAoY29uc3QgZGF0YWJhc2UpKSkKKyAg OnZlcnNpb24gIjI0LjEiCisgIDpncm91cCAnU1FMKQorCiA7OyBDdXN0b21p emF0aW9uIGZvciBTeUJhc2UKIAogKGRlZmN1c3RvbSBzcWwtc3liYXNlLXBy b2dyYW0gImlzcWwiCi0gICIqQ29tbWFuZCB0byBzdGFydCBpc3FsIGJ5IFN5 QmFzZS4KLQotU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIg ZG9pbmcgc29tZSBzZXR1cC4KLQotVGhlIHByb2dyYW0gY2FuIGFsc28gc3Bl Y2lmeSBhIFRDUCBjb25uZWN0aW9uLiAgU2VlIGBtYWtlLWNvbWludCcuIgor ICAiQ29tbWFuZCB0byBzdGFydCBpc3FsIGJ5IFN5QmFzZS4KKworU3RhcnRz IGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIgZG9pbmcgc29tZSBzZXR1 cC4iCiAgIDp0eXBlICdmaWxlCiAgIDpncm91cCAnU1FMKQogCiAoZGVmY3Vz dG9tIHNxbC1zeWJhc2Utb3B0aW9ucyBuaWwKLSAgIipMaXN0IG9mIGFkZGl0 aW9uYWwgb3B0aW9ucyBmb3IgYHNxbC1zeWJhc2UtcHJvZ3JhbScuCisgICJM aXN0IG9mIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgYHNxbC1zeWJhc2UtcHJv Z3JhbScuCiBTb21lIHZlcnNpb25zIG9mIGlzcWwgbWlnaHQgcmVxdWlyZSB0 aGUgLW4gb3B0aW9uIGluIG9yZGVyIHRvIHdvcmsuIgogICA6dHlwZSAnKHJl cGVhdCBzdHJpbmcpCiAgIDp2ZXJzaW9uICIyMC44IgogICA6Z3JvdXAgJ1NR TCkKIAorKGRlZmN1c3RvbSBzcWwtc3liYXNlLWxvZ2luLXBhcmFtcyAnKHNl cnZlciB1c2VyIHBhc3N3b3JkIGRhdGFiYXNlKQorICAiTGlzdCBvZiBsb2dp biBwYXJhbWV0ZXJzIG5lZWRlZCB0byBjb25uZWN0IHRvIFN5YmFzZS4iCisg IDp0eXBlICcocmVwZWF0IChjaG9pY2UKKwkJICAoY29uc3QgdXNlcikKKwkJ ICAoY29uc3QgcGFzc3dvcmQpCisJCSAgKGNvbnN0IHNlcnZlcikKKwkJICAo Y29uc3QgZGF0YWJhc2UpKSkKKyAgOnZlcnNpb24gIjI0LjEiCisgIDpncm91 cCAnU1FMKQorCiA7OyBDdXN0b21pemF0aW9uIGZvciBJbmZvcm1peAogCiAo ZGVmY3VzdG9tIHNxbC1pbmZvcm1peC1wcm9ncmFtICJkYmFjY2VzcyIKLSAg IipDb21tYW5kIHRvIHN0YXJ0IGRiYWNjZXNzIGJ5IEluZm9ybWl4LgotCi1T dGFydHMgYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJyBhZnRlciBkb2luZyBzb21l IHNldHVwLgotCi1UaGUgcHJvZ3JhbSBjYW4gYWxzbyBzcGVjaWZ5IGEgVENQ IGNvbm5lY3Rpb24uICBTZWUgYG1ha2UtY29taW50Jy4iCisgICJDb21tYW5k IHRvIHN0YXJ0IGRiYWNjZXNzIGJ5IEluZm9ybWl4LgorCitTdGFydHMgYHNx bC1pbnRlcmFjdGl2ZS1tb2RlJyBhZnRlciBkb2luZyBzb21lIHNldHVwLiIK ICAgOnR5cGUgJ2ZpbGUKICAgOmdyb3VwICdTUUwpCiAKKyhkZWZjdXN0b20g c3FsLWluZm9ybWl4LWxvZ2luLXBhcmFtcyAnKGRhdGFiYXNlKQorICAiTGlz dCBvZiBsb2dpbiBwYXJhbWV0ZXJzIG5lZWRlZCB0byBjb25uZWN0IHRvIElu Zm9ybWl4LiIKKyAgOnR5cGUgJyhyZXBlYXQgKGNob2ljZQorCQkgIChjb25z dCB1c2VyKQorCQkgIChjb25zdCBwYXNzd29yZCkKKwkJICAoY29uc3Qgc2Vy dmVyKQorCQkgIChjb25zdCBkYXRhYmFzZSkpKQorICA6dmVyc2lvbiAiMjQu MSIKKyAgOmdyb3VwICdTUUwpCisKIDs7IEN1c3RvbWl6YXRpb24gZm9yIElu Z3JlcwogCiAoZGVmY3VzdG9tIHNxbC1pbmdyZXMtcHJvZ3JhbSAic3FsIgot ICAiKkNvbW1hbmQgdG8gc3RhcnQgc3FsIGJ5IEluZ3Jlcy4KLQotU3RhcnRz IGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIgZG9pbmcgc29tZSBzZXR1 cC4KLQotVGhlIHByb2dyYW0gY2FuIGFsc28gc3BlY2lmeSBhIFRDUCBjb25u ZWN0aW9uLiAgU2VlIGBtYWtlLWNvbWludCcuIgorICAiQ29tbWFuZCB0byBz dGFydCBzcWwgYnkgSW5ncmVzLgorCitTdGFydHMgYHNxbC1pbnRlcmFjdGl2 ZS1tb2RlJyBhZnRlciBkb2luZyBzb21lIHNldHVwLiIKICAgOnR5cGUgJ2Zp bGUKICAgOmdyb3VwICdTUUwpCiAKKyhkZWZjdXN0b20gc3FsLWluZ3Jlcy1s b2dpbi1wYXJhbXMgJyhkYXRhYmFzZSkKKyAgIkxpc3Qgb2YgbG9naW4gcGFy YW1ldGVycyBuZWVkZWQgdG8gY29ubmVjdCB0byBJbmdyZXMuIgorICA6dHlw ZSAnKHJlcGVhdCAoY2hvaWNlCisJCSAgKGNvbnN0IHVzZXIpCisJCSAgKGNv bnN0IHBhc3N3b3JkKQorCQkgIChjb25zdCBzZXJ2ZXIpCisJCSAgKGNvbnN0 IGRhdGFiYXNlKSkpCisgIDp2ZXJzaW9uICIyNC4xIgorICA6Z3JvdXAgJ1NR TCkKKwogOzsgQ3VzdG9taXphdGlvbiBmb3IgTWljcm9zb2Z0CiAKIChkZWZj dXN0b20gc3FsLW1zLXByb2dyYW0gIm9zcWwiCi0gICIqQ29tbWFuZCB0byBz dGFydCBvc3FsIGJ5IE1pY3Jvc29mdC4KLQotU3RhcnRzIGBzcWwtaW50ZXJh Y3RpdmUtbW9kZScgYWZ0ZXIgZG9pbmcgc29tZSBzZXR1cC4KLQotVGhlIHBy b2dyYW0gY2FuIGFsc28gc3BlY2lmeSBhIFRDUCBjb25uZWN0aW9uLiAgU2Vl IGBtYWtlLWNvbWludCcuIgorICAiQ29tbWFuZCB0byBzdGFydCBvc3FsIGJ5 IE1pY3Jvc29mdC4KKworU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScg YWZ0ZXIgZG9pbmcgc29tZSBzZXR1cC4iCiAgIDp0eXBlICdmaWxlCiAgIDpn cm91cCAnU1FMKQogCiAoZGVmY3VzdG9tIHNxbC1tcy1vcHRpb25zICcoIi13 IiAiMzAwIiAiLW4iKQogICA7OyAtdyBpcyB0aGUgbGluZXNpemUKLSAgIipM aXN0IG9mIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgYHNxbC1tcy1wcm9ncmFt Jy4iCisgICJMaXN0IG9mIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgYHNxbC1t cy1wcm9ncmFtJy4iCiAgIDp0eXBlICcocmVwZWF0IHN0cmluZykKICAgOnZl cnNpb24gIjIyLjEiCiAgIDpncm91cCAnU1FMKQogCisoZGVmY3VzdG9tIHNx bC1tcy1sb2dpbi1wYXJhbXMgJyh1c2VyIHBhc3N3b3JkIHNlcnZlciBkYXRh YmFzZSkKKyAgIkxpc3Qgb2YgbG9naW4gcGFyYW1ldGVycyBuZWVkZWQgdG8g Y29ubmVjdCB0byBNaWNyb3NvZnQuIgorICA6dHlwZSAnKHJlcGVhdCAoY2hv aWNlCisJCSAgKGNvbnN0IHVzZXIpCisJCSAgKGNvbnN0IHBhc3N3b3JkKQor CQkgIChjb25zdCBzZXJ2ZXIpCisJCSAgKGNvbnN0IGRhdGFiYXNlKSkpCisg IDp2ZXJzaW9uICIyNC4xIgorICA6Z3JvdXAgJ1NRTCkKKwogOzsgQ3VzdG9t aXphdGlvbiBmb3IgUG9zdGdyZXMKIAogKGRlZmN1c3RvbSBzcWwtcG9zdGdy ZXMtcHJvZ3JhbSAicHNxbCIKICAgIkNvbW1hbmQgdG8gc3RhcnQgcHNxbCBi eSBQb3N0Z3Jlcy4KIAotU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScg YWZ0ZXIgZG9pbmcgc29tZSBzZXR1cC4KLQotVGhlIHByb2dyYW0gY2FuIGFs c28gc3BlY2lmeSBhIFRDUCBjb25uZWN0aW9uLiAgU2VlIGBtYWtlLWNvbWlu dCcuIgorU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIgZG9p bmcgc29tZSBzZXR1cC4iCiAgIDp0eXBlICdmaWxlCiAgIDpncm91cCAnU1FM KQogCiAoZGVmY3VzdG9tIHNxbC1wb3N0Z3Jlcy1vcHRpb25zICcoIi1QIiAi cGFnZXI9b2ZmIikKLSAgIipMaXN0IG9mIGFkZGl0aW9uYWwgb3B0aW9ucyBm b3IgYHNxbC1wb3N0Z3Jlcy1wcm9ncmFtJy4KKyAgIkxpc3Qgb2YgYWRkaXRp b25hbCBvcHRpb25zIGZvciBgc3FsLXBvc3RncmVzLXByb2dyYW0nLgogVGhl IGRlZmF1bHQgc2V0dGluZyBpbmNsdWRlcyB0aGUgLVAgb3B0aW9uIHdoaWNo IGJyZWFrcyBvbGRlciB2ZXJzaW9ucwogb2YgdGhlIHBzcWwgY2xpZW50IChz dWNoIGFzIHZlcnNpb24gNi41LjMpLiAgVGhlIC1QIG9wdGlvbiBpcyBlcXVp dmFsZW50CiB0byB0aGUgLS1wc2V0IG9wdGlvbi4gIElmIHlvdSB3YW50IHRo ZSBwc3FsIHRvIHByb21wdCB5b3UgZm9yIGEgdXNlcgpAQCAtNjYwLDU1ICs4 NjMsOTEgQEAKICAgOnZlcnNpb24gIjIwLjgiCiAgIDpncm91cCAnU1FMKQog CisoZGVmY3VzdG9tIHNxbC1wb3N0Z3Jlcy1sb2dpbi1wYXJhbXMgJyh1c2Vy IGRhdGFiYXNlIHNlcnZlcikKKyAgIkxpc3Qgb2YgbG9naW4gcGFyYW1ldGVy cyBuZWVkZWQgdG8gY29ubmVjdCB0byBQb3N0Z3Jlcy4iCisgIDp0eXBlICco cmVwZWF0IChjaG9pY2UKKwkJICAoY29uc3QgdXNlcikKKwkJICAoY29uc3Qg cGFzc3dvcmQpCisJCSAgKGNvbnN0IHNlcnZlcikKKwkJICAoY29uc3QgZGF0 YWJhc2UpKSkKKyAgOnZlcnNpb24gIjI0LjEiCisgIDpncm91cCAnU1FMKQor CiA7OyBDdXN0b21pemF0aW9uIGZvciBJbnRlcmJhc2UKIAogKGRlZmN1c3Rv bSBzcWwtaW50ZXJiYXNlLXByb2dyYW0gImlzcWwiCi0gICIqQ29tbWFuZCB0 byBzdGFydCBpc3FsIGJ5IEludGVyYmFzZS4KLQotU3RhcnRzIGBzcWwtaW50 ZXJhY3RpdmUtbW9kZScgYWZ0ZXIgZG9pbmcgc29tZSBzZXR1cC4KLQotVGhl IHByb2dyYW0gY2FuIGFsc28gc3BlY2lmeSBhIFRDUCBjb25uZWN0aW9uLiAg U2VlIGBtYWtlLWNvbWludCcuIgorICAiQ29tbWFuZCB0byBzdGFydCBpc3Fs IGJ5IEludGVyYmFzZS4KKworU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9k ZScgYWZ0ZXIgZG9pbmcgc29tZSBzZXR1cC4iCiAgIDp0eXBlICdmaWxlCiAg IDpncm91cCAnU1FMKQogCiAoZGVmY3VzdG9tIHNxbC1pbnRlcmJhc2Utb3B0 aW9ucyBuaWwKLSAgIipMaXN0IG9mIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3Ig YHNxbC1pbnRlcmJhc2UtcHJvZ3JhbScuIgorICAiTGlzdCBvZiBhZGRpdGlv bmFsIG9wdGlvbnMgZm9yIGBzcWwtaW50ZXJiYXNlLXByb2dyYW0nLiIKICAg OnR5cGUgJyhyZXBlYXQgc3RyaW5nKQogICA6dmVyc2lvbiAiMjAuOCIKICAg Omdyb3VwICdTUUwpCiAKKyhkZWZjdXN0b20gc3FsLWludGVyYmFzZS1sb2dp bi1wYXJhbXMgJyh1c2VyIHBhc3N3b3JkIGRhdGFiYXNlKQorICAiTGlzdCBv ZiBsb2dpbiBwYXJhbWV0ZXJzIG5lZWRlZCB0byBjb25uZWN0IHRvIEludGVy YmFzZS4iCisgIDp0eXBlICcocmVwZWF0IChjaG9pY2UKKwkJICAoY29uc3Qg dXNlcikKKwkJICAoY29uc3QgcGFzc3dvcmQpCisJCSAgKGNvbnN0IHNlcnZl cikKKwkJICAoY29uc3QgZGF0YWJhc2UpKSkKKyAgOnZlcnNpb24gIjI0LjEi CisgIDpncm91cCAnU1FMKQorCiA7OyBDdXN0b21pemF0aW9uIGZvciBEQjIK IAogKGRlZmN1c3RvbSBzcWwtZGIyLXByb2dyYW0gImRiMiIKLSAgIipDb21t YW5kIHRvIHN0YXJ0IGRiMiBieSBJQk0uCi0KLVN0YXJ0cyBgc3FsLWludGVy YWN0aXZlLW1vZGUnIGFmdGVyIGRvaW5nIHNvbWUgc2V0dXAuCi0KLVRoZSBw cm9ncmFtIGNhbiBhbHNvIHNwZWNpZnkgYSBUQ1AgY29ubmVjdGlvbi4gIFNl ZSBgbWFrZS1jb21pbnQnLiIKKyAgIkNvbW1hbmQgdG8gc3RhcnQgZGIyIGJ5 IElCTS4KKworU3RhcnRzIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScgYWZ0ZXIg ZG9pbmcgc29tZSBzZXR1cC4iCiAgIDp0eXBlICdmaWxlCiAgIDpncm91cCAn U1FMKQogCiAoZGVmY3VzdG9tIHNxbC1kYjItb3B0aW9ucyBuaWwKLSAgIipM aXN0IG9mIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgYHNxbC1kYjItcHJvZ3Jh bScuIgorICAiTGlzdCBvZiBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGBzcWwt ZGIyLXByb2dyYW0nLiIKICAgOnR5cGUgJyhyZXBlYXQgc3RyaW5nKQogICA6 dmVyc2lvbiAiMjAuOCIKICAgOmdyb3VwICdTUUwpCiAKKyhkZWZjdXN0b20g c3FsLWRiMi1sb2dpbi1wYXJhbXMgbmlsCisgICJMaXN0IG9mIGxvZ2luIHBh cmFtZXRlcnMgbmVlZGVkIHRvIGNvbm5lY3QgdG8gREIyLiIKKyAgOnR5cGUg JyhyZXBlYXQgKGNob2ljZQorCQkgIChjb25zdCB1c2VyKQorCQkgIChjb25z dCBwYXNzd29yZCkKKwkJICAoY29uc3Qgc2VydmVyKQorCQkgIChjb25zdCBk YXRhYmFzZSkpKQorICA6dmVyc2lvbiAiMjQuMSIKKyAgOmdyb3VwICdTUUwp CisKIDs7IEN1c3RvbWl6YXRpb24gZm9yIExpbnRlcgogCiAoZGVmY3VzdG9t IHNxbC1saW50ZXItcHJvZ3JhbSAiaW5sIgotICAiKkNvbW1hbmQgdG8gc3Rh cnQgaW5sIGJ5IFJFTEVYLgorICAiQ29tbWFuZCB0byBzdGFydCBpbmwgYnkg UkVMRVguCiAKIFN0YXJ0cyBgc3FsLWludGVyYWN0aXZlLW1vZGUnIGFmdGVy IGRvaW5nIHNvbWUgc2V0dXAuIgogICA6dHlwZSAnZmlsZQogICA6Z3JvdXAg J1NRTCkKIAogKGRlZmN1c3RvbSBzcWwtbGludGVyLW9wdGlvbnMgbmlsCi0g ICIqTGlzdCBvZiBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGBzcWwtbGludGVy LXByb2dyYW0nLiIKKyAgIkxpc3Qgb2YgYWRkaXRpb25hbCBvcHRpb25zIGZv ciBgc3FsLWxpbnRlci1wcm9ncmFtJy4iCiAgIDp0eXBlICcocmVwZWF0IHN0 cmluZykKICAgOnZlcnNpb24gIjIxLjMiCiAgIDpncm91cCAnU1FMKQogCiso ZGVmY3VzdG9tIHNxbC1saW50ZXItbG9naW4tcGFyYW1zICcodXNlciBwYXNz d29yZCBkYXRhYmFzZSBzZXJ2ZXIpCisgICJMb2dpbiBwYXJhbWV0ZXJzIHRv IG5lZWRlZCB0byBjb25uZWN0IHRvIExpbnRlci4iCisgIDp0eXBlICcocmVw ZWF0IChjaG9pY2UKKwkJICAoY29uc3QgdXNlcikKKwkJICAoY29uc3QgcGFz c3dvcmQpCisJCSAgKGNvbnN0IHNlcnZlcikKKwkJICAoY29uc3QgZGF0YWJh c2UpKSkKKyAgOnZlcnNpb24gIjI0LjEiCisgIDpncm91cCAnU1FMKQorCiAM CiAKIDs7OyBWYXJpYWJsZXMgd2hpY2ggZG8gbm90IG5lZWQgY3VzdG9taXph dGlvbgpAQCAtNzIyLDE2ICs5NjEsMjAgQEAKIChkZWZ2YXIgc3FsLXNlcnZl ci1oaXN0b3J5IG5pbAogICAiSGlzdG9yeSBvZiBzZXJ2ZXJzIHVzZWQuIikK IAorKGRlZnZhciBzcWwtcG9ydC1oaXN0b3J5IG5pbAorICAiSGlzdG9yeSBv ZiBwb3J0cyB1c2VkLiIpCisKIDs7IFBhc3N3b3JkcyBhcmUgbm90IGtlcHQg aW4gYSBoaXN0b3J5LgogCi0oZGVmdmFyIHNxbC1idWZmZXIgbmlsCisoZGVm dmFyYWxpYXMgJ3NxbC1idWZmZXIgJ3NxbGktYnVmZmVyKQorKGRlZnZhciBz cWxpLWJ1ZmZlciBuaWwKICAgIkN1cnJlbnQgU1FMaSBidWZmZXIuCiAKLVRo ZSBnbG9iYWwgdmFsdWUgb2Ygc3FsLWJ1ZmZlciBpcyB0aGUgbmFtZSBvZiB0 aGUgbGF0ZXN0IFNRTGkgYnVmZmVyCitUaGUgZ2xvYmFsIHZhbHVlIG9mIGBz cWxpLWJ1ZmZlcicgaXMgdGhlIG5hbWUgb2YgdGhlIGxhdGVzdCBTUUxpIGJ1 ZmZlcgogY3JlYXRlZC4gIEFueSBTUUwgYnVmZmVyIGNyZWF0ZWQgd2lsbCBt YWtlIGEgbG9jYWwgY29weSBvZiB0aGlzIHZhbHVlLgogU2VlIGBzcWwtaW50 ZXJhY3RpdmUtbW9kZScgZm9yIG1vcmUgb24gbXVsdGlwbGUgc2Vzc2lvbnMu ICBJZiB5b3Ugd2FudAogdG8gY2hhbmdlIHRoZSBTUUxpIGJ1ZmZlciBhIFNR TCBtb2RlIHNlbmRzIGl0cyBTUUwgc3RyaW5ncyB0bywgY2hhbmdlCi10aGUg bG9jYWwgdmFsdWUgb2YgYHNxbC1idWZmZXInIHVzaW5nIFxcW3NxbC1zZXQt c3FsaS1idWZmZXJdLiIpCit0aGUgbG9jYWwgdmFsdWUgb2YgYHNxbGktYnVm ZmVyJyB1c2luZyBcXFtzcWwtc2V0LXNxbGktYnVmZmVyXS4iKQogCiAoZGVm dmFyIHNxbC1wcm9tcHQtcmVnZXhwIG5pbAogICAiUHJvbXB0IHVzZWQgdG8g aW5pdGlhbGl6ZSBgY29taW50LXByb21wdC1yZWdleHAnLgpAQCAtNzc1LDYg KzEwMTgsNyBAQAogICAgIChkZWZpbmUta2V5IG1hcCAoa2JkICJDLWMgQy1y IikgJ3NxbC1zZW5kLXJlZ2lvbikKICAgICAoZGVmaW5lLWtleSBtYXAgKGti ZCAiQy1jIEMtcyIpICdzcWwtc2VuZC1zdHJpbmcpCiAgICAgKGRlZmluZS1r ZXkgbWFwIChrYmQgIkMtYyBDLWIiKSAnc3FsLXNlbmQtYnVmZmVyKQorICAg IChkZWZpbmUta2V5IG1hcCAoa2JkICJDLWMgQy16IikgJ3NxbC1wcm9kdWN0 LWludGVyYWN0aXZlKQogICAgIG1hcCkKICAgIk1vZGUgbWFwIHVzZWQgZm9y IGBzcWwtbW9kZScuIikKIApAQCAtNzg0LDE4ICsxMDI4LDE3IEBACiAgc3Fs LW1vZGUtbWVudSBzcWwtbW9kZS1tYXAKICAiTWVudSBmb3IgYHNxbC1tb2Rl Jy4iCiAgYCgiU1FMIgotICAgWyJTZW5kIFBhcmFncmFwaCIgc3FsLXNlbmQt cGFyYWdyYXBoIChhbmQgKGJ1ZmZlci1saXZlLXAgc3FsLWJ1ZmZlcikKLQkJ CQkJICAgICAoZ2V0LWJ1ZmZlci1wcm9jZXNzIHNxbC1idWZmZXIpKV0KLSAg IFsiU2VuZCBSZWdpb24iIHNxbC1zZW5kLXJlZ2lvbiAoYW5kIChvciAoYW5k IChib3VuZHAgJ21hcmstYWN0aXZlKTsgRW1hY3MKLQkJCQkJCW1hcmstYWN0 aXZlKQotCQkJCQkgICAobWFyayB0KSk7IFhFbWFjcwotCQkJCSAgICAgICAo YnVmZmVyLWxpdmUtcCBzcWwtYnVmZmVyKQotCQkJCSAgICAgICAoZ2V0LWJ1 ZmZlci1wcm9jZXNzIHNxbC1idWZmZXIpKV0KLSAgIFsiU2VuZCBCdWZmZXIi IHNxbC1zZW5kLWJ1ZmZlciAoYW5kIChidWZmZXItbGl2ZS1wIHNxbC1idWZm ZXIpCi0JCQkJICAgICAgIChnZXQtYnVmZmVyLXByb2Nlc3Mgc3FsLWJ1ZmZl cikpXQotICAgWyJTZW5kIFN0cmluZyIgc3FsLXNlbmQtc3RyaW5nIHRdCisg ICBbIlNlbmQgUGFyYWdyYXBoIiBzcWwtc2VuZC1wYXJhZ3JhcGggKGFuZCAo YnVmZmVyLWxpdmUtcCBzcWxpLWJ1ZmZlcikKKwkJCQkJICAgICAoZ2V0LWJ1 ZmZlci1wcm9jZXNzIHNxbGktYnVmZmVyKSldCisgICBbIlNlbmQgUmVnaW9u IiBzcWwtc2VuZC1yZWdpb24gKGFuZCBtYXJrLWFjdGl2ZQorCQkJCSAgICAg ICAoYnVmZmVyLWxpdmUtcCBzcWxpLWJ1ZmZlcikKKwkJCQkgICAgICAgKGdl dC1idWZmZXItcHJvY2VzcyBzcWxpLWJ1ZmZlcikpXQorICAgWyJTZW5kIEJ1 ZmZlciIgc3FsLXNlbmQtYnVmZmVyIChhbmQgKGJ1ZmZlci1saXZlLXAgc3Fs aS1idWZmZXIpCisJCQkJICAgICAgIChnZXQtYnVmZmVyLXByb2Nlc3Mgc3Fs aS1idWZmZXIpKV0KKyAgIFsiU2VuZCBTdHJpbmciIHNxbC1zZW5kLXN0cmlu ZyAoYW5kIChidWZmZXItbGl2ZS1wIHNxbGktYnVmZmVyKQorCQkJCSAgICAg ICAoZ2V0LWJ1ZmZlci1wcm9jZXNzIHNxbGktYnVmZmVyKSldCiAgICBbIi0t IiBuaWwgbmlsXQotICAgWyJTdGFydCBTUUxpIHNlc3Npb24iIHNxbC1wcm9k dWN0LWludGVyYWN0aXZlIChzcWwtcHJvZHVjdC1mZWF0dXJlIDpzcWxpLWNv bm5lY3QpXQorICAgWyJTdGFydCBTUUxpIHNlc3Npb24iIHNxbC1wcm9kdWN0 LWludGVyYWN0aXZlIChzcWwtZ2V0LXByb2R1Y3QtZmVhdHVyZSBzcWwtcHJv ZHVjdCA6c3FsaS1jb25uZWN0KV0KICAgIFsiU2hvdyBTUUxpIGJ1ZmZlciIg c3FsLXNob3ctc3FsaS1idWZmZXIgdF0KICAgIFsiU2V0IFNRTGkgYnVmZmVy IiBzcWwtc2V0LXNxbGktYnVmZmVyIHRdCiAgICBbIlBvcCB0byBTUUxpIGJ1 ZmZlciBhZnRlciBzZW5kIgpAQCAtODA2LDcgKzEwNDksNyBAQAogICAgKCJQ cm9kdWN0IgogICAgICxAKG1hcGNhciAobGFtYmRhIChwcm9kLWluZm8pCiAg ICAgICAgICAgICAgICAgKGxldCogKChwcm9kIChwb3AgcHJvZC1pbmZvKSkK LSAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgKG9yIChwbGlzdC1nZXQg cHJvZC1pbmZvIDpuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAobmFt ZSAob3IgKHBsaXN0LWdldCBwcm9kLWluZm8gOmRpc3BsYXkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FwaXRhbGl6ZSAoc3ltYm9s LW5hbWUgcHJvZCkpKSkKICAgICAgICAgICAgICAgICAgICAgICAgKGNtZCAo aW50ZXJuIChmb3JtYXQgInNxbC1oaWdobGlnaHQtJXMta2V5d29yZHMiIHBy b2QpKSkpCiAgICAgICAgICAgICAgICAgICAoZnNldCBjbWQgYChsYW1iZGEg KCkgLChmb3JtYXQgIkhpZ2hsaWdodCAlcyBTUUwga2V5d29yZHMuIiBuYW1l KQpAQCAtODg4LDI1ICsxMTMxLDY0IEBACiBzdGF0ZW1lbnQuICBUaGUgZm9y bWF0IG9mIHZhcmlhYmxlIHNob3VsZCBiZSBhIHZhbGlkCiBgZm9udC1sb2Nr LWtleXdvcmRzJyBlbnRyeS4iKQogCi0oZGVmbWFjcm8gc3FsLWtleXdvcmRz LXJlICgmcmVzdCBrZXl3b3JkcykKLSAgIkNvbXBpbGUtdGltZSBnZW5lcmF0 aW9uIG9mIHJlZ2V4cCBtYXRjaGluZyBhbnkgb25lIG9mIEtFWVdPUkRTLiIK LSAgYChldmFsLXdoZW4tY29tcGlsZQotICAgICAoY29uY2F0ICJcXGIiCi0J ICAgICAocmVnZXhwLW9wdCAnLGtleXdvcmRzIHQpCi0JICAgICAiXFxiIikp KQotCi0oZGVmdmFyIHNxbC1tb2RlLWFuc2ktZm9udC1sb2NrLWtleXdvcmRz Ci0gIChsZXQgKChhbnNpLWZ1bmNzIChzcWwta2V5d29yZHMtcmUKLSJhYnMi ICJhdmciICJiaXRfbGVuZ3RoIiAiY2FyZGluYWxpdHkiICJjYXN0IiAiY2hh cl9sZW5ndGgiCi0iY2hhcmFjdGVyX2xlbmd0aCIgImNvYWxlc2NlIiAiY29u dmVydCIgImNvdW50IiAiY3VycmVudF9kYXRlIgotImN1cnJlbnRfcGF0aCIg ImN1cnJlbnRfcm9sZSIgImN1cnJlbnRfdGltZSIgImN1cnJlbnRfdGltZXN0 YW1wIgotImN1cnJlbnRfdXNlciIgImV4dHJhY3QiICJsb2NhbHRpbWUiICJs b2NhbHRpbWVzdGFtcCIgImxvd2VyIiAibWF4IgotIm1pbiIgIm1vZCIgIm51 bGxpZiIgIm9jdGV0X2xlbmd0aCIgIm92ZXJsYXkiICJwbGFjaW5nIiAic2Vz c2lvbl91c2VyIgotInN1YnN0cmluZyIgInN1bSIgInN5c3RlbV91c2VyIiAi dHJhbnNsYXRlIiAidHJlYXQiICJ0cmltIiAidXBwZXIiCi0idXNlciIKLSkp Ci0KLQkoYW5zaS1ub24tcmVzZXJ2ZWQgKHNxbC1rZXl3b3Jkcy1yZQorOzsg V2hpbGUgdGhlcmUgYXJlIGludGVybmF0aW9uYWwgYW5kIEFtZXJpY2FuIHN0 YW5kYXJkcyBmb3IgU1FMLCB0aGV5Cis7OyBhcmUgbm90IGZvbGxvd2VkIGNs b3NlbHksIGFuZCBtb3N0IHZlbmRvcnMgb2ZmZXIgc2lnbmlmaWNhbnQKKzs7 IGNhcGFiaWxpdGllcyBiZXlvbmQgdGhvc2UgZGVmaW5lZCBpbiB0aGUgc3Rh bmRhcmQgc3BlY2lmaWNhdGlvbnMuCisKKzs7IFNRTCBtb2RlIHByb3ZpZGVz IHN1cHBvcnQgZm9yIGhpbGlnaHRpbmcgYmFzZWQgb24gdGhlIHByb2R1Y3Qu ICBJbgorOzsgYWRkaXRpb24gdG8gaGlsaWdodGluZyB0aGUgcHJvZHVjdCBr ZXl3b3JkcywgYW55IEFOU0kga2V5d29yZHMgbm90Cis7OyB1c2VkIGJ5IHRo ZSBwcm9kdWN0IGFyZSBhbHNvIGhpbGlnaHRlZC4gIFRoaXMgd2lsbCBoZWxw IGlkZW50aWZ5Cis7OyBrZXl3b3JkcyB0aGF0IGNvdWxkIGJlIHJlc3RyaWN0 ZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mIHRoZSBwcm9kdWN0Cis7OyBvciBt aWdodCBiZSBhIHByb2JsZW0gaWYgcG9ydGVkIHRvIGFub3RoZXIgcHJvZHVj dC4KKworOzsgVG8gcmVkdWNlIHRoZSBjb21wbGV4aXR5IGFuZCBzaXplIG9m IHRoZSByZWd1bGFyIGV4cHJlc3Npb25zCis7OyBnZW5lcmF0ZWQgdG8gbWF0 Y2gga2V5d29yZHMsIEFOU0kga2V5d29yZHMgYXJlIGZpbHRlcmVkIG91dCBv ZgorOzsgcHJvZHVjdCBrZXl3b3JkcyBpZiB0aGV5IGFyZSBlcXVpdmFsZW50 LiAgVG8gZG8gdGhpcywgd2UgZGVmaW5lIGEKKzs7IGZ1bmN0aW9uIGBzcWwt Zm9udC1sb2NrLWtleXdvcmRzLWJ1aWxkZXInIHRoYXQgcmVtb3ZlcyBhbnkg a2V5d29yZHMKKzs7IHRoYXQgYXJlIG1hdGNoZWQgYnkgdGhlIEFOU0kgcGF0 dGVybnMgYW5kIHJlc3VsdHMgaW4gdGhlIHNhbWUgZmFjZQorOzsgYmVpbmcg YXBwbGllZC4gIEZvciB0aGlzIHRvIHdvcmsgcHJvcGVybHksIHdlIG11c3Qg cGxheSBzb21lIGdhbWVzCis7OyB3aXRoIHRoZSBleGVjdXRpb24gYW5kIGNv bXBpbGUgdGltZSBiZWhhdmlvci4gIFRoaXMgY29kZSBpcyBhCis7OyBsaXR0 bGUgdHJpY2t5IGJ1dCB3b3JrcyBwcm9wZXJseS4KKworOzsgV2hlbiBkZWZp bmluZyB0aGUga2V5d29yZHMgZm9yIGluZGl2aWR1YWwgcHJvZHVjdHMgeW91 IHNob3VsZAorOzsgaW5jbHVkZSBhbGwgb2YgdGhlIGtleXdvcmRzIHRoYXQg eW91IHdhbnQgbWF0Y2hlZC4gIFRoZSBmaWx0ZXJpbmcKKzs7IGFnYWluc3Qg dGhlIEFOU0kga2V5d29yZHMgd2lsbCBiZSBhdXRvbWF0aWMgaWYgeW91IHVz ZSB0aGUKKzs7IGBzcWwtZm9udC1sb2NrLWtleXdvcmRzLWJ1aWxkZXInIGZ1 bmN0aW9uIGFuZCBmb2xsb3cgdGhlCis7OyBpbXBsZW1lbnRhdGlvbiBwYXR0 ZXJuIHVzZWQgZm9yIHRoZSBvdGhlciBwcm9kdWN0cyBpbiB0aGlzIGZpbGUu CisKKyhldmFsLXdoZW4tY29tcGlsZQorICAoZGVmdmFyIHNxbC1tb2RlLWFu c2ktZm9udC1sb2NrLWtleXdvcmRzKQorICAoc2V0cSBzcWwtbW9kZS1hbnNp LWZvbnQtbG9jay1rZXl3b3JkcyBuaWwpKQorCisoZXZhbC1hbmQtY29tcGls ZQorICAoZGVmdW4gc3FsLWZvbnQtbG9jay1rZXl3b3Jkcy1idWlsZGVyIChm YWNlIGJvdW5kYXJpZXMgJnJlc3Qga2V5d29yZHMpCisgICAgIkdlbmVyYXRp b24gb2YgcmVnZXhwIG1hdGNoaW5nIGFueSBvbmUgb2YgS0VZV09SRFMuIgor CisgICAgKGxldCAoKGJkeSAob3IgYm91bmRhcmllcyAnKCJcXGIiIC4gIlxc YiIpKSkKKwkgIGt3ZCkKKworICAgICAgOzsgUmVtb3ZlIGtleXdvcmRzIHRo YXQgYXJlIGRlZmluZWQgaW4gQU5TSQorICAgICAgKHNldHEga3dkIGtleXdv cmRzKQorICAgICAgKGRvbGlzdCAoayBrZXl3b3JkcykKKwkoY2F0Y2ggJ25l eHQKKwkgIChkb2xpc3QgKGEgc3FsLW1vZGUtYW5zaS1mb250LWxvY2sta2V5 d29yZHMpCisJICAgICh3aGVuIChhbmQgKGVxIGZhY2UgKGNkciBhKSkKKwkJ ICAgICAgIChlcSAoc3RyaW5nLW1hdGNoIChjYXIgYSkgayAwKSAwKQorCQkg ICAgICAgKGVxIChtYXRjaC1lbmQgMCkgKGxlbmd0aCBrKSkpCisJICAgICAg KHNldHEga3dkIChkZWxxIGsga3dkKSkKKwkgICAgICAodGhyb3cgJ25leHQg bmlsKSkpKSkKKworICAgICAgOzsgQ3JlYXRlIGEgcHJvcGVybHkgZm9ybWVk IGZvbnQtbG9jay1rZXl3b3JkcyBpdGVtCisgICAgICAoY29ucyAoY29uY2F0 IChjYXIgYmR5KQorCQkgICAgKHJlZ2V4cC1vcHQga3dkIHQpCisJCSAgICAo Y2RyIGJkeSkpCisJICAgIGZhY2UpKSkpCisKKyhldmFsLXdoZW4tY29tcGls ZQorICAoc2V0cSBzcWwtbW9kZS1hbnNpLWZvbnQtbG9jay1rZXl3b3Jkcwor CShsaXN0CisJIDs7IEFOU0kgTm9uIFJlc2VydmVkIGtleXdvcmRzCisJIChz cWwtZm9udC1sb2NrLWtleXdvcmRzLWJ1aWxkZXIgJ2ZvbnQtbG9jay1rZXl3 b3JkLWZhY2UgbmlsCiAiYWRhIiAiYXNlbnNpdGl2ZSIgImFzc2lnbm1lbnQi ICJhc3ltbWV0cmljIiAiYXRvbWljIiAiYmV0d2VlbiIKICJiaXR2YXIiICJj YWxsZWQiICJjYXRhbG9nX25hbWUiICJjaGFpbiIgImNoYXJhY3Rlcl9zZXRf Y2F0YWxvZyIKICJjaGFyYWN0ZXJfc2V0X25hbWUiICJjaGFyYWN0ZXJfc2V0 X3NjaGVtYSIgImNoZWNrZWQiICJjbGFzc19vcmlnaW4iCkBAIC05MzQsOSAr MTIxNiw5IEBACiAidHJpZ2dlcl9uYW1lIiAidHJpZ2dlcl9zY2hlbWEiICJ0 eXBlIiAidW5jb21taXR0ZWQiICJ1bm5hbWVkIgogInVzZXJfZGVmaW5lZF90 eXBlX2NhdGFsb2ciICJ1c2VyX2RlZmluZWRfdHlwZV9uYW1lIgogInVzZXJf ZGVmaW5lZF90eXBlX3NjaGVtYSIKLSkpCi0KLQkoYW5zaS1yZXNlcnZlZCAo c3FsLWtleXdvcmRzLXJlCispCisJIDs7IEFOU0kgUmVzZXJ2ZWQga2V5d29y ZHMKKwkgKHNxbC1mb250LWxvY2sta2V5d29yZHMtYnVpbGRlciAnZm9udC1s b2NrLWtleXdvcmQtZmFjZSBuaWwKICJhYnNvbHV0ZSIgImFjdGlvbiIgImFk ZCIgImFkbWluIiAiYWZ0ZXIiICJhZ2dyZWdhdGUiICJhbGlhcyIgImFsbCIK ICJhbGxvY2F0ZSIgImFsdGVyIiAiYW5kIiAiYW55IiAiYXJlIiAiYXMiICJh c2MiICJhc3NlcnRpb24iICJhdCIKICJhdXRob3JpemF0aW9uIiAiYmVmb3Jl IiAiYmVnaW4iICJib3RoIiAiYnJlYWR0aCIgImJ5IiAiY2FsbCIKQEAgLTk3 MiwzMSArMTI1NCw4NSBAQAogInRyaWdnZXIiICJ0cnVlIiAidW5kZXIiICJ1 bmlvbiIgInVuaXF1ZSIgInVua25vd24iICJ1bm5lc3QiICJ1cGRhdGUiCiAi dXNhZ2UiICJ1c2luZyIgInZhbHVlIiAidmFsdWVzIiAidmFyaWFibGUiICJ2 aWV3IiAid2hlbiIgIndoZW5ldmVyIgogIndoZXJlIiAid2l0aCIgIndpdGhv dXQiICJ3b3JrIiAid3JpdGUiICJ5ZWFyIgotKSkKKykKIAotCShhbnNpLXR5 cGVzIChzcWwta2V5d29yZHMtcmUKKwkgOzsgQU5TSSBGdW5jdGlvbnMKKwkg KHNxbC1mb250LWxvY2sta2V5d29yZHMtYnVpbGRlciAnZm9udC1sb2NrLWJ1 aWx0aW4tZmFjZSBuaWwKKyJhYnMiICJhdmciICJiaXRfbGVuZ3RoIiAiY2Fy ZGluYWxpdHkiICJjYXN0IiAiY2hhcl9sZW5ndGgiCisiY2hhcmFjdGVyX2xl bmd0aCIgImNvYWxlc2NlIiAiY29udmVydCIgImNvdW50IiAiY3VycmVudF9k YXRlIgorImN1cnJlbnRfcGF0aCIgImN1cnJlbnRfcm9sZSIgImN1cnJlbnRf dGltZSIgImN1cnJlbnRfdGltZXN0YW1wIgorImN1cnJlbnRfdXNlciIgImV4 dHJhY3QiICJsb2NhbHRpbWUiICJsb2NhbHRpbWVzdGFtcCIgImxvd2VyIiAi bWF4IgorIm1pbiIgIm1vZCIgIm51bGxpZiIgIm9jdGV0X2xlbmd0aCIgIm92 ZXJsYXkiICJwbGFjaW5nIiAic2Vzc2lvbl91c2VyIgorInN1YnN0cmluZyIg InN1bSIgInN5c3RlbV91c2VyIiAidHJhbnNsYXRlIiAidHJlYXQiICJ0cmlt IiAidXBwZXIiCisidXNlciIKKykKKwkgOzsgQU5TSSBEYXRhIFR5cGVzCisJ IChzcWwtZm9udC1sb2NrLWtleXdvcmRzLWJ1aWxkZXIgJ2ZvbnQtbG9jay10 eXBlLWZhY2UgbmlsCiAiYXJyYXkiICJiaW5hcnkiICJiaXQiICJibG9iIiAi Ym9vbGVhbiIgImNoYXIiICJjaGFyYWN0ZXIiICJjbG9iIgogImRhdGUiICJk ZWMiICJkZWNpbWFsIiAiZG91YmxlIiAiZmxvYXQiICJpbnQiICJpbnRlZ2Vy IiAiaW50ZXJ2YWwiCiAibGFyZ2UiICJuYXRpb25hbCIgIm5jaGFyIiAibmNs b2IiICJudW1lcmljIiAib2JqZWN0IiAicHJlY2lzaW9uIgogInJlYWwiICJy ZWYiICJyb3ciICJzY29wZSIgInNtYWxsaW50IiAidGltZSIgInRpbWVzdGFt cCIgInZhcmNoYXIiCiAidmFyeWluZyIgInpvbmUiCi0pKSkKLQotICAgIGAo KCxhbnNpLW5vbi1yZXNlcnZlZCAuIGZvbnQtbG9jay1rZXl3b3JkLWZhY2Up Ci0gICAgICAoLGFuc2ktcmVzZXJ2ZWQgICAgIC4gZm9udC1sb2NrLWtleXdv cmQtZmFjZSkKLSAgICAgICgsYW5zaS1mdW5jcyAgICAgICAgLiBmb250LWxv Y2stYnVpbHRpbi1mYWNlKQotICAgICAgKCxhbnNpLXR5cGVzICAgICAgICAu IGZvbnQtbG9jay10eXBlLWZhY2UpKSkKLQorKSkpKQorCisoZGVmdmFyIHNx bC1tb2RlLWFuc2ktZm9udC1sb2NrLWtleXdvcmRzCisgIChldmFsLXdoZW4t Y29tcGlsZSBzcWwtbW9kZS1hbnNpLWZvbnQtbG9jay1rZXl3b3JkcykKICAg IkFOU0kgU1FMIGtleXdvcmRzIHVzZWQgYnkgZm9udC1sb2NrLgogCiBUaGlz IHZhcmlhYmxlIGlzIHVzZWQgYnkgYHNxbC1tb2RlJyBhbmQgYHNxbC1pbnRl cmFjdGl2ZS1tb2RlJy4gIFRoZQogcmVndWxhciBleHByZXNzaW9ucyBhcmUg Y3JlYXRlZCBkdXJpbmcgY29tcGlsYXRpb24gYnkgY2FsbGluZyB0aGUKIGZ1 bmN0aW9uIGByZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwgdGFrZSBhIGxvb2sg YXQgdGhlIHNvdXJjZSBiZWZvcmUKLXlvdSBkZWZpbmUgeW91ciBvd24gc3Fs LW1vZGUtYW5zaS1mb250LWxvY2sta2V5d29yZHMuICBZb3UgbWF5IHdhbnQg dG8KLWFkZCBmdW5jdGlvbnMgYW5kIFBML1NRTCBrZXl3b3Jkcy4iKQoreW91 IGRlZmluZSB5b3VyIG93biBgc3FsLW1vZGUtYW5zaS1mb250LWxvY2sta2V5 d29yZHMnLiIpCiAKIChkZWZ2YXIgc3FsLW1vZGUtb3JhY2xlLWZvbnQtbG9j ay1rZXl3b3JkcwotICAobGV0ICgob3JhY2xlLWZ1bmN0aW9ucyAoc3FsLWtl eXdvcmRzLXJlCisgIChldmFsLXdoZW4tY29tcGlsZQorICAgIChsaXN0Cisg ICAgIDs7IE9yYWNsZSBTUUwqUGx1cyBDb21tYW5kcworICAgICAoY29ucwor ICAgICAgKGNvbmNhdAorICAgICAgICJeXFwoPzpcXCg/OiIgKHJlZ2V4cC1v cHQgJygKKyJAIiAiQEAiICJhY2NlcHQiICJhcHBlbmQiICJhcmNoaXZlIiAi YXR0cmlidXRlIiAiYnJlYWsiCisiYnRpdGxlIiAiY2hhbmdlIiAiY2xlYXIi ICJjb2x1bW4iICJjb25uZWN0IiAiY29weSIgImRlZmluZSIKKyJkZWwiICJk ZXNjcmliZSIgImRpc2Nvbm5lY3QiICJlZGl0IiAiZXhlY3V0ZSIgImV4aXQi ICJnZXQiICJoZWxwIgorImhvc3QiICJpbnB1dCIgImxpc3QiICJwYXNzd29y ZCIgInBhdXNlIiAicHJpbnQiICJwcm9tcHQiICJyZWNvdmVyIgorInJlbWFy ayIgInJlcGZvb3RlciIgInJlcGhlYWRlciIgInJ1biIgInNhdmUiICJzaG93 IiAic2h1dGRvd24iCisic3Bvb2wiICJzdGFydCIgInN0YXJ0dXAiICJzdG9y ZSIgInRpbWluZyIgInR0aXRsZSIgInVuZGVmaW5lIgorInZhcmlhYmxlIiAi d2hlbmV2ZXIiCispIHQpCisKKyAgICAgICAiXFwpXFx8IgorICAgICAgICJc XCg/OmNvbXB1dGVcXHMtK1xcKD86YXZnXFx8Y291XFx8bWluXFx8bWF4XFx8 bnVtXFx8c3VtXFx8c3RkXFx8dmFyXFwpXFwpXFx8IgorICAgICAgICJcXCg/ OnNldFxccy0rXFwoIgorCisgICAgICAgKHJlZ2V4cC1vcHQKKwknKCJhcHBp IiAiYXBwaW5mbyIgImFycmF5IiAiYXJyYXlzaXplIiAiYXV0byIgImF1dG9j b21taXQiCisJICAiYXV0b3AiICJhdXRvcHJpbnQiICJhdXRvcmVjb3Zlcnki ICJhdXRvdCIgImF1dG90cmFjZSIgImJsbyIKKwkgICJibG9ja3Rlcm1pbmF0 b3IiICJidWZmZXIiICJjbG9zZWN1cnNvciIgImNtZHMiICJjbWRzZXAiCisJ ICAiY29sc2VwIiAiY29tIiAiY29tcGF0aWJpbGl0eSIgImNvbiIgImNvbmNh dCIgImNvbnN0cmFpbnQiCisJICAiY29uc3RyYWludHMiICJjb3B5YyIgImNv cHljb21taXQiICJjb3B5dHlwZWNoZWNrIiAiZGF0YWJhc2UiCisJICAiZGVm IiAiZGVmaW5lIiAiZG9jdW1lbnQiICJlY2hvIiAiZWRpdGYiICJlZGl0Zmls ZSIgImVtYiIKKwkgICJlbWJlZGRlZCIgImVzYyIgImVzY2FwZSIgImZlZWQi ICJmZWVkYmFjayIgImZsYWdnZXIiICJmbHUiCisJICAiZmx1c2giICJoZWEi ICJoZWFkaW5nIiAiaGVhZHMiICJoZWFkc2VwIiAiaW5zdGFuY2UiICJsaW4i CisJICAibGluZXNpemUiICJsb2JvZiIgImxvYm9mZnNldCIgImxvZ3NvdXJj ZSIgImxvbmciICJsb25nYyIKKwkgICJsb25nY2h1bmtzaXplIiAibWF4ZGF0 YSIgIm5ld3AiICJuZXdwYWdlIiAibnVsbCIgIm51bSIKKwkgICJudW1mIiAi bnVtZm9ybWF0IiAibnVtd2lkdGgiICJwYWdlcyIgInBhZ2VzaXplIiAicGF1 IgorCSAgInBhdXNlIiAicmVjc2VwIiAicmVjc2VwY2hhciIgInJvbGUiICJz Y2FuIiAic2VydmVyb3V0cHV0IgorCSAgInNoaWZ0IiAic2hpZnRpbm91dCIg InNob3ciICJzaG93bW9kZSIgInNwYWNlIiAic3FsYmwiCisJICAic3FsYmxh bmtsaW5lcyIgInNxbGMiICJzcWxjYXNlIiAic3FsY28iICJzcWxjb250aW51 ZSIgInNxbG4iCisJICAic3FsbnVtYmVyIiAic3FscCIgInNxbHBsdXNjb21w YXQiICJzcWxwbHVzY29tcGF0aWJpbGl0eSIKKwkgICJzcWxwcmUiICJzcWxw cmVmaXgiICJzcWxwcm9tcHQiICJzcWx0IiAic3FsdGVybWluYXRvciIKKwkg ICJzdGF0ZW1lbnRfaWQiICJzdWYiICJzdWZmaXgiICJ0YWIiICJ0ZXJtIiAi dGVybW91dCIgInRpIgorCSAgInRpbWUiICJ0aW1pIiAidGltaW5nIiAidHJh bnNhY3Rpb24iICJ0cmltIiAidHJpbW91dCIgInRyaW1zIgorCSAgInRyaW1z cG9vbCIgInRydW5jYXRlIiAidW5kIiAidW5kZXJsaW5lIiAidmVyIiAidmVy aWZ5IiAid3JhIgorCSAgIndyYXAiKSkgIlxcKVxcKSIKKworICAgICAgICJc XClcXGIuKiIKKyAgICAgICApCisgICAgICAnZm9udC1sb2NrLWRvYy1mYWNl KQorICAgICAnKCJeWyBcdF0qcmVtXFwoPzphcmtcXCk/LioiIC4gZm9udC1s b2NrLWNvbW1lbnQtZmFjZSkKKworICAgICA7OyBPcmFjbGUgRnVuY3Rpb25z CisgICAgIChzcWwtZm9udC1sb2NrLWtleXdvcmRzLWJ1aWxkZXIgJ2ZvbnQt bG9jay1idWlsdGluLWZhY2UgbmlsCiAiYWJzIiAiYWNvcyIgImFkZF9tb250 aHMiICJhc2NpaSIgImFzY2lpc3RyIiAiYXNpbiIgImF0YW4iICJhdGFuMiIK ICJhdmciICJiZmlsZW5hbWUiICJiaW5fdG9fbnVtIiAiYml0YW5kIiAiY2Fz dCIgImNlaWwiICJjaGFydG9yb3dpZCIKICJjaHIiICJjb2FsZXNjZSIgImNv bXBvc2UiICJjb25jYXQiICJjb252ZXJ0IiAiY29yciIgImNvcyIgImNvc2gi CkBAIC0xMDI3LDkgKzEzNjMsOSBAQAogInVzZXJlbnYiICJ2YXJfcG9wIiAi dmFyX3NhbXAiICJ2YXJpYW5jZSIgInZzaXplIiAid2lkdGhfYnVja2V0IiAi eG1sIgogInhtbGFnZyIgInhtbGF0dHJpYnV0ZSIgInhtbGNvbGF0dHZhbCIg InhtbGNvbmNhdCIgInhtbGVsZW1lbnQiCiAieG1sZm9yZXN0IiAieG1sc2Vx dWVuY2UiICJ4bWx0cmFuc2Zvcm0iCi0pKQotCi0JKG9yYWNsZS1rZXl3b3Jk cyAoc3FsLWtleXdvcmRzLXJlCispCisgICAgIDs7IE9yYWNsZSBLZXl3b3Jk cworICAgICAoc3FsLWZvbnQtbG9jay1rZXl3b3Jkcy1idWlsZGVyICdmb250 LWxvY2sta2V5d29yZC1mYWNlIG5pbAogImFib3J0IiAiYWNjZXNzIiAiYWNj ZXNzZWQiICJhY2NvdW50IiAiYWN0aXZhdGUiICJhZGQiICJhZG1pbiIKICJh ZHZpc2UiICJhZnRlciIgImFnZW50IiAiYWdncmVnYXRlIiAiYWxsIiAiYWxs b2NhdGUiICJhbGxvdyIgImFsdGVyIgogImFsd2F5cyIgImFuYWx5emUiICJh bmNpbGxhcnkiICJhbmQiICJhbnkiICJhcHBseSIgImFyY2hpdmUiCkBAIC0x MTE1LDIyICsxNDUxLDI5IEBACiAidXNlIiAidXNpbmciICJ2YWxpZGF0ZSIg InZhbGlkYXRpb24iICJ2YWx1ZSIgInZhbHVlcyIgInZhcmlhYmxlIgogInZh cnJheSIgInZlcnNpb24iICJ2aWV3IiAid2FpdCIgIndoZW4iICJ3aGVuZXZl ciIgIndoZXJlIiAid2l0aCIKICJ3aXRob3V0IiAid25kcyIgInducHMiICJ3 b3JrIiAid3JpdGUiICJ4bWxkYXRhIiAieG1sc2NoZW1hIiAieG1sdHlwZSIK LSkpCi0KLQkob3JhY2xlLXR5cGVzIChzcWwta2V5d29yZHMtcmUKKykKKyAg ICAgOzsgT3JhY2xlIERhdGEgVHlwZXMKKyAgICAgKHNxbC1mb250LWxvY2st a2V5d29yZHMtYnVpbGRlciAnZm9udC1sb2NrLXR5cGUtZmFjZSBuaWwKICJi ZmlsZSIgImJsb2IiICJieXRlIiAiY2hhciIgImNoYXJhY3RlciIgImNsb2Ii ICJkYXRlIiAiZGVjIiAiZGVjaW1hbCIKICJkb3VibGUiICJmbG9hdCIgImlu dCIgImludGVnZXIiICJpbnRlcnZhbCIgImxvbmciICJuYXRpb25hbCIgIm5j aGFyIgogIm5jbG9iIiAibnVtYmVyIiAibnVtZXJpYyIgIm52YXJjaGFyMiIg InByZWNpc2lvbiIgInJhdyIgInJlYWwiCiAicm93aWQiICJzZWNvbmQiICJz bWFsbGludCIgInRpbWUiICJ0aW1lc3RhbXAiICJ1cm93aWQiICJ2YXJjaGFy IgogInZhcmNoYXIyIiAidmFyeWluZyIgInllYXIiICJ6b25lIgotKSkKKykK IAotCShwbHNxbC1mdW5jdGlvbnMgKHNxbC1rZXl3b3Jkcy1yZQorICAgICA7 OyBPcmFjbGUgUEwvU1FMIEF0dHJpYnV0ZXMKKyAgICAgKHNxbC1mb250LWxv Y2sta2V5d29yZHMtYnVpbGRlciAnZm9udC1sb2NrLWJ1aWx0aW4tZmFjZSAn KCIiIC4gIlxcYiIpCiAiJWJ1bGtfcm93Y291bnQiICIlZm91bmQiICIlaXNv cGVuIiAiJW5vdGZvdW5kIiAiJXJvd2NvdW50IiAiJXJvd3R5cGUiCi0iJXR5 cGUiICJleHRlbmQiICJwcmlvciIKLSkpCi0KLQkocGxzcWwta2V5d29yZHMg KHNxbC1rZXl3b3Jkcy1yZQorIiV0eXBlIgorKQorCisgICAgIDs7IE9yYWNs ZSBQTC9TUUwgRnVuY3Rpb25zCisgICAgIChzcWwtZm9udC1sb2NrLWtleXdv cmRzLWJ1aWxkZXIgJ2ZvbnQtbG9jay1idWlsdGluLWZhY2UgbmlsCisiZXh0 ZW5kIiAicHJpb3IiCispCisKKyAgICAgOzsgT3JhY2xlIFBML1NRTCBLZXl3 b3JkcworICAgICAoc3FsLWZvbnQtbG9jay1rZXl3b3Jkcy1idWlsZGVyICdm b250LWxvY2sta2V5d29yZC1mYWNlIG5pbAogImF1dG9ub21vdXNfdHJhbnNh Y3Rpb24iICJidWxrIiAiY2hhcl9iYXNlIiAiY29sbGVjdCIgImNvbnN0YW50 IgogImN1cnNvciIgImRlY2xhcmUiICJkbyIgImVsc2lmIiAiZXhjZXB0aW9u X2luaXQiICJleGVjdXRlIiAiZXhpdCIKICJleHRlbmRzIiAiZmFsc2UiICJm ZXRjaCIgImZvcmFsbCIgImdvdG8iICJob3VyIiAiaWYiICJpbnRlcmZhY2Ui CkBAIC0xMTM4LDE0ICsxNDgxLDE2IEBACiAic2VwYXJhdGUiICJzZXJpYWxs eV9yZXVzYWJsZSIgInNxbCIgInNxbGNvZGUiICJzcWxlcnJtIiAic3VidHlw ZSIKICJ0aGUiICJ0aW1lem9uZV9hYmJyIiAidGltZXpvbmVfaG91ciIgInRp bWV6b25lX21pbnV0ZSIKICJ0aW1lem9uZV9yZWdpb24iICJ0cnVlIiAidmFy cnlpbmciICJ3aGlsZSIKLSkpCispCiAKLQkocGxzcWwtdHlwZSAoc3FsLWtl eXdvcmRzLXJlCisgICAgIDs7IE9yYWNsZSBQTC9TUUwgRGF0YSBUeXBlcwor ICAgICAoc3FsLWZvbnQtbG9jay1rZXl3b3Jkcy1idWlsZGVyICdmb250LWxv Y2stdHlwZS1mYWNlIG5pbAogImJpbmFyeV9pbnRlZ2VyIiAiYm9vbGVhbiIg Im5hdHVyYWxuIiAicGxzX2ludGVnZXIiICJwb3NpdGl2ZSIKICJwb3NpdGl2 ZW4iICJyZWNvcmQiICJzaWdudHlwZSIgInN0cmluZyIKLSkpCispCiAKLQko cGxzcWwtd2FybmluZyAoc3FsLWtleXdvcmRzLXJlCisgICAgIDs7IE9yYWNs ZSBQTC9TUUwgRXhjZXB0aW9ucworICAgICAoc3FsLWZvbnQtbG9jay1rZXl3 b3Jkcy1idWlsZGVyICdmb250LWxvY2std2FybmluZy1mYWNlIG5pbAogImFj Y2Vzc19pbnRvX251bGwiICJjYXNlX25vdF9mb3VuZCIgImNvbGxlY3Rpb25f aXNfbnVsbCIKICJjdXJzb3JfYWxyZWFkeV9vcGVuIiAiZHVwX3ZhbF9vbl9p bmRleCIgImludmFsaWRfY3Vyc29yIgogImludmFsaWRfbnVtYmVyIiAibG9n aW5fZGVuaWVkIiAibm9fZGF0YV9mb3VuZCIgIm5vdF9sb2dnZWRfb24iCkBA IC0xMTUzLDY2ICsxNDk4LDIxIEBACiAic3Vic2NyaXB0X2JleW9uZF9jb3Vu dCIgInN1YnNjcmlwdF9vdXRzaWRlX2xpbWl0IiAic3lzX2ludmFsaWRfcm93 aWQiCiAidGltZW91dF9vbl9yZXNvdXJjZSIgInRvb19tYW55X3Jvd3MiICJ2 YWx1ZV9lcnJvciIgInplcm9fZGl2aWRlIgogImV4Y2VwdGlvbiIgIm5vdGZv dW5kIgotKSkKLQotCShzcWxwbHVzLWNvbW1hbmRzCi0JIChldmFsLXdoZW4t Y29tcGlsZSAoY29uY2F0ICJeXFwoXFwoIgotCQkJCSAgICAocmVnZXhwLW9w dCAnKAotIkAiICJAQCIgImFjY2VwdCIgImFwcGVuZCIgImFyY2hpdmUiICJh dHRyaWJ1dGUiICJicmVhayIKLSJidGl0bGUiICJjaGFuZ2UiICJjbGVhciIg ImNvbHVtbiIgImNvbm5lY3QiICJjb3B5IiAiZGVmaW5lIgotImRlbCIgImRl c2NyaWJlIiAiZGlzY29ubmVjdCIgImVkaXQiICJleGVjdXRlIiAiZXhpdCIg ImdldCIgImhlbHAiCi0iaG9zdCIgImlucHV0IiAibGlzdCIgInBhc3N3b3Jk IiAicGF1c2UiICJwcmludCIgInByb21wdCIgInJlY292ZXIiCi0icmVtYXJr IiAicmVwZm9vdGVyIiAicmVwaGVhZGVyIiAicnVuIiAic2F2ZSIgInNob3ci ICJzaHV0ZG93biIKLSJzcG9vbCIgInN0YXJ0IiAic3RhcnR1cCIgInN0b3Jl IiAidGltaW5nIiAidHRpdGxlIiAidW5kZWZpbmUiCi0idmFyaWFibGUiICJ3 aGVuZXZlciIKLQotKSB0KQotCi0gICAiXFwpXFx8IgotICAgIlxcKGNvbXB1 dGVcXHMtK1xcKGF2Z1xcfGNvdVxcfG1pblxcfG1heFxcfG51bVxcfHN1bVxc fHN0ZFxcfHZhclxcKVxcKVxcfCIKLSAgICJcXChzZXRcXHMtK1xcKGFwcGlc XChuZm9cXCk/XFx8YXJyYXlcXChzaXplXFwpP1xcfCIKLSAgICJhdXRvXFwo Y29tbWl0XFwpP1xcfGF1dG9wXFwocmludFxcKT9cXHxhdXRvcmVjb3Zlcnlc XHwiCi0gICAiYXV0b3RcXChyYWNlXFwpP1xcfGJsb1xcKGNrdGVybWluYXRv clxcKT9cXHxjbWRzXFwoZXBcXCk/XFx8IgotICAgImNvbHNlcFxcfGNvbVxc KHBhdGliaWxpdHlcXCk/XFx8Y29uXFwoY2F0XFwpP1xcfCIKLSAgICJjb3B5 Y1xcKG9tbWl0XFwpP1xcfGNvcHl0eXBlY2hlY2tcXHxkZWZcXChpbmVcXCk/ XFx8IgotICAgImRlc2NyaWJlXFx8ZWNob1xcfGVkaXRmXFwoaWxlXFwpP1xc fGVtYlxcKGVkZGVkXFwpP1xcfCIKLSAgICJlc2NcXChhcGVcXCk/XFx8ZmVl ZFxcKGJhY2tcXCk/XFx8ZmxhZ2dlclxcfCIKLSAgICJmbHVcXChzaFxcKT9c XHxoZWFcXChkaW5nXFwpP1xcfGhlYWRzXFwoZXBcXCk/XFx8IgotICAgImlu c3RhbmNlXFx8bGluXFwoZXNpemVcXCk/XFx8bG9ib2ZcXChmc2V0XFwpP1xc fCIKLSAgICJsb2dzb3VyY2VcXHxsb25nXFx8bG9uZ2NcXChodW5rc2l6ZVxc KT9cXHxtYXJrXFwodXBcXCk/XFx8IgotICAgIm5ld3BcXChhZ2VcXCk/XFx8 bnVsbFxcfG51bWZcXChvcm1hdFxcKT9cXHwiCi0gICAibnVtXFwod2lkdGhc XCk/XFx8cGFnZXNcXChpemVcXCk/XFx8cGF1XFwoc2VcXCk/XFx8IgotICAg InJlY3NlcFxcfHJlY3NlcGNoYXJcXHxzZXJ2ZXJvdXRcXChwdXRcXCk/XFx8 IgotICAgInNoaWZ0XFwoaW5vdXRcXCk/XFx8c2hvd1xcKG1vZGVcXCk/XFx8 IgotICAgInNxbGJsXFwoYW5rbGluZXNcXCk/XFx8c3FsY1xcKGFzZVxcKT9c XHwiCi0gICAic3FsY29cXChudGludWVcXCk/XFx8c3FsblxcKHVtYmVyXFwp P1xcfCIKLSAgICJzcWxwbHVzY29tcGF0XFwoaWJpbGl0eVxcKT9cXHxzcWxw cmVcXChmaXhcXCk/XFx8IgotICAgInNxbHBcXChyb21wdFxcKT9cXHxzcWx0 XFwoZXJtaW5hdG9yXFwpP1xcfCIKLSAgICJzdWZcXChmaXhcXCk/XFx8dGFi XFx8dGVybVxcKG91dFxcKT9cXHx0aVxcKG1lXFwpP1xcfCIKLSAgICJ0aW1p XFwobmdcXCk/XFx8dHJpbVxcKG91dFxcKT9cXHx0cmltc1xcKHBvb2xcXCk/ XFx8IgotICAgInVuZFxcKGVybGluZVxcKT9cXHx2ZXJcXChpZnlcXCk/XFx8 d3JhXFwocFxcKT9cXClcXClcXCkiCi0gICAiXFxiLiokIgotICAgKSkpKQot Ci0gICAgYCgoLHNxbHBsdXMtY29tbWFuZHMgLiBmb250LWxvY2stZG9jLWZh Y2UpCi0gICAgICAoLG9yYWNsZS1mdW5jdGlvbnMgLiBmb250LWxvY2stYnVp bHRpbi1mYWNlKQotICAgICAgKCxvcmFjbGUta2V5d29yZHMgIC4gZm9udC1s b2NrLWtleXdvcmQtZmFjZSkKLSAgICAgICgsb3JhY2xlLXR5cGVzICAgICAu IGZvbnQtbG9jay10eXBlLWZhY2UpCi0gICAgICAoLHBsc3FsLWZ1bmN0aW9u cyAgLiBmb250LWxvY2stYnVpbHRpbi1mYWNlKQotICAgICAgKCxwbHNxbC1r ZXl3b3JkcyAgIC4gZm9udC1sb2NrLWtleXdvcmQtZmFjZSkKLSAgICAgICgs cGxzcWwtdHlwZSAgICAgICAuIGZvbnQtbG9jay10eXBlLWZhY2UpCi0gICAg ICAoLHBsc3FsLXdhcm5pbmcgICAgLiBmb250LWxvY2std2FybmluZy1mYWNl KSkpCispKSkKIAogICAiT3JhY2xlIFNRTCBrZXl3b3JkcyB1c2VkIGJ5IGZv bnQtbG9jay4KIAogVGhpcyB2YXJpYWJsZSBpcyB1c2VkIGJ5IGBzcWwtbW9k ZScgYW5kIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuICBUaGUKIHJlZ3VsYXIg ZXhwcmVzc2lvbnMgYXJlIGNyZWF0ZWQgZHVyaW5nIGNvbXBpbGF0aW9uIGJ5 IGNhbGxpbmcgdGhlCiBmdW5jdGlvbiBgcmVnZXhwLW9wdCcuICBUaGVyZWZv cmUsIHRha2UgYSBsb29rIGF0IHRoZSBzb3VyY2UgYmVmb3JlCi15b3UgZGVm aW5lIHlvdXIgb3duIHNxbC1tb2RlLW9yYWNsZS1mb250LWxvY2sta2V5d29y ZHMuICBZb3UgbWF5IHdhbnQKK3lvdSBkZWZpbmUgeW91ciBvd24gYHNxbC1t b2RlLW9yYWNsZS1mb250LWxvY2sta2V5d29yZHMnLiAgWW91IG1heSB3YW50 CiB0byBhZGQgZnVuY3Rpb25zIGFuZCBQTC9TUUwga2V5d29yZHMuIikKIAog KGRlZnZhciBzcWwtbW9kZS1wb3N0Z3Jlcy1mb250LWxvY2sta2V5d29yZHMK LSAgKGxldCAoKHBnLWZ1bmNzIChzcWwta2V5d29yZHMtcmUKKyAgKGV2YWwt d2hlbi1jb21waWxlCisgICAgKGxpc3QKKyAgICAgOzsgUG9zdGdyZXMgRnVu Y3Rpb25zCisgICAgIChzcWwtZm9udC1sb2NrLWtleXdvcmRzLWJ1aWxkZXIg J2ZvbnQtbG9jay1idWlsdGluLWZhY2UgbmlsCiAiYWJicmV2IiAiYWJzIiAi YWNvcyIgImFnZSIgImFyZWEiICJhc2NpaSIgImFzaW4iICJhdGFiMiIgImF0 YW4iCiAiYXRhbjIiICJhdmciICJiaXRfbGVuZ3RoIiAiYm90aCIgImJyb2Fk Y2FzdCIgImJ0cmltIiAiY2JydCIgImNlaWwiCiAiY2VudGVyIiAiY2hhcl9s ZW5ndGgiICJjaHIiICJjb2FsZXNjZSIgImNvbF9kZXNjcmlwdGlvbiIgImNv bnZlcnQiCkBAIC0xMjM3LDkgKzE1MzcsOSBAQAogInN1YnN0cmluZyIgInN1 bSIgInRhbiIgInRpbWVvZmRheSIgInRvX2FzY2lpIiAidG9fY2hhciIgInRv X2RhdGUiCiAidG9faGV4IiAidG9fbnVtYmVyIiAidG9fdGltZXN0YW1wIiAi dHJhaWxpbmciICJ0cmFuc2xhdGUiICJ0cmltIgogInRydW5jIiAidXBwZXIi ICJ2YXJpYW5jZSIgInZlcnNpb24iICJ3aWR0aCIKLSkpCi0KLQkocGctcmVz ZXJ2ZWQgKHNxbC1rZXl3b3Jkcy1yZQorKQorICAgICA7OyBQb3N0Z3JlcyBS ZXNlcnZlZAorICAgICAoc3FsLWZvbnQtbG9jay1rZXl3b3Jkcy1idWlsZGVy ICdmb250LWxvY2sta2V5d29yZC1mYWNlIG5pbAogImFib3J0IiAiYWNjZXNz IiAiYWRkIiAiYWZ0ZXIiICJhZ2dyZWdhdGUiICJhbGlnbm1lbnQiICJhbGwi ICJhbHRlciIKICJhbmFseXplIiAiYW5kIiAiYW55IiAiYXMiICJhc2MiICJh c3NpZ25tZW50IiAiYXV0aG9yaXphdGlvbiIKICJiYWNrd2FyZCIgImJhc2V0 eXBlIiAiYmVmb3JlIiAiYmVnaW4iICJiZXR3ZWVuIiAiYmluYXJ5IiAiYnki ICJjYWNoZSIKQEAgLTEyNzQsOSArMTU3NCwxMCBAQAogInVzYWdlIiAidXNl ciIgInVzaW5nIiAidmFjdXVtIiAidmFsaWQiICJ2YWxpZGF0b3IiICJ2YWx1 ZXMiCiAidmFyaWFibGUiICJ2ZXJib3NlIiAidmlldyIgInZvbGF0aWxlIiAi d2hlbiIgIndoZXJlIiAid2l0aCIgIndpdGhvdXQiCiAid29yayIKLSkpCisp CiAKLQkocGctdHlwZXMgKHNxbC1rZXl3b3Jkcy1yZQorICAgICA7OyBQb3N0 Z3JlcyBEYXRhIFR5cGVzCisgICAgIChzcWwtZm9udC1sb2NrLWtleXdvcmRz LWJ1aWxkZXIgJ2ZvbnQtbG9jay10eXBlLWZhY2UgbmlsCiAiYW55YXJyYXki ICJiaWdpbnQiICJiaWdzZXJpYWwiICJiaXQiICJib29sZWFuIiAiYm94IiAi Ynl0ZWEiICJjaGFyIgogImNoYXJhY3RlciIgImNpZHIiICJjaXJjbGUiICJj c3RyaW5nIiAiZGF0ZSIgImRlY2ltYWwiICJkb3VibGUiCiAiZmxvYXQ0IiAi ZmxvYXQ4IiAiaW5ldCIgImludDIiICJpbnQ0IiAiaW50OCIgImludGVnZXIi ICJpbnRlcm5hbCIKQEAgLTEyODcsMTkgKzE1ODgsMTggQEAKICJ0aW1lc3Rh bXAiICJ2YXJjaGFyIiAidmFyeWluZyIgInZvaWQiICJ6b25lIgogKSkpCiAK LSAgYCgoLHBnLWZ1bmNzICAgIC4gZm9udC1sb2NrLWJ1aWx0aW4tZmFjZSkK LSAgICAoLHBnLXJlc2VydmVkIC4gZm9udC1sb2NrLWtleXdvcmQtZmFjZSkK LSAgICAoLHBnLXR5cGVzICAgIC4gZm9udC1sb2NrLXR5cGUtZmFjZSkpKQot CiAgICJQb3N0Z3JlcyBTUUwga2V5d29yZHMgdXNlZCBieSBmb250LWxvY2su CiAKIFRoaXMgdmFyaWFibGUgaXMgdXNlZCBieSBgc3FsLW1vZGUnIGFuZCBg c3FsLWludGVyYWN0aXZlLW1vZGUnLiAgVGhlCiByZWd1bGFyIGV4cHJlc3Np b25zIGFyZSBjcmVhdGVkIGR1cmluZyBjb21waWxhdGlvbiBieSBjYWxsaW5n IHRoZQogZnVuY3Rpb24gYHJlZ2V4cC1vcHQnLiAgVGhlcmVmb3JlLCB0YWtl IGEgbG9vayBhdCB0aGUgc291cmNlIGJlZm9yZQoteW91IGRlZmluZSB5b3Vy IG93biBzcWwtbW9kZS1wb3N0Z3Jlcy1mb250LWxvY2sta2V5d29yZHMuIikK K3lvdSBkZWZpbmUgeW91ciBvd24gYHNxbC1tb2RlLXBvc3RncmVzLWZvbnQt bG9jay1rZXl3b3JkcycuIikKIAogKGRlZnZhciBzcWwtbW9kZS1saW50ZXIt Zm9udC1sb2NrLWtleXdvcmRzCi0gIChsZXQgKChsaW50ZXIta2V5d29yZHMg KHNxbC1rZXl3b3Jkcy1yZQorICAoZXZhbC13aGVuLWNvbXBpbGUKKyAgICAo bGlzdAorICAgICA7OyBMaW50ZXIgS2V5d29yZHMKKyAgICAgKHNxbC1mb250 LWxvY2sta2V5d29yZHMtYnVpbGRlciAnZm9udC1sb2NrLWtleXdvcmQtZmFj ZSBuaWwKICJhdXRvY29tbWl0IiAiYXV0b2luYyIgImF1dG9yb3dpZCIgImNh bmNlbCIgImNhc2NhZGUiICJjaGFubmVsIgogImNvbW1pdHRlZCIgImNvdW50 IiAiY291bnRibG9iIiAiY3Jvc3MiICJjdXJyZW50IiAiZGF0YSIgImRhdGFi YXNlIgogImRhdGFmaWxlIiAiZGF0YWZpbGVzIiAiZGF0ZXNwbGl0IiAiZGJh IiAiZGJuYW1lIiAiZGVmYXVsdCIgImRlZmVycmVkIgpAQCAtMTMyNCw5ICsx NjI0LDEwIEBACiAidHJpZ2dlcl9pbmZvX3NpemUiICJ0cnVlIiAidHJ1bmMi ICJ1bmNvbW1pdHRlZCIgInVuaWNvZGUiICJ1bmtub3duIgogInVubGltaXRl ZCIgInVubGlzdGVkIiAidXNlciIgInV0ZjgiICJ2YWx1ZSIgInZhcnlpbmci ICJ2b2x1bWVzIgogIndhaXQiICJ3aW5kb3dzX2NvZGUiICJ3b3Jrc3BhY2Ui ICJ3cml0ZSIgInhtbCIKLSkpCispCiAKLQkobGludGVyLXJlc2VydmVkIChz cWwta2V5d29yZHMtcmUKKyAgICAgOzsgTGludGVyIFJlc2VydmVkCisgICAg IChzcWwtZm9udC1sb2NrLWtleXdvcmRzLWJ1aWxkZXIgJ2ZvbnQtbG9jay1r ZXl3b3JkLWZhY2UgbmlsCiAiYWNjZXNzIiAiYWN0aW9uIiAiYWRkIiAiYWRk cmVzcyIgImFmdGVyIiAiYWxsIiAiYWx0ZXIiICJhbHdheXMiICJhbmQiCiAi YW55IiAiYXBwZW5kIiAiYXMiICJhc2MiICJhc2NpYyIgImFzeW5jIiAiYXRf YmVnaW4iICJhdF9lbmQiICJhdWRpdCIKICJhdWRfb2JqX25hbWVfbGVuIiAi YmFja3VwIiAiYmFzZSIgImJlZm9yZSIgImJldHdlZW4iICJibG9iZmlsZSIK QEAgLTEzNDQsMTYgKzE2NDUsMTAgQEAKICJzdGFydCIgInN0b3AiICJzeW5j IiAic3luY2hyb25pemUiICJzeW5vbnltIiAic3lzZGF0ZSIgInRhYmxlIiAi dGhlbiIKICJ0byIgInVuaW9uIiAidW5pcXVlIiAidW5sb2NrIiAidW50aWwi ICJ1cGRhdGUiICJ1c2luZyIgInZhbHVlcyIKICJ2aWV3IiAid2hlbiIgIndo ZXJlIiAid2l0aCIgIndpdGhvdXQiCi0pKQotCi0JKGxpbnRlci10eXBlcyAo c3FsLWtleXdvcmRzLXJlCi0iYmlnaW50IiAiYml0bWFwIiAiYmxvYiIgImJv b2xlYW4iICJjaGFyIiAiY2hhcmFjdGVyIiAiZGF0ZSIKLSJkYXRldGltZSIg ImRlYyIgImRlY2ltYWwiICJkb3VibGUiICJmbG9hdCIgImludCIgImludGVn ZXIiICJuY2hhciIKLSJudW1iZXIiICJudW1lcmljIiAicmVhbCIgInNtYWxs aW50IiAidmFyYnl0ZSIgInZhcmNoYXIiICJieXRlIgotImN1cnNvciIgImxv bmciCi0pKQotCi0JKGxpbnRlci1mdW5jdGlvbnMgKHNxbC1rZXl3b3Jkcy1y ZQorKQorCisgICAgIDs7IExpbnRlciBGdW5jdGlvbnMKKyAgICAgKHNxbC1m b250LWxvY2sta2V5d29yZHMtYnVpbGRlciAnZm9udC1sb2NrLWJ1aWx0aW4t ZmFjZSBuaWwKICJhYnMiICJhY29zIiAiYXNpbiIgImF0YW4iICJhdGFuMiIg ImF2ZyIgImNlaWwiICJjb3MiICJjb3NoIiAiZGl2dGltZSIKICJleHAiICJm bG9vciIgImdldGJpdHMiICJnZXRibG9iIiAiZ2V0Ynl0ZSIgImdldGxvbmci ICJnZXRyYXciCiAiZ2V0c3RyIiAiZ2V0dGV4dCIgImdldHdvcmQiICJoZXh0 b3JhdyIgImxlbmJsb2IiICJsZW5ndGgiICJsb2ciCkBAIC0xMzY0LDEzICsx NjU5LDE2IEBACiAidG9fZ210aW1lIiAidG9fbG9jYWx0aW1lIiAidG9fbnVt YmVyIiAidHJpbSIgInVwcGVyIiAiZGVjb2RlIgogInN1YnN0ciIgInN1YnN0 cmluZyIgImNociIgImRheW5hbWUiICJkYXlzIiAiZ3JlYXRlc3QiICJoZXgi ICJpbml0Y2FwIgogImluc3RyIiAibGVhc3QiICJtdWx0aW1lIiAicmVwbGFj ZSIgIndpZHRoIgorKQorCisgICAgIDs7IExpbnRlciBEYXRhIFR5cGVzCisg ICAgIChzcWwtZm9udC1sb2NrLWtleXdvcmRzLWJ1aWxkZXIgJ2ZvbnQtbG9j ay10eXBlLWZhY2UgbmlsCisiYmlnaW50IiAiYml0bWFwIiAiYmxvYiIgImJv b2xlYW4iICJjaGFyIiAiY2hhcmFjdGVyIiAiZGF0ZSIKKyJkYXRldGltZSIg ImRlYyIgImRlY2ltYWwiICJkb3VibGUiICJmbG9hdCIgImludCIgImludGVn ZXIiICJuY2hhciIKKyJudW1iZXIiICJudW1lcmljIiAicmVhbCIgInNtYWxs aW50IiAidmFyYnl0ZSIgInZhcmNoYXIiICJieXRlIgorImN1cnNvciIgImxv bmciCiApKSkKIAotICAgIGAoKCxsaW50ZXIta2V5d29yZHMgIC4gZm9udC1s b2NrLWtleXdvcmQtZmFjZSkKLSAgICAgICgsbGludGVyLXJlc2VydmVkICAu IGZvbnQtbG9jay1rZXl3b3JkLWZhY2UpCi0gICAgICAoLGxpbnRlci1mdW5j dGlvbnMgLiBmb250LWxvY2stYnVpbHRpbi1mYWNlKQotICAgICAgKCxsaW50 ZXItdHlwZXMgICAgIC4gZm9udC1sb2NrLXR5cGUtZmFjZSkpKQotCiAgICJM aW50ZXIgU1FMIGtleXdvcmRzIHVzZWQgYnkgZm9udC1sb2NrLgogCiBUaGlz IHZhcmlhYmxlIGlzIHVzZWQgYnkgYHNxbC1tb2RlJyBhbmQgYHNxbC1pbnRl cmFjdGl2ZS1tb2RlJy4gIFRoZQpAQCAtMTM3OCw3ICsxNjc2LDI5IEBACiBm dW5jdGlvbiBgcmVnZXhwLW9wdCcuIikKIAogKGRlZnZhciBzcWwtbW9kZS1t cy1mb250LWxvY2sta2V5d29yZHMKLSAgKGxldCAoKG1zLXJlc2VydmVkIChz cWwta2V5d29yZHMtcmUKKyAgKGV2YWwtd2hlbi1jb21waWxlCisgICAgKGxp c3QKKyAgICAgOzsgTVMgaXNxbC9vc3FsIENvbW1hbmRzCisgICAgIChjb25z CisgICAgICAoY29uY2F0CisgICAgICAgIl5cXCg/OlxcKD86c2V0XFxzLStc XCg/OiIKKyAgICAgICAocmVnZXhwLW9wdCAnKAorImRhdGVmaXJzdCIgImRh dGVmb3JtYXQiICJkZWFkbG9ja19wcmlvcml0eSIgImxvY2tfdGltZW91dCIK KyJjb25jYXRfbnVsbF95aWVsZHNfbnVsbCIgImN1cnNvcl9jbG9zZV9vbl9j b21taXQiCisiZGlzYWJsZV9kZWZfY25zdF9jaGsiICJmaXBzX2ZsYWdnZXIi ICJpZGVudGl0eV9pbnNlcnQiICJsYW5ndWFnZSIKKyJvZmZzZXRzIiAicXVv dGVkX2lkZW50aWZpZXIiICJhcml0aGFib3J0IiAiYXJpdGhpZ25vcmUiICJm bXRvbmx5IgorIm5vY291bnQiICJub2V4ZWMiICJudW1lcmljX3JvdW5kYWJv cnQiICJwYXJzZW9ubHkiCisicXVlcnlfZ292ZXJub3JfY29zdF9saW1pdCIg InJvd2NvdW50IiAidGV4dHNpemUiICJhbnNpX2RlZmF1bHRzIgorImFuc2lf bnVsbF9kZmx0X29mZiIgImFuc2lfbnVsbF9kZmx0X29uIiAiYW5zaV9udWxs cyIgImFuc2lfcGFkZGluZyIKKyJhbnNpX3dhcm5pbmdzIiAiZm9yY2VwbGFu IiAic2hvd3BsYW5fYWxsIiAic2hvd3BsYW5fdGV4dCIKKyJzdGF0aXN0aWNz IiAiaW1wbGljaXRfdHJhbnNhY3Rpb25zIiAicmVtb3RlX3Byb2NfdHJhbnNh Y3Rpb25zIgorInRyYW5zYWN0aW9uIiAieGFjdF9hYm9ydCIKKykgdCkKKyAg ICAgICAiXFwpXFwpXFx8Z29cXHMtKlxcfHVzZVxccy0rXFx8c2V0dXNlclxc cy0rXFx8ZGJjY1xccy0rXFwpLiokIikKKyAgICAgICdmb250LWxvY2stZG9j LWZhY2UpCisKKyAgICAgOzsgTVMgUmVzZXJ2ZWQKKyAgICAgKHNxbC1mb250 LWxvY2sta2V5d29yZHMtYnVpbGRlciAnZm9udC1sb2NrLWtleXdvcmQtZmFj ZSBuaWwKICJhYnNvbHV0ZSIgImFkZCIgImFsbCIgImFsdGVyIiAiYW5kIiAi YW55IiAiYXMiICJhc2MiICJhdXRob3JpemF0aW9uIgogImF2ZyIgImJhY2t1 cCIgImJlZ2luIiAiYmV0d2VlbiIgImJyZWFrIiAiYnJvd3NlIiAiYnVsayIg ImJ5IgogImNhc2NhZGUiICJjYXNlIiAiY2hlY2siICJjaGVja3BvaW50IiAi Y2xvc2UiICJjbHVzdGVyZWQiICJjb2FsZXNjZSIKQEAgLTE0MTEsMTkgKzE3 MzEsMTAgQEAKICJ1cGRsb2NrIiAidXNlIiAidXNlciIgInZhbHVlcyIgInZp ZXciICJ3YWl0Zm9yIiAid2hlbiIgIndoZXJlIgogIndoaWxlIiAid2l0aCIg IndvcmsiICJ3cml0ZXRleHQiICJjb2xsYXRlIiAiZnVuY3Rpb24iICJvcGVu eG1sIgogInJldHVybnMiCi0pKQotCi0JKG1zLXR5cGVzIChzcWwta2V5d29y ZHMtcmUKLSJiaW5hcnkiICJiaXQiICJjaGFyIiAiY2hhcmFjdGVyIiAiY3Vy c29yIiAiZGF0ZXRpbWUiICJkZWMiICJkZWNpbWFsIgotImRvdWJsZSIgImZs b2F0IiAiaW1hZ2UiICJpbnQiICJpbnRlZ2VyIiAibW9uZXkiICJuYXRpb25h bCIgIm5jaGFyIgotIm50ZXh0IiAibnVtZXJpYyIgIm51bWVyaWMiICJudmFy Y2hhciIgInByZWNpc2lvbiIgInJlYWwiCi0ic21hbGxkYXRldGltZSIgInNt YWxsaW50IiAic21hbGxtb25leSIgInRleHQiICJ0aW1lc3RhbXAiICJ0aW55 aW50IgotInVuaXF1ZWlkZW50aWZpZXIiICJ2YXJiaW5hcnkiICJ2YXJjaGFy IiAidmFyeWluZyIKLSkpCi0KLQkobXMtdmFycyAiXFxiQFthLXpBLVowLTlf XSpcXGIiKQotCi0JKG1zLWZ1bmN0aW9ucyAoc3FsLWtleXdvcmRzLXJlCisp CisKKyAgICAgOzsgTVMgRnVuY3Rpb25zCisgICAgIChzcWwtZm9udC1sb2Nr LWtleXdvcmRzLWJ1aWxkZXIgJ2ZvbnQtbG9jay1idWlsdGluLWZhY2Ugbmls CiAiQEBjb25uZWN0aW9ucyIgIkBAY3B1X2J1c3kiICJAQGN1cnNvcl9yb3dz IiAiQEBkYXRlZmlyc3QiICJAQGRidHMiCiAiQEBlcnJvciIgIkBAZmV0Y2hf c3RhdHVzIiAiQEBpZGVudGl0eSIgIkBAaWRsZSIgIkBAaW9fYnVzeSIKICJA QGxhbmdpZCIgIkBAbGFuZ3VhZ2UiICJAQGxvY2tfdGltZW91dCIgIkBAbWF4 X2Nvbm5lY3Rpb25zIgpAQCAtMTQ1MiwzNyArMTc2MywyNiBAQAogInN1c2Vy X2lkIiAic3VzZXJfbmFtZSIgInN1c2VyX3NpZCIgInN1c2VyX3NuYW1lIiAi c3lzdGVtX3VzZXIiICJ0YW4iCiAidGV4dHB0ciIgInRleHR2YWxpZCIgInR5 cGVwcm9wZXJ0eSIgInVuaWNvZGUiICJ1cHBlciIgInVzZXIiCiAidXNlcl9p ZCIgInVzZXJfbmFtZSIgInZhciIgInZhcnAiICJ5ZWFyIgotKSkKLQotCSht cy1jb21tYW5kcwotCSAoZXZhbC13aGVuLWNvbXBpbGUKLQkgICAoY29uY2F0 ICJeXFwoXFwoc2V0XFxzLStcXCgiCi0JCSAgIChyZWdleHAtb3B0ICcoCi0i ZGF0ZWZpcnN0IiAiZGF0ZWZvcm1hdCIgImRlYWRsb2NrX3ByaW9yaXR5IiAi bG9ja190aW1lb3V0IgotImNvbmNhdF9udWxsX3lpZWxkc19udWxsIiAiY3Vy c29yX2Nsb3NlX29uX2NvbW1pdCIKLSJkaXNhYmxlX2RlZl9jbnN0X2NoayIg ImZpcHNfZmxhZ2dlciIgImlkZW50aXR5X2luc2VydCIgImxhbmd1YWdlIgot Im9mZnNldHMiICJxdW90ZWRfaWRlbnRpZmllciIgImFyaXRoYWJvcnQiICJh cml0aGlnbm9yZSIgImZtdG9ubHkiCi0ibm9jb3VudCIgIm5vZXhlYyIgIm51 bWVyaWNfcm91bmRhYm9ydCIgInBhcnNlb25seSIKLSJxdWVyeV9nb3Zlcm5v cl9jb3N0X2xpbWl0IiAicm93Y291bnQiICJ0ZXh0c2l6ZSIgImFuc2lfZGVm YXVsdHMiCi0iYW5zaV9udWxsX2RmbHRfb2ZmIiAiYW5zaV9udWxsX2RmbHRf b24iICJhbnNpX251bGxzIiAiYW5zaV9wYWRkaW5nIgotImFuc2lfd2Fybmlu Z3MiICJmb3JjZXBsYW4iICJzaG93cGxhbl9hbGwiICJzaG93cGxhbl90ZXh0 IgotInN0YXRpc3RpY3MiICJpbXBsaWNpdF90cmFuc2FjdGlvbnMiICJyZW1v dGVfcHJvY190cmFuc2FjdGlvbnMiCi0idHJhbnNhY3Rpb24iICJ4YWN0X2Fi b3J0IgotKSB0KQotCQkgICAiXFwpXFwpXFx8Z29cXHMtKlxcfHVzZVxccy0r XFx8c2V0dXNlclxccy0rXFx8ZGJjY1xccy0rXFwpLiokIikpKSkKLQotICAg IGAoKCxtcy1jb21tYW5kcyAgLiBmb250LWxvY2stZG9jLWZhY2UpCi0gICAg ICAoLG1zLXJlc2VydmVkICAuIGZvbnQtbG9jay1rZXl3b3JkLWZhY2UpCi0g ICAgICAoLG1zLWZ1bmN0aW9ucyAuIGZvbnQtbG9jay1idWlsdGluLWZhY2Up Ci0gICAgICAoLG1zLXZhcnMgICAgICAuIGZvbnQtbG9jay12YXJpYWJsZS1u YW1lLWZhY2UpCi0gICAgICAoLG1zLXR5cGVzICAgICAuIGZvbnQtbG9jay10 eXBlLWZhY2UpKSkKKykKKworICAgICA7OyBNUyBWYXJpYWJsZXMKKyAgICAg JygiXFxiQFthLXpBLVowLTlfXSpcXGIiIC4gZm9udC1sb2NrLXZhcmlhYmxl LW5hbWUtZmFjZSkKKworICAgICA7OyBNUyBUeXBlcworICAgICAoc3FsLWZv bnQtbG9jay1rZXl3b3Jkcy1idWlsZGVyICdmb250LWxvY2stdHlwZS1mYWNl IG5pbAorImJpbmFyeSIgImJpdCIgImNoYXIiICJjaGFyYWN0ZXIiICJjdXJz b3IiICJkYXRldGltZSIgImRlYyIgImRlY2ltYWwiCisiZG91YmxlIiAiZmxv YXQiICJpbWFnZSIgImludCIgImludGVnZXIiICJtb25leSIgIm5hdGlvbmFs IiAibmNoYXIiCisibnRleHQiICJudW1lcmljIiAibnVtZXJpYyIgIm52YXJj aGFyIiAicHJlY2lzaW9uIiAicmVhbCIKKyJzbWFsbGRhdGV0aW1lIiAic21h bGxpbnQiICJzbWFsbG1vbmV5IiAidGV4dCIgInRpbWVzdGFtcCIgInRpbnlp bnQiCisidW5pcXVlaWRlbnRpZmllciIgInZhcmJpbmFyeSIgInZhcmNoYXIi ICJ2YXJ5aW5nIgorKSkpCiAKICAgIk1pY3Jvc29mdCBTUUxTZXJ2ZXIgU1FM IGtleXdvcmRzIHVzZWQgYnkgZm9udC1sb2NrLgogCiBUaGlzIHZhcmlhYmxl IGlzIHVzZWQgYnkgYHNxbC1tb2RlJyBhbmQgYHNxbC1pbnRlcmFjdGl2ZS1t b2RlJy4gIFRoZQogcmVndWxhciBleHByZXNzaW9ucyBhcmUgY3JlYXRlZCBk dXJpbmcgY29tcGlsYXRpb24gYnkgY2FsbGluZyB0aGUKIGZ1bmN0aW9uIGBy ZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwgdGFrZSBhIGxvb2sgYXQgdGhlIHNv dXJjZSBiZWZvcmUKLXlvdSBkZWZpbmUgeW91ciBvd24gc3FsLW1vZGUtbXMt Zm9udC1sb2NrLWtleXdvcmRzLiIpCit5b3UgZGVmaW5lIHlvdXIgb3duIGBz cWwtbW9kZS1tcy1mb250LWxvY2sta2V5d29yZHMnLiIpCiAKIChkZWZ2YXIg c3FsLW1vZGUtc3liYXNlLWZvbnQtbG9jay1rZXl3b3JkcyBuaWwKICAgIlN5 YmFzZSBTUUwga2V5d29yZHMgdXNlZCBieSBmb250LWxvY2suCkBAIC0xNDkw LDcgKzE3OTAsNyBAQAogVGhpcyB2YXJpYWJsZSBpcyB1c2VkIGJ5IGBzcWwt bW9kZScgYW5kIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuICBUaGUKIHJlZ3Vs YXIgZXhwcmVzc2lvbnMgYXJlIGNyZWF0ZWQgZHVyaW5nIGNvbXBpbGF0aW9u IGJ5IGNhbGxpbmcgdGhlCiBmdW5jdGlvbiBgcmVnZXhwLW9wdCcuICBUaGVy ZWZvcmUsIHRha2UgYSBsb29rIGF0IHRoZSBzb3VyY2UgYmVmb3JlCi15b3Ug ZGVmaW5lIHlvdXIgb3duIHNxbC1tb2RlLXN5YmFzZS1mb250LWxvY2sta2V5 d29yZHMuIikKK3lvdSBkZWZpbmUgeW91ciBvd24gYHNxbC1tb2RlLXN5YmFz ZS1mb250LWxvY2sta2V5d29yZHMnLiIpCiAKIChkZWZ2YXIgc3FsLW1vZGUt aW5mb3JtaXgtZm9udC1sb2NrLWtleXdvcmRzIG5pbAogICAiSW5mb3JtaXgg U1FMIGtleXdvcmRzIHVzZWQgYnkgZm9udC1sb2NrLgpAQCAtMTQ5OCw3ICsx Nzk4LDcgQEAKIFRoaXMgdmFyaWFibGUgaXMgdXNlZCBieSBgc3FsLW1vZGUn IGFuZCBgc3FsLWludGVyYWN0aXZlLW1vZGUnLiAgVGhlCiByZWd1bGFyIGV4 cHJlc3Npb25zIGFyZSBjcmVhdGVkIGR1cmluZyBjb21waWxhdGlvbiBieSBj YWxsaW5nIHRoZQogZnVuY3Rpb24gYHJlZ2V4cC1vcHQnLiAgVGhlcmVmb3Jl LCB0YWtlIGEgbG9vayBhdCB0aGUgc291cmNlIGJlZm9yZQoteW91IGRlZmlu ZSB5b3VyIG93biBzcWwtbW9kZS1pbmZvcm1peC1mb250LWxvY2sta2V5d29y ZHMuIikKK3lvdSBkZWZpbmUgeW91ciBvd24gYHNxbC1tb2RlLWluZm9ybWl4 LWZvbnQtbG9jay1rZXl3b3JkcycuIikKIAogKGRlZnZhciBzcWwtbW9kZS1p bnRlcmJhc2UtZm9udC1sb2NrLWtleXdvcmRzIG5pbAogICAiSW50ZXJiYXNl IFNRTCBrZXl3b3JkcyB1c2VkIGJ5IGZvbnQtbG9jay4KQEAgLTE1MDYsNyAr MTgwNiw3IEBACiBUaGlzIHZhcmlhYmxlIGlzIHVzZWQgYnkgYHNxbC1tb2Rl JyBhbmQgYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJy4gIFRoZQogcmVndWxhciBl eHByZXNzaW9ucyBhcmUgY3JlYXRlZCBkdXJpbmcgY29tcGlsYXRpb24gYnkg Y2FsbGluZyB0aGUKIGZ1bmN0aW9uIGByZWdleHAtb3B0Jy4gIFRoZXJlZm9y ZSwgdGFrZSBhIGxvb2sgYXQgdGhlIHNvdXJjZSBiZWZvcmUKLXlvdSBkZWZp bmUgeW91ciBvd24gc3FsLW1vZGUtaW50ZXJiYXNlLWZvbnQtbG9jay1rZXl3 b3Jkcy4iKQoreW91IGRlZmluZSB5b3VyIG93biBgc3FsLW1vZGUtaW50ZXJi YXNlLWZvbnQtbG9jay1rZXl3b3JkcycuIikKIAogKGRlZnZhciBzcWwtbW9k ZS1pbmdyZXMtZm9udC1sb2NrLWtleXdvcmRzIG5pbAogICAiSW5ncmVzIFNR TCBrZXl3b3JkcyB1c2VkIGJ5IGZvbnQtbG9jay4KQEAgLTE1MTQsNyArMTgx NCw3IEBACiBUaGlzIHZhcmlhYmxlIGlzIHVzZWQgYnkgYHNxbC1tb2RlJyBh bmQgYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJy4gIFRoZQogcmVndWxhciBleHBy ZXNzaW9ucyBhcmUgY3JlYXRlZCBkdXJpbmcgY29tcGlsYXRpb24gYnkgY2Fs bGluZyB0aGUKIGZ1bmN0aW9uIGByZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwg dGFrZSBhIGxvb2sgYXQgdGhlIHNvdXJjZSBiZWZvcmUKLXlvdSBkZWZpbmUg eW91ciBvd24gc3FsLW1vZGUtaW50ZXJiYXNlLWZvbnQtbG9jay1rZXl3b3Jk cy4iKQoreW91IGRlZmluZSB5b3VyIG93biBgc3FsLW1vZGUtaW50ZXJiYXNl LWZvbnQtbG9jay1rZXl3b3JkcycuIikKIAogKGRlZnZhciBzcWwtbW9kZS1z b2xpZC1mb250LWxvY2sta2V5d29yZHMgbmlsCiAgICJTb2xpZCBTUUwga2V5 d29yZHMgdXNlZCBieSBmb250LWxvY2suCkBAIC0xNTIyLDEwICsxODIyLDEz IEBACiBUaGlzIHZhcmlhYmxlIGlzIHVzZWQgYnkgYHNxbC1tb2RlJyBhbmQg YHNxbC1pbnRlcmFjdGl2ZS1tb2RlJy4gIFRoZQogcmVndWxhciBleHByZXNz aW9ucyBhcmUgY3JlYXRlZCBkdXJpbmcgY29tcGlsYXRpb24gYnkgY2FsbGlu ZyB0aGUKIGZ1bmN0aW9uIGByZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwgdGFr ZSBhIGxvb2sgYXQgdGhlIHNvdXJjZSBiZWZvcmUKLXlvdSBkZWZpbmUgeW91 ciBvd24gc3FsLW1vZGUtc29saWQtZm9udC1sb2NrLWtleXdvcmRzLiIpCit5 b3UgZGVmaW5lIHlvdXIgb3duIGBzcWwtbW9kZS1zb2xpZC1mb250LWxvY2st a2V5d29yZHMnLiIpCiAKIChkZWZ2YXIgc3FsLW1vZGUtbXlzcWwtZm9udC1s b2NrLWtleXdvcmRzCi0gIChsZXQgKChteXNxbC1mdW5jcyAoc3FsLWtleXdv cmRzLXJlCisgIChldmFsLXdoZW4tY29tcGlsZQorICAgIChsaXN0CisgICAg IDs7IE15U1FMIEZ1bmN0aW9ucworICAgICAoc3FsLWZvbnQtbG9jay1rZXl3 b3Jkcy1idWlsZGVyICdmb250LWxvY2stYnVpbHRpbi1mYWNlIG5pbAogImFz Y2lpIiAiYXZnIiAiYmRtcG9seWZyb210ZXh0IiAiYmRtcG9seWZyb213a2Ii ICJiZHBvbHlmcm9tdGV4dCIKICJiZHBvbHlmcm9td2tiIiAiYmVuY2htYXJr IiAiYmluIiAiYml0X2FuZCIgImJpdF9sZW5ndGgiICJiaXRfb3IiCiAiYml0 X3hvciIgImJvdGgiICJjYXN0IiAiY2hhcl9sZW5ndGgiICJjaGFyYWN0ZXJf bGVuZ3RoIiAiY29hbGVzY2UiCkBAIC0xNTQ4LDkgKzE4NTEsMTAgQEAKICJy ZWxlYXNlX2xvY2siICJyZXBlYXQiICJyZXBsYWNlIiAicmV2ZXJzZSIgInJw YWQiICJydHJpbSIgInNvdW5kZXgiCiAic3BhY2UiICJzdGQiICJzdGRkZXYi ICJzdWJzdHJpbmciICJzdWJzdHJpbmdfaW5kZXgiICJzdW0iICJzeXNkYXRl IgogInRyYWlsaW5nIiAidHJpbSIgInVjYXNlIiAidW5peF90aW1lc3RhbXAi ICJ1cHBlciIgInVzZXIiICJ2YXJpYW5jZSIKLSkpCispCiAKLQkobXlzcWwt a2V5d29yZHMgKHNxbC1rZXl3b3Jkcy1yZQorICAgICA7OyBNeVNRTCBLZXl3 b3JkcworICAgICAoc3FsLWZvbnQtbG9jay1rZXl3b3Jkcy1idWlsZGVyICdm b250LWxvY2sta2V5d29yZC1mYWNlIG5pbAogImFjdGlvbiIgImFkZCIgImFm dGVyIiAiYWdhaW5zdCIgImFsbCIgImFsdGVyIiAiYW5kIiAiYXMiICJhc2Mi CiAiYXV0b19pbmNyZW1lbnQiICJhdmdfcm93X2xlbmd0aCIgImJkYiIgImJl dHdlZW4iICJieSIgImNhc2NhZGUiCiAiY2FzZSIgImNoYW5nZSIgImNoYXJh Y3RlciIgImNoZWNrIiAiY2hlY2tzdW0iICJjbG9zZSIgImNvbGxhdGUiCkBA IC0xNTc2LDkgKzE4ODAsMTAgQEAKICJ0aGVuIiAidG8iICJ0cmFuc2FjdGlv biIgInRydW5jYXRlIiAidHlwZSIgInVuY29tbWl0dGVkIiAidW5pb24iCiAi dW5pcXVlIiAidW5sb2NrIiAidXBkYXRlIiAidXNlIiAidXNpbmciICJ2YWx1 ZXMiICJ3aGVuIiAid2hlcmUiCiAid2l0aCIgIndyaXRlIiAieG9yIgotKSkK KykKIAotCShteXNxbC10eXBlcyAoc3FsLWtleXdvcmRzLXJlCisgICAgIDs7 IE15U1FMIERhdGEgVHlwZXMKKyAgICAgKHNxbC1mb250LWxvY2sta2V5d29y ZHMtYnVpbGRlciAnZm9udC1sb2NrLXR5cGUtZmFjZSBuaWwKICJiaWdpbnQi ICJiaW5hcnkiICJiaXQiICJibG9iIiAiYm9vbCIgImJvb2xlYW4iICJjaGFy IiAiY3VydmUiICJkYXRlIgogImRhdGV0aW1lIiAiZGVjIiAiZGVjaW1hbCIg ImRvdWJsZSIgImVudW0iICJmaXhlZCIgImZsb2F0IiAiZ2VvbWV0cnkiCiAi Z2VvbWV0cnljb2xsZWN0aW9uIiAiaW50IiAiaW50ZWdlciIgImxpbmUiICJs aW5lYXJyaW5nIiAibGluZXN0cmluZyIKQEAgLTE1OTAsMTYgKzE4OTUsMTIg QEAKICJ6ZXJvZmlsbCIKICkpKQogCi0gICAgYCgoLG15c3FsLWZ1bmNzICAg IC4gZm9udC1sb2NrLWJ1aWx0aW4tZmFjZSkKLSAgICAgICgsbXlzcWwta2V5 d29yZHMgLiBmb250LWxvY2sta2V5d29yZC1mYWNlKQotICAgICAgKCxteXNx bC10eXBlcyAgICAuIGZvbnQtbG9jay10eXBlLWZhY2UpKSkKLQogICAiTXlT UUwgU1FMIGtleXdvcmRzIHVzZWQgYnkgZm9udC1sb2NrLgogCiBUaGlzIHZh cmlhYmxlIGlzIHVzZWQgYnkgYHNxbC1tb2RlJyBhbmQgYHNxbC1pbnRlcmFj dGl2ZS1tb2RlJy4gIFRoZQogcmVndWxhciBleHByZXNzaW9ucyBhcmUgY3Jl YXRlZCBkdXJpbmcgY29tcGlsYXRpb24gYnkgY2FsbGluZyB0aGUKIGZ1bmN0 aW9uIGByZWdleHAtb3B0Jy4gIFRoZXJlZm9yZSwgdGFrZSBhIGxvb2sgYXQg dGhlIHNvdXJjZSBiZWZvcmUKLXlvdSBkZWZpbmUgeW91ciBvd24gc3FsLW1v ZGUtbXlzcWwtZm9udC1sb2NrLWtleXdvcmRzLiIpCit5b3UgZGVmaW5lIHlv dXIgb3duIGBzcWwtbW9kZS1teXNxbC1mb250LWxvY2sta2V5d29yZHMnLiIp CiAKIChkZWZ2YXIgc3FsLW1vZGUtc3FsaXRlLWZvbnQtbG9jay1rZXl3b3Jk cyBuaWwKICAgIlNRTGl0ZSBTUUwga2V5d29yZHMgdXNlZCBieSBmb250LWxv Y2suCkBAIC0xNjA3LDcgKzE5MDgsNyBAQAogVGhpcyB2YXJpYWJsZSBpcyB1 c2VkIGJ5IGBzcWwtbW9kZScgYW5kIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScu ICBUaGUKIHJlZ3VsYXIgZXhwcmVzc2lvbnMgYXJlIGNyZWF0ZWQgZHVyaW5n IGNvbXBpbGF0aW9uIGJ5IGNhbGxpbmcgdGhlCiBmdW5jdGlvbiBgcmVnZXhw LW9wdCcuICBUaGVyZWZvcmUsIHRha2UgYSBsb29rIGF0IHRoZSBzb3VyY2Ug YmVmb3JlCi15b3UgZGVmaW5lIHlvdXIgb3duIHNxbC1tb2RlLXNxbGl0ZS1m b250LWxvY2sta2V5d29yZHMuIikKK3lvdSBkZWZpbmUgeW91ciBvd24gYHNx bC1tb2RlLXNxbGl0ZS1mb250LWxvY2sta2V5d29yZHMnLiIpCiAKIChkZWZ2 YXIgc3FsLW1vZGUtZGIyLWZvbnQtbG9jay1rZXl3b3JkcyBuaWwKICAgIkRC MiBTUUwga2V5d29yZHMgdXNlZCBieSBmb250LWxvY2suCkBAIC0xNjE1LDU4 ICsxOTE2LDE0MSBAQAogVGhpcyB2YXJpYWJsZSBpcyB1c2VkIGJ5IGBzcWwt bW9kZScgYW5kIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuICBUaGUKIHJlZ3Vs YXIgZXhwcmVzc2lvbnMgYXJlIGNyZWF0ZWQgZHVyaW5nIGNvbXBpbGF0aW9u IGJ5IGNhbGxpbmcgdGhlCiBmdW5jdGlvbiBgcmVnZXhwLW9wdCcuICBUaGVy ZWZvcmUsIHRha2UgYSBsb29rIGF0IHRoZSBzb3VyY2UgYmVmb3JlCi15b3Ug ZGVmaW5lIHlvdXIgb3duIHNxbC1tb2RlLWRiMi1mb250LWxvY2sta2V5d29y ZHMuIikKK3lvdSBkZWZpbmUgeW91ciBvd24gYHNxbC1tb2RlLWRiMi1mb250 LWxvY2sta2V5d29yZHMnLiIpCiAKIChkZWZ2YXIgc3FsLW1vZGUtZm9udC1s b2NrLWtleXdvcmRzIG5pbAogICAiU1FMIGtleXdvcmRzIHVzZWQgYnkgZm9u dC1sb2NrLgogCiBTZXR0aW5nIHRoaXMgdmFyaWFibGUgZGlyZWN0bHkgbm8g bG9uZ2VyIGhhcyBhbnkgYWZmZWN0LiAgVXNlCiBgc3FsLXByb2R1Y3QnIGFu ZCBgc3FsLWFkZC1wcm9kdWN0LWtleXdvcmRzJyB0byBjb250cm9sIHRoZQot aGlnaGxpZ2h0aW5nIHJ1bGVzIGluIHNxbC1tb2RlLiIpCitoaWdobGlnaHRp bmcgcnVsZXMgaW4gYHNxbC1tb2RlJy4iKQogCiAMCiAKIDs7OyBTUUwgUHJv ZHVjdCBzdXBwb3J0IGZ1bmN0aW9ucwogCi0oZGVmdW4gc3FsLXByb2R1Y3Qt ZmVhdHVyZSAoZmVhdHVyZSAmb3B0aW9uYWwgcHJvZHVjdCkKLSAgIkxvb2t1 cCBgZmVhdHVyZScgbmVlZGVkIHRvIHN1cHBvcnQgdGhlIGN1cnJlbnQgU1FM IHByb2R1Y3QuCi0KLVNlZSBcW3NxbC1wcm9kdWN0LWFsaXN0XSBmb3IgYSBs aXN0IG9mIHByb2R1Y3RzIGFuZCBzdXBwb3J0ZWQgZmVhdHVyZXMuIgotICAo cGxpc3QtZ2V0Ci0gICAoY2RyIChhc3NvYyAob3IgcHJvZHVjdCBzcWwtcHJv ZHVjdCkKLQkgICAgICAgc3FsLXByb2R1Y3QtYWxpc3QpKQotICAgZmVhdHVy ZSkpCisoZGVmdW4gc3FsLWFkZC1wcm9kdWN0IChwcm9kdWN0IGRpc3BsYXkg JnJlc3QgcGxpc3QpCisgICJBZGQgc3VwcG9ydCBmb3IgYSBkYXRhYmFzZSBw cm9kdWN0IGluIGBzcWwtbW9kZScuCisKK0FkZCBQUk9EVUNUIHRvIGBzcWwt cHJvZHVjdC1hbGlzdCcgd2hpY2ggZW5hYmxlcyBgc3FsLW1vZGUnIHRvCitw cm9wZXJseSBzdXBwb3J0IHN5bnRheCBoaWdobGlnaHRpbmcgYW5kIGludGVy YWN0aXZlIGludGVyYWN0aW9uLgorRElTUExBWSBpcyB0aGUgbmFtZSBvZiB0 aGUgU1FMIHByb2R1Y3QgdGhhdCB3aWxsIGFwcGVhciBpbiB0aGUKK21lbnUg YmFyIGFuZCBpbiBtZXNzYWdlcy4gIFBMSVNUIGluaXRpYWxpemVzIHRoZSBw cm9kdWN0Citjb25maWd1cmF0aW9uLiIKKworICA7OyBEb24ndCBkbyBhbnl0 aGluZyBpZiB0aGUgcHJvZHVjdCBpcyBhbHJlYWR5IHN1cHBvcnRlZAorICAo aWYgKGFzc29jIHByb2R1Y3Qgc3FsLXByb2R1Y3QtYWxpc3QpCisgICAgICAo bWVzc2FnZSAiUHJvZHVjdCBgJXMnIGlzIGFscmVhZHkgZGVmaW5lZCIgcHJv ZHVjdCkKKworICAgIDs7IEFkZCBwcm9kdWN0IHRvIHRoZSBhbGlzdAorICAg IChhZGQtdG8tbGlzdCAnc3FsLXByb2R1Y3QtYWxpc3QgYCgoLHByb2R1Y3Qg OmRpc3BsYXkgLGRpc3BsYXkgLiAscGxpc3QpKSkKKyAgICA7OyBBZGQgYSBt ZW51IGl0ZW0gdG8gdGhlIFNRTC0+UHJvZHVjdCBtZW51CisgICAgKGVhc3kt bWVudS1hZGQtaXRlbSBzcWwtbW9kZS1tZW51ICcoIlByb2R1Y3QiKQorCQkJ OzsgRWFjaCBwcm9kdWN0IGlzIHJlcHJlc2VudGVkIGJ5IGEgcmFkaW8KKwkJ CTs7IGJ1dHRvbiB3aXRoIGl0J3MgZGlzcGxheSBuYW1lLgorCQkJYFssZGlz cGxheQorCQkJICAobGFtYmRhICgpIChpbnRlcmFjdGl2ZSkgKHNxbC1zZXQt cHJvZHVjdCAnLHByb2R1Y3QpKQorCQkJIDpzdHlsZSByYWRpbworCQkJIDpz ZWxlY3RlZCAoZXEgc3FsLXByb2R1Y3QgJyxwcm9kdWN0KV0KKwkJCTs7IE1h aW50YWluIHRoZSBwcm9kdWN0IGxpc3QgaW4KKwkJCTs7IChjYXNlLWluc2Vu c2l0aXZlKSBhbHBoYWJldGljIG9yZGVyIG9mIHRoZQorCQkJOzsgZGlzcGxh eSBuYW1lcy4gIExvb3AgdGhydSBlYWNoIGtleW1hcCBpdGVtCisJCQk7OyBs b29raW5nIGZvciBhbiBpdGVtIHdob3NlIGRpc3BsYXkgbmFtZSBpcworCQkJ OzsgYWZ0ZXIgdGhpcyBwcm9kdWN0J3MgbmFtZS4KKwkJCShsZXQgKChuZXh0 LWl0ZW0pCisJCQkgICAgICAoZG93bi1kaXNwbGF5IChkb3duY2FzZSBkaXNw bGF5KSkpCisJCQkgIChtYXAta2V5bWFwIChsYW1iZGEgKGsgYikKKwkJCQkJ KHdoZW4gKGFuZCAobm90IG5leHQtaXRlbSkKKwkJCQkJCSAgIChzdHJpbmct bGVzc3AgZG93bi1kaXNwbGF5CisJCQkJCQkJCSAoZG93bmNhc2UgKGNhZHIg YikpKSkKKwkJCQkJICAoc2V0cSBuZXh0LWl0ZW0gaykpKQorCQkJCSAgICAg IChlYXN5LW1lbnUtZ2V0LW1hcCBzcWwtbW9kZS1tZW51ICcoIlByb2R1Y3Qi KSkpCisJCQkgIG5leHQtaXRlbSkpCisgICAgcHJvZHVjdCkpCisKKyhkZWZ1 biBzcWwtZGVsLXByb2R1Y3QgKHByb2R1Y3QpCisgICJSZW1vdmUgc3VwcG9y dCBmb3IgUFJPRFVDVCBpbiBgc3FsLW1vZGUnLiIKKworICA7OyBSZW1vdmUg dGhlIG1lbnUgaXRlbSBiYXNlZCBvbiB0aGUgZGlzcGxheSBuYW1lCisgIChl YXN5LW1lbnUtcmVtb3ZlLWl0ZW0gc3FsLW1vZGUtbWVudSAnKCJQcm9kdWN0 IikgKHNxbC1nZXQtcHJvZHVjdC1mZWF0dXJlIHByb2R1Y3QgOmRpc3BsYXkp KQorICA7OyBSZW1vdmUgdGhlIHByb2R1Y3QgYWxpc3QgaXRlbQorICAoc2V0 cSBzcWwtcHJvZHVjdC1hbGlzdCAoYXNzcS1kZWxldGUtYWxsIHByb2R1Y3Qg c3FsLXByb2R1Y3QtYWxpc3QpKQorICBuaWwpCisKKyhkZWZ1biBzcWwtc2V0 LXByb2R1Y3QtZmVhdHVyZSAocHJvZHVjdCBmZWF0dXJlIG5ld3ZhbHVlKQor ICAiU2V0IEZFQVRVUkUgb2YgZGF0YWJhc2UgUFJPRFVDVCB0byBORVdWQUxV RS4KKworVGhlIFBST0RVQ1QgbXVzdCBiZSBhIHN5bWJvbCB3aGljaCBpZGVu dGlmaWVzIHRoZSBkYXRhYmFzZQorcHJvZHVjdC4gIFRoZSBwcm9kdWN0IG11 c3QgaGF2ZSBhbHJlYWR5IGV4aXN0IG9uIHRoZSBwcm9kdWN0CitsaXN0LiAg U2VlIGBzcWwtYWRkLXByb2R1Y3QnIHRvIGFkZCBuZXcgcHJvZHVjdHMuICBU aGUgRkVBVFVSRQorYXJndW1lbnQgbXVzdCBiZSBhIHBsaXN0IGtleXdvcmQg YWNjZXB0ZWQgYnkKK2BzcWwtcHJvZHVjdC1hbGlzdCcuIgorCisgIChsZXQg KChwIChhc3NvYyBwcm9kdWN0IHNxbC1wcm9kdWN0LWFsaXN0KSkpCisgICAg KGlmIHAKKwkoc2V0Y2RyIHAgKHBsaXN0LXB1dCAoY2RyIHApIGZlYXR1cmUg bmV3dmFsdWUpKQorICAgICAgKG1lc3NhZ2UgImAlcycgaXMgbm90IGEga25v d24gcHJvZHVjdDsgdXNlIGBzcWwtYWRkLXByb2R1Y3QnIHRvIGFkZCBpdCBm aXJzdC4iIHByb2R1Y3QpKSkpCisKKyhkZWZ1biBzcWwtZ2V0LXByb2R1Y3Qt ZmVhdHVyZSAocHJvZHVjdCBmZWF0dXJlICZvcHRpb25hbCBmYWxsYmFjaykK KyAgIkxvb2t1cCBGRUFUVVJFIGFzc29jaWF0ZWQgd2l0aCBhIFNRTCBQUk9E VUNULgorCitJZiB0aGUgRkVBVFVSRSBpcyBuaWwgZm9yIFBST0RVQ1QsIGFu ZCBGQUxMQkFDSyBpcyBzcGVjaWZpZWQsCit0aGVuIHRoZSBGRUFUVVJFIGFz c29jaWF0ZWQgd2l0aCB0aGUgRkFMTEJBQ0sgcHJvZHVjdCBpcworcmV0dXJu ZWQuCisKK1NlZSBgc3FsLXByb2R1Y3QtYWxpc3QnIGZvciBhIGxpc3Qgb2Yg cHJvZHVjdHMgYW5kIHN1cHBvcnRlZCBmZWF0dXJlcy4iCisgIChsZXQgKHYp CisgICAgOzsgTG9va3VwIGZlYXR1cmUgZm9yIHByb2R1Y3QKKyAgICAoc2V0 cSB2IChwbGlzdC1nZXQKKwkgICAgIChjZHIgKGFzc29jIHByb2R1Y3Qgc3Fs LXByb2R1Y3QtYWxpc3QpKQorCSAgICAgZmVhdHVyZSkpCisKKyAgICA7OyBJ ZiBubyB2YWx1ZSBhbmQgZmFsbGJhY2ssIGxvb2t1cCBmZWF0dXJlIGZvciBm YWxsYmFjaworICAgIChpZiAoYW5kIChub3QgdikKKwkgICAgIGZhbGxiYWNr CisJICAgICAobm90IChlcSBwcm9kdWN0IGZhbGxiYWNrKSkpCisJKHNldHEg diAocGxpc3QtZ2V0CisJCSAoY2RyIChhc3NvYyBmYWxsYmFjayBzcWwtcHJv ZHVjdC1hbGlzdCkpCisJCSBmZWF0dXJlKSkpCisKKyAgICA7OyBSZXR1cm4g dGhlIHZhbHVlCisgICAgdikpCiAKIChkZWZ1biBzcWwtcHJvZHVjdC1mb250 LWxvY2sgKGtleXdvcmRzLW9ubHkgaW1lbnUpCi0gICJTZXRzIGBmb250LWxv Y2stZGVmYXVsdHMnIGFuZCBgZm9udC1sb2NrLWtleXdvcmRzJyBiYXNlZCBv bgotdGhlIHByb2R1Y3Qtc3BlY2lmaWMga2V5d29yZHMgYW5kIHN5bnRheC1h bGlzdHMgZGVmaW5lZCBpbgotYHNxbC1wcm9kdWN0LWFsaXN0Jy4iCisgICJD b25maWd1cmVzIGZvbnQtbG9jayBhbmQgaW1lbnUgd2l0aCBwcm9kdWN0LXNw ZWNpZmljIHNldHRpbmdzLgorCitUaGUgS0VZV09SRFMtT05MWSBmbGFnIGlz IHBhc3NlZCB0byBmb250LWxvY2sgdG8gc3BlY2lmeSB3aGV0aGVyCitvbmx5 IGtleXdvcmRzIHNob3VsZCBiZSBoaWxpZ2h0ZWQgYW5kIHN5bnRhY3RpYyBo aWxpZ2h0aW5nCitza2lwcGVkLiAgVGhlIElNRU5VIGZsYWcgaW5kaWNhdGVz IHdoZXRoZXIgYGltZW51LW1vZGUnIHNob3VsZAorYWxzbyBiZSBjb25maWd1 cmVkLiIKKwogICAobGV0CiAgICAgICA7OyBHZXQgdGhlIHByb2R1Y3Qtc3Bl Y2lmaWMgc3ludGF4LWFsaXN0LgogICAgICAgKChzeW50YXgtYWxpc3QKIAko YXBwZW5kCi0JIChzcWwtcHJvZHVjdC1mZWF0dXJlIDpzeW50YXgtYWxpc3Qp CisJIChzcWwtZ2V0LXByb2R1Y3QtZmVhdHVyZSBzcWwtcHJvZHVjdCA6c3lu dGF4LWFsaXN0KQogCSAnKCg/XyAuICJ3IikgKD8uIC4gInciKSkpKSkKIAog ICAgIDs7IEdldCB0aGUgcHJvZHVjdC1zcGVjaWZpYyBrZXl3b3Jkcy4KICAg ICAoc2V0cSBzcWwtbW9kZS1mb250LWxvY2sta2V5d29yZHMKIAkgIChhcHBl bmQKIAkgICAodW5sZXNzIChlcSBzcWwtcHJvZHVjdCAnYW5zaSkKLQkgICAg IChldmFsIChzcWwtcHJvZHVjdC1mZWF0dXJlIDpmb250LWxvY2spKSkKKwkg ICAgIChzeW1ib2wtdmFsdWUgKHNxbC1nZXQtcHJvZHVjdC1mZWF0dXJlIHNx bC1wcm9kdWN0IDpmb250LWxvY2spKSkKIAkgICA7OyBBbHdheXMgaGlnaGxp Z2h0IEFOU0kga2V5d29yZHMKLQkgICAoZXZhbCAoc3FsLXByb2R1Y3QtZmVh dHVyZSA6Zm9udC1sb2NrICdhbnNpKSkKKwkgICAoc3ltYm9sLXZhbHVlIChz cWwtZ2V0LXByb2R1Y3QtZmVhdHVyZSAnYW5zaSA6Zm9udC1sb2NrKSkKIAkg ICA7OyBGb250aWZ5IG9iamVjdCBuYW1lcyBpbiBDUkVBVEUsIERST1AgYW5k IEFMVEVSIERETAogCSAgIDs7IHN0YXRlbWVudHMKIAkgICAobGlzdCBzcWwt bW9kZS1mb250LWxvY2stb2JqZWN0LW5hbWUpKSkKIAogICAgIDs7IFNldHVw IGZvbnQtbG9jay4gIEZvcmNlIHJlLXBhcnNpbmcgb2YgYGZvbnQtbG9jay1k ZWZhdWx0cycuCi0gICAgKHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAnZm9u dC1sb2NrLXNldC1kZWZhdWx0cykgbmlsKQorICAgIChraWxsLWxvY2FsLXZh cmlhYmxlICdmb250LWxvY2stc2V0LWRlZmF1bHRzKQogICAgIChzZXRxIGZv bnQtbG9jay1kZWZhdWx0cyAobGlzdCAnc3FsLW1vZGUtZm9udC1sb2NrLWtl eXdvcmRzCiAJCQkJICAga2V5d29yZHMtb25seSB0IHN5bnRheC1hbGlzdCkp CiAKICAgICA7OyBGb3JjZSBmb250IGxvY2sgdG8gcmVpbml0aWFsaXplIGlm IGl0IGlzIGFscmVhZHkgb24KICAgICA7OyBPdGhlcndpc2UsIHdlIGNhbiB3 YWl0IHVudGlsIGl0IGNhbiBiZSBzdGFydGVkLgogICAgICh3aGVuIChhbmQg KGZib3VuZHAgJ2ZvbnQtbG9jay1tb2RlKQorCSAgICAgICAoYm91bmRwICdm b250LWxvY2stbW9kZSkKIAkgICAgICAgZm9udC1sb2NrLW1vZGUpCiAgICAg ICAoZm9udC1sb2NrLW1vZGUtaW50ZXJuYWwgbmlsKQogICAgICAgKGZvbnQt bG9jay1tb2RlLWludGVybmFsIHQpKQpAQCAtMTY4Myw3ICsyMDY3LDcgQEAK IAogICAgIDs7IFNldHVwIGltZW51OyBpdCBuZWVkcyB0aGUgc2FtZSBzeW50 YXgtYWxpc3QuCiAgICAgKHdoZW4gaW1lbnUKLQkoc2V0cSBpbWVudS1zeW50 YXgtYWxpc3Qgc3ludGF4LWFsaXN0KSkpKQorICAgICAgKHNldHEgaW1lbnUt c3ludGF4LWFsaXN0IHN5bnRheC1hbGlzdCkpKSkKIAogOzs7IyMjYXV0b2xv YWQKIChkZWZ1biBzcWwtYWRkLXByb2R1Y3Qta2V5d29yZHMgKHByb2R1Y3Qg a2V5d29yZHMgJm9wdGlvbmFsIGFwcGVuZCkKQEAgLTE3MDUsNyArMjA4OSw3 IEBACiBhZGRzIGEgZm9udGlmaWNhdGlvbiBwYXR0ZXJuIHRvIGZvbnRpZnkg aWRlbnRpZmllcnMgZW5kaW5nIGluCiBgX3QnIGFzIGRhdGEgdHlwZXMuIgog Ci0gIChsZXQgKChmb250LWxvY2sgKHNxbC1wcm9kdWN0LWZlYXR1cmUgOmZv bnQtbG9jayBwcm9kdWN0KSkKKyAgKGxldCAoKGZvbnQtbG9jayAoc3FsLWdl dC1wcm9kdWN0LWZlYXR1cmUgcHJvZHVjdCA6Zm9udC1sb2NrKSkKIAlvbGQp CiAgICAgKHNldHEgb2xkIChldmFsIGZvbnQtbG9jaykpCiAgICAgKHNldCBm b250LWxvY2sKQEAgLTE3MjcsNyArMjExMSw4IEBACiAgICAgKHNxbC1wcm9k dWN0LWZvbnQtbG9jayBuaWwgdCkKIAogICAgIDs7IFNldCB0aGUgbW9kZSBu YW1lIHRvIGluY2x1ZGUgdGhlIHByb2R1Y3QuCi0gICAgKHNldHEgbW9kZS1u YW1lIChjb25jYXQgIlNRTFsiIChwcmluMS10by1zdHJpbmcgc3FsLXByb2R1 Y3QpICJdIikpKSkKKyAgICAoc2V0cSBtb2RlLW5hbWUgKGNvbmNhdCAiU1FM WyIgKG9yIChzcWwtZ2V0LXByb2R1Y3QtZmVhdHVyZSBzcWwtcHJvZHVjdCA6 ZGlzcGxheSkKKwkJCQkgICAgICAgKHByaW4xLXRvLXN0cmluZyBzcWwtcHJv ZHVjdCkpICJdIikpKSkKIAogKGRlZnVuIHNxbC1zZXQtcHJvZHVjdCAocHJv ZHVjdCkKICAgIlNldCBgc3FsLXByb2R1Y3QnIHRvIHByb2R1Y3QgYW5kIGVu YWJsZSBhcHByb3ByaWF0ZQpAQCAtMTc4OCw2ICsyMTczLDMwIEBACiAgICAg KG5ld2xpbmUpKQogICAoaW5kZW50LWFjY29yZGluZy10by1tb2RlKSkKIAor KGRlZnVuIHNxbC1oZWxwLWxpc3QtcHJvZHVjdHMgKGluZGVudCBmcmVlcCkK KyAgIkdlbmVyYXRlIGxpc3Rpbmcgb2YgcHJvZHVjdHMgYXZhaWxhYmxlIGZv ciB1c2UgdW5kZXIgU1FMaS4KKworTGlzdCBwcm9kdWN0cyB3aXRoIDpmcmVl LXNvZnRhcmUgYXR0cmlidXRlIHNldCB0byBGUkVFUC4gIEluZGVudAorZWFj aCBsaW5lIHdpdGggSU5ERU5ULiIKKworICAobGV0IChzcWxpLWZ1bmMgZG9j KQorICAgIChzZXRxIGRvYyAiIikKKyAgICAoZG9saXN0IChwIHNxbC1wcm9k dWN0LWFsaXN0KQorICAgICAgKHNldHEgc3FsaS1mdW5jIChpbnRlcm4gKGNv bmNhdCAic3FsLSIgKHN5bWJvbC1uYW1lIChjYXIgcCkpKSkpCisKKyAgICAg IChpZiAoYW5kIChmYm91bmRwIHNxbGktZnVuYykKKwkgICAgICAgKGVxIChz cWwtZ2V0LXByb2R1Y3QtZmVhdHVyZSAoY2FyIHApIDpmcmVlLXNvZnR3YXJl KSBmcmVlcCkpCisJKHNldHEgZG9jCisJICAgICAgKGNvbmNhdCBkb2MKKwkJ ICAgICAgaW5kZW50CisJCSAgICAgIChvciAoc3FsLWdldC1wcm9kdWN0LWZl YXR1cmUgKGNhciBwKSA6ZGlzcGxheSkKKwkJCSAgKHN5bWJvbC1uYW1lIChj YXIgcCkpKQorCQkgICAgICAiOlx0IgorCQkgICAgICAiXFxbIgorCQkgICAg ICAoc3ltYm9sLW5hbWUgc3FsaS1mdW5jKQorCQkgICAgICAiXVxuIikpKSkK KyAgICBkb2MpKQorCiA7OzsjIyNhdXRvbG9hZAogKGRlZnVuIHNxbC1oZWxw ICgpCiAgICJTaG93IHNob3J0IGhlbHAgZm9yIHRoZSBTUUwgbW9kZXMuCkBA IC0xNzk3LDI0ICsyMjA2LDE3IEBACiAKIFVzZSB0aGUgZm9sbG93aW5nIGNv bW1hbmRzIHRvIHN0YXJ0IGEgc3BlY2lmaWMgU1FMIGludGVycHJldGVyOgog Ci0gICAgUG9zdEdyZXM6IFxcW3NxbC1wb3N0Z3Jlc10KLSAgICBNeVNRTDog XFxbc3FsLW15c3FsXQotICAgIFNRTGl0ZTogXFxbc3FsLXNxbGl0ZV0KKyAg ICBcXFxcRlJFRQogCiBPdGhlciBub24tZnJlZSBTUUwgaW1wbGVtZW50YXRp b25zIGFyZSBhbHNvIHN1cHBvcnRlZDoKIAotICAgIFNvbGlkOiBcXFtzcWwt c29saWRdCi0gICAgT3JhY2xlOiBcXFtzcWwtb3JhY2xlXQotICAgIEluZm9y bWl4OiBcXFtzcWwtaW5mb3JtaXhdCi0gICAgU3liYXNlOiBcXFtzcWwtc3li YXNlXQotICAgIEluZ3JlczogXFxbc3FsLWluZ3Jlc10KLSAgICBNaWNyb3Nv ZnQ6IFxcW3NxbC1tc10KLSAgICBEQjI6IFxcW3NxbC1kYjJdCi0gICAgSW50 ZXJiYXNlOiBcXFtzcWwtaW50ZXJiYXNlXQotICAgIExpbnRlcjogXFxbc3Fs LWxpbnRlcl0KKyAgICBcXFxcTk9ORlJFRQogCiBCdXQgd2UgdXJnZSB5b3Ug dG8gY2hvb3NlIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBpbnN0ZWFkIG9mIHRo ZXNlLgogCitZb3UgY2FuIGFsc28gdXNlIFxcW3NxbC1wcm9kdWN0LWludGVy YWN0aXZlXSB0byBpbnZva2UgdGhlCitpbnRlcnByZXRlciBmb3IgdGhlIGN1 cnJlbnQgYHNxbC1wcm9kdWN0Jy4KKwogT25jZSB5b3UgaGF2ZSB0aGUgU1FM aSBidWZmZXIsIHlvdSBjYW4gZW50ZXIgU1FMIHN0YXRlbWVudHMgaW4gdGhl CiBidWZmZXIuICBUaGUgb3V0cHV0IGdlbmVyYXRlZCBpcyBhcHBlbmRlZCB0 byB0aGUgYnVmZmVyIGFuZCBhIG5ldyBwcm9tcHQKIGlzIGdlbmVyYXRlZC4g IFNlZSB0aGUgSW4vT3V0IG1lbnUgaW4gdGhlIFNRTGkgYnVmZmVyIGZvciBz b21lIGZ1bmN0aW9ucwpAQCAtMTgyOSw2ICsyMjMxLDMwIEBACiBidWZmZXIg dG8gdGhlIGludGVyYWN0aXZlIFNRTCBidWZmZXIgKFNRTGkgbW9kZSkuICBU aGUgcmVzdWx0cyBhcmUKIGFwcGVuZGVkIHRvIHRoZSBTUUxpIGJ1ZmZlciB3 aXRob3V0IGRpc3R1cmJpbmcgeW91ciBTUUwgYnVmZmVyLiIKICAgKGludGVy YWN0aXZlKQorCisgIDs7IEluc2VydCByZWZlcmVuY2VzIHRvIGxvYWRlZCBw cm9kdWN0cyBpbnRvIHRoZSBoZWxwIGJ1ZmZlciBzdHJpbmcKKyAgKGxldCAo KGRvYyAoZG9jdW1lbnRhdGlvbiAnc3FsLWhlbHAgdCkpCisJY2hhbmdlZHAp CisgICAgKHNldHEgY2hhbmdlZHAgbmlsKQorCisgICAgOzsgSW5zZXJ0IEZS RUUgc29mdHdhcmUgbGlzdAorICAgICh3aGVuIChzdHJpbmctbWF0Y2ggIl5c XChcXHMtKlxcKVtcXFxcXVtcXFxcXUZSRUVcXHMtKlxuIiBkb2MgMCkKKyAg ICAgIChzZXRxIGRvYyAocmVwbGFjZS1tYXRjaCAoc3FsLWhlbHAtbGlzdC1w cm9kdWN0cyAobWF0Y2gtc3RyaW5nIDEgZG9jKSB0KQorCQkJICAgICAgIHQg dCBkb2MgMCkKKwkgICAgY2hhbmdlZHAgdCkpCisKKyAgICA7OyBJbnNlcnQg bm9uLUZSRUUgc29mdHdhcmUgbGlzdAorICAgICh3aGVuIChzdHJpbmctbWF0 Y2ggIl5cXChcXHMtKlxcKVtcXFxcXVtcXFxcXU5PTkZSRUVcXHMtKlxuIiBk b2MgMCkKKyAgICAgIChzZXRxIGRvYyAocmVwbGFjZS1tYXRjaCAoc3FsLWhl bHAtbGlzdC1wcm9kdWN0cyAobWF0Y2gtc3RyaW5nIDEgZG9jKSBuaWwpCisJ CQkgICAgICAgdCB0IGRvYyAwKQorCSAgICBjaGFuZ2VkcCB0KSkKKworICAg IDs7IElmIHdlIGNoYW5nZWQgdGhlIGhlbHAgdGV4dCwgc2F2ZSB0aGUgY2hh bmdlIHNvIHRoYXQgdGhlIGhlbHAKKyAgICA7OyBzdWItc3lzdGVtIHdpbGwg c2VlIGl0CisgICAgKHdoZW4gY2hhbmdlZHAKKyAgICAgIChwdXQgJ3NxbC1o ZWxwICdmdW5jdGlvbi1kb2N1bWVudGF0aW9uIGRvYykpKQorCisgIDs7IENh bGwgaGVscCBvbiB0aGlzIGZ1bmN0aW9uCiAgIChkZXNjcmliZS1mdW5jdGlv biAnc3FsLWhlbHApKQogCiAoZGVmdW4gc3FsLXJlYWQtcGFzc3dkIChwcm9t cHQgJm9wdGlvbmFsIGRlZmF1bHQpCkBAIC0xODQ0LDEyICsyMjcwLDEzIEBA CiBgc3FsLXNlcnZlci1oaXN0b3J5JyBhbmQgYGRhdGFiYXNlLWhpc3Rvcnkn LiAgUGFzc3dvcmRzIGFyZSBub3Qgc3RvcmVkCiBpbiBhIGhpc3RvcnkuCiAK LVBhcmFtZXRlciBXSEFUIGlzIGEgbGlzdCBvZiB0aGUgYXJndW1lbnRzIHBh c3NlZCB0byB0aGlzIGZ1bmN0aW9uLgotVGhlIGZ1bmN0aW9uIGFza3MgZm9y IHRoZSB1c2VybmFtZSBpZiBXSEFUIGNvbnRhaW5zIHN5bWJvbCBgdXNlcics IGZvcgotdGhlIHBhc3N3b3JkIGlmIGl0IGNvbnRhaW5zIHN5bWJvbCBgcGFz c3dvcmQnLCBmb3IgdGhlIHNlcnZlciBpZiBpdAotY29udGFpbnMgc3ltYm9s IGBzZXJ2ZXInLCBhbmQgZm9yIHRoZSBkYXRhYmFzZSBpZiBpdCBjb250YWlu cyBzeW1ib2wKLWBkYXRhYmFzZScuICBUaGUgbWVtYmVycyBvZiBXSEFUIGFy ZSBwcm9jZXNzZWQgaW4gdGhlIG9yZGVyIGluIHdoaWNoCi10aGV5IGFyZSBw cm92aWRlZC4KK1BhcmFtZXRlciBXSEFUIGlzIGEgbGlzdCBvZiB0b2tlbnMg cGFzc2VkIGFzIGFyZ3VtZW50cyBpbiB0aGUKK2Z1bmN0aW9uIGNhbGwuICBU aGUgZnVuY3Rpb24gYXNrcyBmb3IgdGhlIHVzZXJuYW1lIGlmIFdIQVQKK2Nv bnRhaW5zIHRoZSBzeW1ib2wgYHVzZXInLCBmb3IgdGhlIHBhc3N3b3JkIGlm IGl0IGNvbnRhaW5zIHRoZQorc3ltYm9sIGBwYXNzd29yZCcsIGZvciB0aGUg c2VydmVyIGlmIGl0IGNvbnRhaW5zIHRoZSBzeW1ib2wKK2BzZXJ2ZXInLCBh bmQgZm9yIHRoZSBkYXRhYmFzZSBpZiBpdCBjb250YWlucyB0aGUgc3ltYm9s CitgZGF0YWJhc2UnLiAgVGhlIG1lbWJlcnMgb2YgV0hBVCBhcmUgcHJvY2Vz c2VkIGluIHRoZSBvcmRlciBpbgord2hpY2ggdGhleSBhcmUgcHJvdmlkZWQu CiAKIEluIG9yZGVyIHRvIGFzayB0aGUgdXNlciBmb3IgdXNlcm5hbWUsIHBh c3N3b3JkIGFuZCBkYXRhYmFzZSwgY2FsbCB0aGUKIGZ1bmN0aW9uIGxpa2Ug dGhpczogKHNxbC1nZXQtbG9naW4gJ3VzZXIgJ3Bhc3N3b3JkICdkYXRhYmFz ZSkuIgpAQCAtMTg1OSwyNSArMjI4NiwzMCBAQAogICAgICAoKGVxIChjYXIg d2hhdCkgJ3VzZXIpCQk7IHVzZXIKICAgICAgIChzZXRxIHNxbC11c2VyCiAJ ICAgIChyZWFkLWZyb20tbWluaWJ1ZmZlciAiVXNlcjogIiBzcWwtdXNlciBu aWwgbmlsCi0JCQkJICBzcWwtdXNlci1oaXN0b3J5KSkpCisJCQkJICAnc3Fs LXVzZXItaGlzdG9yeSkpKQogICAgICAoKGVxIChjYXIgd2hhdCkgJ3Bhc3N3 b3JkKQkJOyBwYXNzd29yZAogICAgICAgKHNldHEgc3FsLXBhc3N3b3JkCiAJ ICAgIChzcWwtcmVhZC1wYXNzd2QgIlBhc3N3b3JkOiAiIHNxbC1wYXNzd29y ZCkpKQorCiAgICAgICgoZXEgKGNhciB3aGF0KSAnc2VydmVyKQkJOyBzZXJ2 ZXIKICAgICAgIChzZXRxIHNxbC1zZXJ2ZXIKIAkgICAgKHJlYWQtZnJvbS1t aW5pYnVmZmVyICJTZXJ2ZXI6ICIgc3FsLXNlcnZlciBuaWwgbmlsCi0JCQkJ ICBzcWwtc2VydmVyLWhpc3RvcnkpKSkKKwkJCQkgICdzcWwtc2VydmVyLWhp c3RvcnkpKSkKKyAgICAgKChlcSAoY2FyIHdoYXQpICdwb3J0KQkJOyBwb3J0 CisgICAgICAoc2V0cSBzcWwtcG9ydAorCSAgICAocmVhZC1mcm9tLW1pbmli dWZmZXIgIlBvcnQ6ICIgc3FsLXBvcnQgbmlsIG5pbAorCQkJCSAgJ3NxbC1w b3J0LWhpc3RvcnkpKSkKICAgICAgKChlcSAoY2FyIHdoYXQpICdkYXRhYmFz ZSkJCTsgZGF0YWJhc2UKICAgICAgIChzZXRxIHNxbC1kYXRhYmFzZQogCSAg ICAocmVhZC1mcm9tLW1pbmlidWZmZXIgIkRhdGFiYXNlOiAiIHNxbC1kYXRh YmFzZSBuaWwgbmlsCi0JCQkJICBzcWwtZGF0YWJhc2UtaGlzdG9yeSkpKSkK KwkJCQkgICdzcWwtZGF0YWJhc2UtaGlzdG9yeSkpKSkKICAgICAoc2V0cSB3 aGF0IChjZHIgd2hhdCkpKSkKIAogKGRlZnVuIHNxbC1maW5kLXNxbGktYnVm ZmVyICgpCiAgICJSZXR1cm4gdGhlIGN1cnJlbnQgZGVmYXVsdCBTUUxpIGJ1 ZmZlciBvciBuaWwuCiBJbiBvcmRlciB0byBxdWFsaWZ5LCB0aGUgU1FMaSBi dWZmZXIgbXVzdCBiZSBhbGl2ZSwKIGJlIGluIGBzcWwtaW50ZXJhY3RpdmUt bW9kZScgYW5kIGhhdmUgYSBwcm9jZXNzLiIKLSAgKGxldCAoKGRlZmF1bHQt YnVmZmVyIChkZWZhdWx0LXZhbHVlICdzcWwtYnVmZmVyKSkpCisgIChsZXQg KChkZWZhdWx0LWJ1ZmZlciAoZGVmYXVsdC12YWx1ZSAnc3FsaS1idWZmZXIp KSkKICAgICAoaWYgKGFuZCAoYnVmZmVyLWxpdmUtcCBkZWZhdWx0LWJ1ZmZl cikKIAkgICAgIChnZXQtYnVmZmVyLXByb2Nlc3MgZGVmYXVsdC1idWZmZXIp KQogCWRlZmF1bHQtYnVmZmVyCkBAIC0xODk5LDIwICsyMzMxLDIwIEBACiBU aGlzIGZ1bmN0aW9uIGNoZWNrcyBhbGwgU1FMIGJ1ZmZlcnMgZm9yIHRoZWly IFNRTGkgYnVmZmVyLiAgSWYgdGhlaXIKIFNRTGkgYnVmZmVyIGlzIG5vbmV4 aXN0ZW50IG9yIGhhcyBubyBwcm9jZXNzLCBpdCBpcyBzZXQgdG8gdGhlIGN1 cnJlbnQKIGRlZmF1bHQgU1FMaSBidWZmZXIuICBUaGUgY3VycmVudCBkZWZh dWx0IFNRTGkgYnVmZmVyIGlzIGRldGVybWluZWQKLXVzaW5nIGBzcWwtZmlu ZC1zcWxpLWJ1ZmZlcicuICBJZiBgc3FsLWJ1ZmZlcicgaXMgc2V0LAordXNp bmcgYHNxbC1maW5kLXNxbGktYnVmZmVyJy4gIElmIGBzcWxpLWJ1ZmZlcicg aXMgc2V0LAogYHNxbC1zZXQtc3FsaS1ob29rJyBpcyBydW4uIgogICAoaW50 ZXJhY3RpdmUpCiAgIChzYXZlLWV4Y3Vyc2lvbgogICAgIChsZXQgKChidWZs aXN0IChidWZmZXItbGlzdCkpCiAJICAoZGVmYXVsdC1zcWxpLWJ1ZmZlciAo c3FsLWZpbmQtc3FsaS1idWZmZXIpKSkKLSAgICAgIChzZXRxLWRlZmF1bHQg c3FsLWJ1ZmZlciBkZWZhdWx0LXNxbGktYnVmZmVyKQorICAgICAgKHNldHEt ZGVmYXVsdCBzcWxpLWJ1ZmZlciBkZWZhdWx0LXNxbGktYnVmZmVyKQogICAg ICAgKHdoaWxlIChub3QgKG51bGwgYnVmbGlzdCkpCiAJKGxldCAoKGNhbmRp ZGF0ZSAoY2FyIGJ1Zmxpc3QpKSkKIAkgIChzZXQtYnVmZmVyIGNhbmRpZGF0 ZSkKIAkgIChpZiAoYW5kIChkZXJpdmVkLW1vZGUtcCAnc3FsLW1vZGUpCi0J CSAgIChub3QgKGJ1ZmZlci1saXZlLXAgc3FsLWJ1ZmZlcikpKQorCQkgICAo bm90IChidWZmZXItbGl2ZS1wIHNxbGktYnVmZmVyKSkpCiAJICAgICAgKHBy b2duCi0JCShzZXRxIHNxbC1idWZmZXIgZGVmYXVsdC1zcWxpLWJ1ZmZlcikK KwkJKHNldHEgc3FsaS1idWZmZXIgZGVmYXVsdC1zcWxpLWJ1ZmZlcikKIAkJ KHJ1bi1ob29rcyAnc3FsLXNldC1zcWxpLWhvb2spKSkpCiAJKHNldHEgYnVm bGlzdCAoY2RyIGJ1Zmxpc3QpKSkpKSkKIApAQCAtMTkyMCwxNCArMjM1Miwx NCBAQAogICAiU2V0IHRoZSBTUUxpIGJ1ZmZlciBTUUwgc3RyaW5ncyBhcmUg c2VudCB0by4KIAogQ2FsbCB0aGlzIGZ1bmN0aW9uIGluIGEgU1FMIGJ1ZmZl ciBpbiBvcmRlciB0byBzZXQgdGhlIFNRTGkgYnVmZmVyIFNRTAotc3RyaW5n cyBhcmUgc2VudCB0by4gIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBzZXRzIGBz cWwtYnVmZmVyJyBhbmQgcnVucworc3RyaW5ncyBhcmUgc2VudCB0by4gIENh bGxpbmcgdGhpcyBmdW5jdGlvbiBzZXRzIGBzcWxpLWJ1ZmZlcicgYW5kIHJ1 bnMKIGBzcWwtc2V0LXNxbGktaG9vaycuCiAKIElmIHlvdSBjYWxsIGl0IGZy b20gYSBTUUwgYnVmZmVyLCB0aGlzIHNldHMgdGhlIGxvY2FsIGNvcHkgb2YK LWBzcWwtYnVmZmVyJy4KK2BzcWxpLWJ1ZmZlcicuCiAKIElmIHlvdSBjYWxs IGl0IGZyb20gYW55d2hlcmUgZWxzZSwgaXQgc2V0cyB0aGUgZ2xvYmFsIGNv cHkgb2YKLWBzcWwtYnVmZmVyJy4iCitgc3FsaS1idWZmZXInLiIKICAgKGlu dGVyYWN0aXZlKQogICAobGV0ICgoZGVmYXVsdC1idWZmZXIgKHNxbC1maW5k LXNxbGktYnVmZmVyKSkpCiAgICAgKGlmIChudWxsIGRlZmF1bHQtYnVmZmVy KQpAQCAtMTk0MiwyMCArMjM3NCwyMCBAQAogCSAgKGVycm9yICJCdWZmZXIg JXMgaXMgbm8gU1FMaSBidWZmZXIiIChidWZmZXItbmFtZSBuZXctYnVmZmVy KSkpCiAgICAgICAoaWYgbmV3LWJ1ZmZlcgogCSAgKHByb2duCi0JICAgIChz ZXRxIHNxbC1idWZmZXIgbmV3LWJ1ZmZlcikKKwkgICAgKHNldHEgc3FsaS1i dWZmZXIgbmV3LWJ1ZmZlcikKIAkgICAgKHJ1bi1ob29rcyAnc3FsLXNldC1z cWxpLWhvb2spKSkpKSkKIAogKGRlZnVuIHNxbC1zaG93LXNxbGktYnVmZmVy ICgpCiAgICJTaG93IHRoZSBuYW1lIG9mIGN1cnJlbnQgU1FMaSBidWZmZXIu CiAKIFRoaXMgaXMgdGhlIGJ1ZmZlciBTUUwgc3RyaW5ncyBhcmUgc2VudCB0 by4gIEl0IGlzIHN0b3JlZCBpbiB0aGUKLXZhcmlhYmxlIGBzcWwtYnVmZmVy Jy4gIFNlZSBgc3FsLWhlbHAnIG9uIGhvdyB0byBjcmVhdGUgc3VjaCBhIGJ1 ZmZlci4iCit2YXJpYWJsZSBgc3FsaS1idWZmZXInLiAgU2VlIGBzcWwtaGVs cCcgb24gaG93IHRvIGNyZWF0ZSBzdWNoIGEgYnVmZmVyLiIKICAgKGludGVy YWN0aXZlKQotICAoaWYgKG51bGwgKGJ1ZmZlci1saXZlLXAgc3FsLWJ1ZmZl cikpCisgIChpZiAobnVsbCAoYnVmZmVyLWxpdmUtcCBzcWxpLWJ1ZmZlcikp CiAgICAgICAobWVzc2FnZSAiJXMgaGFzIG5vIFNRTGkgYnVmZmVyIHNldC4i IChidWZmZXItbmFtZSAoY3VycmVudC1idWZmZXIpKSkKLSAgICAoaWYgKG51 bGwgKGdldC1idWZmZXItcHJvY2VzcyBzcWwtYnVmZmVyKSkKLQkobWVzc2Fn ZSAiQnVmZmVyICVzIGhhcyBubyBwcm9jZXNzLiIgKGJ1ZmZlci1uYW1lIHNx bC1idWZmZXIpKQotICAgICAgKG1lc3NhZ2UgIkN1cnJlbnQgU1FMaSBidWZm ZXIgaXMgJXMuIiAoYnVmZmVyLW5hbWUgc3FsLWJ1ZmZlcikpKSkpCisgICAg KGlmIChudWxsIChnZXQtYnVmZmVyLXByb2Nlc3Mgc3FsaS1idWZmZXIpKQor CShtZXNzYWdlICJCdWZmZXIgJXMgaGFzIG5vIHByb2Nlc3MuIiAoYnVmZmVy LW5hbWUgc3FsaS1idWZmZXIpKQorICAgICAgKG1lc3NhZ2UgIkN1cnJlbnQg U1FMaSBidWZmZXIgaXMgJXMuIiAoYnVmZmVyLW5hbWUgc3FsaS1idWZmZXIp KSkpKQogCiAoZGVmdW4gc3FsLW1ha2UtYWx0ZXJuYXRlLWJ1ZmZlci1uYW1l ICgpCiAgICJSZXR1cm4gYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCB0byBy ZW5hbWUgYSBTUUxpIGJ1ZmZlci4KQEAgLTE5ODQsNyArMjQxNiw3IEBACiAg IChpbnRlcmFjdGl2ZSkKICAgKGxldCAoKGNvbHVtbikpCiAgICAgKHNhdmUt ZXhjdXJzaW9uCi0gICAgICAoc2V0cSBjb2x1bW4gKGJ1ZmZlci1zdWJzdHJp bmcKKyAgICAgIChzZXRxIGNvbHVtbiAoYnVmZmVyLXN1YnN0cmluZy1uby1w cm9wZXJ0aWVzCiAJCSAgKHByb2duIChmb3J3YXJkLWNoYXIgMSkgKGJhY2t3 YXJkLXNleHAgMSkgKHBvaW50KSkKIAkJICAocHJvZ24gKGZvcndhcmQtc2V4 cCAxKSAocG9pbnQpKSkpCiAgICAgICAoZ290by1jaGFyIChwb2ludC1tYXgp KQpAQCAtMjAxNSw2MSArMjQ0Nyw5MCBAQAogKGRlZnZhciBzcWwtcGxhY2Vo b2xkZXItaGlzdG9yeSBuaWwKICAgIkhpc3Rvcnkgb2YgcGxhY2Vob2xkZXIg dmFsdWVzIHVzZWQuIikKIAotKGRlZnVuIHNxbC1xdWVyeS1wbGFjZWhvbGRl cnMtYW5kLXNlbmQgKHByb2Mgc3RyaW5nKQotICAiU2VuZCB0byBQUk9DIGlu cHV0IFNUUklORywgbWF5YmUgcmVwbGFjaW5nIHBsYWNlaG9sZGVycy4KLVBs YWNlaG9sZGVycyBhcmUgd29yZHMgc3RhcnRpbmcgd2l0aCBhbmQgYW1wZXJz YW5kIGxpa2UgJnRoaXMuCi1UaGlzIGZ1bmN0aW9uIGlzIHVzZWQgZm9yIGBj b21pbnQtaW5wdXQtc2VuZGVyJyBpZiB1c2luZyBgc3FsLW9yYWNsZScgb24g TlQuIgotICAod2hpbGUgKHN0cmluZy1tYXRjaCAiJlxcKFxcc3crXFwpIiBz dHJpbmcpCi0gICAgKHNldHEgc3RyaW5nIChyZXBsYWNlLW1hdGNoCi0JCSAg KHJlYWQtZnJvbS1taW5pYnVmZmVyCi0JCSAgIChmb3JtYXQgIkVudGVyIHZh bHVlIGZvciAlczogIiAobWF0Y2gtc3RyaW5nIDEgc3RyaW5nKSkKLQkJICAg bmlsIG5pbCBuaWwgc3FsLXBsYWNlaG9sZGVyLWhpc3RvcnkpCi0JCSAgdCB0 IHN0cmluZykpKQotICAoY29taW50LXNlbmQtc3RyaW5nIHByb2Mgc3RyaW5n KQotICAoaWYgY29taW50LWlucHV0LXNlbmRlci1uby1uZXdsaW5lCi0gICAg ICAoaWYgKG5vdCAoc3RyaW5nLWVxdWFsIHN0cmluZyAiIikpCi0JICAocHJv Y2Vzcy1zZW5kLWVvZikpCi0gICAgKGNvbWludC1zZW5kLXN0cmluZyBwcm9j ICJcbiIpKSkKKyhkZWZ1biBzcWwtcGxhY2Vob2xkZXJzLWZpbHRlciAoc3Ry aW5nKQorICAiUmVwbGFjZSBwbGFjZWhvbGRlcnMgaW4gU1RSSU5HLgorUGxh Y2Vob2xkZXJzIGFyZSB3b3JkcyBzdGFydGluZyB3aXRoIGFuZCBhbXBlcnNh bmQgbGlrZSAmdGhpcy4iCisKKyAgKHdoZW4gc3FsLW9yYWNsZS1zY2FuLW9u CisgICAgKHdoaWxlIChzdHJpbmctbWF0Y2ggIiZcXChcXHN3K1xcKSIgc3Ry aW5nKQorICAgICAgKHNldHEgc3RyaW5nIChyZXBsYWNlLW1hdGNoCisJCSAg ICAocmVhZC1mcm9tLW1pbmlidWZmZXIKKwkJICAgICAoZm9ybWF0ICJFbnRl ciB2YWx1ZSBmb3IgJXM6ICIgKG1hdGNoLXN0cmluZyAxIHN0cmluZykpCisJ CSAgICAgbmlsIG5pbCBuaWwgJ3NxbC1wbGFjZWhvbGRlci1oaXN0b3J5KQor CQkgICAgdCB0IHN0cmluZykpKSkKKyAgICBzdHJpbmcpCiAKIDs7IFVzaW5n IERCMiBpbnRlcmFjdGl2ZWx5LCBuZXdsaW5lcyBtdXN0IGJlIGVzY2FwZWQg d2l0aCAiIFwiLgogOzsgVGhlIHNwYWNlIGJlZm9yZSB0aGUgYmFja3NsYXNo IGlzIHJlbGV2YW50LgotKGRlZnVuIHNxbC1lc2NhcGUtbmV3bGluZXMtYW5k LXNlbmQgKHByb2Mgc3RyaW5nKQotICAiU2VuZCB0byBQUk9DIGlucHV0IFNU UklORywgZXNjYXBpbmcgbmV3bGluZXMgaWYgbmVjZXNzYXJ5LgorKGRlZnVu IHNxbC1lc2NhcGUtbmV3bGluZXMtZmlsdGVyIChzdHJpbmcpCisgICJFc2Nh cGVzIG5ld2xpbmVzIGluIFNUUklORy4KIEV2ZXJ5IG5ld2xpbmUgaW4gU1RS SU5HIHdpbGwgYmUgcHJlY2VkZWQgd2l0aCBhIHNwYWNlIGFuZCBhIGJhY2tz bGFzaC4iCiAgIChsZXQgKChyZXN1bHQgIiIpIChzdGFydCAwKSBtYiBtZSkK ICAgICAod2hpbGUgKHN0cmluZy1tYXRjaCAiXG4iIHN0cmluZyBzdGFydCkK ICAgICAgIChzZXRxIG1iIChtYXRjaC1iZWdpbm5pbmcgMCkKLQkgICAgbWUg KG1hdGNoLWVuZCAwKSkKLSAgICAgIChpZiAoYW5kICg+IG1iIDEpCi0JICAg ICAgIChzdHJpbmctZXF1YWwgIiBcXCIgKHN1YnN0cmluZyBzdHJpbmcgKC0g bWIgMikgbWIpKSkKLQkgIChzZXRxIHJlc3VsdCAoY29uY2F0IHJlc3VsdCAo c3Vic3RyaW5nIHN0cmluZyBzdGFydCBtZSkpKQotCShzZXRxIHJlc3VsdCAo Y29uY2F0IHJlc3VsdCAoc3Vic3RyaW5nIHN0cmluZyBzdGFydCBtYikgIiBc XFxuIikpKQotICAgICAgKHNldHEgc3RhcnQgbWUpKQotICAgIChzZXRxIHJl c3VsdCAoY29uY2F0IHJlc3VsdCAoc3Vic3RyaW5nIHN0cmluZyBzdGFydCkp KQotICAgIChjb21pbnQtc2VuZC1zdHJpbmcgcHJvYyByZXN1bHQpCi0gICAg KGlmIGNvbWludC1pbnB1dC1zZW5kZXItbm8tbmV3bGluZQotCShpZiAobm90 IChzdHJpbmctZXF1YWwgc3RyaW5nICIiKSkKLQkgICAgKHByb2Nlc3Mtc2Vu ZC1lb2YpKQotICAgICAgKGNvbWludC1zZW5kLXN0cmluZyBwcm9jICJcbiIp KSkpCisJICAgIG1lIChtYXRjaC1lbmQgMCkKKwkgICAgcmVzdWx0IChjb25j YXQgcmVzdWx0CisJCQkgICAoc3Vic3RyaW5nIHN0cmluZyBzdGFydCBtYikK KwkJCSAgIChpZiAoYW5kICg+IG1iIDEpCisJCQkJICAgIChzdHJpbmctZXF1 YWwgIiBcXCIgKHN1YnN0cmluZyBzdHJpbmcgKC0gbWIgMikgbWIpKSkKKwkJ CSAgICAgICAiIiAiIFxcXG4iKSkKKwkgICAgc3RhcnQgbWUpKQorICAgIChj b25jYXQgcmVzdWx0IChzdWJzdHJpbmcgc3RyaW5nIHN0YXJ0KSkpKQogCiAM CiAKKzs7OyBJbnB1dCBzZW5kZXIgZm9yIFNRTGkgYnVmZmVycworCisoZGVm dW4gc3FsaS1pbnB1dC1zZW5kZXIgKHByb2Mgc3RyaW5nKQorICAiU2VuZHMg U1RSSU5HIHRvIFBST0MgYWZ0ZXIgYXBwbHlpbmcgZmlsdGVycy4iCisKKyAg KGxldCogKChwcm9kdWN0ICh3aXRoLWN1cnJlbnQtYnVmZmVyIChwcm9jZXNz LWJ1ZmZlciBwcm9jKSBzcWwtcHJvZHVjdCkpCisJIChmaWx0ZXIgIChzcWwt Z2V0LXByb2R1Y3QtZmVhdHVyZSBwcm9kdWN0IDpzcWxpLWlucHV0LWZpbHRl cikpKQorCisgICAgOzsgU2VuZCB0aGUgc3RyaW5nCisgICAgKGNvbWludC1z aW1wbGUtc2VuZCBwcm9jIChmdW5jYWxsIChvciBmaWx0ZXIgJ2lkZW50aXR5 KSBzdHJpbmcpKSkpCisKIDs7OyBTZW5kaW5nIHRoZSByZWdpb24gdG8gdGhl IFNRTGkgYnVmZmVyLgogCisoZGVmdW4gc3FsLXNlbmQtc3RyaW5nIChzdHIp CisgICJTZW5kIHRoZSBzdHJpbmcgU1RSIHRvIHRoZSBTUUwgcHJvY2Vzcy4i CisgIChpbnRlcmFjdGl2ZSAic1NRTCBUZXh0OiAiKQorCisgIChsZXQgKGNv bWludC1pbnB1dC1zZW5kZXItbm8tbmV3bGluZSBwcm9jKQorICAgIChpZiAo YnVmZmVyLWxpdmUtcCBzcWxpLWJ1ZmZlcikKKwkocHJvZ24KKwkgIDs7IEln bm9yZSB0aGUgaG9waW5nIGFyb3VuZC4uLgorCSAgKHNhdmUtZXhjdXJzaW9u CisJICAgIDs7IEdldCB0aGUgcHJvY2VzcworCSAgICAoc2V0cSBwcm9jIChn ZXQtYnVmZmVyLXByb2Nlc3Mgc3FsaS1idWZmZXIpKQorCisJICAgIDs7IFNl dCBwcm9kdWN0IGNvbnRleHQKKwkgICAgKHdpdGgtY3VycmVudC1idWZmZXIg c3FsaS1idWZmZXIKKwkgICAgICA7OyBTZW5kIHRoZSBzdHJpbmcKKwkgICAg ICAoc3FsaS1pbnB1dC1zZW5kZXIgcHJvYyBzdHIpCisKKwkgICAgICA7OyBT ZW5kIGEgbmV3bGluZSBpZiB0aGVyZSB3YXNuJ3Qgb25lIG9uIHRoZSBlbmQg b2YgdGhlIHN0cmluZworCSAgICAgICh1bmxlc3MgKHN0cmluZy1lcXVhbCAi XG4iIChzdWJzdHJpbmcgc3RyICgxLSAobGVuZ3RoIHN0cikpKSkKKwkJKGNv bWludC1zZW5kLXN0cmluZyBwcm9jICJcbiIpKQorCisJICAgICAgOzsgU2Vu ZCBhIGNvbW1hbmQgdGVybWluYXRvciBpZiB3ZSBtdXN0CisJICAgICAgKGlm IHNxbC1zZW5kLXRlcm1pbmF0b3IKKwkJICAoc3FsLXNlbmQtbWFnaWMtdGVy bWluYXRvciBzcWxpLWJ1ZmZlciBzdHIgc3FsLXNlbmQtdGVybWluYXRvcikp CisKKwkgICAgICAobWVzc2FnZSAiU2VudCBzdHJpbmcgdG8gYnVmZmVyICVz LiIgKGJ1ZmZlci1uYW1lIHNxbGktYnVmZmVyKSkpKQorCisJICA7OyBEaXNw bGF5IHRoZSBzcWwgYnVmZmVyCisJICAoaWYgc3FsLXBvcC10by1idWZmZXIt YWZ0ZXItc2VuZC1yZWdpb24KKwkgICAgICAocG9wLXRvLWJ1ZmZlciBzcWxp LWJ1ZmZlcikKKwkgICAgKGRpc3BsYXktYnVmZmVyIHNxbGktYnVmZmVyKSkp CisKKyAgICA7OyBXZSBkb24ndCBoYXZlIG5vIHN0aW5raW4nIHNxbAorICAg IChtZXNzYWdlICJObyBTUUwgcHJvY2VzcyBzdGFydGVkLiIpKSkpCisKIChk ZWZ1biBzcWwtc2VuZC1yZWdpb24gKHN0YXJ0IGVuZCkKICAgIlNlbmQgYSBy ZWdpb24gdG8gdGhlIFNRTCBwcm9jZXNzLiIKICAgKGludGVyYWN0aXZlICJy IikKLSAgKGlmIChidWZmZXItbGl2ZS1wIHNxbC1idWZmZXIpCi0gICAgICAo c2F2ZS1leGN1cnNpb24KLQkoY29taW50LXNlbmQtcmVnaW9uIHNxbC1idWZm ZXIgc3RhcnQgZW5kKQotCShpZiAoc3RyaW5nLW1hdGNoICJcbiQiIChidWZm ZXItc3Vic3RyaW5nIHN0YXJ0IGVuZCkpCi0JICAgICgpCi0JICAoY29taW50 LXNlbmQtc3RyaW5nIHNxbC1idWZmZXIgIlxuIikpCi0JKG1lc3NhZ2UgIlNl bnQgc3RyaW5nIHRvIGJ1ZmZlciAlcy4iIChidWZmZXItbmFtZSBzcWwtYnVm ZmVyKSkKLQkoaWYgc3FsLXBvcC10by1idWZmZXItYWZ0ZXItc2VuZC1yZWdp b24KLQkgICAgKHBvcC10by1idWZmZXIgc3FsLWJ1ZmZlcikKLQkgIChkaXNw bGF5LWJ1ZmZlciBzcWwtYnVmZmVyKSkpCi0gICAgKG1lc3NhZ2UgIk5vIFNR TCBwcm9jZXNzIHN0YXJ0ZWQuIikpKQorICAoc3FsLXNlbmQtc3RyaW5nIChi dWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgc3RhcnQgZW5kKSkpCiAK IChkZWZ1biBzcWwtc2VuZC1wYXJhZ3JhcGggKCkKICAgIlNlbmQgdGhlIGN1 cnJlbnQgcGFyYWdyYXBoIHRvIHRoZSBTUUwgcHJvY2Vzcy4iCkBAIC0yMDg3 LDI5ICsyNTQ4LDQ2IEBACiAgIChpbnRlcmFjdGl2ZSkKICAgKHNxbC1zZW5k LXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpCiAKLShkZWZ1biBz cWwtc2VuZC1zdHJpbmcgKHN0cikKLSAgIlNlbmQgYSBzdHJpbmcgdG8gdGhl IFNRTCBwcm9jZXNzLiIKLSAgKGludGVyYWN0aXZlICJzU1FMIFRleHQ6ICIp Ci0gIChpZiAoYnVmZmVyLWxpdmUtcCBzcWwtYnVmZmVyKQotICAgICAgKHNh dmUtZXhjdXJzaW9uCi0gICAgICAgIChjb21pbnQtc2VuZC1zdHJpbmcgc3Fs LWJ1ZmZlciBzdHIpCi0gICAgICAgIChjb21pbnQtc2VuZC1zdHJpbmcgc3Fs LWJ1ZmZlciAiXG4iKQotICAgICAgICAobWVzc2FnZSAiU2VudCBzdHJpbmcg dG8gYnVmZmVyICVzLiIgKGJ1ZmZlci1uYW1lIHNxbC1idWZmZXIpKQotICAg ICAgICAoaWYgc3FsLXBvcC10by1idWZmZXItYWZ0ZXItc2VuZC1yZWdpb24K LSAgICAgICAgICAgIChwb3AtdG8tYnVmZmVyIHNxbC1idWZmZXIpCi0gICAg ICAgICAgKGRpc3BsYXktYnVmZmVyIHNxbC1idWZmZXIpKSkKLSAgICAobWVz c2FnZSAiTm8gU1FMIHByb2Nlc3Mgc3RhcnRlZC4iKSkpCisoZGVmdW4gc3Fs LXNlbmQtbWFnaWMtdGVybWluYXRvciAoYnVmIHN0ciB0ZXJtaW5hdG9yKQor ICAiU2VuZHMgVEVSTUlOQVRPUiB0byBidWZmZXIgQlVGIGlmIGl0cyBub3Qg cHJlc2VudCBpbiBTVFIuIgorICAobGV0IChwYXQgdGVybSkKKyAgICA7OyBJ ZiBmbGFnIGlzIG1lcmVseSBvbih0KSwgZ2V0IHByb2R1Y3Qtc3BlY2lmaWMg dGVybWluYXRvcgorICAgIChpZiAoZXEgdGVybWluYXRvciB0KQorCShzZXRx IHRlcm1pbmF0b3IgKHNxbC1nZXQtcHJvZHVjdC1mZWF0dXJlIHNxbC1wcm9k dWN0IDpzcWwtc2VuZC10ZXJtaW5hdG9yKSkpCisKKyAgICA7OyBJZiB0aGVy ZSBpcyBubyB0ZXJtaW5hdG9yIHNwZWNpZmllZCwgdXNlIGRlZmF1bHQgIjsi CisgICAgKHVubGVzcyB0ZXJtaW5hdG9yCisgICAgICAoc2V0cSB0ZXJtaW5h dG9yICI7IikpCisKKyAgICA7OyBQYXJzZSB0aGUgc2V0dGluZyBpbnRvIHRo ZSBwYXR0ZXJuIGFuZCB0aGUgdGVybWluYXRvciBzdHJpbmcKKyAgICAoY29u ZCAoKHN0cmluZ3AgdGVybWluYXRvcikKKwkgICAoc2V0cSBwYXQgKHJlZ2V4 cC1xdW90ZSB0ZXJtaW5hdG9yKQorCQkgdGVybSB0ZXJtaW5hdG9yKSkKKwkg ICgoY29uc3AgdGVybWluYXRvcikKKwkgICAoc2V0cSBwYXQgKGNhciB0ZXJt aW5hdG9yKQorCQkgdGVybSAoY2RyIHRlcm1pbmF0b3IpKSkKKwkgICh0CisJ ICAgbmlsKSkKKworICAgIDs7IENoZWNrIHRvIHNlZSBpZiB0aGUgcGF0dGVy biBpcyBwcmVzZW50IGluIHRoZSBzdHIgYWxyZWFkeSBzZW50CisgICAgKHVu bGVzcyAoYW5kIHBhdCB0ZXJtCisJCSAoc3RyaW5nLW1hdGNoIChjb25jYXQg cGF0ICJcbj9cXCciKSBzdHIpKQorICAgICAgKGNvbWludC1zZW5kLXN0cmlu ZyBidWYgKGNvbmNhdCB0ZXJtICJcbiIpKSkpKQorCisoZGVmdW4gc3FsLXJl bW92ZS10YWJzLWZpbHRlciAoc3RyKQorICAiUmVwbGFjZSB0YWIgY2hhcmFj dGVycyB3aXRoIHNwYWNlcy4iCisgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJp bmcgIlx0IiAiICIgc3RyIG5pbCB0KSkKIAogKGRlZnVuIHNxbC10b2dnbGUt cG9wLXRvLWJ1ZmZlci1hZnRlci1zZW5kLXJlZ2lvbiAoJm9wdGlvbmFsIHZh bHVlKQogICAiVG9nZ2xlIGBzcWwtcG9wLXRvLWJ1ZmZlci1hZnRlci1zZW5k LXJlZ2lvbicuCiAKIElmIGdpdmVuIHRoZSBvcHRpb25hbCBwYXJhbWV0ZXIg VkFMVUUsIHNldHMKLXNxbC10b2dnbGUtcG9wLXRvLWJ1ZmZlci1hZnRlci1z ZW5kLXJlZ2lvbiB0byBWQUxVRS4iCitgc3FsLXRvZ2dsZS1wb3AtdG8tYnVm ZmVyLWFmdGVyLXNlbmQtcmVnaW9uJyB0byBWQUxVRS4iCiAgIChpbnRlcmFj dGl2ZSAiUCIpCiAgIChpZiB2YWx1ZQogICAgICAgKHNldHEgc3FsLXBvcC10 by1idWZmZXItYWZ0ZXItc2VuZC1yZWdpb24gdmFsdWUpCiAgICAgKHNldHEg c3FsLXBvcC10by1idWZmZXItYWZ0ZXItc2VuZC1yZWdpb24KLQkgIChudWxs IHNxbC1wb3AtdG8tYnVmZmVyLWFmdGVyLXNlbmQtcmVnaW9uICkpKSkKKwkg IChudWxsIHNxbC1wb3AtdG8tYnVmZmVyLWFmdGVyLXNlbmQtcmVnaW9uKSkp KQogCiAMCiAKQEAgLTIxMjcsMTEgKzI2MDUsMTEgQEAKIEN1c3RvbWl6YXRp b246IEVudHJ5IHRvIHRoaXMgbW9kZSBydW5zIHRoZSBgc3FsLW1vZGUtaG9v aycuCiAKIFdoZW4geW91IHB1dCBhIGJ1ZmZlciBpbiBTUUwgbW9kZSwgdGhl IGJ1ZmZlciBzdG9yZXMgdGhlIGxhc3QgU1FMaQotYnVmZmVyIGNyZWF0ZWQg YXMgaXRzIGRlc3RpbmF0aW9uIGluIHRoZSB2YXJpYWJsZSBgc3FsLWJ1ZmZl cicuICBUaGlzCitidWZmZXIgY3JlYXRlZCBhcyBpdHMgZGVzdGluYXRpb24g aW4gdGhlIHZhcmlhYmxlIGBzcWxpLWJ1ZmZlcicuICBUaGlzCiB3aWxsIGJl IHRoZSBidWZmZXIgXFxbc3FsLXNlbmQtcmVnaW9uXSBzZW5kcyB0aGUgcmVn aW9uIHRvLiAgSWYgdGhpcwogU1FMaSBidWZmZXIgaXMga2lsbGVkLCBcXFtz cWwtc2VuZC1yZWdpb25dIGlzIG5vIGxvbmdlciBhYmxlIHRvCiBkZXRlcm1p bmUgd2hlcmUgdGhlIHN0cmluZ3Mgc2hvdWxkIGJlIHNlbnQgdG8uICBZb3Ug Y2FuIHNldCB0aGUKLXZhbHVlIG9mIGBzcWwtYnVmZmVyJyB1c2luZyBcXFtz cWwtc2V0LXNxbGktYnVmZmVyXS4KK3ZhbHVlIG9mIGBzcWxpLWJ1ZmZlcicg dXNpbmcgXFxbc3FsLXNldC1zcWxpLWJ1ZmZlcl0uCiAKIEZvciBpbmZvcm1h dGlvbiBvbiBob3cgdG8gY3JlYXRlIG11bHRpcGxlIFNRTGkgYnVmZmVycywg c2VlCiBgc3FsLWludGVyYWN0aXZlLW1vZGUnLgpAQCAtMjE1Niw3ICsyNjM0 LDcgQEAKICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2NvbW1lbnQtc3RhcnQp CiAgIChzZXRxIGNvbW1lbnQtc3RhcnQgIi0tIikKICAgOzsgTWFrZSBlYWNo IGJ1ZmZlciBpbiBzcWwtbW9kZSByZW1lbWJlciB0aGUgImN1cnJlbnQiIFNR TGkgYnVmZmVyLgotICAobWFrZS1sb2NhbC12YXJpYWJsZSAnc3FsLWJ1ZmZl cikKKyAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ3NxbGktYnVmZmVyKQogICA7 OyBBZGQgaW1lbnUgc3VwcG9ydCBmb3Igc3FsLW1vZGUuICBOb3RlIHRoYXQg aW1lbnUtZ2VuZXJpYy1leHByZXNzaW9uCiAgIDs7IGlzIGJ1ZmZlci1sb2Nh bCwgc28gd2UgZG9uJ3QgbmVlZCBhIGxvY2FsLXZhcmlhYmxlIGZvciBpdC4g IFNRTCBpcwogICA7OyBjYXNlLWluc2Vuc2l0aXZlLCB0aGF0J3Mgd2h5IHdl IGhhdmUgdG8gc2V0IGltZW51LWNhc2UtZm9sZC1zZWFyY2guCkBAIC0yMjUy LDI0ICsyNzMwLDI5IEBACiBcKHNldHEgY29taW50LW91dHB1dC1maWx0ZXIt ZnVuY3Rpb25zCiAgICAgICAgXChmdW5jdGlvbiAobGFtYmRhIChTVFIpIChj b21pbnQtc2hvdy1vdXRwdXQpKSkpIgogICAoZGVsYXktbW9kZS1ob29rcyAo Y29taW50LW1vZGUpKQorCiAgIDs7IEdldCB0aGUgYHNxbC1wcm9kdWN0JyBm b3IgdGhpcyBpbnRlcmFjdGl2ZSBzZXNzaW9uLgogICAoc2V0IChtYWtlLWxv Y2FsLXZhcmlhYmxlICdzcWwtcHJvZHVjdCkKICAgICAgICAob3Igc3FsLWlu dGVyYWN0aXZlLXByb2R1Y3QKIAkgICBzcWwtcHJvZHVjdCkpCisKICAgOzsg U2V0dXAgdGhlIG1vZGUuCiAgIChzZXRxIG1ham9yLW1vZGUgJ3NxbC1pbnRl cmFjdGl2ZS1tb2RlKQotICAoc2V0cSBtb2RlLW5hbWUgKGNvbmNhdCAiU1FM aVsiIChwcmluMS10by1zdHJpbmcgc3FsLXByb2R1Y3QpICJdIikpCisgIChz ZXRxIG1vZGUtbmFtZSAoY29uY2F0ICJTUUxpWyIgKG9yIChzcWwtZ2V0LXBy b2R1Y3QtZmVhdHVyZSBzcWwtcHJvZHVjdCA6ZGlzcGxheSkKKwkJCQkgICAg ICAocHJpbjEtdG8tc3RyaW5nIHNxbC1wcm9kdWN0KSkgIl0iKSkKICAgKHVz ZS1sb2NhbC1tYXAgc3FsLWludGVyYWN0aXZlLW1vZGUtbWFwKQogICAoaWYg c3FsLWludGVyYWN0aXZlLW1vZGUtbWVudQogICAgICAgKGVhc3ktbWVudS1h ZGQgc3FsLWludGVyYWN0aXZlLW1vZGUtbWVudSkpIDsgWEVtYWNzCiAgIChz ZXQtc3ludGF4LXRhYmxlIHNxbC1tb2RlLXN5bnRheC10YWJsZSkKICAgKG1h a2UtbG9jYWwtdmFyaWFibGUgJ3NxbC1tb2RlLWZvbnQtbG9jay1rZXl3b3Jk cykKICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2ZvbnQtbG9jay1kZWZhdWx0 cykKKwogICA7OyBOb3RlIHRoYXQgbWFraW5nIEtFWVdPUkRTLU9OTFkgbmls IHdpbGwgY2F1c2UgaGF2b2MgaWYgeW91IHRyeQogICA7OyBTRUxFQ1QgJ3gn IEZST00gRFVBTCB3aXRoIFNRTCpQbHVzLCBiZWNhdXNlIHRoZSB0aXRsZSBv ZiB0aGUgY29sdW1uCiAgIDs7IHdpbGwgaGF2ZSBqdXN0IG9uZSBxdW90ZS4g IFRoZXJlZm9yZSBzeW50YWN0aWMgaGlsaWdodGluZyBpcwogICA7OyBkaXNh YmxlZCBmb3IgaW50ZXJhY3RpdmUgYnVmZmVycy4gIE5vIGltZW51IHN1cHBv cnQuCiAgIChzcWwtcHJvZHVjdC1mb250LWxvY2sgdCBuaWwpCisKICAgOzsg RW5hYmxlIGNvbW1lbnRpbmcgYW5kIHVuY29tbWVudGluZyBvZiB0aGUgcmVn aW9uLgogICAobWFrZS1sb2NhbC12YXJpYWJsZSAnY29tbWVudC1zdGFydCkK ICAgKHNldHEgY29tbWVudC1zdGFydCAiLS0iKQpAQCAtMjI3OCwyMiArMjc2 MSwyNSBAQAogICAoc2V0cSBsb2NhbC1hYmJyZXYtdGFibGUgc3FsLW1vZGUt YWJicmV2LXRhYmxlKQogICAoc2V0cSBhYmJyZXYtYWxsLWNhcHMgMSkKICAg OzsgRXhpdGluZyB0aGUgcHJvY2VzcyB3aWxsIGNhbGwgc3FsLXN0b3AuCi0g IChzZXQtcHJvY2Vzcy1zZW50aW5lbCAoZ2V0LWJ1ZmZlci1wcm9jZXNzIHNx bC1idWZmZXIpICdzcWwtc3RvcCkKKyAgKHNldC1wcm9jZXNzLXNlbnRpbmVs IChnZXQtYnVmZmVyLXByb2Nlc3Mgc3FsaS1idWZmZXIpICdzcWwtc3RvcCkK ICAgOzsgQ3JlYXRlIGEgdXNlZnVsbCBuYW1lIGZvciByZW5hbWluZyB0aGlz IGJ1ZmZlciBsYXRlci4KICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ3NxbC1h bHRlcm5hdGUtYnVmZmVyLW5hbWUpCiAgIChzZXRxIHNxbC1hbHRlcm5hdGUt YnVmZmVyLW5hbWUgKHNxbC1tYWtlLWFsdGVybmF0ZS1idWZmZXItbmFtZSkp CiAgIDs7IFVzZXIgc3R1ZmYuICBJbml0aWFsaXplIGJlZm9yZSB0aGUgaG9v ay4KICAgKHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAnc3FsLXByb21wdC1y ZWdleHApCi0gICAgICAgKHNxbC1wcm9kdWN0LWZlYXR1cmUgOnNxbGktcHJv bXB0LXJlZ2V4cCkpCisgICAgICAgKHNxbC1nZXQtcHJvZHVjdC1mZWF0dXJl IHNxbC1wcm9kdWN0IDpzcWxpLXByb21wdC1yZWdleHApKQogICAoc2V0ICht YWtlLWxvY2FsLXZhcmlhYmxlICdzcWwtcHJvbXB0LWxlbmd0aCkKLSAgICAg ICAoc3FsLXByb2R1Y3QtZmVhdHVyZSA6c3FsaS1wcm9tcHQtbGVuZ3RoKSkK KyAgICAgICAoc3FsLWdldC1wcm9kdWN0LWZlYXR1cmUgc3FsLXByb2R1Y3Qg OnNxbGktcHJvbXB0LWxlbmd0aCkpCiAgIChtYWtlLWxvY2FsLXZhcmlhYmxl ICdzcWwtaW5wdXQtcmluZy1zZXBhcmF0b3IpCiAgIChtYWtlLWxvY2FsLXZh cmlhYmxlICdzcWwtaW5wdXQtcmluZy1maWxlLW5hbWUpCi0gIDs7IFJ1biBo b29rLgorICAoc2V0cSBjb21pbnQtcHJvY2Vzcy1lY2hvZXMgdCkKKyAgOzsg UnVuIHRoZSBtb2RlIGhvb2sgKGFsb25nIHdpdGggY29taW50J3MgaG9va3Mp LgogICAocnVuLW1vZGUtaG9va3MgJ3NxbC1pbnRlcmFjdGl2ZS1tb2RlLWhv b2spCiAgIDs7IFNldCBjb21pbnQgYmFzZWQgb24gdXNlciBvdmVycmlkZXMu CiAgIChzZXRxIGNvbWludC1wcm9tcHQtcmVnZXhwIHNxbC1wcm9tcHQtcmVn ZXhwKQogICAoc2V0cSBsZWZ0LW1hcmdpbiBzcWwtcHJvbXB0LWxlbmd0aCkK KyAgOzsgSW5zdGFsbCBpbnB1dCBzZW5kZXIKKyAgKHNldCAobWFrZS1sb2Nh bC12YXJpYWJsZSAnY29taW50LWlucHV0LXNlbmRlcikgJ3NxbGktaW5wdXQt c2VuZGVyKQogICA7OyBQZW9wbGUgd2FudGluZyBhIGRpZmZlcmVudCBoaXN0 b3J5IGZpbGUgZm9yIGVhY2gKICAgOzsgYnVmZmVyL3Byb2Nlc3MvY2xpZW50 L3doYXRldmVyIGNhbiBjaGFuZ2Ugc2VwYXJhdG9yIGFuZCBmaWxlLW5hbWUK ICAgOzsgb24gdGhlIHNxbC1pbnRlcmFjdGl2ZS1tb2RlLWhvb2suCkBAIC0y MzEyLDcgKzI3OTgsNyBAQAogVGhpcyBmdW5jdGlvbiBpcyBhIHNlbnRpbmVs IHdhdGNoaW5nIHRoZSBTUUwgaW50ZXJwcmV0ZXIgcHJvY2Vzcy4KIFNlbnRp bmVscyB3aWxsIGFsd2F5cyBnZXQgdGhlIHR3byBwYXJhbWV0ZXJzIFBST0NF U1MgYW5kIEVWRU5ULiIKICAgKGNvbWludC13cml0ZS1pbnB1dC1yaW5nKQot ICAoaWYgKGFuZCAoZXEgKGN1cnJlbnQtYnVmZmVyKSBzcWwtYnVmZmVyKQor ICAoaWYgKGFuZCAoZXEgKGN1cnJlbnQtYnVmZmVyKSBzcWxpLWJ1ZmZlcikK IAkgICAobm90IGJ1ZmZlci1yZWFkLW9ubHkpKQogICAgICAgKGluc2VydCAo Zm9ybWF0ICJcblByb2Nlc3MgJXMgJXNcbiIgcHJvY2VzcyBldmVudCkpCiAg ICAgKG1lc3NhZ2UgIlByb2Nlc3MgJXMgJXMiIHByb2Nlc3MgZXZlbnQpKSkK QEAgLTIzMjMsNyArMjgwOSw3IEBACiAKIDs7OyMjI2F1dG9sb2FkCiAoZGVm dW4gc3FsLXByb2R1Y3QtaW50ZXJhY3RpdmUgKCZvcHRpb25hbCBwcm9kdWN0 KQotICAiUnVuIHByb2R1Y3QgaW50ZXJwcmV0ZXIgYXMgYW4gaW5mZXJpb3Ig cHJvY2Vzcy4KKyAgIlJ1biBQUk9EVUNUIGludGVycHJldGVyIGFzIGFuIGlu ZmVyaW9yIHByb2Nlc3MuCiAKIElmIGJ1ZmZlciBgKlNRTConIGV4aXN0cyBi dXQgbm8gcHJvY2VzcyBpcyBydW5uaW5nLCBtYWtlIGEgbmV3IHByb2Nlc3Mu CiBJZiBidWZmZXIgZXhpc3RzIGFuZCBhIHByb2Nlc3MgaXMgcnVubmluZywg anVzdCBzd2l0Y2ggdG8gYnVmZmVyIGAqU1FMKicuCkBAIC0yMzMxLDIxICsy ODE3LDYwIEBACiBcKFR5cGUgXFxbZGVzY3JpYmUtbW9kZV0gaW4gdGhlIFNR TCBidWZmZXIgZm9yIGEgbGlzdCBvZiBjb21tYW5kcy4pIgogICAoaW50ZXJh Y3RpdmUpCiAgIChzZXRxIHByb2R1Y3QgKG9yIHByb2R1Y3Qgc3FsLXByb2R1 Y3QpKQotICAod2hlbiAoc3FsLXByb2R1Y3QtZmVhdHVyZSA6c3FsaS1jb25u ZWN0IHByb2R1Y3QpCi0gICAgKGlmIChjb21pbnQtY2hlY2stcHJvYyAiKlNR TCoiKQotCShwb3AtdG8tYnVmZmVyICIqU1FMKiIpCi0gICAgICA7OyBHZXQg Y3JlZGVudGlhbHMuCi0gICAgICAoYXBwbHkgJ3NxbC1nZXQtbG9naW4gKHNx bC1wcm9kdWN0LWZlYXR1cmUgOnNxbGktbG9naW4gcHJvZHVjdCkpCi0gICAg ICA7OyBDb25uZWN0IHRvIGRhdGFiYXNlLgotICAgICAgKG1lc3NhZ2UgIkxv Z2luLi4uIikKLSAgICAgIChmdW5jYWxsIChzcWwtcHJvZHVjdC1mZWF0dXJl IDpzcWxpLWNvbm5lY3QgcHJvZHVjdCkpCi0gICAgICA7OyBTZXQgU1FMaSBt b2RlLgotICAgICAgKHNldHEgc3FsLWludGVyYWN0aXZlLXByb2R1Y3QgcHJv ZHVjdCkKLSAgICAgIChzZXRxIHNxbC1idWZmZXIgKGN1cnJlbnQtYnVmZmVy KSkKLSAgICAgIChzcWwtaW50ZXJhY3RpdmUtbW9kZSkKLSAgICAgIDs7IEFs bCBkb25lLgotICAgICAgKG1lc3NhZ2UgIkxvZ2luLi4uZG9uZSIpCi0gICAg ICAocG9wLXRvLWJ1ZmZlciBzcWwtYnVmZmVyKSkpKQorICAod2hlbiAoc3Fs LWdldC1wcm9kdWN0LWZlYXR1cmUgcHJvZHVjdCA6c3FsaS1jb25uZWN0KQor ICAgIChpZiAoYW5kIHNxbGktYnVmZmVyCisJICAgICAoY29taW50LWNoZWNr LXByb2Mgc3FsaS1idWZmZXIpKQorCShwb3AtdG8tYnVmZmVyIHNxbGktYnVm ZmVyKQorCisgICAgICA7OyBJcyB0aGUgY3VycmVudCBidWZmZXIgaW4gc3Fs LW1vZGUgYW5kCisgICAgICA7OyB0aGVyZSBpcyBhIGJ1ZmZlciBsb2NhbCBz ZXR0aW5nIG9mIHNxbGktYnVmZmVyCisgICAgICAobGV0KiAoKHN0YXJ0LWJ1 ZmZlcgorCSAgICAgIChhbmQgKGRlcml2ZWQtbW9kZS1wICdzcWwtbW9kZSkK KwkJICAgKGN1cnJlbnQtYnVmZmVyKSkpCisJICAgICAoc3RhcnQtc3FsaS1i dWZmZXIKKwkgICAgICAoYW5kIHN0YXJ0LWJ1ZmZlcgorCQkgICAobGV0IChm b3VuZCkKKwkJICAgICAoZG9saXN0ICh2YXIgKGJ1ZmZlci1sb2NhbC12YXJp YWJsZXMpKQorCQkgICAgICAgKGFuZCAoY29uc3AgdmFyKQorCQkJICAgIChl cSAoY2FyIHZhcikgJ3NxbGktYnVmZmVyKQorCQkJICAgIChidWZmZXItbGl2 ZS1wIChjZHIgdmFyKSkKKwkJCSAgICAoZ2V0LWJ1ZmZlci1wcm9jZXNzIChj ZHIgdmFyKSkKKwkJCSAgICAoc2V0cSBmb3VuZCAoY2RyIHZhcikpKSkKKwkJ ICAgICBmb3VuZCkpKQorCSAgICAgbmV3LXNxbGktYnVmZmVyKQorCisJOzsg R2V0IGNyZWRlbnRpYWxzLgorCShhcHBseSAnc3FsLWdldC1sb2dpbgorCSAg ICAgICAoc3ltYm9sLXZhbHVlIChzcWwtZ2V0LXByb2R1Y3QtZmVhdHVyZSBw cm9kdWN0IDpzcWxpLWxvZ2luKSkpCisKKwk7OyBDb25uZWN0IHRvIGRhdGFi YXNlLgorCShtZXNzYWdlICJMb2dpbi4uLiIpCisJKGZ1bmNhbGwgKHNxbC1n ZXQtcHJvZHVjdC1mZWF0dXJlIHByb2R1Y3QgOnNxbGktY29ubmVjdCkpCisK Kwk7OyBTZXQgU1FMaSBtb2RlLgorCShzZXRxIHNxbC1pbnRlcmFjdGl2ZS1w cm9kdWN0IHByb2R1Y3QKKwkgICAgICBuZXctc3FsaS1idWZmZXIgKGN1cnJl bnQtYnVmZmVyKQorCSAgICAgIHNxbGktYnVmZmVyIG5ldy1zcWxpLWJ1ZmZl cikKKwkoc3FsLWludGVyYWN0aXZlLW1vZGUpCisKKwk7OyBTZXQgYHNxbGkt YnVmZmVyJyBpbiB0aGUgc3RhcnQgYnVmZmVyCisJKHdoZW4gKGFuZCBzdGFy dC1idWZmZXIgKG5vdCBzdGFydC1zcWxpLWJ1ZmZlcikpCisJICAod2l0aC1j dXJyZW50LWJ1ZmZlciBzdGFydC1idWZmZXIKKwkgICAgKHNldHEgc3FsaS1i dWZmZXIgbmV3LXNxbGktYnVmZmVyKSkpCisKKwk7OyBBbGwgZG9uZS4KKwko bWVzc2FnZSAiTG9naW4uLi5kb25lIikKKwkocG9wLXRvLWJ1ZmZlciBzcWxp LWJ1ZmZlcikpKSkpCisKKyhkZWZ1biBzcWwtY29ubmVjdCAocHJvZ3JhbSBh cmdzKQorICAiU2V0IHVwIGEgY29taW50IGJ1ZmZlciB0byBjb25uZWN0IHRv IHRoZSBTUUwgcHJvY2Vzc29yLgorCitQUk9HUkFNIGlzIHRoZSBTUUwgY29t bWFuZCBpbnRlcnByZXRlciBwcm9ncmFtLiAgQVJHUyBpcyBhIGxpc3QKK29m IHN0cmluZ3Mgd2hpY2ggYXJlIHBhc3NlZCBhcyBjb21tYW5kIGxpbmUgYXJn dW1lbnRzLiIKKyAgKHNldC1idWZmZXIKKyAgIChpZiBhcmdzCisgICAgICAg KGFwcGx5ICdtYWtlLWNvbWludCAiU1FMIiBwcm9ncmFtIG5pbCBhcmdzKQor ICAgICAobWFrZS1jb21pbnQgIlNRTCIgcHJvZ3JhbSBuaWwpKSkpCiAKIDs7 OyMjI2F1dG9sb2FkCiAoZGVmdW4gc3FsLW9yYWNsZSAoKQpAQCAtMjM2MCw3 ICsyODg1LDcgQEAKIGRlZmF1bHRzLCBpZiBzZXQuICBBZGRpdGlvbmFsIGNv bW1hbmQgbGluZSBwYXJhbWV0ZXJzIGNhbiBiZSBzdG9yZWQgaW4KIHRoZSBs aXN0IGBzcWwtb3JhY2xlLW9wdGlvbnMnLgogCi1UaGUgYnVmZmVyIGlzIHB1 dCBpbiBzcWwtaW50ZXJhY3RpdmUtbW9kZSwgZ2l2aW5nIGNvbW1hbmRzIGZv ciBzZW5kaW5nCitUaGUgYnVmZmVyIGlzIHB1dCBpbiBgc3FsLWludGVyYWN0 aXZlLW1vZGUnLCBnaXZpbmcgY29tbWFuZHMgZm9yIHNlbmRpbmcKIGlucHV0 LiAgU2VlIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuCiAKIFRvIHNwZWNpZnkg YSBjb2Rpbmcgc3lzdGVtIGZvciBjb252ZXJ0aW5nIG5vbi1BU0NJSSBjaGFy YWN0ZXJzCkBAIC0yMzc1LDI2ICsyOTAwLDIyIEBACiAgIChzcWwtcHJvZHVj dC1pbnRlcmFjdGl2ZSAnb3JhY2xlKSkKIAogKGRlZnVuIHNxbC1jb25uZWN0 LW9yYWNsZSAoKQotICAiQ3JlYXRlIGNvbWludCBidWZmZXIgYW5kIGNvbm5l Y3QgdG8gT3JhY2xlIHVzaW5nIHRoZSBsb2dpbgotcGFyYW1ldGVycyBhbmQg Y29tbWFuZCBvcHRpb25zLiIKKyAgIkNyZWF0ZSBjb21pbnQgYnVmZmVyIGFu ZCBjb25uZWN0IHRvIE9yYWNsZS4iCiAgIDs7IFByb2R1Y2UgdXNlci9wYXNz d29yZEBkYXRhYmFzZSBjb25zdHJ1Y3QuICBQYXNzd29yZCB3aXRob3V0IHVz ZXIKICAgOzsgaXMgbWVhbmluZ2xlc3M7IGRhdGFiYXNlIHdpdGhvdXQgdXNl ci9wYXNzd29yZCBpcyBtZWFuaW5nbGVzcywKICAgOzsgYmVjYXVzZSAiQHBh cmFtIiB3aWxsIGFzayBzcWxwbHVzIHRvIGludGVycHJldCB0aGUgc2NyaXB0 CiAgIDs7ICJwYXJhbSIuCi0gIChsZXQgKChwYXJhbWV0ZXIKLSAgICAgICAg IChpZiAobm90IChzdHJpbmc9ICIiIHNxbC11c2VyKSkKLSAgICAgICAgICAg ICAoaWYgKG5vdCAoc3RyaW5nPSAiIiBzcWwtcGFzc3dvcmQpKQotICAgICAg ICAgICAgICAgICAoY29uY2F0IHNxbC11c2VyICIvIiBzcWwtcGFzc3dvcmQp Ci0gICAgICAgICAgICAgICBzcWwtdXNlcikpKSkKKyAgKGxldCAoKHBhcmFt ZXRlciBuaWwpKQorICAgIChpZiAobm90IChzdHJpbmc9ICIiIHNxbC11c2Vy KSkKKwkoaWYgKG5vdCAoc3RyaW5nPSAiIiBzcWwtcGFzc3dvcmQpKQorCSAg ICAoc2V0cSBwYXJhbWV0ZXIgKGNvbmNhdCBzcWwtdXNlciAiLyIgc3FsLXBh c3N3b3JkKSkKKwkgIChzZXRxIHBhcmFtZXRlciBzcWwtdXNlcikpKQogICAg IChpZiAoYW5kIHBhcmFtZXRlciAobm90IChzdHJpbmc9ICIiIHNxbC1kYXRh YmFzZSkpKQogCShzZXRxIHBhcmFtZXRlciAoY29uY2F0IHBhcmFtZXRlciAi QCIgc3FsLWRhdGFiYXNlKSkpCi0gICAgKHNldHEgcGFyYW1ldGVyIChpZiBw YXJhbWV0ZXIKLSAgICAgICAgICAgICAgICAgICAgICAgIChuY29uYyAobGlz dCBwYXJhbWV0ZXIpIHNxbC1vcmFjbGUtb3B0aW9ucykKLSAgICAgICAgICAg ICAgICAgICAgICBzcWwtb3JhY2xlLW9wdGlvbnMpKQotICAgIChzZXQtYnVm ZmVyIChhcHBseSAnbWFrZS1jb21pbnQgIlNRTCIgc3FsLW9yYWNsZS1wcm9n cmFtIG5pbCBwYXJhbWV0ZXIpKQotICAgIDs7IFNRTCpQbHVzIGlzIGJ1ZmZl cmVkIG9uIFdpbmRvd3NOVDsgdGhpcyBoYW5kbGVzICZwbGFjZWhvbGRlcnMu Ci0gICAgKGlmIChlcSB3aW5kb3ctc3lzdGVtICd3MzIpCi0JKHNldHEgY29t aW50LWlucHV0LXNlbmRlciAnc3FsLXF1ZXJ5LXBsYWNlaG9sZGVycy1hbmQt c2VuZCkpKSkKKyAgICAoaWYgcGFyYW1ldGVyCisJKHNldHEgcGFyYW1ldGVy IChuY29uYyAobGlzdCBwYXJhbWV0ZXIpIHNxbC1vcmFjbGUtb3B0aW9ucykp CisgICAgICAoc2V0cSBwYXJhbWV0ZXIgc3FsLW9yYWNsZS1vcHRpb25zKSkK KyAgICAoc3FsLWNvbm5lY3Qgc3FsLW9yYWNsZS1wcm9ncmFtIHBhcmFtZXRl cikpKQogCiAMCiAKQEAgLTI0MTEsNyArMjkzMiw3IEBACiBgc3FsLWRhdGFi YXNlJyBhcyBkZWZhdWx0cywgaWYgc2V0LiAgQWRkaXRpb25hbCBjb21tYW5k IGxpbmUgcGFyYW1ldGVycwogY2FuIGJlIHN0b3JlZCBpbiB0aGUgbGlzdCBg c3FsLXN5YmFzZS1vcHRpb25zJy4KIAotVGhlIGJ1ZmZlciBpcyBwdXQgaW4g c3FsLWludGVyYWN0aXZlLW1vZGUsIGdpdmluZyBjb21tYW5kcyBmb3Igc2Vu ZGluZworVGhlIGJ1ZmZlciBpcyBwdXQgaW4gYHNxbC1pbnRlcmFjdGl2ZS1t b2RlJywgZ2l2aW5nIGNvbW1hbmRzIGZvciBzZW5kaW5nCiBpbnB1dC4gIFNl ZSBgc3FsLWludGVyYWN0aXZlLW1vZGUnLgogCiBUbyBzcGVjaWZ5IGEgY29k aW5nIHN5c3RlbSBmb3IgY29udmVydGluZyBub24tQVNDSUkgY2hhcmFjdGVy cwpAQCAtMjQyNiw4ICsyOTQ3LDcgQEAKICAgKHNxbC1wcm9kdWN0LWludGVy YWN0aXZlICdzeWJhc2UpKQogCiAoZGVmdW4gc3FsLWNvbm5lY3Qtc3liYXNl ICgpCi0gICJDcmVhdGUgY29taW50IGJ1ZmZlciBhbmQgY29ubmVjdCB0byBT eWJhc2UgdXNpbmcgdGhlIGxvZ2luCi1wYXJhbWV0ZXJzIGFuZCBjb21tYW5k IG9wdGlvbnMuIgorICAiQ3JlYXRlIGNvbWludCBidWZmZXIgYW5kIGNvbm5l Y3QgdG8gU3liYXNlLiIKICAgOzsgUHV0IGFsbCBwYXJhbWV0ZXJzIHRvIHRo ZSBwcm9ncmFtIChpZiBkZWZpbmVkKSBpbiBhIGxpc3QgYW5kIGNhbGwKICAg OzsgbWFrZS1jb21pbnQuCiAgIChsZXQgKChwYXJhbXMgc3FsLXN5YmFzZS1v cHRpb25zKSkKQEAgLTI0MzksOCArMjk1OSw3IEBACiAJKHNldHEgcGFyYW1z IChhcHBlbmQgKGxpc3QgIi1QIiBzcWwtcGFzc3dvcmQpIHBhcmFtcykpKQog ICAgIChpZiAobm90IChzdHJpbmc9ICIiIHNxbC11c2VyKSkKIAkoc2V0cSBw YXJhbXMgKGFwcGVuZCAobGlzdCAiLVUiIHNxbC11c2VyKSBwYXJhbXMpKSkK LSAgICAoc2V0LWJ1ZmZlciAoYXBwbHkgJ21ha2UtY29taW50ICJTUUwiIHNx bC1zeWJhc2UtcHJvZ3JhbQotCQkgICAgICAgbmlsIHBhcmFtcykpKSkKKyAg ICAoc3FsLWNvbm5lY3Qgc3FsLXN5YmFzZS1wcm9ncmFtIHBhcmFtcykpKQog CiAMCiAKQEAgLTI0NTUsNyArMjk3NCw3IEBACiBJbnRlcnByZXRlciB1c2Vk IGNvbWVzIGZyb20gdmFyaWFibGUgYHNxbC1pbmZvcm1peC1wcm9ncmFtJy4g IExvZ2luIHVzZXMKIHRoZSB2YXJpYWJsZSBgc3FsLWRhdGFiYXNlJyBhcyBk ZWZhdWx0LCBpZiBzZXQuCiAKLVRoZSBidWZmZXIgaXMgcHV0IGluIHNxbC1p bnRlcmFjdGl2ZS1tb2RlLCBnaXZpbmcgY29tbWFuZHMgZm9yIHNlbmRpbmcK K1RoZSBidWZmZXIgaXMgcHV0IGluIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScs IGdpdmluZyBjb21tYW5kcyBmb3Igc2VuZGluZwogaW5wdXQuICBTZWUgYHNx bC1pbnRlcmFjdGl2ZS1tb2RlJy4KIAogVG8gc3BlY2lmeSBhIGNvZGluZyBz eXN0ZW0gZm9yIGNvbnZlcnRpbmcgbm9uLUFTQ0lJIGNoYXJhY3RlcnMKQEAg LTI0NzAsMTIgKzI5ODksMTQgQEAKICAgKHNxbC1wcm9kdWN0LWludGVyYWN0 aXZlICdpbmZvcm1peCkpCiAKIChkZWZ1biBzcWwtY29ubmVjdC1pbmZvcm1p eCAoKQotICAiQ3JlYXRlIGNvbWludCBidWZmZXIgYW5kIGNvbm5lY3QgdG8g SW5mb3JtaXggdXNpbmcgdGhlIGxvZ2luCi1wYXJhbWV0ZXJzIGFuZCBjb21t YW5kIG9wdGlvbnMuIgorICAiQ3JlYXRlIGNvbWludCBidWZmZXIgYW5kIGNv bm5lY3QgdG8gSW5mb3JtaXguIgogICA7OyB1c2VybmFtZSBhbmQgcGFzc3dv cmQgYXJlIGlnbm9yZWQuCi0gIChzZXQtYnVmZmVyIChpZiAoc3RyaW5nPSAi IiBzcWwtZGF0YWJhc2UpCi0gICAgICAgICAgICAgICAgICAobWFrZS1jb21p bnQgIlNRTCIgc3FsLWluZm9ybWl4LXByb2dyYW0gbmlsKQotICAgICAgICAg ICAgICAgIChtYWtlLWNvbWludCAiU1FMIiBzcWwtaW5mb3JtaXgtcHJvZ3Jh bSBuaWwgc3FsLWRhdGFiYXNlICItIikpKSkKKyAgKGxldCAoKGRiIChpZiAo c3RyaW5nPSAiIiBzcWwtZGF0YWJhc2UpCisJCSItIgorCSAgICAgIChpZiAo c3RyaW5nPSAiIiBzcWwtc2VydmVyKQorCQkgIHNxbC1kYXRhYmFzZQorCQko Y29uY2F0IHNxbC1kYXRhYmFzZSAiQCIgc3FsLXNlcnZlcikpKSkpCisgICAg KHNxbC1jb25uZWN0IHNxbC1pbmZvcm1peC1wcm9ncmFtIChsaXN0IGRiICIt IikpKSkKIAogDAogCkBAIC0yNDk0LDcgKzMwMTUsNyBAQAogYHNxbC1zZXJ2 ZXInIGFzIGRlZmF1bHRzLCBpZiBzZXQuICBBZGRpdGlvbmFsIGNvbW1hbmQg bGluZSBwYXJhbWV0ZXJzCiBjYW4gYmUgc3RvcmVkIGluIHRoZSBsaXN0IGBz cWwtc3FsaXRlLW9wdGlvbnMnLgogCi1UaGUgYnVmZmVyIGlzIHB1dCBpbiBz cWwtaW50ZXJhY3RpdmUtbW9kZSwgZ2l2aW5nIGNvbW1hbmRzIGZvciBzZW5k aW5nCitUaGUgYnVmZmVyIGlzIHB1dCBpbiBgc3FsLWludGVyYWN0aXZlLW1v ZGUnLCBnaXZpbmcgY29tbWFuZHMgZm9yIHNlbmRpbmcKIGlucHV0LiAgU2Vl IGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuCiAKIFRvIHNwZWNpZnkgYSBjb2Rp bmcgc3lzdGVtIGZvciBjb252ZXJ0aW5nIG5vbi1BU0NJSSBjaGFyYWN0ZXJz CkBAIC0yNTA5LDE3ICszMDMwLDIxIEBACiAgIChzcWwtcHJvZHVjdC1pbnRl cmFjdGl2ZSAnc3FsaXRlKSkKIAogKGRlZnVuIHNxbC1jb25uZWN0LXNxbGl0 ZSAoKQotICAiQ3JlYXRlIGNvbWludCBidWZmZXIgYW5kIGNvbm5lY3QgdG8g U1FMaXRlIHVzaW5nIHRoZSBsb2dpbgotcGFyYW1ldGVycyBhbmQgY29tbWFu ZCBvcHRpb25zLiIKKyAgIkNyZWF0ZSBjb21pbnQgYnVmZmVyIGFuZCBjb25u ZWN0IHRvIFNRTGl0ZS4iCiAgIDs7IFB1dCBhbGwgcGFyYW1ldGVycyB0byB0 aGUgcHJvZ3JhbSAoaWYgZGVmaW5lZCkgaW4gYSBsaXN0IGFuZCBjYWxsCiAg IDs7IG1ha2UtY29taW50LgogICAobGV0ICgocGFyYW1zKSkKICAgICAoaWYg KG5vdCAoc3RyaW5nPSAiIiBzcWwtZGF0YWJhc2UpKQogCShzZXRxIHBhcmFt cyAoYXBwZW5kIChsaXN0IHNxbC1kYXRhYmFzZSkgcGFyYW1zKSkpCisgICAg KGlmIChub3QgKHN0cmluZz0gIiIgc3FsLXNlcnZlcikpCisJKHNldHEgcGFy YW1zIChhcHBlbmQgKGxpc3QgKGNvbmNhdCAiLS1ob3N0PSIgc3FsLXNlcnZl cikpIHBhcmFtcykpKQorICAgIChpZiAobm90IChzdHJpbmc9ICIiIHNxbC1w YXNzd29yZCkpCisJKHNldHEgcGFyYW1zIChhcHBlbmQgKGxpc3QgKGNvbmNh dCAiLS1wYXNzd29yZD0iIHNxbC1wYXNzd29yZCkpIHBhcmFtcykpKQorICAg IChpZiAobm90IChzdHJpbmc9ICIiIHNxbC11c2VyKSkKKwkoc2V0cSBwYXJh bXMgKGFwcGVuZCAobGlzdCAoY29uY2F0ICItLXVzZXI9IiBzcWwtdXNlcikp IHBhcmFtcykpKQogICAgIChpZiAobm90IChudWxsIHNxbC1zcWxpdGUtb3B0 aW9ucykpCiAJKHNldHEgcGFyYW1zIChhcHBlbmQgc3FsLXNxbGl0ZS1vcHRp b25zIHBhcmFtcykpKQotICAgIChzZXQtYnVmZmVyIChhcHBseSAnbWFrZS1j b21pbnQgIlNRTCIgc3FsLXNxbGl0ZS1wcm9ncmFtCi0JCSAgICAgICBuaWwg cGFyYW1zKSkpKQorICAgIChzcWwtY29ubmVjdCBzcWwtc3FsaXRlLXByb2dy YW0gcGFyYW1zKSkpCiAKIAwKIApAQCAtMjUzOCw3ICszMDYzLDcgQEAKIGBz cWwtc2VydmVyJyBhcyBkZWZhdWx0cywgaWYgc2V0LiAgQWRkaXRpb25hbCBj b21tYW5kIGxpbmUgcGFyYW1ldGVycwogY2FuIGJlIHN0b3JlZCBpbiB0aGUg bGlzdCBgc3FsLW15c3FsLW9wdGlvbnMnLgogCi1UaGUgYnVmZmVyIGlzIHB1 dCBpbiBzcWwtaW50ZXJhY3RpdmUtbW9kZSwgZ2l2aW5nIGNvbW1hbmRzIGZv ciBzZW5kaW5nCitUaGUgYnVmZmVyIGlzIHB1dCBpbiBgc3FsLWludGVyYWN0 aXZlLW1vZGUnLCBnaXZpbmcgY29tbWFuZHMgZm9yIHNlbmRpbmcKIGlucHV0 LiAgU2VlIGBzcWwtaW50ZXJhY3RpdmUtbW9kZScuCiAKIFRvIHNwZWNpZnkg YSBjb2Rpbmcgc3lzdGVtIGZvciBjb252ZXJ0aW5nIG5vbi1BU0NJSSBjaGFy YWN0ZXJzCkBAIC0yNTUzLDggKzMwNzgsNyBAQAogICAoc3FsLXByb2R1Y3Qt aW50ZXJhY3RpdmUgJ215c3FsKSkKIAogKGRlZnVuIHNxbC1jb25uZWN0LW15 c3FsICgpCi0gICJDcmVhdGUgY29taW50IGJ1ZmZlciBhbmQgY29ubmVjdCB0 byBNeVNRTCB1c2luZyB0aGUgbG9naW4KLXBhcmFtZXRlcnMgYW5kIGNvbW1h bmQgb3B0aW9ucy4iCisgICJDcmVhdGUgY29taW50IGJ1ZmZlciBhbmQgY29u bmVjdCB0byBNeVNRTC4iCiAgIDs7IFB1dCBhbGwgcGFyYW1ldGVycyB0byB0 aGUgcHJvZ3JhbSAoaWYgZGVmaW5lZCkgaW4gYSBsaXN0IGFuZCBjYWxsCiAg IDs7IG1ha2UtY29taW50LgogICAobGV0ICgocGFyYW1zKSkKQEAgLTI1NjIs MTQgKzMwODYsMTUgQEAKIAkoc2V0cSBwYXJhbXMgKGFwcGVuZCAobGlzdCBz cWwtZGF0YWJhc2UpIHBhcmFtcykpKQogICAgIChpZiAobm90IChzdHJpbmc9 ICIiIHNxbC1zZXJ2ZXIpKQogCShzZXRxIHBhcmFtcyAoYXBwZW5kIChsaXN0 IChjb25jYXQgIi0taG9zdD0iIHNxbC1zZXJ2ZXIpKSBwYXJhbXMpKSkKKyAg ICAoaWYgKG5vdCAoYW5kIHNxbC1wb3J0IChudW1iZXJwIHNxbC1wb3J0KSkp CisJKHNldHEgcGFyYW1zIChhcHBlbmQgKGxpc3QgKGNvbmNhdCAiLS1wb3J0 PSIgKG51bWJlci10by1zdHJpbmcgc3FsLXBvcnQpKSkgcGFyYW1zKSkpCiAg ICAgKGlmIChub3QgKHN0cmluZz0gIiIgc3FsLXBhc3N3b3JkKSkKIAkoc2V0 cSBwYXJhbXMgKGFwcGVuZCAobGlzdCAoY29uY2F0ICItLXBhc3N3b3JkPSIg c3FsLXBhc3N3b3JkKSkgcGFyYW1zKSkpCiAgICAgKGlmIChub3QgKHN0cmlu Zz0gIiIgc3FsLXVzZXIpKQogCShzZXRxIHBhcmFtcyAoYXBwZW5kIChsaXN0 IChjb25jYXQgIi0tdXNlcj0iIHNxbC11c2VyKSkgcGFyYW1zKSkpCiAgICAg KGlmIChub3QgKG51bGwgc3FsLW15c3FsLW9wdGlvbnMpKQogCShzZXRxIHBh cmFtcyAoYXBwZW5kIHNxbC1teXNxbC1vcHRpb25zIHBhcmFtcykpKQotICAg IChzZXQtYnVmZmVyIChhcHBseSAnbWFrZS1jb21pbnQgIlNRTCIgc3FsLW15 c3FsLXByb2dyYW0KLQkJICAgICAgIG5pbCBwYXJhbXMpKSkpCisgICAgKHNx bC1jb25uZWN0IHNxbC1teXNxbC1wcm9ncmFtIHBhcmFtcykpKQogCiAMCiAK QEAgLTI1ODUsNyArMzExMCw3IEBACiB0aGUgdmFyaWFibGVzIGBzcWwtdXNl cicsIGBzcWwtcGFzc3dvcmQnLCBhbmQgYHNxbC1zZXJ2ZXInIGFzCiBkZWZh dWx0cywgaWYgc2V0LgogCi1UaGUgYnVmZmVyIGlzIHB1dCBpbiBzcWwtaW50 ZXJhY3RpdmUtbW9kZSwgZ2l2aW5nIGNvbW1hbmRzIGZvciBzZW5kaW5nCitU aGUgYnVmZmVyIGlzIHB1dCBpbiBgc3FsLWludGVyYWN0aXZlLW1vZGUnLCBn aXZpbmcgY29tbWFuZHMgZm9yIHNlbmRpbmcKIGlucHV0LiAgU2VlIGBzcWwt aW50ZXJhY3RpdmUtbW9kZScuCiAKIFRvIHNwZWNpZnkgYSBjb2Rpbmcgc3lz dGVtIGZvciBjb252ZXJ0aW5nIG5vbi1BU0NJSSBjaGFyYWN0ZXJzCkBAIC0y NjAwLDggKzMxMjUsNyBAQAogICAoc3FsLXByb2R1Y3QtaW50ZXJhY3RpdmUg J3NvbGlkKSkKIAogKGRlZnVuIHNxbC1jb25uZWN0LXNvbGlkICgpCi0gICJD cmVhdGUgY29taW50IGJ1ZmZlciBhbmQgY29ubmVjdCB0byBTb2xpZCB1c2lu ZyB0aGUgbG9naW4KLXBhcmFtZXRlcnMgYW5kIGNvbW1hbmQgb3B0aW9ucy4i CisgICJDcmVhdGUgY29taW50IGJ1ZmZlciBhbmQgY29ubmVjdCB0byBTb2xp ZC4iCiAgIDs7IFB1dCBhbGwgcGFyYW1ldGVycyB0byB0aGUgcHJvZ3JhbSAo aWYgZGVmaW5lZCkgaW4gYSBsaXN0IGFuZCBjYWxsCiAgIDs7IG1ha2UtY29t aW50LgogICAobGV0ICgocGFyYW1zKSkKQEAgLTI2MTEsOCArMzEzNSw3IEBA CiAJKHNldHEgcGFyYW1zIChhcHBlbmQgKGxpc3Qgc3FsLXVzZXIgc3FsLXBh c3N3b3JkKSBwYXJhbXMpKSkKICAgICAoaWYgKG5vdCAoc3RyaW5nPSAiIiBz cWwtc2VydmVyKSkKIAkoc2V0cSBwYXJhbXMgKGFwcGVuZCAobGlzdCBzcWwt c2VydmVyKSBwYXJhbXMpKSkKLSAgICAoc2V0LWJ1ZmZlciAoYXBwbHkgJ21h a2UtY29taW50ICJTUUwiIHNxbC1zb2xpZC1wcm9ncmFtCi0JCSAgICAgICBu aWwgcGFyYW1zKSkpKQorICAgIChzcWwtY29ubmVjdCBzcWwtc29saWQtcHJv Z3JhbSBwYXJhbXMpKSkKIAogDAogCkBAIC0yNjI3LDcgKzMxNTAsNyBAQAog SW50ZXJwcmV0ZXIgdXNlZCBjb21lcyBmcm9tIHZhcmlhYmxlIGBzcWwtaW5n cmVzLXByb2dyYW0nLiAgTG9naW4gdXNlcwogdGhlIHZhcmlhYmxlIGBzcWwt ZGF0YWJhc2UnIGFzIGRlZmF1bHQsIGlmIHNldC4KIAotVGhlIGJ1ZmZlciBp cyBwdXQgaW4gc3FsLWludGVyYWN0aXZlLW1vZGUsIGdpdmluZyBjb21tYW5k cyBmb3Igc2VuZGluZworVGhlIGJ1ZmZlciBpcyBwdXQgaW4gYHNxbC1pbnRl cmFjdGl2ZS1tb2RlJywgZ2l2aW5nIGNvbW1hbmRzIGZvciBzZW5kaW5nCiBp bnB1dC4gIFNlZSBgc3FsLWludGVyYWN0aXZlLW1vZGUnLgogCiBUbyBzcGVj aWZ5IGEgY29kaW5nIHN5c3RlbSBmb3IgY29udmVydGluZyBub24tQVNDSUkg Y2hhcmFjdGVycwpAQCAtMjY0MiwxMiArMzE2NSwxMiBAQAogICAoc3FsLXBy b2R1Y3QtaW50ZXJhY3RpdmUgJ2luZ3JlcykpCiAKIChkZWZ1biBzcWwtY29u bmVjdC1pbmdyZXMgKCkKLSAgIkNyZWF0ZSBjb21pbnQgYnVmZmVyIGFuZCBj b25uZWN0IHRvIEluZ3JlcyB1c2luZyB0aGUgbG9naW4KLXBhcmFtZXRlcnMg YW5kIGNvbW1hbmQgb3B0aW9ucy4iCisgICJDcmVhdGUgY29taW50IGJ1ZmZl ciBhbmQgY29ubmVjdCB0byBJbmdyZXMuIgogICA7OyB1c2VybmFtZSBhbmQg cGFzc3dvcmQgYXJlIGlnbm9yZWQuCi0gIChzZXQtYnVmZmVyIChpZiAoc3Ry aW5nPSAiIiBzcWwtZGF0YWJhc2UpCi0gICAgICAgICAgICAgICAgICAobWFr ZS1jb21pbnQgIlNRTCIgc3FsLWluZ3Jlcy1wcm9ncmFtIG5pbCkKLSAgICAg ICAgICAgICAgICAobWFrZS1jb21pbnQgIlNRTCIgc3FsLWluZ3Jlcy1wcm9n cmFtIG5pbCBzcWwtZGF0YWJhc2UpKSkpCisgIChzcWwtY29ubmVjdCBzcWwt aW5ncmVzLXByb2dyYW0KKwkJIChpZiAoc3RyaW5nPSAiIiBzcWwtZGF0YWJh c2UpCisJCSAgICAgbmlsCisJCSAgIChsaXN0IHNxbC1kYXRhYmFzZSkpKSkK IAogDAogCkBAIC0yNjY0LDcgKzMxODcsNyBAQAogYXMgZGVmYXVsdHMsIGlm IHNldC4gIEFkZGl0aW9uYWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMgY2Fu IGJlIHN0b3JlZAogaW4gdGhlIGxpc3QgYHNxbC1tcy1vcHRpb25zJy4KIAot VGhlIGJ1ZmZlciBpcyBwdXQgaW4gc3FsLWludGVyYWN0aXZlLW1vZGUsIGdp dmluZyBjb21tYW5kcyBmb3Igc2VuZGluZworVGhlIGJ1ZmZlciBpcyBwdXQg aW4gYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJywgZ2l2aW5nIGNvbW1hbmRzIGZv ciBzZW5kaW5nCiBpbnB1dC4gIFNlZSBgc3FsLWludGVyYWN0aXZlLW1vZGUn LgogCiBUbyBzcGVjaWZ5IGEgY29kaW5nIHN5c3RlbSBmb3IgY29udmVydGlu ZyBub24tQVNDSUkgY2hhcmFjdGVycwpAQCAtMjY3OSw4ICszMjAyLDcgQEAK ICAgKHNxbC1wcm9kdWN0LWludGVyYWN0aXZlICdtcykpCiAKIChkZWZ1biBz cWwtY29ubmVjdC1tcyAoKQotICAiQ3JlYXRlIGNvbWludCBidWZmZXIgYW5k IGNvbm5lY3QgdG8gTWljcm9zb2Z0IHVzaW5nIHRoZSBsb2dpbgotcGFyYW1l dGVycyBhbmQgY29tbWFuZCBvcHRpb25zLiIKKyAgIkNyZWF0ZSBjb21pbnQg YnVmZmVyIGFuZCBjb25uZWN0IHRvIE1pY3Jvc29mdCBTUUwgU2VydmVyLiIK ICAgOzsgUHV0IGFsbCBwYXJhbWV0ZXJzIHRvIHRoZSBwcm9ncmFtIChpZiBk ZWZpbmVkKSBpbiBhIGxpc3QgYW5kIGNhbGwKICAgOzsgbWFrZS1jb21pbnQu CiAgIChsZXQgKChwYXJhbXMgc3FsLW1zLW9wdGlvbnMpKQpAQCAtMjY5OSw4 ICszMjIxLDcgQEAKIAk7OyBJZiAtUCBpcyBwYXNzZWQgdG8gSVNRTCBhcyB0 aGUgbGFzdCBhcmd1bWVudCB3aXRob3V0IGEKIAk7OyBwYXNzd29yZCwgaXQn cyBjb25zaWRlcmVkIG51bGwuCiAJKHNldHEgcGFyYW1zIChhcHBlbmQgcGFy YW1zIChsaXN0ICItUCIpKSkpKQotICAgIChzZXQtYnVmZmVyIChhcHBseSAn bWFrZS1jb21pbnQgIlNRTCIgc3FsLW1zLXByb2dyYW0KLQkJICAgICAgIG5p bCBwYXJhbXMpKSkpCisgICAgKHNxbC1jb25uZWN0IHNxbC1tcy1wcm9ncmFt IHBhcmFtcykpKQogCiAMCiAKQEAgLTI3MTcsNyArMzIzOCw3IEBACiBBZGRp dGlvbmFsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzIGNhbiBiZSBzdG9yZWQg aW4gdGhlIGxpc3QKIGBzcWwtcG9zdGdyZXMtb3B0aW9ucycuCiAKLVRoZSBi dWZmZXIgaXMgcHV0IGluIHNxbC1pbnRlcmFjdGl2ZS1tb2RlLCBnaXZpbmcg Y29tbWFuZHMgZm9yIHNlbmRpbmcKK1RoZSBidWZmZXIgaXMgcHV0IGluIGBz cWwtaW50ZXJhY3RpdmUtbW9kZScsIGdpdmluZyBjb21tYW5kcyBmb3Igc2Vu ZGluZwogaW5wdXQuICBTZWUgYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJy4KIAog VG8gc3BlY2lmeSBhIGNvZGluZyBzeXN0ZW0gZm9yIGNvbnZlcnRpbmcgbm9u LUFTQ0lJIGNoYXJhY3RlcnMKQEAgLTI3MzcsOCArMzI1OCw3IEBACiAgIChz cWwtcHJvZHVjdC1pbnRlcmFjdGl2ZSAncG9zdGdyZXMpKQogCiAoZGVmdW4g c3FsLWNvbm5lY3QtcG9zdGdyZXMgKCkKLSAgIkNyZWF0ZSBjb21pbnQgYnVm ZmVyIGFuZCBjb25uZWN0IHRvIFBvc3RncmVzIHVzaW5nIHRoZSBsb2dpbgot cGFyYW1ldGVycyBhbmQgY29tbWFuZCBvcHRpb25zLiIKKyAgIkNyZWF0ZSBj b21pbnQgYnVmZmVyIGFuZCBjb25uZWN0IHRvIFBvc3RncmVzLiIKICAgOzsg dXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFyZSBpZ25vcmVkLiAgTWFyayBTdG9z YmVyZyBzdWdnZXN0IHRvIGFkZAogICA7OyB0aGUgZGF0YWJhc2UgYXQgdGhl IGVuZC4gIEphc29uIEJlZWdhbiBzdWdnZXN0IHVzaW5nIC0tcHNldCBhbmQK ICAgOzsgcGFnZXI9b2ZmIGluc3RlYWQgb2YgXFxvfGNhdC4gIFRoZSBsYXRl ciB3YXMgdGhlIHNvbHV0aW9uIGJ5CkBAIC0yNzUxLDggKzMyNzEsNyBAQAog CShzZXRxIHBhcmFtcyAoYXBwZW5kIChsaXN0ICItaCIgc3FsLXNlcnZlcikg cGFyYW1zKSkpCiAgICAgKGlmIChub3QgKHN0cmluZz0gIiIgc3FsLXVzZXIp KQogCShzZXRxIHBhcmFtcyAoYXBwZW5kIChsaXN0ICItVSIgc3FsLXVzZXIp IHBhcmFtcykpKQotICAgIChzZXQtYnVmZmVyIChhcHBseSAnbWFrZS1jb21p bnQgIlNRTCIgc3FsLXBvc3RncmVzLXByb2dyYW0KLQkJICAgICAgIG5pbCBw YXJhbXMpKSkpCisgICAgKHNxbC1jb25uZWN0IHNxbC1wb3N0Z3Jlcy1wcm9n cmFtIHBhcmFtcykpKQogCiAMCiAKQEAgLTI3NjgsNyArMzI4Nyw3IEBACiB1 c2VzIHRoZSB2YXJpYWJsZXMgYHNxbC11c2VyJywgYHNxbC1wYXNzd29yZCcs IGFuZCBgc3FsLWRhdGFiYXNlJyBhcwogZGVmYXVsdHMsIGlmIHNldC4KIAot VGhlIGJ1ZmZlciBpcyBwdXQgaW4gc3FsLWludGVyYWN0aXZlLW1vZGUsIGdp dmluZyBjb21tYW5kcyBmb3Igc2VuZGluZworVGhlIGJ1ZmZlciBpcyBwdXQg aW4gYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJywgZ2l2aW5nIGNvbW1hbmRzIGZv ciBzZW5kaW5nCiBpbnB1dC4gIFNlZSBgc3FsLWludGVyYWN0aXZlLW1vZGUn LgogCiBUbyBzcGVjaWZ5IGEgY29kaW5nIHN5c3RlbSBmb3IgY29udmVydGlu ZyBub24tQVNDSUkgY2hhcmFjdGVycwpAQCAtMjc4Myw4ICszMzAyLDcgQEAK ICAgKHNxbC1wcm9kdWN0LWludGVyYWN0aXZlICdpbnRlcmJhc2UpKQogCiAo ZGVmdW4gc3FsLWNvbm5lY3QtaW50ZXJiYXNlICgpCi0gICJDcmVhdGUgY29t aW50IGJ1ZmZlciBhbmQgY29ubmVjdCB0byBJbnRlcmJhc2UgdXNpbmcgdGhl IGxvZ2luCi1wYXJhbWV0ZXJzIGFuZCBjb21tYW5kIG9wdGlvbnMuIgorICAi Q3JlYXRlIGNvbWludCBidWZmZXIgYW5kIGNvbm5lY3QgdG8gSW50ZXJiYXNl LiIKICAgOzsgUHV0IGFsbCBwYXJhbWV0ZXJzIHRvIHRoZSBwcm9ncmFtIChp ZiBkZWZpbmVkKSBpbiBhIGxpc3QgYW5kIGNhbGwKICAgOzsgbWFrZS1jb21p bnQuCiAgIChsZXQgKChwYXJhbXMgc3FsLWludGVyYmFzZS1vcHRpb25zKSkK QEAgLTI3OTQsOCArMzMxMiw3IEBACiAJKHNldHEgcGFyYW1zIChhcHBlbmQg KGxpc3QgIi1wIiBzcWwtcGFzc3dvcmQpIHBhcmFtcykpKQogICAgIChpZiAo bm90IChzdHJpbmc9ICIiIHNxbC1kYXRhYmFzZSkpCiAgICAgICAgIChzZXRx IHBhcmFtcyAoY29ucyBzcWwtZGF0YWJhc2UgcGFyYW1zKSkpIDsgYWRkIHRv IHRoZSBmcm9udCEKLSAgICAoc2V0LWJ1ZmZlciAoYXBwbHkgJ21ha2UtY29t aW50ICJTUUwiIHNxbC1pbnRlcmJhc2UtcHJvZ3JhbQotCQkgICAgICAgbmls IHBhcmFtcykpKSkKKyAgICAoc3FsLWNvbm5lY3Qgc3FsLWludGVyYmFzZS1w cm9ncmFtIHBhcmFtcykpKQogCiAMCiAKQEAgLTI4MTAsNyArMzMyNyw3IEBA CiBJbnRlcnByZXRlciB1c2VkIGNvbWVzIGZyb20gdmFyaWFibGUgYHNxbC1k YjItcHJvZ3JhbScuICBUaGVyZSBpcyBub3QKIGF1dG9tYXRpYyBsb2dpbi4K IAotVGhlIGJ1ZmZlciBpcyBwdXQgaW4gc3FsLWludGVyYWN0aXZlLW1vZGUs IGdpdmluZyBjb21tYW5kcyBmb3Igc2VuZGluZworVGhlIGJ1ZmZlciBpcyBw dXQgaW4gYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJywgZ2l2aW5nIGNvbW1hbmRz IGZvciBzZW5kaW5nCiBpbnB1dC4gIFNlZSBgc3FsLWludGVyYWN0aXZlLW1v ZGUnLgogCiBJZiB5b3UgdXNlIFxcW3NxbC1hY2N1bXVsYXRlLWFuZC1pbmRl bnRdIHRvIHNlbmQgbXVsdGlsaW5lIGNvbW1hbmRzIHRvCkBAIC0yODMwLDE0 ICszMzQ3LDEzIEBACiAgIChzcWwtcHJvZHVjdC1pbnRlcmFjdGl2ZSAnZGIy KSkKIAogKGRlZnVuIHNxbC1jb25uZWN0LWRiMiAoKQotICAiQ3JlYXRlIGNv bWludCBidWZmZXIgYW5kIGNvbm5lY3QgdG8gREIyIHVzaW5nIHRoZSBsb2dp bgotcGFyYW1ldGVycyBhbmQgY29tbWFuZCBvcHRpb25zLiIKKyAgIkNyZWF0 ZSBjb21pbnQgYnVmZmVyIGFuZCBjb25uZWN0IHRvIERCMi4iCiAgIDs7IFB1 dCBhbGwgcGFyYW1ldGVycyB0byB0aGUgcHJvZ3JhbSAoaWYgZGVmaW5lZCkg aW4gYSBsaXN0IGFuZCBjYWxsCiAgIDs7IG1ha2UtY29taW50LgotICAoc2V0 LWJ1ZmZlciAoYXBwbHkgJ21ha2UtY29taW50ICJTUUwiIHNxbC1kYjItcHJv Z3JhbQotCQkgICAgIG5pbCBzcWwtZGIyLW9wdGlvbnMpKQotICA7OyBQcm9w ZXJseSBlc2NhcGUgbmV3bGluZXMgd2hlbiBEQjIgaXMgaW50ZXJhY3RpdmUu Ci0gIChzZXRxIGNvbWludC1pbnB1dC1zZW5kZXIgJ3NxbC1lc2NhcGUtbmV3 bGluZXMtYW5kLXNlbmQpKQorICAoc3FsLWNvbm5lY3Qgc3FsLWRiMi1wcm9n cmFtIHNxbC1kYjItb3B0aW9ucykKKykKKzs7ICAgOzsgUHJvcGVybHkgZXNj YXBlIG5ld2xpbmVzIHdoZW4gREIyIGlzIGludGVyYWN0aXZlLgorOzsgICAo c2V0cSBjb21pbnQtaW5wdXQtc2VuZGVyICdzcWwtZXNjYXBlLW5ld2xpbmVz LWFuZC1zZW5kKSkKIAogOzs7IyMjYXV0b2xvYWQKIChkZWZ1biBzcWwtbGlu dGVyICgpCkBAIC0yODUwLDcgKzMzNjYsNyBAQAogSW50ZXJwcmV0ZXIgdXNl ZCBjb21lcyBmcm9tIHZhcmlhYmxlIGBzcWwtbGludGVyLXByb2dyYW0nIC0g dXN1YWxseSBgaW5sJy4KIExvZ2luIHVzZXMgdGhlIHZhcmlhYmxlcyBgc3Fs LXVzZXInLCBgc3FsLXBhc3N3b3JkJywgYHNxbC1kYXRhYmFzZScgYW5kCiBg c3FsLXNlcnZlcicgYXMgZGVmYXVsdHMsIGlmIHNldC4gIEFkZGl0aW9uYWwg Y29tbWFuZCBsaW5lIHBhcmFtZXRlcnMKLWNhbiBiZSBzdG9yZWQgaW4gdGhl IGxpc3QgYHNxbC1saW50ZXItb3B0aW9ucycuIFJ1biBpbmwgLWggdG8gZ2V0 IGhlbHAgb24KK2NhbiBiZSBzdG9yZWQgaW4gdGhlIGxpc3QgYHNxbC1saW50 ZXItb3B0aW9ucycuICBSdW4gaW5sIC1oIHRvIGdldCBoZWxwIG9uCiBwYXJh bWV0ZXJzLgogCiBgc3FsLWRhdGFiYXNlJyBpcyB1c2VkIHRvIHNldCB0aGUg TElOVEVSX01CWCBlbnZpcm9ubWVudCB2YXJpYWJsZSBmb3IKQEAgLTI4NTks NyArMzM3NSw3IEBACiBmb3IgdGhpcyB0byB3b3JrKS4gIElmIGBzcWwtcGFz c3dvcmQnIGlzIGFuIGVtcHR5IHN0cmluZywgaW5sIHdpbGwgdXNlCiBhbiBl bXB0eSBwYXNzd29yZC4KIAotVGhlIGJ1ZmZlciBpcyBwdXQgaW4gc3FsLWlu dGVyYWN0aXZlLW1vZGUsIGdpdmluZyBjb21tYW5kcyBmb3Igc2VuZGluZwor VGhlIGJ1ZmZlciBpcyBwdXQgaW4gYHNxbC1pbnRlcmFjdGl2ZS1tb2RlJywg Z2l2aW5nIGNvbW1hbmRzIGZvciBzZW5kaW5nCiBpbnB1dC4gIFNlZSBgc3Fs LWludGVyYWN0aXZlLW1vZGUnLgogCiBcKFR5cGUgXFxbZGVzY3JpYmUtbW9k ZV0gaW4gdGhlIFNRTCBidWZmZXIgZm9yIGEgbGlzdCBvZiBjb21tYW5kcy4p IgpAQCAtMjg2NywyMSArMzM4MywyNiBAQAogICAoc3FsLXByb2R1Y3QtaW50 ZXJhY3RpdmUgJ2xpbnRlcikpCiAKIChkZWZ1biBzcWwtY29ubmVjdC1saW50 ZXIgKCkKLSAgIkNyZWF0ZSBjb21pbnQgYnVmZmVyIGFuZCBjb25uZWN0IHRv IExpbnRlciB1c2luZyB0aGUgbG9naW4KLXBhcmFtZXRlcnMgYW5kIGNvbW1h bmQgb3B0aW9ucy4iCisgICJDcmVhdGUgY29taW50IGJ1ZmZlciBhbmQgY29u bmVjdCB0byBMaW50ZXIuIgogICA7OyBQdXQgYWxsIHBhcmFtZXRlcnMgdG8g dGhlIHByb2dyYW0gKGlmIGRlZmluZWQpIGluIGEgbGlzdCBhbmQgY2FsbAog ICA7OyBtYWtlLWNvbWludC4KLSAgKGxldCAoKHBhcmFtcyBzcWwtbGludGVy LW9wdGlvbnMpIChsb2dpbiBuaWwpIChvbGQtbWJ4IChnZXRlbnYgIkxJTlRF Ul9NQlgiKSkpCisgIChsZXQgKChwYXJhbXMgc3FsLWxpbnRlci1vcHRpb25z KQorICAgICAgICAobG9naW4gbmlsKQorICAgICAgICAob2xkLW1ieCAoZ2V0 ZW52ICJMSU5URVJfTUJYIikpKQorCiAgICAgKGlmIChub3QgKHN0cmluZz0g IiIgc3FsLXVzZXIpKQogCShzZXRxIGxvZ2luIChjb25jYXQgc3FsLXVzZXIg Ii8iIHNxbC1wYXNzd29yZCkpKQogICAgIChzZXRxIHBhcmFtcyAoYXBwZW5k IChsaXN0ICItdSIgbG9naW4pIHBhcmFtcykpCisKICAgICAoaWYgKG5vdCAo c3RyaW5nPSAiIiBzcWwtc2VydmVyKSkKIAkoc2V0cSBwYXJhbXMgKGFwcGVu ZCAobGlzdCAiLW4iIHNxbC1zZXJ2ZXIpIHBhcmFtcykpKQorCiAgICAgKGlm IChzdHJpbmc9ICIiIHNxbC1kYXRhYmFzZSkKIAkoc2V0ZW52ICJMSU5URVJf TUJYIiBuaWwpCiAgICAgICAoc2V0ZW52ICJMSU5URVJfTUJYIiBzcWwtZGF0 YWJhc2UpKQotICAgIChzZXQtYnVmZmVyIChhcHBseSAnbWFrZS1jb21pbnQg IlNRTCIgc3FsLWxpbnRlci1wcm9ncmFtIG5pbAotCQkgICAgICAgcGFyYW1z KSkKKworICAgIChzcWwtY29ubmVjdCBzcWwtbGludGVyLXByb2dyYW0gcGFy YW1zKQorCiAgICAgKHNldGVudiAiTElOVEVSX01CWCIgb2xkLW1ieCkpKQog CiAMCkBAIC0yODkwLDMgKzM0MTEsNCBAQAogCiA7OyBhcmNoLXRhZzogN2Ux ZmExYzQtOWNhMi00MDJlLTg3ZDItODNhNWVjY2I3YWMzCiA7Ozsgc3FsLmVs IGVuZHMgaGVyZQorCgo= --0-264348697-1271391280=:60852--