From unknown Fri Jun 20 07:18:50 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#42914 <42914@debbugs.gnu.org> To: bug#42914 <42914@debbugs.gnu.org> Subject: Status: [PATCH] Fixed indentation and mix used of space and tabs. Reply-To: bug#42914 <42914@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:18:50 +0000 retitle 42914 [PATCH] Fixed indentation and mix used of space and tabs. reassign 42914 emacs submitter 42914 Jen-Chieh Shen severity 42914 normal tag 42914 wontfix patch thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 18 10:03:02 2020 Received: (at submit) by debbugs.gnu.org; 18 Aug 2020 14:03:02 +0000 Received: from localhost ([127.0.0.1]:36545 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k82Cc-0001nj-Dq for submit@debbugs.gnu.org; Tue, 18 Aug 2020 10:03:02 -0400 Received: from lists.gnu.org ([209.51.188.17]:59678) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k82Cb-0001nL-AU for submit@debbugs.gnu.org; Tue, 18 Aug 2020 10:03:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57998) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k82Cb-0007YU-2a for bug-gnu-emacs@gnu.org; Tue, 18 Aug 2020 10:03:01 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:41840) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k82CX-0006GH-9N for bug-gnu-emacs@gnu.org; Tue, 18 Aug 2020 10:03:00 -0400 Received: by mail-wr1-x436.google.com with SMTP id r2so18403511wrs.8 for ; Tue, 18 Aug 2020 07:02:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=0eO6DBoeWTG91e3C4XDTPCxyN6vcv8UxBX3p5LPKuSI=; b=vBCLrMa0AOV+VyDJplL0KdQ5oCtt0mGwRsg0gzZ+YwOZ8F5znbB/tHQeWn5FmuT61c AnwshOzFN8GbhD9tFuF9G0HOr5OKyVnor80sbTMhs5fLyji1Z+dehvd1n3m9e2y7gsqU ghJi+d546I/6txOQX8zd7lTbS/1llW1XePIpZgJ8se37LJTMdVUQ9gy0O+kvbNhzjg7y hkJdK790tUUvhy5GgPn/aJ6V8C8S87xph91P8dOxfjlsoc2C8sSRy6AgmwQKNMBZYw4p /HZDuvUAnTpftbnOu1LvJ9IVooQoC0u1spbE6TlIGNUJ0mdB1J8XK5xf01UziRw58d9O wIdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=0eO6DBoeWTG91e3C4XDTPCxyN6vcv8UxBX3p5LPKuSI=; b=my7pO9G4uq/nuuJRCHneisiAgwpI+9pL8M5xybpJqLvabpcd8rjYVFcFD9tx6xKESb 8pOWljkTf6RPh4Dw5J4JkiSx3TFSGXvDQKZigK3jHSYy7VTMbS3slMBdd97kxdVvbq7r l0ulWzGB0LBWPBNYCCKNVQN5VydCEWiVsrzjz3/o43PeEP5n8o6brdj2ID3vklJtocCa 014tq6/jp5NWK8i7sbhdbGhdON9gH97cWDF4BMStfE0RuSqC7QHeUVRIUCcfYx4WgbXh 0dug/jXcRQ153NatLNA8wyDege2yVshmXtvKGD+6tijmkG4YvnCEaBglLdq749fJt2Uc E2mA== X-Gm-Message-State: AOAM532DXuJZd/kbfJXi+kgTeSlKrpG7Zlg15yQLPJD1tHZAchVOrlZi gTaM2cBtJjMr4U2IMhbWtwiC5yswfvOlSybu1kJHW6tDu4UDvw== X-Google-Smtp-Source: ABdhPJw3JdUm84HfGMkzdfDNSVyChLCriyOuOBk2yIm1mg6pngt4gydtHeYY2vTry+4iq4B0j90gZD3z7Uyhv+4cxoE= X-Received: by 2002:a5d:4a41:: with SMTP id v1mr22125966wrs.371.1597759374763; Tue, 18 Aug 2020 07:02:54 -0700 (PDT) MIME-Version: 1.0 From: Jen-Chieh Shen Date: Tue, 18 Aug 2020 22:02:43 +0800 Message-ID: Subject: [PATCH] Fixed indentation and mix used of space and tabs. To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="000000000000f85a7f05ad2757be" Received-SPF: pass client-ip=2a00:1450:4864:20::436; envelope-from=jcs090218@gmail.com; helo=mail-wr1-x436.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --000000000000f85a7f05ad2757be Content-Type: multipart/alternative; boundary="000000000000f85a7d05ad2757bc" --000000000000f85a7d05ad2757bc Content-Type: text/plain; charset="UTF-8" When I am editing the file `lisp/window.el` I found some indentation issues and mixed use of space and tab. Is there a specific reason that these issues exist? Best, Jen-Chieh Shen --000000000000f85a7d05ad2757bc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
When I am editing the file `lisp/window.el` I fo= und some indentation issues and mixed use of space and tab. Is there a spec= ific reason that these issues exist?

Best,

Jen-Chieh Shen
--000000000000f85a7d05ad2757bc-- --000000000000f85a7f05ad2757be Content-Type: application/octet-stream; name="ind-and-mix.patch" Content-Disposition: attachment; filename="ind-and-mix.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ke00kz7s0 RnJvbSA5OGU5YTdkNDFjNjZhN2QwODIxMjgzNDcyZGNmYTFjODRkYmE5YmIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqZW5jaGllaCA8amNzMDkwMjE4QGdtYWlsLmNvbT4KRGF0ZTog VHVlLCAxOCBBdWcgMjAyMCAyMTo1NToxNiArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIGlu ZGVudGF0aW9uIGFuZCBtaXggdXNlZCBvZiBzcGFjZSBhbmQgdGFicy4KCi0tLQogbGlzcC93aW5k b3cuZWwgfCA2MjM2ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDMxMTggaW5zZXJ0aW9ucygrKSwgMzExOCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9saXNwL3dpbmRvdy5lbCBiL2xpc3Avd2luZG93LmVsCmluZGV4IGJi MzRhNmQ3YjQuLmNhZGM5NjNjYjggMTAwNjQ0Ci0tLSBhL2xpc3Avd2luZG93LmVsCisrKyBiL2xp c3Avd2luZG93LmVsCkBAIC03Niw3ICs3Niw3IEBAIGFyZSBub3QgYWx0ZXJlZCBieSB0aGlzIG1h Y3JvICh1bmxlc3MgdGhleSBhcmUgYWx0ZXJlZCBpbiBCT0RZKS4iCiAgIGAobGV0ICgoc2F2ZS1z ZWxlY3RlZC13aW5kb3ctLXN0YXRlIChpbnRlcm5hbC0tYmVmb3JlLXNhdmUtc2VsZWN0ZWQtd2lu ZG93KSkpCiAgICAgIChzYXZlLWN1cnJlbnQtYnVmZmVyCiAgICAgICAgKHVud2luZC1wcm90ZWN0 Ci0JICAgKHByb2duICxAYm9keSkKKyAgICAgICAgICAgKHByb2duICxAYm9keSkKICAgICAgICAg IChpbnRlcm5hbC0tYWZ0ZXItc2F2ZS1zZWxlY3RlZC13aW5kb3cgc2F2ZS1zZWxlY3RlZC13aW5k b3ctLXN0YXRlKSkpKSkKIAogKGRlZnZhciB0ZW1wLWJ1ZmZlci13aW5kb3ctc2V0dXAtaG9vayBu aWwKQEAgLTkzLDcgKzkzLDcgQEAgZGlzcGxheWVkIGFuZCBjdXJyZW50IGFuZCBpdHMgd2luZG93 IHNlbGVjdGVkLiIpCiAgICJTZXQgdXAgdGVtcG9yYXJ5IGJ1ZmZlciBzcGVjaWZpZWQgYnkgQlVG RkVSLU9SLU5BTUUuCiBSZXR1cm4gdGhlIGJ1ZmZlci4iCiAgIChsZXQgKChvbGQtZGlyIGRlZmF1 bHQtZGlyZWN0b3J5KQotCShidWZmZXIgKGdldC1idWZmZXItY3JlYXRlIGJ1ZmZlci1vci1uYW1l KSkpCisgICAgICAgIChidWZmZXIgKGdldC1idWZmZXItY3JlYXRlIGJ1ZmZlci1vci1uYW1lKSkp CiAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCiAgICAgICAoa2lsbC1hbGwtbG9jYWwt dmFyaWFibGVzKQogICAgICAgKHNldHEgZGVmYXVsdC1kaXJlY3Rvcnkgb2xkLWRpcikKQEAgLTEw Miw5ICsxMDIsOSBAQCBSZXR1cm4gdGhlIGJ1ZmZlci4iCiAgICAgICAoc2V0cSBidWZmZXItZmls ZS1uYW1lIG5pbCkKICAgICAgIChzZXRxIGJ1ZmZlci11bmRvLWxpc3QgdCkKICAgICAgIChsZXQg KChpbmhpYml0LXJlYWQtb25seSB0KQotCSAgICAoaW5oaWJpdC1tb2RpZmljYXRpb24taG9va3Mg dCkpCi0JKGVyYXNlLWJ1ZmZlcikKLQkocnVuLWhvb2tzICd0ZW1wLWJ1ZmZlci13aW5kb3ctc2V0 dXAtaG9vaykpCisgICAgICAgICAgICAoaW5oaWJpdC1tb2RpZmljYXRpb24taG9va3MgdCkpCisg ICAgICAgIChlcmFzZS1idWZmZXIpCisgICAgICAgIChydW4taG9va3MgJ3RlbXAtYnVmZmVyLXdp bmRvdy1zZXR1cC1ob29rKSkKICAgICAgIDs7IFJldHVybiB0aGUgYnVmZmVyLgogICAgICAgYnVm ZmVyKSkpCiAKQEAgLTExOCwyOSArMTE4LDI5IEBAIHRvIGBkaXNwbGF5LWJ1ZmZlcicuIgogICAg ICAgKHNldHEgYnVmZmVyLXJlYWQtb25seSB0KQogICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWlu KSkKICAgICAgICh3aGVuIChsZXQgKCh3aW5kb3ctY29tYmluYXRpb24tbGltaXQKLQkJICAgOzsg V2hlbiBgd2luZG93LWNvbWJpbmF0aW9uLWxpbWl0JyBlcXVhbHMKLQkJICAgOzsgYHRlbXAtYnVm ZmVyJyBvciBgdGVtcC1idWZmZXItcmVzaXplJyBhbmQKLQkJICAgOzsgYHRlbXAtYnVmZmVyLXJl c2l6ZS1tb2RlJyBpcyBlbmFibGVkIGluIHRoaXMKLQkJICAgOzsgYnVmZmVyIGJpbmQgaXQgdG8g dCBzbyByZXNpemluZyBzdGVhbHMgc3BhY2UKLQkJICAgOzsgcHJlZmVyYWJseSBmcm9tIHRoZSB3 aW5kb3cgdGhhdCB3YXMgc3BsaXQuCi0JCSAgIChpZiAob3IgKGVxIHdpbmRvdy1jb21iaW5hdGlv bi1saW1pdCAndGVtcC1idWZmZXIpCi0JCQkgICAoYW5kIChlcSB3aW5kb3ctY29tYmluYXRpb24t bGltaXQKLQkJCQkgICAgJ3RlbXAtYnVmZmVyLXJlc2l6ZSkKLQkJCQl0ZW1wLWJ1ZmZlci1yZXNp emUtbW9kZSkpCi0JCSAgICAgICB0Ci0JCSAgICAgd2luZG93LWNvbWJpbmF0aW9uLWxpbWl0KSkp Ci0JICAgICAgKHNldHEgd2luZG93IChkaXNwbGF5LWJ1ZmZlciBidWZmZXIgYWN0aW9uKSkpCi0J KHNldHEgZnJhbWUgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKQotCSh1bmxlc3MgKGVxIGZyYW1lIChz ZWxlY3RlZC1mcmFtZSkpCi0JICAocmFpc2UtZnJhbWUgZnJhbWUpKQotCShzZXRxIG1pbmlidWZm ZXItc2Nyb2xsLXdpbmRvdyB3aW5kb3cpCi0JKHNldC13aW5kb3ctaHNjcm9sbCB3aW5kb3cgMCkK LQkod2l0aC1zZWxlY3RlZC13aW5kb3cgd2luZG93Ci0JICAocnVuLWhvb2tzICd0ZW1wLWJ1ZmZl ci13aW5kb3ctc2hvdy1ob29rKQotCSAgKHdoZW4gdGVtcC1idWZmZXItcmVzaXplLW1vZGUKLQkg ICAgKHJlc2l6ZS10ZW1wLWJ1ZmZlci13aW5kb3cgd2luZG93KSkpCi0JOzsgUmV0dXJuIHRoZSB3 aW5kb3cuCi0Jd2luZG93KSkpKQorICAgICAgICAgICAgICAgICAgIDs7IFdoZW4gYHdpbmRvdy1j b21iaW5hdGlvbi1saW1pdCcgZXF1YWxzCisgICAgICAgICAgICAgICAgICAgOzsgYHRlbXAtYnVm ZmVyJyBvciBgdGVtcC1idWZmZXItcmVzaXplJyBhbmQKKyAgICAgICAgICAgICAgICAgICA7OyBg dGVtcC1idWZmZXItcmVzaXplLW1vZGUnIGlzIGVuYWJsZWQgaW4gdGhpcworICAgICAgICAgICAg ICAgICAgIDs7IGJ1ZmZlciBiaW5kIGl0IHRvIHQgc28gcmVzaXppbmcgc3RlYWxzIHNwYWNlCisg ICAgICAgICAgICAgICAgICAgOzsgcHJlZmVyYWJseSBmcm9tIHRoZSB3aW5kb3cgdGhhdCB3YXMg c3BsaXQuCisgICAgICAgICAgICAgICAgICAgKGlmIChvciAoZXEgd2luZG93LWNvbWJpbmF0aW9u LWxpbWl0ICd0ZW1wLWJ1ZmZlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGVx IHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3RlbXAtYnVmZmVyLXJlc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGVtcC1idWZmZXItcmVzaXplLW1vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICB0Cisg ICAgICAgICAgICAgICAgICAgICB3aW5kb3ctY29tYmluYXRpb24tbGltaXQpKSkKKyAgICAgICAg ICAgICAgKHNldHEgd2luZG93IChkaXNwbGF5LWJ1ZmZlciBidWZmZXIgYWN0aW9uKSkpCisgICAg ICAgIChzZXRxIGZyYW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkKKyAgICAgICAgKHVubGVzcyAo ZXEgZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkKKyAgICAgICAgICAocmFpc2UtZnJhbWUgZnJhbWUp KQorICAgICAgICAoc2V0cSBtaW5pYnVmZmVyLXNjcm9sbC13aW5kb3cgd2luZG93KQorICAgICAg ICAoc2V0LXdpbmRvdy1oc2Nyb2xsIHdpbmRvdyAwKQorICAgICAgICAod2l0aC1zZWxlY3RlZC13 aW5kb3cgd2luZG93CisgICAgICAgICAgKHJ1bi1ob29rcyAndGVtcC1idWZmZXItd2luZG93LXNo b3ctaG9vaykKKyAgICAgICAgICAod2hlbiB0ZW1wLWJ1ZmZlci1yZXNpemUtbW9kZQorICAgICAg ICAgICAgKHJlc2l6ZS10ZW1wLWJ1ZmZlci13aW5kb3cgd2luZG93KSkpCisgICAgICAgIDs7IFJl dHVybiB0aGUgd2luZG93LgorICAgICAgICB3aW5kb3cpKSkpCiAKIChkZWZtYWNybyB3aXRoLXRl bXAtYnVmZmVyLXdpbmRvdyAoYnVmZmVyLW9yLW5hbWUgYWN0aW9uIHF1aXQtZnVuY3Rpb24gJnJl c3QgYm9keSkKICAgIkJpbmQgYHN0YW5kYXJkLW91dHB1dCcgdG8gQlVGRkVSLU9SLU5BTUUsIGV2 YWwgQk9EWSwgc2hvdyB0aGUgYnVmZmVyLgpAQCAtMTgzLDIxICsxODMsMjEgQEAgYnVmZmVyIGlu IEhlbHAgbW9kZSwgbm9yIGB0ZW1wLWJ1ZmZlci1zaG93LWZ1bmN0aW9uJyAodGhlIEFDVElPTgog YXJndW1lbnQgcmVwbGFjZXMgdGhpcykuIgogICAoZGVjbGFyZSAoZGVidWcgdCkgKGluZGVudCAz KSkKICAgKGxldCAoKGJ1ZmZlciAobWFrZS1zeW1ib2wgImJ1ZmZlciIpKQotCSh3aW5kb3cgKG1h a2Utc3ltYm9sICJ3aW5kb3ciKSkKLQkodmFsdWUgKG1ha2Utc3ltYm9sICJ2YWx1ZSIpKSkKKyAg ICAgICAgKHdpbmRvdyAobWFrZS1zeW1ib2wgIndpbmRvdyIpKQorICAgICAgICAodmFsdWUgKG1h a2Utc3ltYm9sICJ2YWx1ZSIpKSkKICAgICAobWFjcm9leHAtbGV0MiogbmlsICgodmJ1ZmZlci1v ci1uYW1lIGJ1ZmZlci1vci1uYW1lKQotCQkJICh2YWN0aW9uIGFjdGlvbikKLQkJCSAodnF1aXQt ZnVuY3Rpb24gcXVpdC1mdW5jdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHZhY3Rp b24gYWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICh2cXVpdC1mdW5jdGlvbiBxdWl0 LWZ1bmN0aW9uKSkKICAgICAgIGAobGV0KiAoKCxidWZmZXIgKHRlbXAtYnVmZmVyLXdpbmRvdy1z ZXR1cCAsdmJ1ZmZlci1vci1uYW1lKSkKLQkgICAgICAoc3RhbmRhcmQtb3V0cHV0ICxidWZmZXIp Ci0JICAgICAgLHdpbmRvdyAsdmFsdWUpCi0JIChzZXRxICx2YWx1ZSAocHJvZ24gLEBib2R5KSkK LQkgKHdpdGgtY3VycmVudC1idWZmZXIgLGJ1ZmZlcgotCSAgIChzZXRxICx3aW5kb3cgKHRlbXAt YnVmZmVyLXdpbmRvdy1zaG93ICxidWZmZXIgLHZhY3Rpb24pKSkKKyAgICAgICAgICAgICAgKHN0 YW5kYXJkLW91dHB1dCAsYnVmZmVyKQorICAgICAgICAgICAgICAsd2luZG93ICx2YWx1ZSkKKyAg ICAgICAgIChzZXRxICx2YWx1ZSAocHJvZ24gLEBib2R5KSkKKyAgICAgICAgICh3aXRoLWN1cnJl bnQtYnVmZmVyICxidWZmZXIKKyAgICAgICAgICAgKHNldHEgLHdpbmRvdyAodGVtcC1idWZmZXIt d2luZG93LXNob3cgLGJ1ZmZlciAsdmFjdGlvbikpKQogCi0JIChpZiAoZnVuY3Rpb25wICx2cXVp dC1mdW5jdGlvbikKLQkgICAgIChmdW5jYWxsICx2cXVpdC1mdW5jdGlvbiAsd2luZG93ICx2YWx1 ZSkKLQkgICAsdmFsdWUpKSkpKQorICAgICAgICAgKGlmIChmdW5jdGlvbnAgLHZxdWl0LWZ1bmN0 aW9uKQorICAgICAgICAgICAgIChmdW5jYWxsICx2cXVpdC1mdW5jdGlvbiAsd2luZG93ICx2YWx1 ZSkKKyAgICAgICAgICAgLHZhbHVlKSkpKSkKIAogKGRlZm1hY3JvIHdpdGgtY3VycmVudC1idWZm ZXItd2luZG93IChidWZmZXItb3ItbmFtZSBhY3Rpb24gcXVpdC1mdW5jdGlvbiAmcmVzdCBib2R5 KQogICAiRXZhbHVhdGUgQk9EWSB3aXRoIGEgYnVmZmVyIEJVRkZFUi1PUi1OQU1FIGN1cnJlbnQg YW5kIHNob3cgdGhhdCBidWZmZXIuCkBAIC0yMDYsMjEgKzIwNiwyMSBAQCBtYWtlcyB0aGUgYnVm ZmVyIHNwZWNpZmllZCBieSBCVUZGRVItT1ItTkFNRSBjdXJyZW50IGZvciBydW5uaW5nCiBCT0RZ LiIKICAgKGRlY2xhcmUgKGRlYnVnIHQpIChpbmRlbnQgMykpCiAgIChsZXQgKChidWZmZXIgKG1h a2Utc3ltYm9sICJidWZmZXIiKSkKLQkod2luZG93IChtYWtlLXN5bWJvbCAid2luZG93IikpCi0J KHZhbHVlIChtYWtlLXN5bWJvbCAidmFsdWUiKSkpCisgICAgICAgICh3aW5kb3cgKG1ha2Utc3lt Ym9sICJ3aW5kb3ciKSkKKyAgICAgICAgKHZhbHVlIChtYWtlLXN5bWJvbCAidmFsdWUiKSkpCiAg ICAgKG1hY3JvZXhwLWxldDIqIG5pbCAoKHZidWZmZXItb3ItbmFtZSBidWZmZXItb3ItbmFtZSkK LQkJCSAodmFjdGlvbiBhY3Rpb24pCi0JCQkgKHZxdWl0LWZ1bmN0aW9uIHF1aXQtZnVuY3Rpb24p KQorICAgICAgICAgICAgICAgICAgICAgICAgICh2YWN0aW9uIGFjdGlvbikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAodnF1aXQtZnVuY3Rpb24gcXVpdC1mdW5jdGlvbikpCiAgICAgICBgKGxl dCogKCgsYnVmZmVyICh0ZW1wLWJ1ZmZlci13aW5kb3ctc2V0dXAgLHZidWZmZXItb3ItbmFtZSkp Ci0JICAgICAgKHN0YW5kYXJkLW91dHB1dCAsYnVmZmVyKQotCSAgICAgICx3aW5kb3cgLHZhbHVl KQotCSAod2l0aC1jdXJyZW50LWJ1ZmZlciAsYnVmZmVyCi0JICAgKHNldHEgLHZhbHVlIChwcm9n biAsQGJvZHkpKQotCSAgIChzZXRxICx3aW5kb3cgKHRlbXAtYnVmZmVyLXdpbmRvdy1zaG93ICxi dWZmZXIgLHZhY3Rpb24pKSkKKyAgICAgICAgICAgICAgKHN0YW5kYXJkLW91dHB1dCAsYnVmZmVy KQorICAgICAgICAgICAgICAsd2luZG93ICx2YWx1ZSkKKyAgICAgICAgICh3aXRoLWN1cnJlbnQt YnVmZmVyICxidWZmZXIKKyAgICAgICAgICAgKHNldHEgLHZhbHVlIChwcm9nbiAsQGJvZHkpKQor ICAgICAgICAgICAoc2V0cSAsd2luZG93ICh0ZW1wLWJ1ZmZlci13aW5kb3ctc2hvdyAsYnVmZmVy ICx2YWN0aW9uKSkpCiAKLQkgKGlmIChmdW5jdGlvbnAgLHZxdWl0LWZ1bmN0aW9uKQotCSAgICAg KGZ1bmNhbGwgLHZxdWl0LWZ1bmN0aW9uICx3aW5kb3cgLHZhbHVlKQotCSAgICx2YWx1ZSkpKSkp CisgICAgICAgICAoaWYgKGZ1bmN0aW9ucCAsdnF1aXQtZnVuY3Rpb24pCisgICAgICAgICAgICAg KGZ1bmNhbGwgLHZxdWl0LWZ1bmN0aW9uICx3aW5kb3cgLHZhbHVlKQorICAgICAgICAgICAsdmFs dWUpKSkpKQogCiAoZGVmbWFjcm8gd2l0aC1kaXNwbGF5ZWQtYnVmZmVyLXdpbmRvdyAoYnVmZmVy LW9yLW5hbWUgYWN0aW9uIHF1aXQtZnVuY3Rpb24gJnJlc3QgYm9keSkKICAgIlNob3cgYSBidWZm ZXIgQlVGRkVSLU9SLU5BTUUgYW5kIGV2YWx1YXRlIEJPRFkgaW4gdGhhdCBidWZmZXIuCkBAIC0y MzAsMTMgKzIzMCwxMyBAQCBkaXNwbGF5cyB0aGUgYnVmZmVyIHNwZWNpZmllZCBieSBCVUZGRVIt T1ItTkFNRSBiZWZvcmUgcnVubmluZyBCT0RZLiIKICAgICAgICAgICAgKG9ic29sZXRlICJ1c2Ug YHdpdGgtY3VycmVudC1idWZmZXItd2luZG93JyB3aXRoIGFjdGlvbiBhbGlzdCBlbnRyeSBgYm9k eS1mdW5jdGlvbicuIgogICAgICAgICAgICAgICAgICAgICAgIjI4LjEiKSkKICAgKGxldCAoKGJ1 ZmZlciAobWFrZS1zeW1ib2wgImJ1ZmZlciIpKQotCSh3aW5kb3cgKG1ha2Utc3ltYm9sICJ3aW5k b3ciKSkKLQkodmFsdWUgKG1ha2Utc3ltYm9sICJ2YWx1ZSIpKSkKKyAgICAgICAgKHdpbmRvdyAo bWFrZS1zeW1ib2wgIndpbmRvdyIpKQorICAgICAgICAodmFsdWUgKG1ha2Utc3ltYm9sICJ2YWx1 ZSIpKSkKICAgICAobWFjcm9leHAtbGV0MiogbmlsICgodmJ1ZmZlci1vci1uYW1lIGJ1ZmZlci1v ci1uYW1lKQotCQkJICh2YWN0aW9uIGFjdGlvbikKLQkJCSAodnF1aXQtZnVuY3Rpb24gcXVpdC1m dW5jdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHZhY3Rpb24gYWN0aW9uKQorICAg ICAgICAgICAgICAgICAgICAgICAgICh2cXVpdC1mdW5jdGlvbiBxdWl0LWZ1bmN0aW9uKSkKICAg ICAgIGAobGV0KiAoKCxidWZmZXIgKHRlbXAtYnVmZmVyLXdpbmRvdy1zZXR1cCAsdmJ1ZmZlci1v ci1uYW1lKSkKLQkgICAgICAoc3RhbmRhcmQtb3V0cHV0ICxidWZmZXIpCisgICAgICAgICAgICAg IChzdGFuZGFyZC1vdXRwdXQgLGJ1ZmZlcikKICAgICAgICAgICAgICAgOzsgSWYgYSAnd2luZG93 LWhlaWdodCcgZW50cnkgc3BlY2lmaWVzIGEgZnVuY3Rpb24sCiAgICAgICAgICAgICAgIDs7IHJl bWVtYmVyIGl0IGhlcmUgaW4gb3JkZXIgdG8gY2FsbCBpdCBiZWxvdyBidXQgcmVwbGFjZQogICAg ICAgICAgICAgICA7OyB0aGUgZW50cnkgc28gYHdpbmRvdy0tdHJ5LXRvLXNwbGl0LXdpbmRvdycg d2lsbCBiaW5kCkBAIC0yNTQsMzEgKzI1NCwzMSBAQCBkaXNwbGF5cyB0aGUgYnVmZmVyIHNwZWNp ZmllZCBieSBCVUZGRVItT1ItTkFNRSBiZWZvcmUgcnVubmluZyBCT0RZLiIKICAgICAgICAgICAg ICAgICAgICAgICAgICcod2luZG93LWhlaWdodCAuIHQpCiAgICAgICAgICAgICAgICAgICAgICAg ICAoYXNzcS1kZWxldGUtYWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbmRvdy1oZWln aHQgKGNkciAoY29weS1zZXF1ZW5jZSAsdmFjdGlvbikpKSkpKSkKLQkgICAgICAsd2luZG93ICx2 YWx1ZSkKLQkgKHdpdGgtY3VycmVudC1idWZmZXIgLGJ1ZmZlcgotCSAgIChzZXRxICx3aW5kb3cg KHRlbXAtYnVmZmVyLXdpbmRvdy1zaG93CisgICAgICAgICAgICAgICx3aW5kb3cgLHZhbHVlKQor ICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgLGJ1ZmZlcgorICAgICAgICAgICAoc2V0cSAs d2luZG93ICh0ZW1wLWJ1ZmZlci13aW5kb3ctc2hvdwogICAgICAgICAgICAgICAgICAgICAgICAg ICAsYnVmZmVyIChvciB2YWN0aW9uLWNvcGllZCAsdmFjdGlvbikpKSkKIAotCSAobGV0ICgoaW5o aWJpdC1yZWFkLW9ubHkgdCkKLQkgICAgICAgKGluaGliaXQtbW9kaWZpY2F0aW9uLWhvb2tzIHQp KQotCSAgIChzZXRxICx2YWx1ZSAocHJvZ24gLEBib2R5KSkpCisgICAgICAgICAobGV0ICgoaW5o aWJpdC1yZWFkLW9ubHkgdCkKKyAgICAgICAgICAgICAgIChpbmhpYml0LW1vZGlmaWNhdGlvbi1o b29rcyB0KSkKKyAgICAgICAgICAgKHNldHEgLHZhbHVlIChwcm9nbiAsQGJvZHkpKSkKIAotCSAo c2V0LXdpbmRvdy1wb2ludCAsd2luZG93IChwb2ludC1taW4pKQorICAgICAgICAgKHNldC13aW5k b3ctcG9pbnQgLHdpbmRvdyAocG9pbnQtbWluKSkKIAotCSAod2hlbiB2aGVpZ2h0LWZ1bmN0aW9u Ci0JICAgKGlnbm9yZS1lcnJvcnMKLQkgICAgIChzZXQtd2luZG93LXBhcmFtZXRlciAsd2luZG93 ICdwcmVzZXJ2ZS1zaXplIG5pbCkKKyAgICAgICAgICh3aGVuIHZoZWlnaHQtZnVuY3Rpb24KKyAg ICAgICAgICAgKGlnbm9yZS1lcnJvcnMKKyAgICAgICAgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0 ZXIgLHdpbmRvdyAncHJlc2VydmUtc2l6ZSBuaWwpCiAgICAgICAgICAgICAgKGZ1bmNhbGwgdmhl aWdodC1mdW5jdGlvbiAsd2luZG93KSkpCiAKLQkgKHdoZW4gKGNvbnNwIChjZHIgKGFzc3EgJ3By ZXNlcnZlLXNpemUgKGNkciAsdmFjdGlvbikpKSkKLQkgICAod2luZG93LXByZXNlcnZlLXNpemUK LQkgICAgLHdpbmRvdyB0IChjYWRyIChhc3NxICdwcmVzZXJ2ZS1zaXplIChjZHIgLHZhY3Rpb24p KSkpCi0JICAod2luZG93LXByZXNlcnZlLXNpemUKLQkgICAgLHdpbmRvdyBuaWwgKGNkZHIgKGFz c3EgJ3ByZXNlcnZlLXNpemUgKGNkciAsdmFjdGlvbikpKSkpCisgICAgICAgICAod2hlbiAoY29u c3AgKGNkciAoYXNzcSAncHJlc2VydmUtc2l6ZSAoY2RyICx2YWN0aW9uKSkpKQorICAgICAgICAg ICAod2luZG93LXByZXNlcnZlLXNpemUKKyAgICAgICAgICAgICx3aW5kb3cgdCAoY2FkciAoYXNz cSAncHJlc2VydmUtc2l6ZSAoY2RyICx2YWN0aW9uKSkpKQorICAgICAgICAgICAod2luZG93LXBy ZXNlcnZlLXNpemUKKyAgICAgICAgICAgICx3aW5kb3cgbmlsIChjZGRyIChhc3NxICdwcmVzZXJ2 ZS1zaXplIChjZHIgLHZhY3Rpb24pKSkpKQogCi0JIChpZiAoZnVuY3Rpb25wICx2cXVpdC1mdW5j dGlvbikKLQkgICAgIChmdW5jYWxsICx2cXVpdC1mdW5jdGlvbiAsd2luZG93ICx2YWx1ZSkKLQkg ICAsdmFsdWUpKSkpKQorICAgICAgICAgKGlmIChmdW5jdGlvbnAgLHZxdWl0LWZ1bmN0aW9uKQor ICAgICAgICAgICAgIChmdW5jYWxsICx2cXVpdC1mdW5jdGlvbiAsd2luZG93ICx2YWx1ZSkKKyAg ICAgICAgICAgLHZhbHVlKSkpKSkKIAogKGRlZm1hY3JvIHdpdGgtd2luZG93LW5vbi1kZWRpY2F0 ZWQgKHdpbmRvdyAmcmVzdCBib2R5KQogICAiRXZhbHVhdGUgQk9EWSB3aXRoIFdJTkRPVyB0ZW1w b3JhcmlseSBtYWRlIG5vbi1kZWRpY2F0ZWQuCkBAIC0zMjYsOCArMzI2LDggQEAgV0lORE9XIGNh biBiZSBhbnkgd2luZG93LiIKICAgKGxldCAoKGNvdW50IDApKQogICAgICh3aGVuIChhbmQgKHdp bmRvd3Agd2luZG93KSAoc2V0cSB3aW5kb3cgKHdpbmRvdy1jaGlsZCB3aW5kb3cpKSkKICAgICAg ICh3aGlsZSB3aW5kb3cKLQkoc2V0cSBjb3VudCAoMSsgY291bnQpKQotCShzZXRxIHdpbmRvdyAo d2luZG93LW5leHQtc2libGluZyB3aW5kb3cpKSkpCisgICAgICAgIChzZXRxIGNvdW50ICgxKyBj b3VudCkpCisgICAgICAgIChzZXRxIHdpbmRvdyAod2luZG93LW5leHQtc2libGluZyB3aW5kb3cp KSkpCiAgICAgY291bnQpKQogCiAoZGVmdW4gd2luZG93LWxhc3QtY2hpbGQgKHdpbmRvdykKQEAg LTM1Nyw3ICszNTcsNyBAQCBzdGFuZHMgZm9yIHRoZSBjdXJyZW50IGJ1ZmZlci4iCiAgICAgICAg ICAgKHQKICAgICAgICAgICAgKGVycm9yICJObyBzdWNoIGJ1ZmZlciAlcyIgYnVmZmVyLW9yLW5h bWUpKSkpKQogICAgIChpZiAoYnVmZmVyLWxpdmUtcCBidWZmZXIpCi0JYnVmZmVyCisgICAgICAg IGJ1ZmZlcgogICAgICAgKGVycm9yICJObyBzdWNoIGxpdmUgYnVmZmVyICVzIiBidWZmZXItb3It bmFtZSkpKSkKIAogKGRlZnVuIHdpbmRvdy1ub3JtYWxpemUtZnJhbWUgKGZyYW1lKQpAQCAtMzcw LDggKzM3MCw4IEBAIFRoaXMgZnVuY3Rpb24gaXMgY29tbW9ubHkgdXNlZCB0byBwcm9jZXNzIHRo ZSAodXN1YWxseSBvcHRpb25hbCkKIG5pbCBzdGFuZHMgZm9yIHRoZSBzZWxlY3RlZCBmcmFtZS4i CiAgIChpZiBmcmFtZQogICAgICAgKGlmIChmcmFtZS1saXZlLXAgZnJhbWUpCi0JICBmcmFtZQot CShlcnJvciAiJXMgaXMgbm90IGEgbGl2ZSBmcmFtZSIgZnJhbWUpKQorICAgICAgICAgIGZyYW1l CisgICAgICAgIChlcnJvciAiJXMgaXMgbm90IGEgbGl2ZSBmcmFtZSIgZnJhbWUpKQogICAgIChz ZWxlY3RlZC1mcmFtZSkpKQogCiAoZGVmdW4gd2luZG93LW5vcm1hbGl6ZS13aW5kb3cgKHdpbmRv dyAmb3B0aW9uYWwgbGl2ZS1vbmx5KQpAQCAtMzg5LDcgKzM4OSw3IEBAIGZvciB0aGUgc2VsZWN0 ZWQgd2luZG93LiIKICAgICAoc2VsZWN0ZWQtd2luZG93KSkKICAgIChsaXZlLW9ubHkKICAgICAo aWYgKHdpbmRvdy1saXZlLXAgd2luZG93KQotCXdpbmRvdworICAgICAgICB3aW5kb3cKICAgICAg IChlcnJvciAiJXMgaXMgbm90IGEgbGl2ZSB3aW5kb3ciIHdpbmRvdykpKQogICAgKCh3aW5kb3ct dmFsaWQtcCB3aW5kb3cpCiAgICAgd2luZG93KQpAQCAtNDA4LDE0ICs0MDgsMTQgQEAgd2luZG93 J3MgZnJhbWUuICBJbiBhbnkgb3RoZXIgY2FzZSwgcmV0dXJuIHRoZSB2YWx1ZSBvZgogT3B0aW9u YWwgYXJndW1lbnQgSE9SSVpPTlRBTCBub24tbmlsIG1lYW5zIHRvIHJldHVybiB0aGUgdmFsdWUg b2YKIGBmcmFtZS1jaGFyLXdpZHRoJyBmb3IgV0lORE9XLU9SLUZSQU1FLiIKICAgKGxldCAoKGZy YW1lCi0JIChjb25kCi0JICAoKHdpbmRvdy12YWxpZC1wIHdpbmRvdy1vci1mcmFtZSkKLQkgICAo d2luZG93LWZyYW1lIHdpbmRvdy1vci1mcmFtZSkpCi0JICAoKGZyYW1lLWxpdmUtcCB3aW5kb3ct b3ItZnJhbWUpCi0JICAgd2luZG93LW9yLWZyYW1lKQotCSAgKHQgKHNlbGVjdGVkLWZyYW1lKSkp KSkKKyAgICAgICAgIChjb25kCisgICAgICAgICAgKCh3aW5kb3ctdmFsaWQtcCB3aW5kb3ctb3It ZnJhbWUpCisgICAgICAgICAgICh3aW5kb3ctZnJhbWUgd2luZG93LW9yLWZyYW1lKSkKKyAgICAg ICAgICAoKGZyYW1lLWxpdmUtcCB3aW5kb3ctb3ItZnJhbWUpCisgICAgICAgICAgIHdpbmRvdy1v ci1mcmFtZSkKKyAgICAgICAgICAodCAoc2VsZWN0ZWQtZnJhbWUpKSkpKQogICAgIChpZiBob3Jp em9udGFsCi0JKGZyYW1lLWNoYXItd2lkdGggZnJhbWUpCisgICAgICAgIChmcmFtZS1jaGFyLXdp ZHRoIGZyYW1lKQogICAgICAgKGZyYW1lLWNoYXItaGVpZ2h0IGZyYW1lKSkpKQogCiAoZGVmdmFy IGlnbm9yZS13aW5kb3ctcGFyYW1ldGVycyBuaWwKQEAgLTUxNiw5ICs1MTYsOSBAQCBub24tbmls IGlmIFdJTkRPVyBpcyBwYXJ0IG9mIGEgaG9yaXpvbnRhbCB3aW5kb3cgY29tYmluYXRpb24uIgog ICAoc2V0cSB3aW5kb3cgKHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdykpCiAgIChsZXQg KChwYXJlbnQgKHdpbmRvdy1wYXJlbnQgd2luZG93KSkpCiAgICAgKGFuZCBwYXJlbnQKLQkgKGlm IGhvcml6b250YWwKLQkgICAgICh3aW5kb3ctbGVmdC1jaGlsZCBwYXJlbnQpCi0JICAgKHdpbmRv dy10b3AtY2hpbGQgcGFyZW50KSkpKSkKKyAgICAgICAgIChpZiBob3Jpem9udGFsCisgICAgICAg ICAgICAgKHdpbmRvdy1sZWZ0LWNoaWxkIHBhcmVudCkKKyAgICAgICAgICAgKHdpbmRvdy10b3At Y2hpbGQgcGFyZW50KSkpKSkKIAogKGRlZnVuIHdpbmRvdy1jb21iaW5hdGlvbi1wICgmb3B0aW9u YWwgd2luZG93IGhvcml6b250YWwpCiAgICJSZXR1cm4gV0lORE9XJ3MgZmlyc3QgY2hpbGQgaWYg V0lORE9XIGlzIGEgdmVydGljYWwgY29tYmluYXRpb24uCkBAIC01NDQsMzAgKzU0NCwzMCBAQCBm aXhlZC1zaXplIHdpbmRvd3MgaW4gdGhlIGNhbGN1bGF0aW9uLiIKICAgICA7OyBJZiBXSU5ET1cg aXMgbGl2ZSwgcmV0dXJuIDEuCiAgICAgMSkKICAgICgoaWYgaG9yaXpvbnRhbAotCSh3aW5kb3ct bGVmdC1jaGlsZCB3aW5kb3cpCisgICAgICAgICh3aW5kb3ctbGVmdC1jaGlsZCB3aW5kb3cpCiAg ICAgICAod2luZG93LXRvcC1jaGlsZCB3aW5kb3cpKQogICAgIDs7IElmIFdJTkRPVyBpcyBpc28t Y29tYmluZWQsIHJldHVybiB0aGUgc3VtIG9mIHRoZSB2YWx1ZXMgZm9yIGFsbAogICAgIDs7IGNo aWxkIHdpbmRvd3Mgb2YgV0lORE9XLgogICAgIChsZXQgKChjaGlsZCAod2luZG93LWNoaWxkIHdp bmRvdykpCi0JICAoY291bnQgMCkpCisgICAgICAgICAgKGNvdW50IDApKQogICAgICAgKHdoaWxl IGNoaWxkCi0JKHVubGVzcyAoYW5kIGlnbm9yZS1maXhlZCAod2luZG93LXNpemUtZml4ZWQtcCBj aGlsZCBob3Jpem9udGFsKSkKLQkgIChzZXRxIGNvdW50Ci0JCSgrICh3aW5kb3ctY29tYmluYXRp b25zIGNoaWxkIGhvcml6b250YWwgaWdub3JlLWZpeGVkKQotCQkgICBjb3VudCkpKQotCShzZXRx IGNoaWxkICh3aW5kb3ctcmlnaHQgY2hpbGQpKSkKKyAgICAgICAgKHVubGVzcyAoYW5kIGlnbm9y ZS1maXhlZCAod2luZG93LXNpemUtZml4ZWQtcCBjaGlsZCBob3Jpem9udGFsKSkKKyAgICAgICAg ICAoc2V0cSBjb3VudAorICAgICAgICAgICAgICAgICgrICh3aW5kb3ctY29tYmluYXRpb25zIGNo aWxkIGhvcml6b250YWwgaWdub3JlLWZpeGVkKQorICAgICAgICAgICAgICAgICAgIGNvdW50KSkp CisgICAgICAgIChzZXRxIGNoaWxkICh3aW5kb3ctcmlnaHQgY2hpbGQpKSkKICAgICAgIGNvdW50 KSkKICAgICh0CiAgICAgOzsgSWYgV0lORE9XIGlzIG5vdCBpc28tY29tYmluZWQsIHJldHVybiB0 aGUgbWF4aW11bSB2YWx1ZSBvZiBhbnkKICAgICA7OyBjaGlsZCB3aW5kb3cgb2YgV0lORE9XLgog ICAgIChsZXQgKChjaGlsZCAod2luZG93LWNoaWxkIHdpbmRvdykpCi0JICAoY291bnQgMSkpCisg ICAgICAgICAgKGNvdW50IDEpKQogICAgICAgKHdoaWxlIGNoaWxkCi0JKHVubGVzcyAoYW5kIGln bm9yZS1maXhlZCAod2luZG93LXNpemUtZml4ZWQtcCBjaGlsZCBob3Jpem9udGFsKSkKLQkgIChz ZXRxIGNvdW50Ci0JCShtYXggKHdpbmRvdy1jb21iaW5hdGlvbnMgY2hpbGQgaG9yaXpvbnRhbCBp Z25vcmUtZml4ZWQpCi0JCSAgICAgY291bnQpKSkKLQkoc2V0cSBjaGlsZCAod2luZG93LXJpZ2h0 IGNoaWxkKSkpCisgICAgICAgICh1bmxlc3MgKGFuZCBpZ25vcmUtZml4ZWQgKHdpbmRvdy1zaXpl LWZpeGVkLXAgY2hpbGQgaG9yaXpvbnRhbCkpCisgICAgICAgICAgKHNldHEgY291bnQKKyAgICAg ICAgICAgICAgICAobWF4ICh3aW5kb3ctY29tYmluYXRpb25zIGNoaWxkIGhvcml6b250YWwgaWdu b3JlLWZpeGVkKQorICAgICAgICAgICAgICAgICAgICAgY291bnQpKSkKKyAgICAgICAgKHNldHEg Y2hpbGQgKHdpbmRvdy1yaWdodCBjaGlsZCkpKQogICAgICAgY291bnQpKSkpCiAKIChkZWZ1biB3 YWxrLXdpbmRvdy10cmVlLTEgKGZ1biB3YWxrLXdpbmRvdy10cmVlLXdpbmRvdyBhbnkgJm9wdGlv bmFsIHN1Yi1vbmx5KQpAQCAtNTc1LDE4ICs1NzUsMTggQEAgZml4ZWQtc2l6ZSB3aW5kb3dzIGlu IHRoZSBjYWxjdWxhdGlvbi4iCiAgIChsZXQgKHdhbGstd2luZG93LXRyZWUtYnVmZmVyKQogICAg ICh3aGlsZSB3YWxrLXdpbmRvdy10cmVlLXdpbmRvdwogICAgICAgKHNldHEgd2Fsay13aW5kb3ct dHJlZS1idWZmZXIKLQkgICAgKHdpbmRvdy1idWZmZXIgd2Fsay13aW5kb3ctdHJlZS13aW5kb3cp KQorICAgICAgICAgICAgKHdpbmRvdy1idWZmZXIgd2Fsay13aW5kb3ctdHJlZS13aW5kb3cpKQog ICAgICAgKHdoZW4gKG9yIHdhbGstd2luZG93LXRyZWUtYnVmZmVyIGFueSkKLQkoZnVuY2FsbCBm dW4gd2Fsay13aW5kb3ctdHJlZS13aW5kb3cpKQorICAgICAgICAoZnVuY2FsbCBmdW4gd2Fsay13 aW5kb3ctdHJlZS13aW5kb3cpKQogICAgICAgKHVubGVzcyB3YWxrLXdpbmRvdy10cmVlLWJ1ZmZl cgotCSh3YWxrLXdpbmRvdy10cmVlLTEKLQkgZnVuICh3aW5kb3ctbGVmdC1jaGlsZCB3YWxrLXdp bmRvdy10cmVlLXdpbmRvdykgYW55KQotCSh3YWxrLXdpbmRvdy10cmVlLTEKLQkgZnVuICh3aW5k b3ctdG9wLWNoaWxkIHdhbGstd2luZG93LXRyZWUtd2luZG93KSBhbnkpKQorICAgICAgICAod2Fs ay13aW5kb3ctdHJlZS0xCisgICAgICAgICBmdW4gKHdpbmRvdy1sZWZ0LWNoaWxkIHdhbGstd2lu ZG93LXRyZWUtd2luZG93KSBhbnkpCisgICAgICAgICh3YWxrLXdpbmRvdy10cmVlLTEKKyAgICAg ICAgIGZ1biAod2luZG93LXRvcC1jaGlsZCB3YWxrLXdpbmRvdy10cmVlLXdpbmRvdykgYW55KSkK ICAgICAgIChpZiBzdWItb25seQotCSAgKHNldHEgd2Fsay13aW5kb3ctdHJlZS13aW5kb3cgbmls KQotCShzZXRxIHdhbGstd2luZG93LXRyZWUtd2luZG93Ci0JICAgICAgKHdpbmRvdy1yaWdodCB3 YWxrLXdpbmRvdy10cmVlLXdpbmRvdykpKSkpKQorICAgICAgICAgIChzZXRxIHdhbGstd2luZG93 LXRyZWUtd2luZG93IG5pbCkKKyAgICAgICAgKHNldHEgd2Fsay13aW5kb3ctdHJlZS13aW5kb3cK KyAgICAgICAgICAgICAgKHdpbmRvdy1yaWdodCB3YWxrLXdpbmRvdy10cmVlLXdpbmRvdykpKSkp KQogCiAoZGVmdW4gd2Fsay13aW5kb3ctdHJlZSAoZnVuICZvcHRpb25hbCBmcmFtZSBhbnkgbWlu aWJ1ZikKICAgIlJ1biBmdW5jdGlvbiBGVU4gb24gZWFjaCBsaXZlIHdpbmRvdyBvZiBGUkFNRS4K QEAgLTYxMSwxMSArNjExLDExIEBAIHVucHJlZGljdGFibGUuIgogICAgICAgKHdhbGstd2luZG93 LXRyZWUtMSBmdW4gcm9vdCBhbnkpKQogICAgIDs7IFJ1biBGVU4gb24gRlJBTUUncyBtaW5pYnVm ZmVyIHdpbmRvdyBpZiByZXF1ZXN0ZWQuCiAgICAgKHdoZW4gKGFuZCAod2luZG93LWxpdmUtcCBt aW5pKQotCSAgICAgICAoZXEgKHdpbmRvdy1mcmFtZSBtaW5pKSBmcmFtZSkKLQkgICAgICAgKG9y IChlcSBtaW5pYnVmIHQpCi0JCSAgIChhbmQgKG5vdCBtaW5pYnVmKQorICAgICAgICAgICAgICAg KGVxICh3aW5kb3ctZnJhbWUgbWluaSkgZnJhbWUpCisgICAgICAgICAgICAgICAob3IgKGVxIG1p bmlidWYgdCkKKyAgICAgICAgICAgICAgICAgICAoYW5kIChub3QgbWluaWJ1ZikKICAgICAgICAg ICAgICAgICAgICAgICAgIChtaW5pYnVmZmVyLXdpbmRvdy1hY3RpdmUtcCBtaW5pKSkpKQotCShm dW5jYWxsIGZ1biBtaW5pKSkpKQorICAgICAgKGZ1bmNhbGwgZnVuIG1pbmkpKSkpCiAKIChkZWZ1 biB3YWxrLXdpbmRvdy1zdWJ0cmVlIChmdW4gJm9wdGlvbmFsIHdpbmRvdyBhbnkpCiAgICJSdW4g ZnVuY3Rpb24gRlVOIG9uIHRoZSBzdWJ0cmVlIG9mIHdpbmRvd3Mgcm9vdGVkIGF0IFdJTkRPVy4K QEAgLTY0OCw5ICs2NDgsOSBAQCBuZWl0aGVyIG5pbCBub3IgdCBtZWFucyBuZXZlciBjb25zaWRl ciB0aGUgbWluaWJ1ZmZlciB3aW5kb3cuIgogICAgIChjYXRjaCAnZm91bmQKICAgICAgICh3YWxr LXdpbmRvdy10cmVlCiAgICAgICAgKGxhbWJkYSAod2luZG93KQotCSAod2hlbiAoYW5kIChzZXRx IHRoaXMtdmFsdWUgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93IHBhcmFtZXRlcikpCi0JCSAgICAo b3IgKG5vdCB2YWx1ZSkgKGVxdWFsIHZhbHVlIHRoaXMtdmFsdWUpKSkKLQkgICAodGhyb3cgJ2Zv dW5kIHdpbmRvdykpKQorICAgICAgICAgKHdoZW4gKGFuZCAoc2V0cSB0aGlzLXZhbHVlICh3aW5k b3ctcGFyYW1ldGVyIHdpbmRvdyBwYXJhbWV0ZXIpKQorICAgICAgICAgICAgICAgICAgICAob3Ig KG5vdCB2YWx1ZSkgKGVxdWFsIHZhbHVlIHRoaXMtdmFsdWUpKSkKKyAgICAgICAgICAgKHRocm93 ICdmb3VuZCB3aW5kb3cpKSkKICAgICAgICBmcmFtZSBhbnkgbWluaWJ1ZikpKSkKIAogOzs7IEF0 b21pYyB3aW5kb3dzLgpAQCAtNjczLDcgKzY3Myw3IEBAIFdJTkRPVyBtdXN0IGJlIGFuIGludGVy bmFsIHdpbmRvdy4gIFJldHVybiBXSU5ET1cuIgogICAgICh3YWxrLXdpbmRvdy1zdWJ0cmVlCiAg ICAgIChsYW1iZGEgKHdpbmRvdykKICAgICAgICAodW5sZXNzICh3aW5kb3ctcGFyYW1ldGVyIHdp bmRvdyAnd2luZG93LWF0b20pCi0JIChzZXQtd2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRv dy1hdG9tIHQpKSkKKyAgICAgICAgIChzZXQtd2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRv dy1hdG9tIHQpKSkKICAgICAgd2luZG93IHQpCiAgICAgd2luZG93KSkKIApAQCAtNzEyLDI2ICs3 MTIsMjYgQEAgbm9kZSBgKGVsaXNwKSBCdWZmZXIgRGlzcGxheSBBY3Rpb24gRnVuY3Rpb25zJy4g IEl0IHNob3VsZCBiZQogY2FsbGVkIG9ubHkgYnkgYGRpc3BsYXktYnVmZmVyJyBvciBhIGZ1bmN0 aW9uIGRpcmVjdGx5IG9yCiBpbmRpcmVjdGx5IGNhbGxlZCBieSB0aGUgbGF0dGVyLiIKICAgKGxl dCogKChpZ25vcmUtd2luZG93LXBhcmFtZXRlcnMgdCkKLQkgKHdpbmRvdy1jb21iaW5hdGlvbi1s aW1pdCB0KQotCSAod2luZG93LWNvbWJpbmF0aW9uLXJlc2l6ZSAnYXRvbSkKLQkgKHdpbmRvdyAo Y2RyIChhc3NxICd3aW5kb3cgYWxpc3QpKSkKLQkgKHNpZGUgKG9yIChjZHIgKGFzc3EgJ3NpZGUg YWxpc3QpKSAnYmVsb3cpKQotCSAoYXRvbSAod2hlbiB3aW5kb3cgKHdpbmRvdy1wYXJhbWV0ZXIg d2luZG93ICd3aW5kb3ctYXRvbSkpKQotCSByb290IG5ldykKKyAgICAgICAgICh3aW5kb3ctY29t YmluYXRpb24tbGltaXQgdCkKKyAgICAgICAgICh3aW5kb3ctY29tYmluYXRpb24tcmVzaXplICdh dG9tKQorICAgICAgICAgKHdpbmRvdyAoY2RyIChhc3NxICd3aW5kb3cgYWxpc3QpKSkKKyAgICAg ICAgIChzaWRlIChvciAoY2RyIChhc3NxICdzaWRlIGFsaXN0KSkgJ2JlbG93KSkKKyAgICAgICAg IChhdG9tICh3aGVuIHdpbmRvdyAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1hdG9t KSkpCisgICAgICAgICByb290IG5ldykKICAgICAoc2V0cSB3aW5kb3cgKHdpbmRvdy1ub3JtYWxp emUtd2luZG93IHdpbmRvdykpCiAgICAgKHNldHEgcm9vdCAod2luZG93LWF0b20tcm9vdCB3aW5k b3cpKQogICAgIDs7IFNwbGl0IG9mZiBuZXcgd2luZG93LgogICAgICh3aGVuIChzZXRxIG5ldyAo c3BsaXQtd2luZG93LW5vLWVycm9yIHdpbmRvdyBuaWwgc2lkZSkpCiAgICAgICAod2luZG93LW1h a2UtYXRvbQogICAgICAgIChpZiAoYW5kIHJvb3QgKG5vdCAoZXEgcm9vdCB3aW5kb3cpKSkKLQkg ICA7OyBXaGVuIFdJTkRPVyB3YXMgcGFydCBvZiBhbiBhdG9taWMgd2luZG93IGFuZCB3ZSBkaWQg bm90Ci0JICAgOzsgc3BsaXQgaXRzIHJvb3QsIHJvb3QgYXRvbWljIHdpbmRvdyBhdCBvbGQgcm9v dC4KLQkgICByb290Ci0JIDs7IE90aGVyd2lzZSwgcm9vdCBhdG9taWMgd2luZG93IGF0IFdJTkRP VydzIG5ldyBwYXJlbnQuCi0JICh3aW5kb3ctcGFyZW50IHdpbmRvdykpKQorICAgICAgICAgICA7 OyBXaGVuIFdJTkRPVyB3YXMgcGFydCBvZiBhbiBhdG9taWMgd2luZG93IGFuZCB3ZSBkaWQgbm90 CisgICAgICAgICAgIDs7IHNwbGl0IGl0cyByb290LCByb290IGF0b21pYyB3aW5kb3cgYXQgb2xk IHJvb3QuCisgICAgICAgICAgIHJvb3QKKyAgICAgICAgIDs7IE90aGVyd2lzZSwgcm9vdCBhdG9t aWMgd2luZG93IGF0IFdJTkRPVydzIG5ldyBwYXJlbnQuCisgICAgICAgICAod2luZG93LXBhcmVu dCB3aW5kb3cpKSkKICAgICAgIDs7IEFzc2lnbiBgd2luZG93LWF0b20nIHBhcmFtZXRlcnMsIGlm IG5lZWRlZC4KICAgICAgICh3aGVuIChhbmQgKG5vdCBhdG9tKSAod2luZG93LWxpdmUtcCB3aW5k b3cpKQotCShzZXQtd2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1hdG9tICdtYWluKSkK KyAgICAgICAgKHNldC13aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAnd2luZG93LWF0b20gJ21haW4p KQogICAgICAgKHNldC13aW5kb3ctcGFyYW1ldGVyIG5ldyAnd2luZG93LWF0b20gc2lkZSkKICAg ICAgIDs7IERpc3BsYXkgQlVGRkVSIGluIE5FVyBhbmQgcmV0dXJuIE5FVy4KICAgICAgICh3aW5k b3ctLWRpc3BsYXktYnVmZmVyIGJ1ZmZlciBuZXcgJ3dpbmRvdyBhbGlzdCkpKSkKQEAgLTc0MCwy NiArNzQwLDI2IEBAIGluZGlyZWN0bHkgY2FsbGVkIGJ5IHRoZSBsYXR0ZXIuIgogICAiU3Vicm91 dGluZSBvZiBgd2luZG93LS1hdG9tLWNoZWNrJy4iCiAgICh3aGVuIHdpbmRvdwogICAgIChpZiAo d2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1hdG9tKQotCShsZXQgKChjb3VudCAwKSkK LQkgICh3aGVuIChvciAoY2F0Y2ggJ3Jlc2V0Ci0JCSAgICAgICh3YWxrLXdpbmRvdy1zdWJ0cmVl Ci0JCSAgICAgICAobGFtYmRhICh3aW5kb3cpCi0JCQkgKGlmICh3aW5kb3ctcGFyYW1ldGVyIHdp bmRvdyAnd2luZG93LWF0b20pCi0JCQkgICAgIChzZXRxIGNvdW50ICgxKyBjb3VudCkpCi0JCQkg ICAodGhyb3cgJ3Jlc2V0IHQpKSkKLQkJICAgICAgIHdpbmRvdyB0KSkKLQkJICAgIDs7IGNvdW50 ID49IDEgbXVzdCBob2xkIGhlcmUuICBJZiB0aGVyZSdzIG5vIG90aGVyCi0JCSAgICA7OyB3aW5k b3cgYXJvdW5kIGRpc3NvbHZlIHRoaXMgYXRvbWljIHdpbmRvdy4KLQkJICAgICg9IGNvdW50IDEp KQotCSAgICA7OyBEaXNzb2x2ZSBhdG9taWMgd2luZG93LgotCSAgICAod2Fsay13aW5kb3ctc3Vi dHJlZQotCSAgICAgKGxhbWJkYSAod2luZG93KQotCSAgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0 ZXIgd2luZG93ICd3aW5kb3ctYXRvbSBuaWwpKQotCSAgICAgd2luZG93IHQpKSkKKyAgICAgICAg KGxldCAoKGNvdW50IDApKQorICAgICAgICAgICh3aGVuIChvciAoY2F0Y2ggJ3Jlc2V0CisgICAg ICAgICAgICAgICAgICAgICAgKHdhbGstd2luZG93LXN1YnRyZWUKKyAgICAgICAgICAgICAgICAg ICAgICAgKGxhbWJkYSAod2luZG93KQorICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAod2lu ZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1hdG9tKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc2V0cSBjb3VudCAoMSsgY291bnQpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHRocm93ICdyZXNldCB0KSkpCisgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdyB0KSkK KyAgICAgICAgICAgICAgICAgICAgOzsgY291bnQgPj0gMSBtdXN0IGhvbGQgaGVyZS4gIElmIHRo ZXJlJ3Mgbm8gb3RoZXIKKyAgICAgICAgICAgICAgICAgICAgOzsgd2luZG93IGFyb3VuZCBkaXNz b2x2ZSB0aGlzIGF0b21pYyB3aW5kb3cuCisgICAgICAgICAgICAgICAgICAgICg9IGNvdW50IDEp KQorICAgICAgICAgICAgOzsgRGlzc29sdmUgYXRvbWljIHdpbmRvdy4KKyAgICAgICAgICAgICh3 YWxrLXdpbmRvdy1zdWJ0cmVlCisgICAgICAgICAgICAgKGxhbWJkYSAod2luZG93KQorICAgICAg ICAgICAgICAgKHNldC13aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAnd2luZG93LWF0b20gbmlsKSkK KyAgICAgICAgICAgICB3aW5kb3cgdCkpKQogICAgICAgOzsgQ2hlY2sgY2hpbGRyZW4uCiAgICAg ICAodW5sZXNzICh3aW5kb3ctYnVmZmVyIHdpbmRvdykKLQkod2luZG93LS1hdG9tLWNoZWNrLTEg KHdpbmRvdy1sZWZ0LWNoaWxkIHdpbmRvdykpCi0JKHdpbmRvdy0tYXRvbS1jaGVjay0xICh3aW5k b3ctdG9wLWNoaWxkIHdpbmRvdykpKSkKKyAgICAgICAgKHdpbmRvdy0tYXRvbS1jaGVjay0xICh3 aW5kb3ctbGVmdC1jaGlsZCB3aW5kb3cpKQorICAgICAgICAod2luZG93LS1hdG9tLWNoZWNrLTEg KHdpbmRvdy10b3AtY2hpbGQgd2luZG93KSkpKQogICAgIDs7IENoZWNrIHJpZ2h0IHNpYmxpbmcK ICAgICAod2luZG93LS1hdG9tLWNoZWNrLTEgKHdpbmRvdy1yaWdodCB3aW5kb3cpKSkpCiAKQEAg LTc5Nyw4ICs3OTcsOCBAQCBUaGUgbGF5b3V0IG9mIHNpZGUgd2luZG93cyBvbiB0aGUgbGVmdCBv ciByaWdodCBvZiBhIGZyYW1lIGlzIG5vdAogYWZmZWN0ZWQgYnkgdGhlIHZhbHVlIG9mIHRoaXMg dmFyaWFibGUuIgogICA6dHlwZQogICAnKGNob2ljZSAoY29uc3QgOnRhZyAiTmV2ZXIiIG5pbCkK LQkgICAoY29uc3QgOnRhZyAiQmlkaSIgYmlkaSkKLQkgICAoY29uc3QgOnRhZyAiQWx3YXlzIiB0 KSkKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIkJpZGkiIGJpZGkpCisgICAgICAgICAgIChjb25z dCA6dGFnICJBbHdheXMiIHQpKQogICA6aW5pdGlhbGl6ZSAnY3VzdG9tLWluaXRpYWxpemUtZGVm YXVsdAogICA6c2V0ICd3aW5kb3ctLXNpZGVzLXJldmVyc2UKICAgOmdyb3VwICd3aW5kb3dzCkBA IC05MDksMTcgKzkwOSwxNyBAQCBPdGhlcndpc2UsIHJldHVybiBlaXRoZXIgYW4gaW50ZXJuYWwg bm9uLXNpZGUgd2luZG93IHN1Y2ggdGhhdAogYWxsIG90aGVyIG5vbi1zaWRlIHdpbmRvd3Mgb24g RlJBTUUgZGVzY2VuZCBmcm9tIGl0LCBvciB0aGUKIHNpbmdsZSBsaXZlIG5vbi1zaWRlIHdpbmRv dyBvZiBGUkFNRS4iCiAgIChsZXQgKChmcmFtZSAod2luZG93LW5vcm1hbGl6ZS1mcmFtZSBmcmFt ZSkpCi0JbWFpbiBzaWJsaW5nKQorICAgICAgICBtYWluIHNpYmxpbmcpCiAgICAgOzsgU2V0IG1h aW4gdG8gdGhlIF9sYXN0XyB3aW5kb3cgZm91bmQgYnkgYHdhbGstd2luZG93LXRyZWUnIHRoYXQK ICAgICA7OyBpcyBub3QgYSBzaWRlIHdpbmRvdyBidXQgaGFzIGEgc2lkZSB3aW5kb3cgYXMgaXRz IHNpYmxpbmcuCiAgICAgKHdhbGstd2luZG93LXRyZWUKICAgICAgKGxhbWJkYSAod2luZG93KQog ICAgICAgIChhbmQgKG5vdCAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1zaWRlKSkK LQkgICAgKG9yIChhbmQgKHNldHEgc2libGluZyAod2luZG93LXByZXYtc2libGluZyB3aW5kb3cp KQotCQkgICAgICh3aW5kb3ctcGFyYW1ldGVyIHNpYmxpbmcgJ3dpbmRvdy1zaWRlKSkKLQkJKGFu ZCAoc2V0cSBzaWJsaW5nICh3aW5kb3ctbmV4dC1zaWJsaW5nIHdpbmRvdykpCi0JCSAgICAgKHdp bmRvdy1wYXJhbWV0ZXIgc2libGluZyAnd2luZG93LXNpZGUpKSkKLQkgICAgKHNldHEgbWFpbiB3 aW5kb3cpKSkKKyAgICAgICAgICAgIChvciAoYW5kIChzZXRxIHNpYmxpbmcgKHdpbmRvdy1wcmV2 LXNpYmxpbmcgd2luZG93KSkKKyAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctcGFyYW1ldGVy IHNpYmxpbmcgJ3dpbmRvdy1zaWRlKSkKKyAgICAgICAgICAgICAgICAoYW5kIChzZXRxIHNpYmxp bmcgKHdpbmRvdy1uZXh0LXNpYmxpbmcgd2luZG93KSkKKyAgICAgICAgICAgICAgICAgICAgICh3 aW5kb3ctcGFyYW1ldGVyIHNpYmxpbmcgJ3dpbmRvdy1zaWRlKSkpCisgICAgICAgICAgICAoc2V0 cSBtYWluIHdpbmRvdykpKQogICAgICBmcmFtZSB0ICdub21pbmkpCiAgICAgKG9yIG1haW4gKGZy YW1lLXJvb3Qtd2luZG93IGZyYW1lKSkpKQogCkBAIC05NDIsMzIgKzk0MiwzMiBAQCBhbmQgbXVz dCBub3QgYmUgY2FsbGVkIHdoZW4gYSB3aW5kb3cgb24gU0lERSBleGlzdHMgYWxyZWFkeS4iCiAg ICAgOzsgKDQpIE90aGVyd2lzZSByZXR1cm4gdGhlIGZyYW1lJ3Mgcm9vdCB3aW5kb3cuCiAgICAg KGNvbmQKICAgICAgKChvciAoYW5kIChlcSBzaWRlICdsZWZ0KQotCSAgICAgICAoc2V0cSB3aW5k b3cgKHdpbmRvdy13aXRoLXBhcmFtZXRlciAnd2luZG93LXNpZGUgJ3JpZ2h0IG5pbCB0KSkpCi0J ICAoYW5kIChlcSBzaWRlICd0b3ApCi0JICAgICAgIChzZXRxIHdpbmRvdyAod2luZG93LXdpdGgt cGFyYW1ldGVyICd3aW5kb3ctc2lkZSAnYm90dG9tIG5pbCB0KSkpKQorICAgICAgICAgICAgICAg KHNldHEgd2luZG93ICh3aW5kb3ctd2l0aC1wYXJhbWV0ZXIgJ3dpbmRvdy1zaWRlICdyaWdodCBu aWwgdCkpKQorICAgICAgICAgIChhbmQgKGVxIHNpZGUgJ3RvcCkKKyAgICAgICAgICAgICAgIChz ZXRxIHdpbmRvdyAod2luZG93LXdpdGgtcGFyYW1ldGVyICd3aW5kb3ctc2lkZSAnYm90dG9tIG5p bCB0KSkpKQogICAgICAgKHdpbmRvdy1wcmV2LXNpYmxpbmcgd2luZG93KSkKICAgICAgKChvciAo YW5kIChlcSBzaWRlICdyaWdodCkKLQkgICAgICAgKHNldHEgd2luZG93ICh3aW5kb3ctd2l0aC1w YXJhbWV0ZXIgJ3dpbmRvdy1zaWRlICdsZWZ0IG5pbCB0KSkpCi0JICAoYW5kIChlcSBzaWRlICdi b3R0b20pCi0JICAgICAgIChzZXRxIHdpbmRvdyAod2luZG93LXdpdGgtcGFyYW1ldGVyICd3aW5k b3ctc2lkZSAndG9wIG5pbCB0KSkpKQorICAgICAgICAgICAgICAgKHNldHEgd2luZG93ICh3aW5k b3ctd2l0aC1wYXJhbWV0ZXIgJ3dpbmRvdy1zaWRlICdsZWZ0IG5pbCB0KSkpCisgICAgICAgICAg KGFuZCAoZXEgc2lkZSAnYm90dG9tKQorICAgICAgICAgICAgICAgKHNldHEgd2luZG93ICh3aW5k b3ctd2l0aC1wYXJhbWV0ZXIgJ3dpbmRvdy1zaWRlICd0b3AgbmlsIHQpKSkpCiAgICAgICAod2lu ZG93LW5leHQtc2libGluZyB3aW5kb3cpKQogICAgICAoKG1lbXEgc2lkZSAnKGxlZnQgcmlnaHQp KQogICAgICAgKGNvbmQKICAgICAgICAod2luZG93LXNpZGVzLXZlcnRpY2FsCi0Jcm9vdCkKKyAg ICAgICAgcm9vdCkKICAgICAgICAoKHNldHEgd2luZG93ICh3aW5kb3ctd2l0aC1wYXJhbWV0ZXIg J3dpbmRvdy1zaWRlICd0b3AgbmlsIHQpKQotCSh3aW5kb3ctbmV4dC1zaWJsaW5nIHdpbmRvdykp CisgICAgICAgICh3aW5kb3ctbmV4dC1zaWJsaW5nIHdpbmRvdykpCiAgICAgICAgKChzZXRxIHdp bmRvdyAod2luZG93LXdpdGgtcGFyYW1ldGVyICd3aW5kb3ctc2lkZSAnYm90dG9tIG5pbCB0KSkK LQkod2luZG93LXByZXYtc2libGluZyB3aW5kb3cpKQorICAgICAgICAod2luZG93LXByZXYtc2li bGluZyB3aW5kb3cpKQogICAgICAgICh0IHJvb3QpKSkKICAgICAgKChtZW1xIHNpZGUgJyh0b3Ag Ym90dG9tKSkKICAgICAgIChjb25kCiAgICAgICAgKChub3Qgd2luZG93LXNpZGVzLXZlcnRpY2Fs KQotCXJvb3QpCisgICAgICAgIHJvb3QpCiAgICAgICAgKChzZXRxIHdpbmRvdyAod2luZG93LXdp dGgtcGFyYW1ldGVyICd3aW5kb3ctc2lkZSAnbGVmdCBuaWwgdCkpCi0JKHdpbmRvdy1uZXh0LXNp Ymxpbmcgd2luZG93KSkKKyAgICAgICAgKHdpbmRvdy1uZXh0LXNpYmxpbmcgd2luZG93KSkKICAg ICAgICAoKHNldHEgd2luZG93ICh3aW5kb3ctd2l0aC1wYXJhbWV0ZXIgJ3dpbmRvdy1zaWRlICdy aWdodCBuaWwgdCkpCi0JKHdpbmRvdy1wcmV2LXNpYmxpbmcgd2luZG93KSkKKyAgICAgICAgKHdp bmRvdy1wcmV2LXNpYmxpbmcgd2luZG93KSkKICAgICAgICAodCByb290KSkpKSkpCiAKIChkZWZ1 biB3aW5kb3ctLW1ha2UtbWFqb3Itc2lkZS13aW5kb3cgKGJ1ZmZlciBzaWRlIHNsb3QgJm9wdGlv bmFsIGFsaXN0KQpAQCAtOTgwLDE4ICs5ODAsMTggQEAgUmV0dXJuIHRoZSBuZXcgd2luZG93LCBu aWwgaWYgaXRzIGNyZWF0aW9uIGZhaWxlZC4KIFRoaXMgaXMgYW4gYXV4aWxpYXJ5IGZ1bmN0aW9u IG9mIGBkaXNwbGF5LWJ1ZmZlci1pbi1zaWRlLXdpbmRvdycKIGFuZCBtYXkgYmUgY2FsbGVkIG9u bHkgaWYgbm8gd2luZG93IG9uIFNJREUgZXhpc3RzIHlldC4iCiAgIChsZXQqICgobGVmdC1vci1y aWdodCAobWVtcSBzaWRlICcobGVmdCByaWdodCkpKQotCSAobmV4dC10byAod2luZG93LS1tYWtl LW1ham9yLXNpZGUtd2luZG93LW5leHQtdG8gc2lkZSkpCi0JIChvbi1zaWRlIChjb25kCi0JCSAg ICgoZXEgc2lkZSAndG9wKSAnYWJvdmUpCi0JCSAgICgoZXEgc2lkZSAnYm90dG9tKSAnYmVsb3cp Ci0JCSAgICh0IHNpZGUpKSkKKyAgICAgICAgIChuZXh0LXRvICh3aW5kb3ctLW1ha2UtbWFqb3It c2lkZS13aW5kb3ctbmV4dC10byBzaWRlKSkKKyAgICAgICAgIChvbi1zaWRlIChjb25kCisgICAg ICAgICAgICAgICAgICAgKChlcSBzaWRlICd0b3ApICdhYm92ZSkKKyAgICAgICAgICAgICAgICAg ICAoKGVxIHNpZGUgJ2JvdHRvbSkgJ2JlbG93KQorICAgICAgICAgICAgICAgICAgICh0IHNpZGUp KSkKICAgICAgICAgICh3aW5kb3ctLXNpZGVzLWluaGliaXQtY2hlY2sgdCkKLQkgOzsgVGhlIGZv bGxvd2luZyB0d28gYmluZGluZ3Mgd2lsbCB0ZWxsIGBzcGxpdC13aW5kb3cnIHRvIHRha2UKLQkg OzsgdGhlIHNwYWNlIGZvciB0aGUgbmV3IHdpbmRvdyBmcm9tIHRoZSBzZWxlY3RlZCBmcmFtZSdz IG1haW4KLQkgOzsgd2luZG93IGFuZCBub3QgbWFrZSBhIG5ldyBwYXJlbnQgd2luZG93IHVubGVz cyBuZWVkZWQuCi0JICh3aW5kb3ctY29tYmluYXRpb24tcmVzaXplICdzaWRlKQotCSAod2luZG93 LWNvbWJpbmF0aW9uLWxpbWl0IG5pbCkKLQkgKHdpbmRvdyAoc3BsaXQtd2luZG93LW5vLWVycm9y IG5leHQtdG8gbmlsIG9uLXNpZGUpKQorICAgICAgICAgOzsgVGhlIGZvbGxvd2luZyB0d28gYmlu ZGluZ3Mgd2lsbCB0ZWxsIGBzcGxpdC13aW5kb3cnIHRvIHRha2UKKyAgICAgICAgIDs7IHRoZSBz cGFjZSBmb3IgdGhlIG5ldyB3aW5kb3cgZnJvbSB0aGUgc2VsZWN0ZWQgZnJhbWUncyBtYWluCisg ICAgICAgICA7OyB3aW5kb3cgYW5kIG5vdCBtYWtlIGEgbmV3IHBhcmVudCB3aW5kb3cgdW5sZXNz IG5lZWRlZC4KKyAgICAgICAgICh3aW5kb3ctY29tYmluYXRpb24tcmVzaXplICdzaWRlKQorICAg ICAgICAgKHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCBuaWwpCisgICAgICAgICAod2luZG93IChz cGxpdC13aW5kb3ctbm8tZXJyb3IgbmV4dC10byBuaWwgb24tc2lkZSkpCiAgICAgICAgICAoYWxp c3QgKGlmIChhc3NxICdkZWRpY2F0ZWQgYWxpc3QpCiAgICAgICAgICAgICAgICAgICAgIGFsaXN0 CiAgICAgICAgICAgICAgICAgICAoY29ucyBgKGRlZGljYXRlZCAuICwob3IgZGlzcGxheS1idWZm ZXItbWFyay1kZWRpY2F0ZWQgJ3NpZGUpKQpAQCAtMTAwOCwxNyArMTAwOCwxNyBAQCBhbmQgbWF5 IGJlIGNhbGxlZCBvbmx5IGlmIG5vIHdpbmRvdyBvbiBTSURFIGV4aXN0cyB5ZXQuIgogICAgICAg OzsgQXV0by1hZGp1c3QgaGVpZ2h0L3dpZHRoIG9mIG5ldyB3aW5kb3cgdW5sZXNzIGEgc2l6ZSBo YXMgYmVlbgogICAgICAgOzsgZXhwbGljaXRseSByZXF1ZXN0ZWQuCiAgICAgICAodW5sZXNzIChp ZiBsZWZ0LW9yLXJpZ2h0Ci0JCSAgKGNkciAoYXNzcSAnd2luZG93LXdpZHRoIGFsaXN0KSkKLQkJ KGNkciAoYXNzcSAnd2luZG93LWhlaWdodCBhbGlzdCkpKQotCShzZXRxIGFsaXN0Ci0JICAgICAg KGNvbnMKLQkgICAgICAgKGNvbnMKLQkJKGlmIGxlZnQtb3ItcmlnaHQgJ3dpbmRvdy13aWR0aCAn d2luZG93LWhlaWdodCkKLQkJKC8gKHdpbmRvdy10b3RhbC1zaXplIChmcmFtZS1yb290LXdpbmRv dykgbGVmdC1vci1yaWdodCkKLQkJICAgOzsgQnkgZGVmYXVsdCB1c2UgYSBmb3VydGggb2YgdGhl IHNpemUgb2YgdGhlIGZyYW1lJ3MKLQkJICAgOzsgcm9vdCB3aW5kb3cuCi0JCSAgIDQpKQotCSAg ICAgICBhbGlzdCkpKQorICAgICAgICAgICAgICAgICAgKGNkciAoYXNzcSAnd2luZG93LXdpZHRo IGFsaXN0KSkKKyAgICAgICAgICAgICAgICAoY2RyIChhc3NxICd3aW5kb3ctaGVpZ2h0IGFsaXN0 KSkpCisgICAgICAgIChzZXRxIGFsaXN0CisgICAgICAgICAgICAgIChjb25zCisgICAgICAgICAg ICAgICAoY29ucworICAgICAgICAgICAgICAgIChpZiBsZWZ0LW9yLXJpZ2h0ICd3aW5kb3ctd2lk dGggJ3dpbmRvdy1oZWlnaHQpCisgICAgICAgICAgICAgICAgKC8gKHdpbmRvdy10b3RhbC1zaXpl IChmcmFtZS1yb290LXdpbmRvdykgbGVmdC1vci1yaWdodCkKKyAgICAgICAgICAgICAgICAgICA7 OyBCeSBkZWZhdWx0IHVzZSBhIGZvdXJ0aCBvZiB0aGUgc2l6ZSBvZiB0aGUgZnJhbWUncworICAg ICAgICAgICAgICAgICAgIDs7IHJvb3Qgd2luZG93LgorICAgICAgICAgICAgICAgICAgIDQpKQor ICAgICAgICAgICAgICAgYWxpc3QpKSkKICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZl cgogICAgICAgICAoc2V0cSB3aW5kb3ctLXNpZGVzLXNob3duIHQpKQogICAgICAgOzsgSW5zdGFs bCBCVUZGRVIgaW4gbmV3IHdpbmRvdyBhbmQgcmV0dXJuIFdJTkRPVy4KQEAgLTEwNzEsMTEgKzEw NzEsMTEgQEAgaW5kaXJlY3RseSBjYWxsZWQgYnkgdGhlIGxhdHRlci4iCiAgICAgICAoZXJyb3Ig IkludmFsaWQgc2xvdCAlcyBzcGVjaWZpZWQiIHNsb3QpKSkKIAogICAgIChsZXQqICgobWFqb3Ig KHdpbmRvdy13aXRoLXBhcmFtZXRlciAnd2luZG93LXNpZGUgc2lkZSBuaWwgdCkpCi0JICAgOzsg YG1ham9yJyBpcyB0aGUgbWFqb3Igd2luZG93IG9uIFNJREUsIGB3aW5kb3dzJyB0aGUgbGlzdCBv ZgotCSAgIDs7IGxpZmUgd2luZG93cyBvbiBTSURFLgorICAgICAgICAgICA7OyBgbWFqb3InIGlz IHRoZSBtYWpvciB3aW5kb3cgb24gU0lERSwgYHdpbmRvd3MnIHRoZSBsaXN0IG9mCisgICAgICAg ICAgIDs7IGxpZmUgd2luZG93cyBvbiBTSURFLgogICAgICAgICAgICAocmV2ZXJzZWQgKHdpbmRv dy0tc2lkZXMtcmV2ZXJzZS1vbi1mcmFtZS1wIChzZWxlY3RlZC1mcmFtZSkpKQogICAgICAgICAg ICAod2luZG93cwotCSAgICAoY29uZAorICAgICAgICAgICAgKGNvbmQKICAgICAgICAgICAgICAo KHdpbmRvdy1saXZlLXAgbWFqb3IpCiAgICAgICAgICAgICAgIChsaXN0IG1ham9yKSkKICAgICAg ICAgICAgICAoKHdpbmRvdy12YWxpZC1wIG1ham9yKQpAQCAtMTA4NCw1OCArMTA4NCw1OCBAQCBp bmRpcmVjdGx5IGNhbGxlZCBieSB0aGUgbGF0dGVyLiIKICAgICAgICAgICAgICAgICAgICAgICh3 aW5kb3dzIChsaXN0IG5leHQgZmlyc3QpKSkKICAgICAgICAgICAgICAgICAoc2V0cSByZXZlcnNl ZCAoPiAod2luZG93LXBhcmFtZXRlciBmaXJzdCAnd2luZG93LXNsb3QpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1wYXJhbWV0ZXIgbmV4dCAnd2luZG93LXNsb3Qp KSkKLQkJKHdoaWxlIChzZXRxIG5leHQgKHdpbmRvdy1uZXh0LXNpYmxpbmcgbmV4dCkpCisgICAg ICAgICAgICAgICAgKHdoaWxlIChzZXRxIG5leHQgKHdpbmRvdy1uZXh0LXNpYmxpbmcgbmV4dCkp CiAgICAgICAgICAgICAgICAgICAoc2V0cSB3aW5kb3dzIChjb25zIG5leHQgd2luZG93cykpKQot CQkoaWYgcmV2ZXJzZWQgd2luZG93cyAobnJldmVyc2Ugd2luZG93cykpKSkpKQotCSAgIChzbG90 cyAod2hlbiBtYWpvciAobWF4IDEgKHdpbmRvdy1jaGlsZC1jb3VudCBtYWpvcikpKSkKLQkgICAo bWF4LXNsb3RzCi0JICAgIChudGggKGNvbmQKLQkJICAoKGVxIHNpZGUgJ2xlZnQpIDApCi0JCSAg KChlcSBzaWRlICd0b3ApIDEpCi0JCSAgKChlcSBzaWRlICdyaWdodCkgMikKLQkJICAoKGVxIHNp ZGUgJ2JvdHRvbSkgMykpCi0JCSB3aW5kb3ctc2lkZXMtc2xvdHMpKQorICAgICAgICAgICAgICAg IChpZiByZXZlcnNlZCB3aW5kb3dzIChucmV2ZXJzZSB3aW5kb3dzKSkpKSkpCisgICAgICAgICAg IChzbG90cyAod2hlbiBtYWpvciAobWF4IDEgKHdpbmRvdy1jaGlsZC1jb3VudCBtYWpvcikpKSkK KyAgICAgICAgICAgKG1heC1zbG90cworICAgICAgICAgICAgKG50aCAoY29uZAorICAgICAgICAg ICAgICAgICAgKChlcSBzaWRlICdsZWZ0KSAwKQorICAgICAgICAgICAgICAgICAgKChlcSBzaWRl ICd0b3ApIDEpCisgICAgICAgICAgICAgICAgICAoKGVxIHNpZGUgJ3JpZ2h0KSAyKQorICAgICAg ICAgICAgICAgICAgKChlcSBzaWRlICdib3R0b20pIDMpKQorICAgICAgICAgICAgICAgICB3aW5k b3ctc2lkZXMtc2xvdHMpKQogICAgICAgICAgICAod2luZG93LS1zaWRlcy1pbmhpYml0LWNoZWNr IHQpCiAgICAgICAgICAgIChhbGlzdCAoaWYgKGFzc3EgJ2RlZGljYXRlZCBhbGlzdCkKICAgICAg ICAgICAgICAgICAgICAgICBhbGlzdAogICAgICAgICAgICAgICAgICAgICAoY29ucyBgKGRlZGlj YXRlZCAuICwob3IgZGlzcGxheS1idWZmZXItbWFyay1kZWRpY2F0ZWQgJ3NpZGUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICBhbGlzdCkpKQogICAgICAgICAgICB3aW5kb3cgdGhpcy13aW5k b3cgdGhpcy1zbG90IHByZXYtd2luZG93IG5leHQtd2luZG93Ci0JICAgYmVzdC13aW5kb3cgYmVz dC1zbG90IGFicy1zbG90KQorICAgICAgICAgICBiZXN0LXdpbmRvdyBiZXN0LXNsb3QgYWJzLXNs b3QpCiAKICAgICAgIChjb25kCiAgICAgICAgKChhbmQgKG51bWJlcnAgbWF4LXNsb3RzKSAoPD0g bWF4LXNsb3RzIDApKQotCTs7IE5vIHNpZGUtc2xvdHMgYXZhaWxhYmxlIG9uIHRoaXMgc2lkZS4g IERvbid0IHJhaXNlIGFuIGVycm9yLAotCTs7IGp1c3QgcmV0dXJuIG5pbC4KLQluaWwpCisgICAg ICAgIDs7IE5vIHNpZGUtc2xvdHMgYXZhaWxhYmxlIG9uIHRoaXMgc2lkZS4gIERvbid0IHJhaXNl IGFuIGVycm9yLAorICAgICAgICA7OyBqdXN0IHJldHVybiBuaWwuCisgICAgICAgIG5pbCkKICAg ICAgICAoKG5vdCB3aW5kb3dzKQotCTs7IE5vIG1ham9yIHNpZGUgd2luZG93IGV4aXN0cyBvbiB0 aGlzIHNpZGUsIG1ha2Ugb25lLgotCSh3aW5kb3ctLW1ha2UtbWFqb3Itc2lkZS13aW5kb3cgYnVm ZmVyIHNpZGUgc2xvdCBhbGlzdCkpCisgICAgICAgIDs7IE5vIG1ham9yIHNpZGUgd2luZG93IGV4 aXN0cyBvbiB0aGlzIHNpZGUsIG1ha2Ugb25lLgorICAgICAgICAod2luZG93LS1tYWtlLW1ham9y LXNpZGUtd2luZG93IGJ1ZmZlciBzaWRlIHNsb3QgYWxpc3QpKQogICAgICAgICh0Ci0JOzsgU2Nh biB3aW5kb3dzIG9uIFNJREUuCi0JKGNhdGNoICdmb3VuZAotCSAgKGRvbGlzdCAod2luZG93IHdp bmRvd3MpCi0JICAgIChzZXRxIHRoaXMtc2xvdCAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dp bmRvdy1zbG90KSkKLQkgICAgKGNvbmQKLQkgICAgIDs7IFRoZSBmb2xsb3dpbmcgc2hvdWxkIG5v dCBoYXBwZW4gYW5kIHByb2JhYmx5IGJlIGNoZWNrZWQKLQkgICAgIDs7IGJ5IHdpbmRvdy0tc2lk ZXMtY2hlY2suCi0JICAgICAoKG5vdCAobnVtYmVycCB0aGlzLXNsb3QpKSkKLQkgICAgICgoPSB0 aGlzLXNsb3Qgc2xvdCkKLQkgICAgICA7OyBBIHdpbmRvdyB3aXRoIGEgbWF0Y2hpbmcgc2xvdCBo YXMgYmVlbiBmb3VuZC4KLQkgICAgICAoc2V0cSB0aGlzLXdpbmRvdyB3aW5kb3cpCi0JICAgICAg KHRocm93ICdmb3VuZCB0KSkKLQkgICAgICh0Ci0JICAgICAgOzsgQ2hlY2sgaWYgdGhpcyB3aW5k b3cgaGFzIGEgYmV0dGVyIHNsb3QgdmFsdWUgd3J0IHRoZQotCSAgICAgIDs7IHNsb3Qgb2YgdGhl IHdpbmRvdyB3ZSB3YW50LgotCSAgICAgIChzZXRxIGFicy1zbG90Ci0JCSAgICAoaWYgKG9yIChh bmQgKD4gdGhpcy1zbG90IDApICg+IHNsb3QgMCkpCi0JCQkgICAgKGFuZCAoPCB0aGlzLXNsb3Qg MCkgKDwgc2xvdCAwKSkpCi0JCQkoYWJzICgtIHNsb3QgdGhpcy1zbG90KSkKLQkJICAgICAgKCsg KGFicyBzbG90KSAoYWJzIHRoaXMtc2xvdCkpKSkKLQkgICAgICAodW5sZXNzIChhbmQgYmVzdC1z bG90ICg8PSBiZXN0LXNsb3QgYWJzLXNsb3QpKQotCQkoc2V0cSBiZXN0LXdpbmRvdyB3aW5kb3cp Ci0JCShzZXRxIGJlc3Qtc2xvdCBhYnMtc2xvdCkpCi0JICAgICAgKGlmIHJldmVyc2VkCisgICAg ICAgIDs7IFNjYW4gd2luZG93cyBvbiBTSURFLgorICAgICAgICAoY2F0Y2ggJ2ZvdW5kCisgICAg ICAgICAgKGRvbGlzdCAod2luZG93IHdpbmRvd3MpCisgICAgICAgICAgICAoc2V0cSB0aGlzLXNs b3QgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICd3aW5kb3ctc2xvdCkpCisgICAgICAgICAgICAo Y29uZAorICAgICAgICAgICAgIDs7IFRoZSBmb2xsb3dpbmcgc2hvdWxkIG5vdCBoYXBwZW4gYW5k IHByb2JhYmx5IGJlIGNoZWNrZWQKKyAgICAgICAgICAgICA7OyBieSB3aW5kb3ctLXNpZGVzLWNo ZWNrLgorICAgICAgICAgICAgICgobm90IChudW1iZXJwIHRoaXMtc2xvdCkpKQorICAgICAgICAg ICAgICgoPSB0aGlzLXNsb3Qgc2xvdCkKKyAgICAgICAgICAgICAgOzsgQSB3aW5kb3cgd2l0aCBh IG1hdGNoaW5nIHNsb3QgaGFzIGJlZW4gZm91bmQuCisgICAgICAgICAgICAgIChzZXRxIHRoaXMt d2luZG93IHdpbmRvdykKKyAgICAgICAgICAgICAgKHRocm93ICdmb3VuZCB0KSkKKyAgICAgICAg ICAgICAodAorICAgICAgICAgICAgICA7OyBDaGVjayBpZiB0aGlzIHdpbmRvdyBoYXMgYSBiZXR0 ZXIgc2xvdCB2YWx1ZSB3cnQgdGhlCisgICAgICAgICAgICAgIDs7IHNsb3Qgb2YgdGhlIHdpbmRv dyB3ZSB3YW50LgorICAgICAgICAgICAgICAoc2V0cSBhYnMtc2xvdAorICAgICAgICAgICAgICAg ICAgICAoaWYgKG9yIChhbmQgKD4gdGhpcy1zbG90IDApICg+IHNsb3QgMCkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGFuZCAoPCB0aGlzLXNsb3QgMCkgKDwgc2xvdCAwKSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAoYWJzICgtIHNsb3QgdGhpcy1zbG90KSkKKyAgICAgICAgICAg ICAgICAgICAgICAoKyAoYWJzIHNsb3QpIChhYnMgdGhpcy1zbG90KSkpKQorICAgICAgICAgICAg ICAodW5sZXNzIChhbmQgYmVzdC1zbG90ICg8PSBiZXN0LXNsb3QgYWJzLXNsb3QpKQorICAgICAg ICAgICAgICAgIChzZXRxIGJlc3Qtd2luZG93IHdpbmRvdykKKyAgICAgICAgICAgICAgICAoc2V0 cSBiZXN0LXNsb3QgYWJzLXNsb3QpKQorICAgICAgICAgICAgICAoaWYgcmV2ZXJzZWQKICAgICAg ICAgICAgICAgICAgIChjb25kCiAgICAgICAgICAgICAgICAgICAgKCg8PSB0aGlzLXNsb3Qgc2xv dCkKICAgICAgICAgICAgICAgICAgICAgKHNldHEgbmV4dC13aW5kb3cgd2luZG93KSkKQEAgLTEx NDgsMzkgKzExNDgsMzkgQEAgaW5kaXJlY3RseSBjYWxsZWQgYnkgdGhlIGxhdHRlci4iCiAgICAg ICAgICAgICAgICAgICAoc2V0cSBuZXh0LXdpbmRvdyB3aW5kb3cpKSkpKSkpKQogCiAgICAgICAg IDs7IGB0aGlzLXdpbmRvdycgaXMgdGhlIGZpcnN0IHdpbmRvdyB3aXRoIHRoZSBzYW1lIFNMT1Qu Ci0JOzsgYHByZXYtd2luZG93JyBpcyB0aGUgd2luZG93IHdpdGggdGhlIGxhcmdlc3Qgc2xvdCA8 IFNMT1QuICBBIG5ldwotCTs7IHdpbmRvdyB3aWxsIGJlIGNyZWF0ZWQgYWZ0ZXIgaXQuCi0JOzsg YG5leHQtd2luZG93JyBpcyB0aGUgd2luZG93IHdpdGggdGhlIHNtYWxsZXN0IHNsb3QgPiBTTE9U LiAgQSBuZXcKLQk7OyB3aW5kb3cgd2lsbCBiZSBjcmVhdGVkIGJlZm9yZSBpdC4KLQk7OyBgYmVz dC13aW5kb3cnIGlzIHRoZSB3aW5kb3cgd2l0aCB0aGUgc21hbGxlc3QgYWJzb2x1dGUgZGlmZmVy ZW5jZQotCTs7IG9mIGl0cyBzbG90IGFuZCBTTE9ULgotCShvciAoYW5kIHRoaXMtd2luZG93Ci0J CSA7OyBSZXVzZSBgdGhpcy13aW5kb3cnLgorICAgICAgICA7OyBgcHJldi13aW5kb3cnIGlzIHRo ZSB3aW5kb3cgd2l0aCB0aGUgbGFyZ2VzdCBzbG90IDwgU0xPVC4gIEEgbmV3CisgICAgICAgIDs7 IHdpbmRvdyB3aWxsIGJlIGNyZWF0ZWQgYWZ0ZXIgaXQuCisgICAgICAgIDs7IGBuZXh0LXdpbmRv dycgaXMgdGhlIHdpbmRvdyB3aXRoIHRoZSBzbWFsbGVzdCBzbG90ID4gU0xPVC4gIEEgbmV3Cisg ICAgICAgIDs7IHdpbmRvdyB3aWxsIGJlIGNyZWF0ZWQgYmVmb3JlIGl0LgorICAgICAgICA7OyBg YmVzdC13aW5kb3cnIGlzIHRoZSB3aW5kb3cgd2l0aCB0aGUgc21hbGxlc3QgYWJzb2x1dGUgZGlm ZmVyZW5jZQorICAgICAgICA7OyBvZiBpdHMgc2xvdCBhbmQgU0xPVC4KKyAgICAgICAgKG9yIChh bmQgdGhpcy13aW5kb3cKKyAgICAgICAgICAgICAgICAgOzsgUmV1c2UgYHRoaXMtd2luZG93Jy4K ICAgICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCiAgICAgICAgICAg ICAgICAgICAgKHNldHEgd2luZG93LS1zaWRlcy1zaG93biB0KSkKLQkJICh3aW5kb3ctLWRpc3Bs YXktYnVmZmVyIGJ1ZmZlciB0aGlzLXdpbmRvdyAncmV1c2UgYWxpc3QpKQotCSAgICAoYW5kIChv ciAobm90IG1heC1zbG90cykgKDwgc2xvdHMgbWF4LXNsb3RzKSkKLQkJIChvciAoYW5kIG5leHQt d2luZG93Ci0JCQkgIDs7IE1ha2UgbmV3IHdpbmRvdyBiZWZvcmUgYG5leHQtd2luZG93Jy4KLQkJ CSAgKGxldCAoKG5leHQtc2lkZSAoaWYgbGVmdC1vci1yaWdodCAnYWJvdmUgJ2xlZnQpKQotCQkJ CSh3aW5kb3ctY29tYmluYXRpb24tcmVzaXplICdzaWRlKSkKLQkJCSAgICAoc2V0cSB3aW5kb3cg KHNwbGl0LXdpbmRvdy1uby1lcnJvcgorICAgICAgICAgICAgICAgICAod2luZG93LS1kaXNwbGF5 LWJ1ZmZlciBidWZmZXIgdGhpcy13aW5kb3cgJ3JldXNlIGFsaXN0KSkKKyAgICAgICAgICAgIChh bmQgKG9yIChub3QgbWF4LXNsb3RzKSAoPCBzbG90cyBtYXgtc2xvdHMpKQorICAgICAgICAgICAg ICAgICAob3IgKGFuZCBuZXh0LXdpbmRvdworICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBN YWtlIG5ldyB3aW5kb3cgYmVmb3JlIGBuZXh0LXdpbmRvdycuCisgICAgICAgICAgICAgICAgICAg ICAgICAgIChsZXQgKChuZXh0LXNpZGUgKGlmIGxlZnQtb3ItcmlnaHQgJ2Fib3ZlICdsZWZ0KSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1jb21iaW5hdGlvbi1yZXNp emUgJ3NpZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHdpbmRvdyAoc3Bs aXQtd2luZG93LW5vLWVycm9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuZXh0LXdpbmRvdyBuaWwgbmV4dC1zaWRlKSkpKQotCQkgICAgIChhbmQgcHJldi13aW5k b3cKLQkJCSAgOzsgTWFrZSBuZXcgd2luZG93IGFmdGVyIGBwcmV2LXdpbmRvdycuCi0JCQkgIChs ZXQgKChwcmV2LXNpZGUgKGlmIGxlZnQtb3ItcmlnaHQgJ2JlbG93ICdyaWdodCkpCi0JCQkJKHdp bmRvdy1jb21iaW5hdGlvbi1yZXNpemUgJ3NpZGUpKQotCQkJICAgIChzZXRxIHdpbmRvdyAoc3Bs aXQtd2luZG93LW5vLWVycm9yCisgICAgICAgICAgICAgICAgICAgICAoYW5kIHByZXYtd2luZG93 CisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IE1ha2UgbmV3IHdpbmRvdyBhZnRlciBgcHJl di13aW5kb3cnLgorICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgocHJldi1zaWRlIChp ZiBsZWZ0LW9yLXJpZ2h0ICdiZWxvdyAncmlnaHQpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAod2luZG93LWNvbWJpbmF0aW9uLXJlc2l6ZSAnc2lkZSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNldHEgd2luZG93IChzcGxpdC13aW5kb3ctbm8tZXJyb3IKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXYtd2luZG93IG5pbCBwcmV2 LXNpZGUpKSkpKQotCQkgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICd3aW5kb3ctc2xv dCBzbG90KQotICAgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgot ICAgICAgICAgICAgICAgICAgICAgKHNldHEgd2luZG93LS1zaWRlcy1zaG93biB0KSkKLQkJICAg KHdpbmRvdy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIHdpbmRvdyAnd2luZG93IGFsaXN0KSkKLQkg ICAgKGFuZCBiZXN0LXdpbmRvdwotCQkgOzsgUmV1c2UgYGJlc3Qtd2luZG93Jy4KLQkJIChwcm9n bgotCQkgICA7OyBHaXZlIGJlc3Qtd2luZG93IHRoZSBuZXcgc2xvdCB2YWx1ZS4KLQkJICAgKHNl dC13aW5kb3ctcGFyYW1ldGVyIGJlc3Qtd2luZG93ICd3aW5kb3ctc2xvdCBzbG90KQorICAgICAg ICAgICAgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICd3aW5kb3ctc2xvdCBzbG90 KQorICAgICAgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIKKyAgICAgICAg ICAgICAgICAgICAoc2V0cSB3aW5kb3ctLXNpZGVzLXNob3duIHQpKQorICAgICAgICAgICAgICAg ICAod2luZG93LS1kaXNwbGF5LWJ1ZmZlciBidWZmZXIgd2luZG93ICd3aW5kb3cgYWxpc3QpKQor ICAgICAgICAgICAgKGFuZCBiZXN0LXdpbmRvdworICAgICAgICAgICAgICAgICA7OyBSZXVzZSBg YmVzdC13aW5kb3cnLgorICAgICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAg ICA7OyBHaXZlIGJlc3Qtd2luZG93IHRoZSBuZXcgc2xvdCB2YWx1ZS4KKyAgICAgICAgICAgICAg ICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgYmVzdC13aW5kb3cgJ3dpbmRvdy1zbG90IHNsb3Qp CiAgICAgICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCiAgICAgICAg ICAgICAgICAgICAgICAoc2V0cSB3aW5kb3ctLXNpZGVzLXNob3duIHQpKQogICAgICAgICAgICAg ICAgICAgICh3aW5kb3ctLWRpc3BsYXktYnVmZmVyCkBAIC0xMjcyLDM1ICsxMjcyLDM1IEBAIGl0 IGlzIGZvdW5kLiIKICAgKHNldHEgZnJhbWUgKHdpbmRvdy1ub3JtYWxpemUtZnJhbWUgZnJhbWUp KQogICAobGV0ICgod2luZG93LS1zaWRlcy1pbmhpYml0LWNoZWNrIHQpCiAgICAgICAgIChyb290 IChmcmFtZS1yb290LXdpbmRvdyBmcmFtZSkpCi0JKG1haW4gKHdpbmRvdy1tYWluLXdpbmRvdyBm cmFtZSkpKQorICAgICAgICAobWFpbiAod2luZG93LW1haW4td2luZG93IGZyYW1lKSkpCiAgICAg KHdoZW4gKGFuZCAobm90IChlcSBtYWluIHJvb3QpKQotCSAgICAgICAobm90IChlcSAod2luZG93 LXBhcmVudCBtYWluKSByb290KSkKLQkgICAgICAgKHdpbmRvdy1jb21iaW5lZC1wIG1haW4gd2lu ZG93LXNpZGVzLXZlcnRpY2FsKSkKKyAgICAgICAgICAgICAgIChub3QgKGVxICh3aW5kb3ctcGFy ZW50IG1haW4pIHJvb3QpKQorICAgICAgICAgICAgICAgKHdpbmRvdy1jb21iaW5lZC1wIG1haW4g d2luZG93LXNpZGVzLXZlcnRpY2FsKSkKICAgICAgIChsZXQqICgod2luZG93LS1zaWRlcy1pbmhp Yml0LWNoZWNrIHQpCi0JICAgICAoaWdub3JlLXdpbmRvdy1wYXJhbWV0ZXJzIHQpCi0JICAgICAo Zmlyc3QgKHdpbmRvdy1jaGlsZCByb290KSkKLQkgICAgIChmaXJzdC1zdGF0ZQotCSAgICAgIChh bmQgZmlyc3QgKHdpbmRvdy1wYXJhbWV0ZXIgZmlyc3QgJ3dpbmRvdy1zaWRlKQotCQkgICAod2lu ZG93LXN0YXRlLWdldCBmaXJzdCkpKQotCSAgICAgKGxhc3QgKHdpbmRvdy1sYXN0LWNoaWxkIHJv b3QpKQotCSAgICAgKGxhc3Qtc3RhdGUKLQkgICAgICAoYW5kIGxhc3QgKHdpbmRvdy1wYXJhbWV0 ZXIgbGFzdCAnd2luZG93LXNpZGUpCi0JCSAgICh3aW5kb3ctc3RhdGUtZ2V0IGxhc3QpKSkKLQkg ICAgIChkdW1teSAoZ2V0LWJ1ZmZlci1jcmVhdGUgIiAqZHVtbXkqIikpCi0JICAgICBtYWpvcikK LQkodW53aW5kLXByb3RlY3QKLQkgICAgKHByb2duCi0JICAgICAgKHdoZW4gZmlyc3Qtc3RhdGUg KGRlbGV0ZS13aW5kb3cgZmlyc3QpKQotCSAgICAgICh3aGVuIGxhc3Qtc3RhdGUgKGRlbGV0ZS13 aW5kb3cgbGFzdCkpCi0JICAgICAgKHdoZW4gZmlyc3Qtc3RhdGUKLQkJKHNldHEgbWFqb3IgKHdp bmRvdy0tbWFrZS1tYWpvci1zaWRlLXdpbmRvdwotCQkJICAgICBkdW1teSAoaWYgd2luZG93LXNp ZGVzLXZlcnRpY2FsICd0b3AgJ2xlZnQpIDApKQotCQkod2luZG93LXN0YXRlLXB1dCBmaXJzdC1z dGF0ZSBtYWpvciB0KSkKLQkgICAgICAod2hlbiBsYXN0LXN0YXRlCi0JCShzZXRxIG1ham9yICh3 aW5kb3ctLW1ha2UtbWFqb3Itc2lkZS13aW5kb3cKLQkJCSAgICAgZHVtbXkgKGlmIHdpbmRvdy1z aWRlcy12ZXJ0aWNhbCAnYm90dG9tICdyaWdodCkgMCkpCi0JCSh3aW5kb3ctc3RhdGUtcHV0IGxh c3Qtc3RhdGUgbWFqb3IgdCkpKQotCSAgKGtpbGwtYnVmZmVyICIgKmR1bW15KiIpKSkpKSkKKyAg ICAgICAgICAgICAoaWdub3JlLXdpbmRvdy1wYXJhbWV0ZXJzIHQpCisgICAgICAgICAgICAgKGZp cnN0ICh3aW5kb3ctY2hpbGQgcm9vdCkpCisgICAgICAgICAgICAgKGZpcnN0LXN0YXRlCisgICAg ICAgICAgICAgIChhbmQgZmlyc3QgKHdpbmRvdy1wYXJhbWV0ZXIgZmlyc3QgJ3dpbmRvdy1zaWRl KQorICAgICAgICAgICAgICAgICAgICh3aW5kb3ctc3RhdGUtZ2V0IGZpcnN0KSkpCisgICAgICAg ICAgICAgKGxhc3QgKHdpbmRvdy1sYXN0LWNoaWxkIHJvb3QpKQorICAgICAgICAgICAgIChsYXN0 LXN0YXRlCisgICAgICAgICAgICAgIChhbmQgbGFzdCAod2luZG93LXBhcmFtZXRlciBsYXN0ICd3 aW5kb3ctc2lkZSkKKyAgICAgICAgICAgICAgICAgICAod2luZG93LXN0YXRlLWdldCBsYXN0KSkp CisgICAgICAgICAgICAgKGR1bW15IChnZXQtYnVmZmVyLWNyZWF0ZSAiICpkdW1teSoiKSkKKyAg ICAgICAgICAgICBtYWpvcikKKyAgICAgICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgICAgICAo cHJvZ24KKyAgICAgICAgICAgICAgKHdoZW4gZmlyc3Qtc3RhdGUgKGRlbGV0ZS13aW5kb3cgZmly c3QpKQorICAgICAgICAgICAgICAod2hlbiBsYXN0LXN0YXRlIChkZWxldGUtd2luZG93IGxhc3Qp KQorICAgICAgICAgICAgICAod2hlbiBmaXJzdC1zdGF0ZQorICAgICAgICAgICAgICAgIChzZXRx IG1ham9yICh3aW5kb3ctLW1ha2UtbWFqb3Itc2lkZS13aW5kb3cKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZHVtbXkgKGlmIHdpbmRvdy1zaWRlcy12ZXJ0aWNhbCAndG9wICdsZWZ0KSAw KSkKKyAgICAgICAgICAgICAgICAod2luZG93LXN0YXRlLXB1dCBmaXJzdC1zdGF0ZSBtYWpvciB0 KSkKKyAgICAgICAgICAgICAgKHdoZW4gbGFzdC1zdGF0ZQorICAgICAgICAgICAgICAgIChzZXRx IG1ham9yICh3aW5kb3ctLW1ha2UtbWFqb3Itc2lkZS13aW5kb3cKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZHVtbXkgKGlmIHdpbmRvdy1zaWRlcy12ZXJ0aWNhbCAnYm90dG9tICdyaWdo dCkgMCkpCisgICAgICAgICAgICAgICAgKHdpbmRvdy1zdGF0ZS1wdXQgbGFzdC1zdGF0ZSBtYWpv ciB0KSkpCisgICAgICAgICAgKGtpbGwtYnVmZmVyICIgKmR1bW15KiIpKSkpKSkKIAogKGRlZnVu IHdpbmRvdy0tc2lkZXMtdmVydGljYWxpemUgKHN5bWJvbCB2YWx1ZSkKICAgIkhlbHBlciBmdW5j dGlvbiBmb3IgY3VzdG9taXppbmcgYHdpbmRvdy1zaWRlcy12ZXJ0aWNhbCcuIgpAQCAtMTM4Mywz MyArMTM4MywzMyBAQCBiZWZvcmUgd3JpdGluZyB0byBpdC4iCiAgICAgKGluc2VydAogICAgICAo Zm9ybWF0ICIlcyAgIHBhcmVudDogJXNcbiIgd2luZG93ICh3aW5kb3ctcGFyZW50IHdpbmRvdykp CiAgICAgIChmb3JtYXQgInBpeGVsIGxlZnQ6ICVzICAgdG9wOiAlcyAgIHNpemU6ICVzIHggJXMg ICBuZXc6ICVzXG4iCi0JICAgICAod2luZG93LXBpeGVsLWxlZnQgd2luZG93KSAod2luZG93LXBp eGVsLXRvcCB3aW5kb3cpCi0JICAgICAod2luZG93LXNpemUgd2luZG93IHQgdCkgKHdpbmRvdy1z aXplIHdpbmRvdyBuaWwgdCkKLQkgICAgICh3aW5kb3ctbmV3LXBpeGVsIHdpbmRvdykpCisgICAg ICAgICAgICAgKHdpbmRvdy1waXhlbC1sZWZ0IHdpbmRvdykgKHdpbmRvdy1waXhlbC10b3Agd2lu ZG93KQorICAgICAgICAgICAgICh3aW5kb3ctc2l6ZSB3aW5kb3cgdCB0KSAod2luZG93LXNpemUg d2luZG93IG5pbCB0KQorICAgICAgICAgICAgICh3aW5kb3ctbmV3LXBpeGVsIHdpbmRvdykpCiAg ICAgIChmb3JtYXQgImNoYXIgbGVmdDogJXMgICB0b3A6ICVzICAgc2l6ZTogJXMgeCAlcyAgIG5l dzogJXNcbiIKLQkgICAgICh3aW5kb3ctbGVmdC1jb2x1bW4gd2luZG93KSAod2luZG93LXRvcC1s aW5lIHdpbmRvdykKLQkgICAgICh3aW5kb3ctdG90YWwtc2l6ZSB3aW5kb3cgdCkgKHdpbmRvdy10 b3RhbC1zaXplIHdpbmRvdykKLQkgICAgICh3aW5kb3ctbmV3LXRvdGFsIHdpbmRvdykpCisgICAg ICAgICAgICAgKHdpbmRvdy1sZWZ0LWNvbHVtbiB3aW5kb3cpICh3aW5kb3ctdG9wLWxpbmUgd2lu ZG93KQorICAgICAgICAgICAgICh3aW5kb3ctdG90YWwtc2l6ZSB3aW5kb3cgdCkgKHdpbmRvdy10 b3RhbC1zaXplIHdpbmRvdykKKyAgICAgICAgICAgICAod2luZG93LW5ldy10b3RhbCB3aW5kb3cp KQogICAgICAoZm9ybWF0ICJub3JtYWw6ICVzIHggJXMgICBuZXc6ICVzXG4iCi0JICAgICAod2lu ZG93LW5vcm1hbC1zaXplIHdpbmRvdyB0KSAod2luZG93LW5vcm1hbC1zaXplIHdpbmRvdykKLQkg ICAgICh3aW5kb3ctbmV3LW5vcm1hbCB3aW5kb3cpKSkKKyAgICAgICAgICAgICAod2luZG93LW5v cm1hbC1zaXplIHdpbmRvdyB0KSAod2luZG93LW5vcm1hbC1zaXplIHdpbmRvdykKKyAgICAgICAg ICAgICAod2luZG93LW5ldy1ub3JtYWwgd2luZG93KSkpCiAgICAgKHdoZW4gKHdpbmRvdy1saXZl LXAgd2luZG93KQogICAgICAgKGxldCAoKGZyaW5nZXMgKHdpbmRvdy1mcmluZ2VzIHdpbmRvdykp Ci0JICAgIChtYXJnaW5zICh3aW5kb3ctbWFyZ2lucyB3aW5kb3cpKSkKLQkoaW5zZXJ0Ci0JIChm b3JtYXQgImJvZHkgcGl4ZWw6ICVzIHggJXMgICBjaGFyOiAlcyB4ICVzXG4iCi0JCSAod2luZG93 LWJvZHktd2lkdGggd2luZG93IHQpICh3aW5kb3ctYm9keS1oZWlnaHQgd2luZG93IHQpCi0JCSAo d2luZG93LWJvZHktd2lkdGggd2luZG93KSAod2luZG93LWJvZHktaGVpZ2h0IHdpbmRvdykpCi0J IChmb3JtYXQgIndpZHRoIGxlZnQgZnJpbmdlOiAlcyAgbGVmdCBtYXJnaW46ICVzICByaWdodCBt YXJnaW46ICVzXG4iCi0JCSAoY2FyIGZyaW5nZXMpIChvciAoY2FyIG1hcmdpbnMpIDApIChvciAo Y2RyIG1hcmdpbnMpIDApKQotCSAoZm9ybWF0ICJ3aWR0aCByaWdodCBmcmluZ2U6ICVzICBzY3Jv bGwtYmFyOiAlcyAgZGl2aWRlcjogJXNcbiIKLQkJIChjYWRyIGZyaW5nZXMpCi0JCSAod2luZG93 LXNjcm9sbC1iYXItd2lkdGggd2luZG93KQotCQkgKHdpbmRvdy1yaWdodC1kaXZpZGVyLXdpZHRo IHdpbmRvdykpCi0JIChmb3JtYXQgImhlaWdodCBoZWFkZXItbGluZTogJXMgIG1vZGUtbGluZTog JXMgIGRpdmlkZXI6ICVzXG4iCi0JCSAod2luZG93LWhlYWRlci1saW5lLWhlaWdodCB3aW5kb3cp Ci0JCSAod2luZG93LW1vZGUtbGluZS1oZWlnaHQgd2luZG93KQotCQkgKHdpbmRvdy1ib3R0b20t ZGl2aWRlci13aWR0aCB3aW5kb3cpKSkpKQorICAgICAgICAgICAgKG1hcmdpbnMgKHdpbmRvdy1t YXJnaW5zIHdpbmRvdykpKQorICAgICAgICAoaW5zZXJ0CisgICAgICAgICAoZm9ybWF0ICJib2R5 IHBpeGVsOiAlcyB4ICVzICAgY2hhcjogJXMgeCAlc1xuIgorICAgICAgICAgICAgICAgICAod2lu ZG93LWJvZHktd2lkdGggd2luZG93IHQpICh3aW5kb3ctYm9keS1oZWlnaHQgd2luZG93IHQpCisg ICAgICAgICAgICAgICAgICh3aW5kb3ctYm9keS13aWR0aCB3aW5kb3cpICh3aW5kb3ctYm9keS1o ZWlnaHQgd2luZG93KSkKKyAgICAgICAgIChmb3JtYXQgIndpZHRoIGxlZnQgZnJpbmdlOiAlcyAg bGVmdCBtYXJnaW46ICVzICByaWdodCBtYXJnaW46ICVzXG4iCisgICAgICAgICAgICAgICAgIChj YXIgZnJpbmdlcykgKG9yIChjYXIgbWFyZ2lucykgMCkgKG9yIChjZHIgbWFyZ2lucykgMCkpCisg ICAgICAgICAoZm9ybWF0ICJ3aWR0aCByaWdodCBmcmluZ2U6ICVzICBzY3JvbGwtYmFyOiAlcyAg ZGl2aWRlcjogJXNcbiIKKyAgICAgICAgICAgICAgICAgKGNhZHIgZnJpbmdlcykKKyAgICAgICAg ICAgICAgICAgKHdpbmRvdy1zY3JvbGwtYmFyLXdpZHRoIHdpbmRvdykKKyAgICAgICAgICAgICAg ICAgKHdpbmRvdy1yaWdodC1kaXZpZGVyLXdpZHRoIHdpbmRvdykpCisgICAgICAgICAoZm9ybWF0 ICJoZWlnaHQgaGVhZGVyLWxpbmU6ICVzICBtb2RlLWxpbmU6ICVzICBkaXZpZGVyOiAlc1xuIgor ICAgICAgICAgICAgICAgICAod2luZG93LWhlYWRlci1saW5lLWhlaWdodCB3aW5kb3cpCisgICAg ICAgICAgICAgICAgICh3aW5kb3ctbW9kZS1saW5lLWhlaWdodCB3aW5kb3cpCisgICAgICAgICAg ICAgICAgICh3aW5kb3ctYm90dG9tLWRpdmlkZXItd2lkdGggd2luZG93KSkpKSkKICAgICAoaW5z ZXJ0ICJcbiIpKSkKIAogKGRlZnVuIHdpbmRvdy0tZHVtcC1mcmFtZSAoJm9wdGlvbmFsIHdpbmRv dy1vci1mcmFtZSkKQEAgLTE0MTksMzkgKzE0MTksMzkgQEAgc2VsZWN0ZWQgZnJhbWUuICBXaGVu IFdJTkRPVy1PUi1GUkFNRSBpcyBhIHdpbmRvdywgZHVtcCB0aGF0CiB3aW5kb3cncyBmcmFtZS4g IFRoZSBidWZmZXIgKndpbmRvdy1mcmFtZS1kdW1wKiBpcyBlcmFzZWQgYmVmb3JlCiBkdW1waW5n IHRvIGl0LiIKICAgKGxldCogKCh3aW5kb3cKLQkgIChjb25kCi0JICAgKChvciAobm90IHdpbmRv dy1vci1mcmFtZSkKLQkJKGZyYW1lLWxpdmUtcCB3aW5kb3ctb3ItZnJhbWUpKQotCSAgICAoZnJh bWUtcm9vdC13aW5kb3cgd2luZG93LW9yLWZyYW1lKSkKLQkgICAoKG9yICh3aW5kb3ctbGl2ZS1w IHdpbmRvdy1vci1mcmFtZSkKLQkJKHdpbmRvdy1jaGlsZCB3aW5kb3ctb3ItZnJhbWUpKQotCSAg ICB3aW5kb3ctb3ItZnJhbWUpCi0JICAgKHQKLQkgICAgKGZyYW1lLXJvb3Qtd2luZG93KSkpKQot CSAoZnJhbWUgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkKKyAgICAgICAgICAoY29uZAorICAgICAg ICAgICAoKG9yIChub3Qgd2luZG93LW9yLWZyYW1lKQorICAgICAgICAgICAgICAgIChmcmFtZS1s aXZlLXAgd2luZG93LW9yLWZyYW1lKSkKKyAgICAgICAgICAgIChmcmFtZS1yb290LXdpbmRvdyB3 aW5kb3ctb3ItZnJhbWUpKQorICAgICAgICAgICAoKG9yICh3aW5kb3ctbGl2ZS1wIHdpbmRvdy1v ci1mcmFtZSkKKyAgICAgICAgICAgICAgICAod2luZG93LWNoaWxkIHdpbmRvdy1vci1mcmFtZSkp CisgICAgICAgICAgICB3aW5kb3ctb3ItZnJhbWUpCisgICAgICAgICAgICh0CisgICAgICAgICAg ICAoZnJhbWUtcm9vdC13aW5kb3cpKSkpCisgICAgICAgICAoZnJhbWUgKHdpbmRvdy1mcmFtZSB3 aW5kb3cpKSkKICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUgIip3 aW5kb3ctZnJhbWUtZHVtcCoiKQogICAgICAgKGVyYXNlLWJ1ZmZlcikKICAgICAgIChpbnNlcnQK ICAgICAgICAoZm9ybWF0ICJmcmFtZSBwaXhlbDogJXMgeCAlcyAgIGNvbHMvbGluZXM6ICVzIHgg JXMgICB1bml0czogJXMgeCAlc1xuIgotCSAgICAgICAoZnJhbWUtcGl4ZWwtd2lkdGggZnJhbWUp IChmcmFtZS1waXhlbC1oZWlnaHQgZnJhbWUpCi0JICAgICAgIChmcmFtZS10b3RhbC1jb2xzIGZy YW1lKSAoZnJhbWUtdG90YWwtbGluZXMgZnJhbWUpCi0JICAgICAgIChmcmFtZS1jaGFyLXdpZHRo IGZyYW1lKSAoZnJhbWUtY2hhci1oZWlnaHQgZnJhbWUpKQorICAgICAgICAgICAgICAgKGZyYW1l LXBpeGVsLXdpZHRoIGZyYW1lKSAoZnJhbWUtcGl4ZWwtaGVpZ2h0IGZyYW1lKQorICAgICAgICAg ICAgICAgKGZyYW1lLXRvdGFsLWNvbHMgZnJhbWUpIChmcmFtZS10b3RhbC1saW5lcyBmcmFtZSkK KyAgICAgICAgICAgICAgIChmcmFtZS1jaGFyLXdpZHRoIGZyYW1lKSAoZnJhbWUtY2hhci1oZWln aHQgZnJhbWUpKQogICAgICAgIChmb3JtYXQgImZyYW1lIHRleHQgcGl4ZWw6ICVzIHggJXMgICBj b2xzL2xpbmVzOiAlcyB4ICVzXG4iCi0JICAgICAgIChmcmFtZS10ZXh0LXdpZHRoIGZyYW1lKSAo ZnJhbWUtdGV4dC1oZWlnaHQgZnJhbWUpCi0JICAgICAgIChmcmFtZS10ZXh0LWNvbHMgZnJhbWUp IChmcmFtZS10ZXh0LWxpbmVzIGZyYW1lKSkKKyAgICAgICAgICAgICAgIChmcmFtZS10ZXh0LXdp ZHRoIGZyYW1lKSAoZnJhbWUtdGV4dC1oZWlnaHQgZnJhbWUpCisgICAgICAgICAgICAgICAoZnJh bWUtdGV4dC1jb2xzIGZyYW1lKSAoZnJhbWUtdGV4dC1saW5lcyBmcmFtZSkpCiAgICAgICAgKGZv cm1hdCAidGFiOiAlcyAgdG9vbDogJXMgIHNjcm9sbDogJXMvJXMgIGZyaW5nZTogJXMgIGJvcmRl cjogJXMgIHJpZ2h0OiAlcyAgYm90dG9tOiAlc1xuXG4iCi0JICAgICAgIChpZiAoZmJvdW5kcCAn dGFiLWJhci1oZWlnaHQpCi0JCSAgICh0YWItYmFyLWhlaWdodCBmcmFtZSB0KQotCQkgIjAiKQot CSAgICAgICAoaWYgKGZib3VuZHAgJ3Rvb2wtYmFyLWhlaWdodCkKLQkJICAgKHRvb2wtYmFyLWhl aWdodCBmcmFtZSB0KQotCQkgIjAiKQotCSAgICAgICAoZnJhbWUtc2Nyb2xsLWJhci13aWR0aCBm cmFtZSkKLQkgICAgICAgKGZyYW1lLXNjcm9sbC1iYXItaGVpZ2h0IGZyYW1lKQotCSAgICAgICAo ZnJhbWUtZnJpbmdlLXdpZHRoIGZyYW1lKQotCSAgICAgICAoZnJhbWUtYm9yZGVyLXdpZHRoIGZy YW1lKQotCSAgICAgICAoZnJhbWUtcmlnaHQtZGl2aWRlci13aWR0aCBmcmFtZSkKLQkgICAgICAg KGZyYW1lLWJvdHRvbS1kaXZpZGVyLXdpZHRoIGZyYW1lKSkpCisgICAgICAgICAgICAgICAoaWYg KGZib3VuZHAgJ3RhYi1iYXItaGVpZ2h0KQorICAgICAgICAgICAgICAgICAgICh0YWItYmFyLWhl aWdodCBmcmFtZSB0KQorICAgICAgICAgICAgICAgICAiMCIpCisgICAgICAgICAgICAgICAoaWYg KGZib3VuZHAgJ3Rvb2wtYmFyLWhlaWdodCkKKyAgICAgICAgICAgICAgICAgICAodG9vbC1iYXIt aGVpZ2h0IGZyYW1lIHQpCisgICAgICAgICAgICAgICAgICIwIikKKyAgICAgICAgICAgICAgIChm cmFtZS1zY3JvbGwtYmFyLXdpZHRoIGZyYW1lKQorICAgICAgICAgICAgICAgKGZyYW1lLXNjcm9s bC1iYXItaGVpZ2h0IGZyYW1lKQorICAgICAgICAgICAgICAgKGZyYW1lLWZyaW5nZS13aWR0aCBm cmFtZSkKKyAgICAgICAgICAgICAgIChmcmFtZS1ib3JkZXItd2lkdGggZnJhbWUpCisgICAgICAg ICAgICAgICAoZnJhbWUtcmlnaHQtZGl2aWRlci13aWR0aCBmcmFtZSkKKyAgICAgICAgICAgICAg IChmcmFtZS1ib3R0b20tZGl2aWRlci13aWR0aCBmcmFtZSkpKQogICAgICAgKHdhbGstd2luZG93 LXRyZWUgJ3dpbmRvdy0tZHVtcC13aW5kb3cgZnJhbWUgdCB0KSkpKQogCiA7OzsgV2luZG93IHNp emVzLgpAQCAtMTQ5NCwxMCArMTQ5NCwxMCBAQCBoYW5kbGVkIGFzIGZvciBgd2luZG93LXRvdGFs LWhlaWdodCcgYW5kIGB3aW5kb3ctdG90YWwtd2lkdGgnCiBvdGhlcndpc2UuIgogICAoaWYgaG9y aXpvbnRhbAogICAgICAgKGlmIHBpeGVsd2lzZQotCSAgKHdpbmRvdy1waXhlbC13aWR0aCB3aW5k b3cpCi0JKHdpbmRvdy10b3RhbC13aWR0aCB3aW5kb3cgcm91bmQpKQorICAgICAgICAgICh3aW5k b3ctcGl4ZWwtd2lkdGggd2luZG93KQorICAgICAgICAod2luZG93LXRvdGFsLXdpZHRoIHdpbmRv dyByb3VuZCkpCiAgICAgKGlmIHBpeGVsd2lzZQotCSh3aW5kb3ctcGl4ZWwtaGVpZ2h0IHdpbmRv dykKKyAgICAgICAgKHdpbmRvdy1waXhlbC1oZWlnaHQgd2luZG93KQogICAgICAgKHdpbmRvdy10 b3RhbC1oZWlnaHQgd2luZG93IHJvdW5kKSkpKQogCiAoZGVmdmFyIHdpbmRvdy1zaXplLWZpeGVk IG5pbApAQCAtMTU0MiwyMSArMTU0MiwyMSBAQCBXSU5ET1cgYXMgYXJndW1lbnQgYWxzbyByZW1v dmVzIHRoZSByZXNwZWN0aXZlIHJlc3RyYWludC4KIE90aGVyIHZhbHVlcyBvZiBQUkVTRVJWRSBh cmUgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuIgogICAoc2V0cSB3aW5kb3cgKHdpbmRvdy1ub3Jt YWxpemUtd2luZG93IHdpbmRvdyB0KSkKICAgKGxldCogKChwYXJhbWV0ZXIgKHdpbmRvdy1wYXJh bWV0ZXIgd2luZG93ICd3aW5kb3ctcHJlc2VydmVkLXNpemUpKQotCSAod2lkdGggKG50aCAxIHBh cmFtZXRlcikpCi0JIChoZWlnaHQgKG50aCAyIHBhcmFtZXRlcikpKQorICAgICAgICAgKHdpZHRo IChudGggMSBwYXJhbWV0ZXIpKQorICAgICAgICAgKGhlaWdodCAobnRoIDIgcGFyYW1ldGVyKSkp CiAgICAgKGlmIGhvcml6b250YWwKLQkoc2V0LXdpbmRvdy1wYXJhbWV0ZXIKLQkgd2luZG93ICd3 aW5kb3ctcHJlc2VydmVkLXNpemUKLQkgKGxpc3QKLQkgICh3aW5kb3ctYnVmZmVyIHdpbmRvdykK LQkgIChhbmQgcHJlc2VydmUgKHdpbmRvdy0tcHJlc2VydmFibGUtc2l6ZSB3aW5kb3cgdCkpCi0J ICBoZWlnaHQpKQorICAgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIKKyAgICAgICAgIHdpbmRv dyAnd2luZG93LXByZXNlcnZlZC1zaXplCisgICAgICAgICAobGlzdAorICAgICAgICAgICh3aW5k b3ctYnVmZmVyIHdpbmRvdykKKyAgICAgICAgICAoYW5kIHByZXNlcnZlICh3aW5kb3ctLXByZXNl cnZhYmxlLXNpemUgd2luZG93IHQpKQorICAgICAgICAgIGhlaWdodCkpCiAgICAgICAoc2V0LXdp bmRvdy1wYXJhbWV0ZXIKICAgICAgICB3aW5kb3cgJ3dpbmRvdy1wcmVzZXJ2ZWQtc2l6ZQogICAg ICAgIChsaXN0Ci0JKHdpbmRvdy1idWZmZXIgd2luZG93KQotCXdpZHRoCi0JKGFuZCBwcmVzZXJ2 ZSAod2luZG93LS1wcmVzZXJ2YWJsZS1zaXplIHdpbmRvdykpKSkpKSkKKyAgICAgICAgKHdpbmRv dy1idWZmZXIgd2luZG93KQorICAgICAgICB3aWR0aAorICAgICAgICAoYW5kIHByZXNlcnZlICh3 aW5kb3ctLXByZXNlcnZhYmxlLXNpemUgd2luZG93KSkpKSkpKQogCiAoZGVmdW4gd2luZG93LXBy ZXNlcnZlZC1zaXplICgmb3B0aW9uYWwgd2luZG93IGhvcml6b250YWwpCiAgICJSZXR1cm4gcHJl c2VydmVkIGhlaWdodCBvZiB3aW5kb3cgV0lORE9XLgpAQCAtMTU2NSw5ICsxNTY1LDkgQEAgT3B0 aW9uYWwgYXJndW1lbnQgSE9SSVpPTlRBTCBub24tbmlsIG1lYW5zIHRvIHJldHVybiBwcmVzZXJ2 ZWQKIHdpZHRoIG9mIFdJTkRPVy4iCiAgIChzZXRxIHdpbmRvdyAod2luZG93LW5vcm1hbGl6ZS13 aW5kb3cgd2luZG93IHQpKQogICAobGV0KiAoKHBhcmFtZXRlciAod2luZG93LXBhcmFtZXRlciB3 aW5kb3cgJ3dpbmRvdy1wcmVzZXJ2ZWQtc2l6ZSkpCi0JIChidWZmZXIgKG50aCAwIHBhcmFtZXRl cikpCi0JICh3aWR0aCAobnRoIDEgcGFyYW1ldGVyKSkKLQkgKGhlaWdodCAobnRoIDIgcGFyYW1l dGVyKSkpCisgICAgICAgICAoYnVmZmVyIChudGggMCBwYXJhbWV0ZXIpKQorICAgICAgICAgKHdp ZHRoIChudGggMSBwYXJhbWV0ZXIpKQorICAgICAgICAgKGhlaWdodCAobnRoIDIgcGFyYW1ldGVy KSkpCiAgICAgKHdoZW4gKGVxIGJ1ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cpKQogICAgICAg KGlmIGhvcml6b250YWwgd2lkdGggaGVpZ2h0KSkpKQogCkBAIC0xNTc3LDcgKzE1NzcsNyBAQCBP cHRpb25hbCBhcmd1bWVudCBIT1JJWk9OVEFMIG5vbi1uaWwgbWVhbnMgdG8gcmV0dXJuIG5vbi1u aWwgd2hlbgogdGhlIHdpZHRoIG9mIFdJTkRPVyBzaGFsbCBiZSBwcmVzZXJ2ZWQuIgogICAobGV0 ICgoc2l6ZSAod2luZG93LXByZXNlcnZlZC1zaXplIHdpbmRvdyBob3Jpem9udGFsKSkpCiAgICAg KGFuZCAobnVtYmVycCBzaXplKQotCSAoPSBzaXplICh3aW5kb3ctLXByZXNlcnZhYmxlLXNpemUg d2luZG93IGhvcml6b250YWwpKSkpKQorICAgICAgICAgKD0gc2l6ZSAod2luZG93LS1wcmVzZXJ2 YWJsZS1zaXplIHdpbmRvdyBob3Jpem9udGFsKSkpKSkKIAogKGRlZnVuIHdpbmRvdy1zYWZlLW1p bi1zaXplICgmb3B0aW9uYWwgd2luZG93IGhvcml6b250YWwgcGl4ZWx3aXNlKQogICAiUmV0dXJu IHNhZmUgbWluaW11bSBzaXplIG9mIFdJTkRPVy4KQEAgLTE1OTEsMTAgKzE1OTEsMTAgQEAgb2Yg V0lORE9XLiIKICAgKHNldHEgd2luZG93ICh3aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5kb3cp KQogICAoaWYgcGl4ZWx3aXNlCiAgICAgICAoaWYgaG9yaXpvbnRhbAotCSAgKCogd2luZG93LXNh ZmUtbWluLXdpZHRoCi0JICAgICAoZnJhbWUtY2hhci13aWR0aCAod2luZG93LWZyYW1lIHdpbmRv dykpKQotCSgqIHdpbmRvdy1zYWZlLW1pbi1oZWlnaHQKLQkgICAoZnJhbWUtY2hhci1oZWlnaHQg KHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkpCisgICAgICAgICAgKCogd2luZG93LXNhZmUtbWluLXdp ZHRoCisgICAgICAgICAgICAgKGZyYW1lLWNoYXItd2lkdGggKHdpbmRvdy1mcmFtZSB3aW5kb3cp KSkKKyAgICAgICAgKCogd2luZG93LXNhZmUtbWluLWhlaWdodAorICAgICAgICAgICAoZnJhbWUt Y2hhci1oZWlnaHQgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkpCiAgICAgKGlmIGhvcml6b250YWwg d2luZG93LXNhZmUtbWluLXdpZHRoIHdpbmRvdy1zYWZlLW1pbi1oZWlnaHQpKSkKIAogKGRlZnVu IHdpbmRvdy1taW4tc2l6ZSAoJm9wdGlvbmFsIHdpbmRvdyBob3Jpem9udGFsIGlnbm9yZSBwaXhl bHdpc2UpCkBAIC0xNjIwLDQyICsxNjIwLDQyIEBAIHJldHVybiB0aGUgbWluaW11bSBwaXhlbC1z aXplIG9mIFdJTkRPVy4iCiAgICJJbnRlcm5hbCBmdW5jdGlvbiBvZiBgd2luZG93LW1pbi1zaXpl Jy4iCiAgIChsZXQgKChzdWIgKHdpbmRvdy1jaGlsZCB3aW5kb3cpKSkKICAgICAoaWYgc3ViCi0J KGxldCAoKHZhbHVlIDApKQotCSAgOzsgV0lORE9XIGlzIGFuIGludGVybmFsIHdpbmRvdy4KLQkg IChpZiAod2luZG93LWNvbWJpbmVkLXAgc3ViIGhvcml6b250YWwpCi0JICAgICAgOzsgVGhlIG1p bmltdW0gc2l6ZSBvZiBhbiBpc28tY29tYmluYXRpb24gaXMgdGhlIHN1bSBvZgotCSAgICAgIDs7 IHRoZSBtaW5pbXVtIHNpemVzIG9mIGl0cyBjaGlsZCB3aW5kb3dzLgotCSAgICAgICh3aGlsZSBz dWIKLQkJKHNldHEgdmFsdWUgKCsgdmFsdWUKLQkJCSAgICAgICAod2luZG93LS1taW4tc2l6ZS0x Ci0JCQkJc3ViIGhvcml6b250YWwgaWdub3JlIHBpeGVsd2lzZSkpKQotCQkoc2V0cSBzdWIgKHdp bmRvdy1yaWdodCBzdWIpKSkKLQkgICAgOzsgVGhlIG1pbmltdW0gc2l6ZSBvZiBhbiBvcnRoby1j b21iaW5hdGlvbiBpcyB0aGUgbWF4aW11bQotCSAgICA7OyBvZiB0aGUgbWluaW11bSBzaXplcyBv ZiBpdHMgY2hpbGQgd2luZG93cy4KLQkgICAgKHdoaWxlIHN1YgotCSAgICAgIChzZXRxIHZhbHVl IChtYXggdmFsdWUKLQkJCSAgICAgICAod2luZG93LS1taW4tc2l6ZS0xCi0JCQkJc3ViIGhvcml6 b250YWwgaWdub3JlIHBpeGVsd2lzZSkpKQotCSAgICAgIChzZXRxIHN1YiAod2luZG93LXJpZ2h0 IHN1YikpKSkKLQkgIHZhbHVlKQorICAgICAgICAobGV0ICgodmFsdWUgMCkpCisgICAgICAgICAg OzsgV0lORE9XIGlzIGFuIGludGVybmFsIHdpbmRvdy4KKyAgICAgICAgICAoaWYgKHdpbmRvdy1j b21iaW5lZC1wIHN1YiBob3Jpem9udGFsKQorICAgICAgICAgICAgICA7OyBUaGUgbWluaW11bSBz aXplIG9mIGFuIGlzby1jb21iaW5hdGlvbiBpcyB0aGUgc3VtIG9mCisgICAgICAgICAgICAgIDs7 IHRoZSBtaW5pbXVtIHNpemVzIG9mIGl0cyBjaGlsZCB3aW5kb3dzLgorICAgICAgICAgICAgICAo d2hpbGUgc3ViCisgICAgICAgICAgICAgICAgKHNldHEgdmFsdWUgKCsgdmFsdWUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LS1taW4tc2l6ZS0xCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN1YiBob3Jpem9udGFsIGlnbm9yZSBwaXhlbHdpc2UpKSkKKyAg ICAgICAgICAgICAgICAoc2V0cSBzdWIgKHdpbmRvdy1yaWdodCBzdWIpKSkKKyAgICAgICAgICAg IDs7IFRoZSBtaW5pbXVtIHNpemUgb2YgYW4gb3J0aG8tY29tYmluYXRpb24gaXMgdGhlIG1heGlt dW0KKyAgICAgICAgICAgIDs7IG9mIHRoZSBtaW5pbXVtIHNpemVzIG9mIGl0cyBjaGlsZCB3aW5k b3dzLgorICAgICAgICAgICAgKHdoaWxlIHN1YgorICAgICAgICAgICAgICAoc2V0cSB2YWx1ZSAo bWF4IHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy0tbWluLXNp emUtMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWIgaG9yaXpvbnRhbCBpZ25v cmUgcGl4ZWx3aXNlKSkpCisgICAgICAgICAgICAgIChzZXRxIHN1YiAod2luZG93LXJpZ2h0IHN1 YikpKSkKKyAgICAgICAgICB2YWx1ZSkKICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyICh3aW5k b3ctYnVmZmVyIHdpbmRvdykKLQkoY29uZAotCSAoKHdpbmRvdy1zaXplLWZpeGVkLXAgd2luZG93 IGhvcml6b250YWwgaWdub3JlKQotCSAgOzsgVGhlIG1pbmltdW0gc2l6ZSBvZiBhIGZpeGVkIHNp emUgd2luZG93IGlzIGl0cyBzaXplLgotCSAgKHdpbmRvdy1zaXplIHdpbmRvdyBob3Jpem9udGFs IHBpeGVsd2lzZSkpCi0JICgoZXEgaWdub3JlICdzYWZlKQotCSAgOzsgSWYgSUdOT1JFIGVxdWFs cyBgc2FmZScgcmV0dXJuIHRoZSBzYWZlIHZhbHVlLgotCSAgKHdpbmRvdy1zYWZlLW1pbi1zaXpl IHdpbmRvdyBob3Jpem9udGFsIHBpeGVsd2lzZSkpCi0JIChob3Jpem9udGFsCi0JICA7OyBGb3Ig dGhlIG1pbmltdW0gd2lkdGggb2YgYSB3aW5kb3cgdGFrZSBmcmluZ2VzIGFuZAotCSAgOzsgc2Ny b2xsLWJhcnMgaW50byBhY2NvdW50LiAgVGhpcyBpcyBxdWVzdGlvbmFibGUgYW5kIHNob3VsZAot CSAgOzsgYmUgcmVtb3ZlZCBhcyBzb29uIGFzIHdlIGFyZSBhYmxlIHRvIHNwbGl0IChhbmQgcmVz aXplKQotCSAgOzsgd2luZG93cyBzdWNoIHRoYXQgdGhlIG5ldyAob3IgcmVzaXplZCkgd2luZG93 cyBjYW4gZ2V0IGEKLQkgIDs7IHNpemUgbGVzcyB0aGFuIHRoZSB1c2VyLXNwZWNpZmllZCBgd2lu ZG93LW1pbi1oZWlnaHQnIGFuZAotCSAgOzsgYHdpbmRvdy1taW4td2lkdGgnLgotCSAgKGxldCog KChjaGFyLXNpemUgKGZyYW1lLWNoYXItc2l6ZSB3aW5kb3cgdCkpCi0JCSAoZnJpbmdlcyAod2lu ZG93LWZyaW5nZXMgd2luZG93KSkKLQkJIChtYXJnaW5zICh3aW5kb3ctbWFyZ2lucyB3aW5kb3cp KQorICAgICAgICAoY29uZAorICAgICAgICAgKCh3aW5kb3ctc2l6ZS1maXhlZC1wIHdpbmRvdyBo b3Jpem9udGFsIGlnbm9yZSkKKyAgICAgICAgICA7OyBUaGUgbWluaW11bSBzaXplIG9mIGEgZml4 ZWQgc2l6ZSB3aW5kb3cgaXMgaXRzIHNpemUuCisgICAgICAgICAgKHdpbmRvdy1zaXplIHdpbmRv dyBob3Jpem9udGFsIHBpeGVsd2lzZSkpCisgICAgICAgICAoKGVxIGlnbm9yZSAnc2FmZSkKKyAg ICAgICAgICA7OyBJZiBJR05PUkUgZXF1YWxzIGBzYWZlJyByZXR1cm4gdGhlIHNhZmUgdmFsdWUu CisgICAgICAgICAgKHdpbmRvdy1zYWZlLW1pbi1zaXplIHdpbmRvdyBob3Jpem9udGFsIHBpeGVs d2lzZSkpCisgICAgICAgICAoaG9yaXpvbnRhbAorICAgICAgICAgIDs7IEZvciB0aGUgbWluaW11 bSB3aWR0aCBvZiBhIHdpbmRvdyB0YWtlIGZyaW5nZXMgYW5kCisgICAgICAgICAgOzsgc2Nyb2xs LWJhcnMgaW50byBhY2NvdW50LiAgVGhpcyBpcyBxdWVzdGlvbmFibGUgYW5kIHNob3VsZAorICAg ICAgICAgIDs7IGJlIHJlbW92ZWQgYXMgc29vbiBhcyB3ZSBhcmUgYWJsZSB0byBzcGxpdCAoYW5k IHJlc2l6ZSkKKyAgICAgICAgICA7OyB3aW5kb3dzIHN1Y2ggdGhhdCB0aGUgbmV3IChvciByZXNp emVkKSB3aW5kb3dzIGNhbiBnZXQgYQorICAgICAgICAgIDs7IHNpemUgbGVzcyB0aGFuIHRoZSB1 c2VyLXNwZWNpZmllZCBgd2luZG93LW1pbi1oZWlnaHQnIGFuZAorICAgICAgICAgIDs7IGB3aW5k b3ctbWluLXdpZHRoJy4KKyAgICAgICAgICAobGV0KiAoKGNoYXItc2l6ZSAoZnJhbWUtY2hhci1z aXplIHdpbmRvdyB0KSkKKyAgICAgICAgICAgICAgICAgKGZyaW5nZXMgKHdpbmRvdy1mcmluZ2Vz IHdpbmRvdykpCisgICAgICAgICAgICAgICAgIChtYXJnaW5zICh3aW5kb3ctbWFyZ2lucyB3aW5k b3cpKQogICAgICAgICAgICAgICAgICA7OyBMZXQgdGhlICdtaW4tbWFyZ2lucycgcGFyYW1ldGVy IG92ZXJyaWRlIHRoZSBhY3R1YWwKICAgICAgICAgICAgICAgICAgOzsgd2lkdGhzIG9mIHRoZSBt YXJnaW5zLiAgV2UgYWxsb3cgYW55IG51bWJlciB0bwogICAgICAgICAgICAgICAgICA7OyByZXBs YWNlIHRoZSB2YWx1ZXMgc3BlY2lmaWVkIGJ5IGB3aW5kb3ctbWFyZ2lucycuCkBAIC0xNjY3LDQ3 ICsxNjY3LDQ3IEBAIHJldHVybiB0aGUgbWluaW11bSBwaXhlbC1zaXplIG9mIFdJTkRPVy4iCiAg ICAgICAgICAgICAgICAgIChyaWdodC1taW4tbWFyZ2luIChhbmQgbWluLW1hcmdpbnMKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnVtYmVycCAoY2RyIG1pbi1tYXJn aW5zKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIG1pbi1t YXJnaW5zKSkpCi0JCSAocGl4ZWwtd2lkdGgKLQkJICAoKyAod2luZG93LXNhZmUtbWluLXNpemUg d2luZG93IHQgdCkKLQkJICAgICAoKiAob3IgbGVmdC1taW4tbWFyZ2luIChjYXIgbWFyZ2lucykg MCkgY2hhci1zaXplKQotCQkgICAgICgqIChvciByaWdodC1taW4tbWFyZ2luKGNkciBtYXJnaW5z KSAwKSBjaGFyLXNpemUpCi0JCSAgICAgKGNhciBmcmluZ2VzKSAoY2FkciBmcmluZ2VzKQotCQkg ICAgICh3aW5kb3ctc2Nyb2xsLWJhci13aWR0aCB3aW5kb3cpCi0JCSAgICAgKHdpbmRvdy1yaWdo dC1kaXZpZGVyLXdpZHRoIHdpbmRvdykpKSkKLQkgICAgKGlmIHBpeGVsd2lzZQotCQkobWF4Ci0J CSAoaWYgd2luZG93LXJlc2l6ZS1waXhlbHdpc2UKLQkJICAgICBwaXhlbC13aWR0aAotCQkgICA7 OyBSb3VuZCB1cCB0byBuZXh0IGludGVncmFsIG9mIGNvbHVtbnMuCi0JCSAgICgqIChjZWlsaW5n IHBpeGVsLXdpZHRoIGNoYXItc2l6ZSkgY2hhci1zaXplKSkKLQkJIChpZiAod2luZG93LS1taW4t c2l6ZS1pZ25vcmUtcCB3aW5kb3cgaWdub3JlKQotCQkgICAgIDAKLQkJICAgKHdpbmRvdy1taW4t cGl4ZWwtd2lkdGggd2luZG93KSkpCi0JICAgICAgKG1heAotCSAgICAgICAoY2VpbGluZyBwaXhl bC13aWR0aCBjaGFyLXNpemUpCi0JICAgICAgIChpZiAod2luZG93LS1taW4tc2l6ZS1pZ25vcmUt cCB3aW5kb3cgaWdub3JlKQotCQkgICAwCi0JCSB3aW5kb3ctbWluLXdpZHRoKSkpKSkKLQkgKChs ZXQgKChjaGFyLXNpemUgKGZyYW1lLWNoYXItc2l6ZSB3aW5kb3cpKQotCQkocGl4ZWwtaGVpZ2h0 Ci0JCSAoKyAod2luZG93LXNhZmUtbWluLXNpemUgd2luZG93IG5pbCB0KQotCQkgICAgKHdpbmRv dy1oZWFkZXItbGluZS1oZWlnaHQgd2luZG93KQotCQkgICAgKHdpbmRvdy1zY3JvbGwtYmFyLWhl aWdodCB3aW5kb3cpCi0JCSAgICAod2luZG93LW1vZGUtbGluZS1oZWlnaHQgd2luZG93KQotCQkg ICAgKHdpbmRvdy1ib3R0b20tZGl2aWRlci13aWR0aCB3aW5kb3cpKSkpCi0JICAgIChpZiBwaXhl bHdpc2UKLQkJKG1heAotCQkgKGlmIHdpbmRvdy1yZXNpemUtcGl4ZWx3aXNlCi0JCSAgICAgcGl4 ZWwtaGVpZ2h0Ci0JCSAgIDs7IFJvdW5kIHVwIHRvIG5leHQgaW50ZWdyYWwgb2YgbGluZXMuCi0J CSAgICgqIChjZWlsaW5nIHBpeGVsLWhlaWdodCBjaGFyLXNpemUpIGNoYXItc2l6ZSkpCi0JCSAo aWYgKHdpbmRvdy0tbWluLXNpemUtaWdub3JlLXAgd2luZG93IGlnbm9yZSkKLQkJICAgICAwCi0J CSAgICh3aW5kb3ctbWluLXBpeGVsLWhlaWdodCB3aW5kb3cpKSkKLQkgICAgICAobWF4IChjZWls aW5nIHBpeGVsLWhlaWdodCBjaGFyLXNpemUpCi0JCSAgIChpZiAod2luZG93LS1taW4tc2l6ZS1p Z25vcmUtcCB3aW5kb3cgaWdub3JlKQotCQkgICAgICAgMAotCQkgICAgIHdpbmRvdy1taW4taGVp Z2h0KSkpKSkpKSkpKQorICAgICAgICAgICAgICAgICAocGl4ZWwtd2lkdGgKKyAgICAgICAgICAg ICAgICAgICgrICh3aW5kb3ctc2FmZS1taW4tc2l6ZSB3aW5kb3cgdCB0KQorICAgICAgICAgICAg ICAgICAgICAgKCogKG9yIGxlZnQtbWluLW1hcmdpbiAoY2FyIG1hcmdpbnMpIDApIGNoYXItc2l6 ZSkKKyAgICAgICAgICAgICAgICAgICAgICgqIChvciByaWdodC1taW4tbWFyZ2luKGNkciBtYXJn aW5zKSAwKSBjaGFyLXNpemUpCisgICAgICAgICAgICAgICAgICAgICAoY2FyIGZyaW5nZXMpIChj YWRyIGZyaW5nZXMpCisgICAgICAgICAgICAgICAgICAgICAod2luZG93LXNjcm9sbC1iYXItd2lk dGggd2luZG93KQorICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1yaWdodC1kaXZpZGVyLXdp ZHRoIHdpbmRvdykpKSkKKyAgICAgICAgICAgIChpZiBwaXhlbHdpc2UKKyAgICAgICAgICAgICAg ICAobWF4CisgICAgICAgICAgICAgICAgIChpZiB3aW5kb3ctcmVzaXplLXBpeGVsd2lzZQorICAg ICAgICAgICAgICAgICAgICAgcGl4ZWwtd2lkdGgKKyAgICAgICAgICAgICAgICAgICA7OyBSb3Vu ZCB1cCB0byBuZXh0IGludGVncmFsIG9mIGNvbHVtbnMuCisgICAgICAgICAgICAgICAgICAgKCog KGNlaWxpbmcgcGl4ZWwtd2lkdGggY2hhci1zaXplKSBjaGFyLXNpemUpKQorICAgICAgICAgICAg ICAgICAoaWYgKHdpbmRvdy0tbWluLXNpemUtaWdub3JlLXAgd2luZG93IGlnbm9yZSkKKyAgICAg ICAgICAgICAgICAgICAgIDAKKyAgICAgICAgICAgICAgICAgICAod2luZG93LW1pbi1waXhlbC13 aWR0aCB3aW5kb3cpKSkKKyAgICAgICAgICAgICAgKG1heAorICAgICAgICAgICAgICAgKGNlaWxp bmcgcGl4ZWwtd2lkdGggY2hhci1zaXplKQorICAgICAgICAgICAgICAgKGlmICh3aW5kb3ctLW1p bi1zaXplLWlnbm9yZS1wIHdpbmRvdyBpZ25vcmUpCisgICAgICAgICAgICAgICAgICAgMAorICAg ICAgICAgICAgICAgICB3aW5kb3ctbWluLXdpZHRoKSkpKSkKKyAgICAgICAgICgobGV0ICgoY2hh ci1zaXplIChmcmFtZS1jaGFyLXNpemUgd2luZG93KSkKKyAgICAgICAgICAgICAgICAocGl4ZWwt aGVpZ2h0CisgICAgICAgICAgICAgICAgICgrICh3aW5kb3ctc2FmZS1taW4tc2l6ZSB3aW5kb3cg bmlsIHQpCisgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctaGVhZGVyLWxpbmUtaGVpZ2h0IHdp bmRvdykKKyAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1zY3JvbGwtYmFyLWhlaWdodCB3aW5k b3cpCisgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctbW9kZS1saW5lLWhlaWdodCB3aW5kb3cp CisgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctYm90dG9tLWRpdmlkZXItd2lkdGggd2luZG93 KSkpKQorICAgICAgICAgICAgKGlmIHBpeGVsd2lzZQorICAgICAgICAgICAgICAgIChtYXgKKyAg ICAgICAgICAgICAgICAgKGlmIHdpbmRvdy1yZXNpemUtcGl4ZWx3aXNlCisgICAgICAgICAgICAg ICAgICAgICBwaXhlbC1oZWlnaHQKKyAgICAgICAgICAgICAgICAgICA7OyBSb3VuZCB1cCB0byBu ZXh0IGludGVncmFsIG9mIGxpbmVzLgorICAgICAgICAgICAgICAgICAgICgqIChjZWlsaW5nIHBp eGVsLWhlaWdodCBjaGFyLXNpemUpIGNoYXItc2l6ZSkpCisgICAgICAgICAgICAgICAgIChpZiAo d2luZG93LS1taW4tc2l6ZS1pZ25vcmUtcCB3aW5kb3cgaWdub3JlKQorICAgICAgICAgICAgICAg ICAgICAgMAorICAgICAgICAgICAgICAgICAgICh3aW5kb3ctbWluLXBpeGVsLWhlaWdodCB3aW5k b3cpKSkKKyAgICAgICAgICAgICAgKG1heCAoY2VpbGluZyBwaXhlbC1oZWlnaHQgY2hhci1zaXpl KQorICAgICAgICAgICAgICAgICAgIChpZiAod2luZG93LS1taW4tc2l6ZS1pZ25vcmUtcCB3aW5k b3cgaWdub3JlKQorICAgICAgICAgICAgICAgICAgICAgICAwCisgICAgICAgICAgICAgICAgICAg ICB3aW5kb3ctbWluLWhlaWdodCkpKSkpKSkpKSkKIAogKGRlZnVuIHdpbmRvdy1zaXphYmxlICh3 aW5kb3cgZGVsdGEgJm9wdGlvbmFsIGhvcml6b250YWwgaWdub3JlIHBpeGVsd2lzZSkKICAgIlJl dHVybiBERUxUQSBpZiBERUxUQSBsaW5lcyBjYW4gYmUgYWRkZWQgdG8gV0lORE9XLgpAQCAtMTcz NywxMSArMTczNywxMSBAQCBpbnRlcnByZXQgREVMVEEgYXMgcGl4ZWxzLiIKICAgKGNvbmQKICAg ICgoPCBkZWx0YSAwKQogICAgIChtYXggKC0gKHdpbmRvdy1taW4tc2l6ZSB3aW5kb3cgaG9yaXpv bnRhbCBpZ25vcmUgcGl4ZWx3aXNlKQotCSAgICAod2luZG93LXNpemUgd2luZG93IGhvcml6b250 YWwgcGl4ZWx3aXNlKSkKLQkgZGVsdGEpKQorICAgICAgICAgICAgKHdpbmRvdy1zaXplIHdpbmRv dyBob3Jpem9udGFsIHBpeGVsd2lzZSkpCisgICAgICAgICBkZWx0YSkpCiAgICAoKD4gZGVsdGEg MCkKICAgICAoaWYgKHdpbmRvdy1zaXplLWZpeGVkLXAgd2luZG93IGhvcml6b250YWwgaWdub3Jl KQotCTAKKyAgICAgICAgMAogICAgICAgZGVsdGEpKQogICAgKHQgMCkpKQogCkBAIC0xNzUzLDQ1 ICsxNzUzLDQ1IEBAIGRvYy1zdHJpbmcgb2YgYHdpbmRvdy1zaXphYmxlJy4iCiAgIChzZXRxIHdp bmRvdyAod2luZG93LW5vcm1hbGl6ZS13aW5kb3cgd2luZG93KSkKICAgKGlmICg+IGRlbHRhIDAp CiAgICAgICAoPj0gKHdpbmRvdy1zaXphYmxlIHdpbmRvdyBkZWx0YSBob3Jpem9udGFsIGlnbm9y ZSBwaXhlbHdpc2UpCi0JICBkZWx0YSkKKyAgICAgICAgICBkZWx0YSkKICAgICAoPD0gKHdpbmRv dy1zaXphYmxlIHdpbmRvdyBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSBwaXhlbHdpc2UpCi0JZGVs dGEpKSkKKyAgICAgICAgZGVsdGEpKSkKIAogKGRlZnVuIHdpbmRvdy0tc2l6ZS1maXhlZC0xICh3 aW5kb3cgaG9yaXpvbnRhbCBpZ25vcmUpCiAgICJJbnRlcm5hbCBmdW5jdGlvbiBmb3IgYHdpbmRv dy1zaXplLWZpeGVkLXAnLiIKICAgKGxldCAoKHN1YiAod2luZG93LWNoaWxkIHdpbmRvdykpKQog ICAgIChjYXRjaCAnZml4ZWQKICAgICAgIChpZiBzdWIKLQkgIDs7IFdJTkRPVyBpcyBhbiBpbnRl cm5hbCB3aW5kb3cuCi0JICAoaWYgKHdpbmRvdy1jb21iaW5lZC1wIHN1YiBob3Jpem9udGFsKQot CSAgICAgIDs7IEFuIGlzby1jb21iaW5hdGlvbiBpcyBmaXhlZCBzaXplIGlmIGFsbCBpdHMgY2hp bGQKLQkgICAgICA7OyB3aW5kb3dzIGFyZSBmaXhlZC1zaXplLgotCSAgICAgIChwcm9nbgotCQko d2hpbGUgc3ViCi0JCSAgKHVubGVzcyAod2luZG93LS1zaXplLWZpeGVkLTEgc3ViIGhvcml6b250 YWwgaWdub3JlKQotCQkgICAgOzsgV2UgZm91bmQgYSBub24tZml4ZWQtc2l6ZSBjaGlsZCB3aW5k b3csIHNvCi0JCSAgICA7OyBXSU5ET1cncyBzaXplIGlzIG5vdCBmaXhlZC4KLQkJICAgICh0aHJv dyAnZml4ZWQgbmlsKSkKLQkJICAoc2V0cSBzdWIgKHdpbmRvdy1yaWdodCBzdWIpKSkKLQkJOzsg QWxsIGNoaWxkIHdpbmRvd3MgYXJlIGZpeGVkLXNpemUsIHNvIFdJTkRPVydzIHNpemUgaXMKLQkJ OzsgZml4ZWQuCi0JCSh0aHJvdyAnZml4ZWQgdCkpCi0JICAgIDs7IEFuIG9ydGhvLWNvbWJpbmF0 aW9uIGlzIGZpeGVkLXNpemUgaWYgYXQgbGVhc3Qgb25lIG9mIGl0cwotCSAgICA7OyBjaGlsZCB3 aW5kb3dzIGlzIGZpeGVkLXNpemUuCi0JICAgICh3aGlsZSBzdWIKLQkgICAgICAod2hlbiAod2lu ZG93LS1zaXplLWZpeGVkLTEgc3ViIGhvcml6b250YWwgaWdub3JlKQotCQk7OyBXZSBmb3VuZCBh IGZpeGVkLXNpemUgY2hpbGQgd2luZG93LCBzbyBXSU5ET1cncyBzaXplCi0JCTs7IGlzIGZpeGVk LgotCQkodGhyb3cgJ2ZpeGVkIHQpKQotCSAgICAgIChzZXRxIHN1YiAod2luZG93LXJpZ2h0IHN1 YikpKSkKLQk7OyBXSU5ET1cgaXMgYSBsaXZlIHdpbmRvdy4KLQkoYW5kIChvciAobm90ICh3aW5k b3dwIGlnbm9yZSkpIChub3QgKGVxIHdpbmRvdyBpZ25vcmUpKSkKLQkgICAgIChvciAoYW5kIChu b3QgKGVxIGlnbm9yZSAncHJlc2VydmVkKSkKLQkJICAgICAgKHdpbmRvdy0tcHJlc2VydmUtc2l6 ZSB3aW5kb3cgaG9yaXpvbnRhbCkpCi0JCSAod2l0aC1jdXJyZW50LWJ1ZmZlciAod2luZG93LWJ1 ZmZlciB3aW5kb3cpCi0JCSAgIChpZiBob3Jpem9udGFsCi0JCSAgICAgICAobWVtcSB3aW5kb3ct c2l6ZS1maXhlZCAnKHdpZHRoIHQpKQotCQkgICAgIChtZW1xIHdpbmRvdy1zaXplLWZpeGVkICco aGVpZ2h0IHQpKSkpKSkpKSkpCisgICAgICAgICAgOzsgV0lORE9XIGlzIGFuIGludGVybmFsIHdp bmRvdy4KKyAgICAgICAgICAoaWYgKHdpbmRvdy1jb21iaW5lZC1wIHN1YiBob3Jpem9udGFsKQor ICAgICAgICAgICAgICA7OyBBbiBpc28tY29tYmluYXRpb24gaXMgZml4ZWQgc2l6ZSBpZiBhbGwg aXRzIGNoaWxkCisgICAgICAgICAgICAgIDs7IHdpbmRvd3MgYXJlIGZpeGVkLXNpemUuCisgICAg ICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgICh3aGlsZSBzdWIKKyAgICAgICAgICAg ICAgICAgICh1bmxlc3MgKHdpbmRvdy0tc2l6ZS1maXhlZC0xIHN1YiBob3Jpem9udGFsIGlnbm9y ZSkKKyAgICAgICAgICAgICAgICAgICAgOzsgV2UgZm91bmQgYSBub24tZml4ZWQtc2l6ZSBjaGls ZCB3aW5kb3csIHNvCisgICAgICAgICAgICAgICAgICAgIDs7IFdJTkRPVydzIHNpemUgaXMgbm90 IGZpeGVkLgorICAgICAgICAgICAgICAgICAgICAodGhyb3cgJ2ZpeGVkIG5pbCkpCisgICAgICAg ICAgICAgICAgICAoc2V0cSBzdWIgKHdpbmRvdy1yaWdodCBzdWIpKSkKKyAgICAgICAgICAgICAg ICA7OyBBbGwgY2hpbGQgd2luZG93cyBhcmUgZml4ZWQtc2l6ZSwgc28gV0lORE9XJ3Mgc2l6ZSBp cworICAgICAgICAgICAgICAgIDs7IGZpeGVkLgorICAgICAgICAgICAgICAgICh0aHJvdyAnZml4 ZWQgdCkpCisgICAgICAgICAgICA7OyBBbiBvcnRoby1jb21iaW5hdGlvbiBpcyBmaXhlZC1zaXpl IGlmIGF0IGxlYXN0IG9uZSBvZiBpdHMKKyAgICAgICAgICAgIDs7IGNoaWxkIHdpbmRvd3MgaXMg Zml4ZWQtc2l6ZS4KKyAgICAgICAgICAgICh3aGlsZSBzdWIKKyAgICAgICAgICAgICAgKHdoZW4g KHdpbmRvdy0tc2l6ZS1maXhlZC0xIHN1YiBob3Jpem9udGFsIGlnbm9yZSkKKyAgICAgICAgICAg ICAgICA7OyBXZSBmb3VuZCBhIGZpeGVkLXNpemUgY2hpbGQgd2luZG93LCBzbyBXSU5ET1cncyBz aXplCisgICAgICAgICAgICAgICAgOzsgaXMgZml4ZWQuCisgICAgICAgICAgICAgICAgKHRocm93 ICdmaXhlZCB0KSkKKyAgICAgICAgICAgICAgKHNldHEgc3ViICh3aW5kb3ctcmlnaHQgc3ViKSkp KQorICAgICAgICA7OyBXSU5ET1cgaXMgYSBsaXZlIHdpbmRvdy4KKyAgICAgICAgKGFuZCAob3Ig KG5vdCAod2luZG93cCBpZ25vcmUpKSAobm90IChlcSB3aW5kb3cgaWdub3JlKSkpCisgICAgICAg ICAgICAgKG9yIChhbmQgKG5vdCAoZXEgaWdub3JlICdwcmVzZXJ2ZWQpKQorICAgICAgICAgICAg ICAgICAgICAgICh3aW5kb3ctLXByZXNlcnZlLXNpemUgd2luZG93IGhvcml6b250YWwpKQorICAg ICAgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cp CisgICAgICAgICAgICAgICAgICAgKGlmIGhvcml6b250YWwKKyAgICAgICAgICAgICAgICAgICAg ICAgKG1lbXEgd2luZG93LXNpemUtZml4ZWQgJyh3aWR0aCB0KSkKKyAgICAgICAgICAgICAgICAg ICAgIChtZW1xIHdpbmRvdy1zaXplLWZpeGVkICcoaGVpZ2h0IHQpKSkpKSkpKSkpCiAKIChkZWZ1 biB3aW5kb3ctc2l6ZS1maXhlZC1wICgmb3B0aW9uYWwgd2luZG93IGhvcml6b250YWwgaWdub3Jl KQogICAiUmV0dXJuIG5vbi1uaWwgaWYgV0lORE9XJ3MgaGVpZ2h0IGlzIGZpeGVkLgpAQCAtMTgx NCwzOCArMTgxNCwzOCBAQCBXSU5ET1cgY2FuIGJlIHJlc2l6ZWQgaW4gdGhlIGRlc2lyZWQgZGly ZWN0aW9uLiAgVGhlIGZ1bmN0aW9uCiAgICAgICAwCiAgICAgOzsgRWxzZSB0cnkgdG8gZmluZCBh IG5vbi1maXhlZC1zaXplIHNpYmxpbmcgb2YgV0lORE9XLgogICAgIChsZXQqICgocGFyZW50ICh3 aW5kb3ctcGFyZW50IHdpbmRvdykpCi0JICAgKHN1YiAod2luZG93LWNoaWxkIHBhcmVudCkpKQor ICAgICAgICAgICAoc3ViICh3aW5kb3ctY2hpbGQgcGFyZW50KSkpCiAgICAgICAoY2F0Y2ggJ2Rv bmUKLQkoaWYgKHdpbmRvdy1jb21iaW5lZC1wIHN1YiBob3Jpem9udGFsKQotCSAgICA7OyBJbiBh biBpc28tY29tYmluYXRpb24gdGhyb3cgREVMVEEgaWYgd2UgZmluZCBhdCBsZWFzdCBvbmUKLQkg ICAgOzsgY2hpbGQgd2luZG93IGFuZCB0aGF0IHdpbmRvdyBpcyBlaXRoZXIgbm90IGZpeGVkLXNp emUgb3IKLQkgICAgOzsgd2UgY2FuIGlnbm9yZSBmaXhlZC1zaXplbmVzcy4KLQkgICAgKGxldCAo KHNraXAgKGVxIHRyYWlsICdhZnRlcikpKQotCSAgICAgICh3aGlsZSBzdWIKLQkJKGNvbmQKLQkJ ICgoZXEgc3ViIHdpbmRvdykKLQkJICAoc2V0cSBza2lwIChlcSB0cmFpbCAnYmVmb3JlKSkpCi0J CSAoc2tpcCkKLQkJICgod2luZG93LXNpemUtZml4ZWQtcCBzdWIgaG9yaXpvbnRhbCBpZ25vcmUp KQotCQkgKHQKLQkJICA7OyBXZSBmb3VuZCBhIG5vbi1maXhlZC1zaXplIGNoaWxkIHdpbmRvdy4K LQkJICAodGhyb3cgJ2RvbmUgZGVsdGEpKSkKLQkJKHNldHEgc3ViICh3aW5kb3ctcmlnaHQgc3Vi KSkpKQotCSAgOzsgSW4gYW4gb3J0aG8tY29tYmluYXRpb24gc2V0IERFTFRBIHRvIHRoZSBtaW5p bXVtIHZhbHVlIGJ5Ci0JICA7OyB3aGljaCBvdGhlciBjaGlsZCB3aW5kb3dzIGNhbiBzaHJpbmsu Ci0JICAod2hpbGUgc3ViCi0JICAgICh1bmxlc3MgKGVxIHN1YiB3aW5kb3cpCi0JICAgICAgKHNl dHEgZGVsdGEKLQkJICAgIChtaW4gZGVsdGEKLQkJCSAobWF4ICgtICh3aW5kb3ctc2l6ZSBzdWIg aG9yaXpvbnRhbCBwaXhlbHdpc2UgJ2NlaWxpbmcpCi0JCQkJICh3aW5kb3ctbWluLXNpemUKLQkJ CQkgIHN1YiBob3Jpem9udGFsIGlnbm9yZSBwaXhlbHdpc2UpKQotCQkJICAgICAgMCkpKSkKLQkg ICAgKHNldHEgc3ViICh3aW5kb3ctcmlnaHQgc3ViKSkpKQotCShpZiBub3VwCi0JICAgIGRlbHRh Ci0JICAod2luZG93LS1taW4tZGVsdGEtMQotCSAgIHBhcmVudCBkZWx0YSBob3Jpem9udGFsIGln bm9yZSB0cmFpbCBuaWwgcGl4ZWx3aXNlKSkpKSkpCisgICAgICAgIChpZiAod2luZG93LWNvbWJp bmVkLXAgc3ViIGhvcml6b250YWwpCisgICAgICAgICAgICA7OyBJbiBhbiBpc28tY29tYmluYXRp b24gdGhyb3cgREVMVEEgaWYgd2UgZmluZCBhdCBsZWFzdCBvbmUKKyAgICAgICAgICAgIDs7IGNo aWxkIHdpbmRvdyBhbmQgdGhhdCB3aW5kb3cgaXMgZWl0aGVyIG5vdCBmaXhlZC1zaXplIG9yCisg ICAgICAgICAgICA7OyB3ZSBjYW4gaWdub3JlIGZpeGVkLXNpemVuZXNzLgorICAgICAgICAgICAg KGxldCAoKHNraXAgKGVxIHRyYWlsICdhZnRlcikpKQorICAgICAgICAgICAgICAod2hpbGUgc3Vi CisgICAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgKChlcSBzdWIgd2luZG93 KQorICAgICAgICAgICAgICAgICAgKHNldHEgc2tpcCAoZXEgdHJhaWwgJ2JlZm9yZSkpKQorICAg ICAgICAgICAgICAgICAoc2tpcCkKKyAgICAgICAgICAgICAgICAgKCh3aW5kb3ctc2l6ZS1maXhl ZC1wIHN1YiBob3Jpem9udGFsIGlnbm9yZSkpCisgICAgICAgICAgICAgICAgICh0CisgICAgICAg ICAgICAgICAgICA7OyBXZSBmb3VuZCBhIG5vbi1maXhlZC1zaXplIGNoaWxkIHdpbmRvdy4KKyAg ICAgICAgICAgICAgICAgICh0aHJvdyAnZG9uZSBkZWx0YSkpKQorICAgICAgICAgICAgICAgIChz ZXRxIHN1YiAod2luZG93LXJpZ2h0IHN1YikpKSkKKyAgICAgICAgICA7OyBJbiBhbiBvcnRoby1j b21iaW5hdGlvbiBzZXQgREVMVEEgdG8gdGhlIG1pbmltdW0gdmFsdWUgYnkKKyAgICAgICAgICA7 OyB3aGljaCBvdGhlciBjaGlsZCB3aW5kb3dzIGNhbiBzaHJpbmsuCisgICAgICAgICAgKHdoaWxl IHN1YgorICAgICAgICAgICAgKHVubGVzcyAoZXEgc3ViIHdpbmRvdykKKyAgICAgICAgICAgICAg KHNldHEgZGVsdGEKKyAgICAgICAgICAgICAgICAgICAgKG1pbiBkZWx0YQorICAgICAgICAgICAg ICAgICAgICAgICAgIChtYXggKC0gKHdpbmRvdy1zaXplIHN1YiBob3Jpem9udGFsIHBpeGVsd2lz ZSAnY2VpbGluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctbWlu LXNpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWIgaG9yaXpvbnRhbCBp Z25vcmUgcGl4ZWx3aXNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKSkpCisg ICAgICAgICAgICAoc2V0cSBzdWIgKHdpbmRvdy1yaWdodCBzdWIpKSkpCisgICAgICAgIChpZiBu b3VwCisgICAgICAgICAgICBkZWx0YQorICAgICAgICAgICh3aW5kb3ctLW1pbi1kZWx0YS0xCisg ICAgICAgICAgIHBhcmVudCBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSB0cmFpbCBuaWwgcGl4ZWx3 aXNlKSkpKSkpCiAKIChkZWZ1biB3aW5kb3ctbWluLWRlbHRhICgmb3B0aW9uYWwgd2luZG93IGhv cml6b250YWwgaWdub3JlIHRyYWlsIG5vdXAgbm9kb3duIHBpeGVsd2lzZSkKICAgIlJldHVybiBu dW1iZXIgb2YgbGluZXMgYnkgd2hpY2ggV0lORE9XIGNhbiBiZSBzaHJ1bmsuCkBAIC0xODcyLDcg KzE4NzIsNyBAQCBPcHRpb25hbCBhcmd1bWVudCBQSVhFTFdJU0Ugbm9uLW5pbCBtZWFucyByZXR1 cm4gbnVtYmVyIG9mIHBpeGVscwogYnkgd2hpY2ggV0lORE9XIGNhbiBiZSBzaHJ1bmsuIgogICAo c2V0cSB3aW5kb3cgKHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdykpCiAgIChsZXQgKChz aXplICh3aW5kb3ctc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCBwaXhlbHdpc2UgJ2Zsb29yKSkKLQko bWluaW11bSAod2luZG93LW1pbi1zaXplIHdpbmRvdyBob3Jpem9udGFsIGlnbm9yZSBwaXhlbHdp c2UpKSkKKyAgICAgICAgKG1pbmltdW0gKHdpbmRvdy1taW4tc2l6ZSB3aW5kb3cgaG9yaXpvbnRh bCBpZ25vcmUgcGl4ZWx3aXNlKSkpCiAgICAgKGNvbmQKICAgICAgKG5vZG93bgogICAgICAgOzsg SWYgTk9ET1dOIGlzIHQsIHRyeSB0byByZWNvdmVyIHRoZSBlbnRpcmUgc2l6ZSBvZiBXSU5ET1cu CkBAIC0xODk2LDExICsxODk2LDExIEBAIGZvciBgd2luZG93LXJlc2l6YWJsZScuICBQSVhFTFdJ U0Ugbm9uLW5pbCBtZWFucyByZXR1cm4gc2l6ZXMgaW4KIHBpeGVscy4iCiAgIChzZXRxIGZyYW1l ICh3aW5kb3ctbm9ybWFsaXplLWZyYW1lIGZyYW1lKSkKICAgKGxldCogKChyb290IChmcmFtZS1y b290LXdpbmRvdyBmcmFtZSkpCi0JIChtaW5pICh3aW5kb3ctbmV4dC1zaWJsaW5nIHJvb3QpKSkK KyAgICAgICAgIChtaW5pICh3aW5kb3ctbmV4dC1zaWJsaW5nIHJvb3QpKSkKICAgICAoKyAod2lu ZG93LW1pbi1zaXplIHJvb3QgaG9yaXpvbnRhbCBpZ25vcmUgcGl4ZWx3aXNlKQogICAgICAgIChp ZiAoYW5kIG1pbmkgKG5vdCBob3Jpem9udGFsKSkKLQkgICAod2luZG93LW1pbi1zaXplIG1pbmkg aG9yaXpvbnRhbCBuaWwgcGl4ZWx3aXNlKQotCSAwKSkpKQorICAgICAgICAgICAod2luZG93LW1p bi1zaXplIG1pbmkgaG9yaXpvbnRhbCBuaWwgcGl4ZWx3aXNlKQorICAgICAgICAgMCkpKSkKIAog KGRlZnVuIHdpbmRvdy0tbWF4LWRlbHRhLTEgKHdpbmRvdyBkZWx0YSAmb3B0aW9uYWwgaG9yaXpv bnRhbCBpZ25vcmUgdHJhaWwgbm91cCBwaXhlbHdpc2UpCiAgICJJbnRlcm5hbCBmdW5jdGlvbiBv ZiBgd2luZG93LW1heC1kZWx0YScuIgpAQCAtMTkwOCw0MCArMTkwOCw0MCBAQCBwaXhlbHMuIgog ICAgICAgOzsgQ2FuJ3QgZ28gdXAuICBSZXR1cm4gREVMVEEuCiAgICAgICBkZWx0YQogICAgIChs ZXQqICgocGFyZW50ICh3aW5kb3ctcGFyZW50IHdpbmRvdykpCi0JICAgKHN1YiAod2luZG93LWNo aWxkIHBhcmVudCkpKQorICAgICAgICAgICAoc3ViICh3aW5kb3ctY2hpbGQgcGFyZW50KSkpCiAg ICAgICAoY2F0Y2ggJ2ZpeGVkCi0JKGlmICh3aW5kb3ctY29tYmluZWQtcCBzdWIgaG9yaXpvbnRh bCkKLQkgICAgOzsgRm9yIGFuIGlzby1jb21iaW5hdGlvbiBjYWxjdWxhdGUgaG93IG11Y2ggd2Ug Y2FuIGdldCBmcm9tCi0JICAgIDs7IG90aGVyIGNoaWxkIHdpbmRvd3MuCi0JICAgIChsZXQgKChz a2lwIChlcSB0cmFpbCAnYWZ0ZXIpKSkKLQkgICAgICAod2hpbGUgc3ViCi0JCShjb25kCi0JCSAo KGVxIHN1YiB3aW5kb3cpCi0JCSAgKHNldHEgc2tpcCAoZXEgdHJhaWwgJ2JlZm9yZSkpKQotCQkg KHNraXApCi0JCSAodAotCQkgIChzZXRxIGRlbHRhCi0JCQkoKyBkZWx0YQotCQkJICAgKG1heAot CQkJICAgICgtICh3aW5kb3ctc2l6ZSBzdWIgaG9yaXpvbnRhbCBwaXhlbHdpc2UgJ2Zsb29yKQot CQkJICAgICAgICh3aW5kb3ctbWluLXNpemUKLQkJCQlzdWIgaG9yaXpvbnRhbCBpZ25vcmUgcGl4 ZWx3aXNlKSkKLQkJCSAgICAwKSkpKSkKLQkJKHNldHEgc3ViICh3aW5kb3ctcmlnaHQgc3ViKSkp KQotCSAgOzsgRm9yIGFuIG9ydGhvLWNvbWJpbmF0aW9uIHRocm93IERFTFRBIHdoZW4gYXQgbGVh c3Qgb25lCi0JICA7OyBjaGlsZCB3aW5kb3cgaXMgZml4ZWQtc2l6ZS4KLQkgICh3aGlsZSBzdWIK LQkgICAgKHdoZW4gKGFuZCAobm90IChlcSBzdWIgd2luZG93KSkKLQkJICAgICAgICh3aW5kb3ct c2l6ZS1maXhlZC1wIHN1YiBob3Jpem9udGFsIGlnbm9yZSkpCi0JICAgICAgKHRocm93ICdmaXhl ZCBkZWx0YSkpCi0JICAgIChzZXRxIHN1YiAod2luZG93LXJpZ2h0IHN1YikpKSkKLQkoaWYgbm91 cAotCSAgICA7OyBXaGVuIE5PVVAgaXMgbmlsLCBERUxUQSBpcyBhbGwgd2UgY2FuIGdldC4KLQkg ICAgZGVsdGEKLQkgIDs7IEVsc2UgdHJ5IHdpdGggcGFyZW50IG9mIFdJTkRPVywgcGFzc2luZyB0 aGUgREVMVEEgd2UKLQkgIDs7IHJlY292ZXJlZCBzbyBmYXIuCi0JICAod2luZG93LS1tYXgtZGVs dGEtMQotCSAgIHBhcmVudCBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSB0cmFpbCBuaWwgcGl4ZWx3 aXNlKSkpKSkpCisgICAgICAgIChpZiAod2luZG93LWNvbWJpbmVkLXAgc3ViIGhvcml6b250YWwp CisgICAgICAgICAgICA7OyBGb3IgYW4gaXNvLWNvbWJpbmF0aW9uIGNhbGN1bGF0ZSBob3cgbXVj aCB3ZSBjYW4gZ2V0IGZyb20KKyAgICAgICAgICAgIDs7IG90aGVyIGNoaWxkIHdpbmRvd3MuCisg ICAgICAgICAgICAobGV0ICgoc2tpcCAoZXEgdHJhaWwgJ2FmdGVyKSkpCisgICAgICAgICAgICAg ICh3aGlsZSBzdWIKKyAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAoKGVx IHN1YiB3aW5kb3cpCisgICAgICAgICAgICAgICAgICAoc2V0cSBza2lwIChlcSB0cmFpbCAnYmVm b3JlKSkpCisgICAgICAgICAgICAgICAgIChza2lwKQorICAgICAgICAgICAgICAgICAodAorICAg ICAgICAgICAgICAgICAgKHNldHEgZGVsdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICgrIGRl bHRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF4CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKC0gKHdpbmRvdy1zaXplIHN1YiBob3Jpem9udGFsIHBpeGVsd2lzZSAnZmxvb3Ip CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1taW4tc2l6ZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdWIgaG9yaXpvbnRhbCBpZ25vcmUgcGl4ZWx3aXNl KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSkpKSkKKyAgICAgICAgICAgICAgICAo c2V0cSBzdWIgKHdpbmRvdy1yaWdodCBzdWIpKSkpCisgICAgICAgICAgOzsgRm9yIGFuIG9ydGhv LWNvbWJpbmF0aW9uIHRocm93IERFTFRBIHdoZW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgOzsg Y2hpbGQgd2luZG93IGlzIGZpeGVkLXNpemUuCisgICAgICAgICAgKHdoaWxlIHN1YgorICAgICAg ICAgICAgKHdoZW4gKGFuZCAobm90IChlcSBzdWIgd2luZG93KSkKKyAgICAgICAgICAgICAgICAg ICAgICAgKHdpbmRvdy1zaXplLWZpeGVkLXAgc3ViIGhvcml6b250YWwgaWdub3JlKSkKKyAgICAg ICAgICAgICAgKHRocm93ICdmaXhlZCBkZWx0YSkpCisgICAgICAgICAgICAoc2V0cSBzdWIgKHdp bmRvdy1yaWdodCBzdWIpKSkpCisgICAgICAgIChpZiBub3VwCisgICAgICAgICAgICA7OyBXaGVu IE5PVVAgaXMgbmlsLCBERUxUQSBpcyBhbGwgd2UgY2FuIGdldC4KKyAgICAgICAgICAgIGRlbHRh CisgICAgICAgICAgOzsgRWxzZSB0cnkgd2l0aCBwYXJlbnQgb2YgV0lORE9XLCBwYXNzaW5nIHRo ZSBERUxUQSB3ZQorICAgICAgICAgIDs7IHJlY292ZXJlZCBzbyBmYXIuCisgICAgICAgICAgKHdp bmRvdy0tbWF4LWRlbHRhLTEKKyAgICAgICAgICAgcGFyZW50IGRlbHRhIGhvcml6b250YWwgaWdu b3JlIHRyYWlsIG5pbCBwaXhlbHdpc2UpKSkpKSkKIAogKGRlZnVuIHdpbmRvdy1tYXgtZGVsdGEg KCZvcHRpb25hbCB3aW5kb3cgaG9yaXpvbnRhbCBpZ25vcmUgdHJhaWwgbm91cCBub2Rvd24gcGl4 ZWx3aXNlKQogICAiUmV0dXJuIG1heGltdW0gbnVtYmVyIG9mIGxpbmVzIGJ5IHdoaWNoIFdJTkRP VyBjYW4gYmUgZW5sYXJnZWQuCkBAIC0yMDEyLDEyICsyMDEyLDEyIEBAIG51bWJlciBvZiBwaXhl bHMuIgogICAoY29uZAogICAgKCg8IGRlbHRhIDApCiAgICAgKG1heCAoLSAod2luZG93LW1pbi1k ZWx0YQotCSAgICAgd2luZG93IGhvcml6b250YWwgaWdub3JlIHRyYWlsIG5vdXAgbm9kb3duIHBp eGVsd2lzZSkpCi0JIGRlbHRhKSkKKyAgICAgICAgICAgICB3aW5kb3cgaG9yaXpvbnRhbCBpZ25v cmUgdHJhaWwgbm91cCBub2Rvd24gcGl4ZWx3aXNlKSkKKyAgICAgICAgIGRlbHRhKSkKICAgICgo PiBkZWx0YSAwKQogICAgIChtaW4gKHdpbmRvdy1tYXgtZGVsdGEKLQkgIHdpbmRvdyBob3Jpem9u dGFsIGlnbm9yZSB0cmFpbCBub3VwIG5vZG93biBwaXhlbHdpc2UpCi0JIGRlbHRhKSkKKyAgICAg ICAgICB3aW5kb3cgaG9yaXpvbnRhbCBpZ25vcmUgdHJhaWwgbm91cCBub2Rvd24gcGl4ZWx3aXNl KQorICAgICAgICAgZGVsdGEpKQogICAgKHQgMCkpKQogCiAoZGVmdW4gd2luZG93LS1yZXNpemFi bGUtcCAod2luZG93IGRlbHRhICZvcHRpb25hbCBob3Jpem9udGFsIGlnbm9yZSB0cmFpbCBub3Vw IG5vZG93biBwaXhlbHdpc2UpCkBAIC0yMDMxLDExICsyMDMxLDExIEBAIHBpeGVscy4iCiAgIChz ZXRxIHdpbmRvdyAod2luZG93LW5vcm1hbGl6ZS13aW5kb3cgd2luZG93KSkKICAgKGlmICg+IGRl bHRhIDApCiAgICAgICAoPj0gKHdpbmRvdy0tcmVzaXphYmxlCi0JICAgd2luZG93IGRlbHRhIGhv cml6b250YWwgaWdub3JlIHRyYWlsIG5vdXAgbm9kb3duIHBpeGVsd2lzZSkKLQkgIGRlbHRhKQor ICAgICAgICAgICB3aW5kb3cgZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgdHJhaWwgbm91cCBub2Rv d24gcGl4ZWx3aXNlKQorICAgICAgICAgIGRlbHRhKQogICAgICg8PSAod2luZG93LS1yZXNpemFi bGUKLQkgd2luZG93IGRlbHRhIGhvcml6b250YWwgaWdub3JlIHRyYWlsIG5vdXAgbm9kb3duIHBp eGVsd2lzZSkKLQlkZWx0YSkpKQorICAgICAgICAgd2luZG93IGRlbHRhIGhvcml6b250YWwgaWdu b3JlIHRyYWlsIG5vdXAgbm9kb3duIHBpeGVsd2lzZSkKKyAgICAgICAgZGVsdGEpKSkKIAogKGRl ZnVuIHdpbmRvdy1yZXNpemFibGUgKHdpbmRvdyBkZWx0YSAmb3B0aW9uYWwgaG9yaXpvbnRhbCBp Z25vcmUgcGl4ZWx3aXNlKQogICAiUmV0dXJuIERFTFRBIGlmIFdJTkRPVyBjYW4gYmUgcmVzaXpl ZCB2ZXJ0aWNhbGx5IGJ5IERFTFRBIGxpbmVzLgpAQCAtMjA3NiwxMSArMjA3NiwxMSBAQCBkb2Mt c3RyaW5nIG9mIGB3aW5kb3ctcmVzaXphYmxlJy4iCiAgIChzZXRxIHdpbmRvdyAod2luZG93LW5v cm1hbGl6ZS13aW5kb3cgd2luZG93KSkKICAgKGlmICg+IGRlbHRhIDApCiAgICAgICAoPj0gKHdp bmRvdy0tcmVzaXphYmxlCi0JICAgd2luZG93IGRlbHRhIGhvcml6b250YWwgaWdub3JlIG5pbCBu aWwgbmlsIHBpeGVsd2lzZSkKLQkgIGRlbHRhKQorICAgICAgICAgICB3aW5kb3cgZGVsdGEgaG9y aXpvbnRhbCBpZ25vcmUgbmlsIG5pbCBuaWwgcGl4ZWx3aXNlKQorICAgICAgICAgIGRlbHRhKQog ICAgICg8PSAod2luZG93LS1yZXNpemFibGUKLQkgd2luZG93IGRlbHRhIGhvcml6b250YWwgaWdu b3JlIG5pbCBuaWwgbmlsIHBpeGVsd2lzZSkKLQlkZWx0YSkpKQorICAgICAgICAgd2luZG93IGRl bHRhIGhvcml6b250YWwgaWdub3JlIG5pbCBuaWwgbmlsIHBpeGVsd2lzZSkKKyAgICAgICAgZGVs dGEpKSkKIAogOzsgQWxpYXNlcyBvZiBmdW5jdGlvbnMgZGVmaW5lZCBpbiB3aW5kb3cuYy4KIChk ZWZhbGlhcyAnd2luZG93LWhlaWdodCAnd2luZG93LXRvdGFsLWhlaWdodCkKQEAgLTIxMjQsMzUg KzIxMjQsMzUgQEAgb3B0aW9uYWwgYXJndW1lbnQgUElYRUxXSVNFIGlzIHBhc3NlZCB0byB0aGUg ZnVuY3Rpb25zLiIKIChkZWNsYXJlLWZ1bmN0aW9uIGZvbnQtaW5mbyAiZm9udC5jIiAobmFtZSAm b3B0aW9uYWwgZnJhbWUpKQogCiAoZGVmdW4gd2luZG93LWZvbnQtd2lkdGggKCZvcHRpb25hbCB3 aW5kb3cgZmFjZSkKLSAgICJSZXR1cm4gYXZlcmFnZSBjaGFyYWN0ZXIgd2lkdGggZm9yIHRoZSBm b250IG9mIEZBQ0UgdXNlZCBpbiBXSU5ET1cuCisgICJSZXR1cm4gYXZlcmFnZSBjaGFyYWN0ZXIg d2lkdGggZm9yIHRoZSBmb250IG9mIEZBQ0UgdXNlZCBpbiBXSU5ET1cuCiBXSU5ET1cgbXVzdCBi ZSBhIGxpdmUgd2luZG93IGFuZCBkZWZhdWx0cyB0byB0aGUgc2VsZWN0ZWQgb25lLgogCiBJZiBG QUNFIGlzIG5pbCBvciBvbWl0dGVkLCB0aGUgZGVmYXVsdCBmYWNlIGlzIHVzZWQuICBJZiBGQUNF IGlzCiByZW1hcHBlZCAoc2VlIGBmYWNlLXJlbWFwcGluZy1hbGlzdCcpLCB0aGUgZnVuY3Rpb24g cmV0dXJucyB0aGUKIGluZm9ybWF0aW9uIGZvciB0aGUgcmVtYXBwZWQgZmFjZS4iCi0gICAod2l0 aC1zZWxlY3RlZC13aW5kb3cgKHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdyB0KQotICAg ICAoaWYgKGRpc3BsYXktbXVsdGktZm9udC1wKQotCSAobGV0KiAoKGZhY2UgKGlmIGZhY2UgZmFj ZSAnZGVmYXVsdCkpCi0JCShpbmZvIChmb250LWluZm8gKGZhY2UtZm9udCBmYWNlKSkpCi0JCSh3 aWR0aCAoYXJlZiBpbmZvIDExKSkpCi0JICAgKGlmICg+IHdpZHRoIDApCi0JICAgICAgd2lkdGgK LQkgICAgIChhcmVmIGluZm8gMTApKSkKLSAgICAgICAoZnJhbWUtY2hhci13aWR0aCkpKSkKKyAg KHdpdGgtc2VsZWN0ZWQtd2luZG93ICh3aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5kb3cgdCkK KyAgICAoaWYgKGRpc3BsYXktbXVsdGktZm9udC1wKQorICAgICAgICAobGV0KiAoKGZhY2UgKGlm IGZhY2UgZmFjZSAnZGVmYXVsdCkpCisgICAgICAgICAgICAgICAoaW5mbyAoZm9udC1pbmZvIChm YWNlLWZvbnQgZmFjZSkpKQorICAgICAgICAgICAgICAgKHdpZHRoIChhcmVmIGluZm8gMTEpKSkK KyAgICAgICAgICAoaWYgKD4gd2lkdGggMCkKKyAgICAgICAgICAgICAgd2lkdGgKKyAgICAgICAg ICAgIChhcmVmIGluZm8gMTApKSkKKyAgICAgIChmcmFtZS1jaGFyLXdpZHRoKSkpKQogCiAoZGVm dW4gd2luZG93LWZvbnQtaGVpZ2h0ICgmb3B0aW9uYWwgd2luZG93IGZhY2UpCi0gICAiUmV0dXJu IGNoYXJhY3RlciBoZWlnaHQgZm9yIHRoZSBmb250IG9mIEZBQ0UgdXNlZCBpbiBXSU5ET1cuCisg ICJSZXR1cm4gY2hhcmFjdGVyIGhlaWdodCBmb3IgdGhlIGZvbnQgb2YgRkFDRSB1c2VkIGluIFdJ TkRPVy4KIFdJTkRPVyBtdXN0IGJlIGEgbGl2ZSB3aW5kb3cgYW5kIGRlZmF1bHRzIHRvIHRoZSBz ZWxlY3RlZCBvbmUuCiAKIElmIEZBQ0UgaXMgbmlsIG9yIG9taXR0ZWQsIHRoZSBkZWZhdWx0IGZh Y2UgaXMgdXNlZC4gIElmIEZBQ0UgaXMKIHJlbWFwcGVkIChzZWUgYGZhY2UtcmVtYXBwaW5nLWFs aXN0JyksIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZQogaW5mb3JtYXRpb24gZm9yIHRoZSByZW1h cHBlZCBmYWNlLiIKLSAgICh3aXRoLXNlbGVjdGVkLXdpbmRvdyAod2luZG93LW5vcm1hbGl6ZS13 aW5kb3cgd2luZG93IHQpCi0gICAgIChpZiAoZGlzcGxheS1tdWx0aS1mb250LXApCi0JIChsZXQq ICgoZmFjZSAoaWYgZmFjZSBmYWNlICdkZWZhdWx0KSkKLQkJKGluZm8gKGZvbnQtaW5mbyAoZmFj ZS1mb250IGZhY2UpKSkpCi0JICAgKGFyZWYgaW5mbyAzKSkKLSAgICAgICAoZnJhbWUtY2hhci1o ZWlnaHQpKSkpCisgICh3aXRoLXNlbGVjdGVkLXdpbmRvdyAod2luZG93LW5vcm1hbGl6ZS13aW5k b3cgd2luZG93IHQpCisgICAgKGlmIChkaXNwbGF5LW11bHRpLWZvbnQtcCkKKyAgICAgICAgKGxl dCogKChmYWNlIChpZiBmYWNlIGZhY2UgJ2RlZmF1bHQpKQorICAgICAgICAgICAgICAgKGluZm8g KGZvbnQtaW5mbyAoZmFjZS1mb250IGZhY2UpKSkpCisgICAgICAgICAgKGFyZWYgaW5mbyAzKSkK KyAgICAgIChmcmFtZS1jaGFyLWhlaWdodCkpKSkKIAogKGRlZnZhciBvdmVyZmxvdy1uZXdsaW5l LWludG8tZnJpbmdlKQogCkBAIC0yMTcxLDEwICsyMTcxLDEwIEBAIGZvciB0aGUgY29udGludWF0 aW9uIGdseXBoLiAgU2Vjb25kLCBpdCBhY2NvdW50cyBmb3IgdGhlIHNpemUgb2YKIHRoZSBmb250 LiIKICAgKHdpdGgtc2VsZWN0ZWQtd2luZG93ICh3aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5k b3cgdCkKICAgICAobGV0KiAoKHdpbmRvdy13aWR0aCAod2luZG93LWJvZHktd2lkdGggd2luZG93 IHQpKQotCSAgIChmb250LXdpZHRoICh3aW5kb3ctZm9udC13aWR0aCB3aW5kb3cgZmFjZSkpCi0J ICAgKG5jb2xzICgvIHdpbmRvdy13aWR0aCBmb250LXdpZHRoKSkpCisgICAgICAgICAgIChmb250 LXdpZHRoICh3aW5kb3ctZm9udC13aWR0aCB3aW5kb3cgZmFjZSkpCisgICAgICAgICAgIChuY29s cyAoLyB3aW5kb3ctd2lkdGggZm9udC13aWR0aCkpKQogICAgICAgKGlmIChhbmQgKGRpc3BsYXkt Z3JhcGhpYy1wKQotCSAgICAgICBvdmVyZmxvdy1uZXdsaW5lLWludG8tZnJpbmdlCisgICAgICAg ICAgICAgICBvdmVyZmxvdy1uZXdsaW5lLWludG8tZnJpbmdlCiAgICAgICAgICAgICAgICAobm90 CiAgICAgICAgICAgICAgICAgKG9yIChlcSBsZWZ0LWZyaW5nZS13aWR0aCAwKQogICAgICAgICAg ICAgICAgICAgICAoYW5kIChudWxsIGxlZnQtZnJpbmdlLXdpZHRoKQpAQCAtMjE4MywxMiArMjE4 MywxMiBAQCB0aGUgZm9udC4iCiAgICAgICAgICAgICAgICAgKG9yIChlcSByaWdodC1mcmluZ2Ut d2lkdGggMCkKICAgICAgICAgICAgICAgICAgICAgKGFuZCAobnVsbCByaWdodC1mcmluZ2Utd2lk dGgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKD0gKGZyYW1lLXBhcmFtZXRlciBuaWwgJ3Jp Z2h0LWZyaW5nZSkgMCkpKSkpCi0JICBuY29scworICAgICAgICAgIG5jb2xzCiAgICAgICAgIDs7 IEZJWE1FOiBUaGlzIHNob3VsZCByZW1vdmUgMSBtb3JlIGNvbHVtbiB3aGVuIHRoZXJlIGFyZSBu bwogICAgICAgICA7OyBmcmluZ2VzLCBsaW5lcyBhcmUgdHJ1bmNhdGVkLCBhbmQgdGhlIHdpbmRv dyBpcyBoc2Nyb2xsZWQsCiAgICAgICAgIDs7IGJ1dCBFT0wgaXMgbm90IGluIHRoZSB2aWV3LCBi ZWNhdXNlIHRoZW4gdGhlcmUgYXJlIDIKICAgICAgICAgOzsgdHJ1bmNhdGlvbiBnbHlwaHMsIG5v dCBvbmUuCi0JKDEtIG5jb2xzKSkpKSkKKyAgICAgICAgKDEtIG5jb2xzKSkpKSkKIAogKGRlZnVu IHdpbmRvdy1jdXJyZW50LXNjcm9sbC1iYXJzICgmb3B0aW9uYWwgd2luZG93KQogICAiUmV0dXJu IHRoZSBjdXJyZW50IHNjcm9sbCBiYXIgdHlwZXMgZm9yIFdJTkRPVy4KQEAgLTIyMDQsOCArMjIw NCw4IEBAIHR5cGUgYWN0dWFsbHkgdXNlZCwgb25jZSBmcmFtZSBkZWZhdWx0cyBhbmQgYHNjcm9s bC1iYXItbW9kZScgYXJlCiB0YWtlbiBpbnRvIGFjY291bnQuIgogICAoc2V0cSB3aW5kb3cgKHdp bmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdyB0KSkKICAgKGxldCAoKHZlcnRpY2FsIChudGgg MiAod2luZG93LXNjcm9sbC1iYXJzIHdpbmRvdykpKQotCShob3Jpem9udGFsIChudGggNSAod2lu ZG93LXNjcm9sbC1iYXJzIHdpbmRvdykpKQotCShpbmhlcml0ZWQgKGZyYW1lLWN1cnJlbnQtc2Ny b2xsLWJhcnMgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkpCisgICAgICAgIChob3Jpem9udGFsIChu dGggNSAod2luZG93LXNjcm9sbC1iYXJzIHdpbmRvdykpKQorICAgICAgICAoaW5oZXJpdGVkIChm cmFtZS1jdXJyZW50LXNjcm9sbC1iYXJzICh3aW5kb3ctZnJhbWUgd2luZG93KSkpKQogICAgICh3 aGVuIChlcSB2ZXJ0aWNhbCB0KQogICAgICAgKHNldHEgdmVydGljYWwgKGNhciBpbmhlcml0ZWQp KSkKICAgICAod2hlbiAoZXEgaG9yaXpvbnRhbCB0KQpAQCAtMjI2OSwxMSArMjI2OSwxMSBAQCBT SURFIGNhbiBiZSBhbnkgb2YgdGhlIHN5bWJvbHMgYGxlZnQnLCBgdG9wJywgYHJpZ2h0JyBvcgog YGJvdHRvbScuICBUaGUgZGVmYXVsdCB2YWx1ZSBuaWwgaXMgaGFuZGxlZCBsaWtlIGBib3R0b20n LiIKICAgKHNldHEgd2luZG93ICh3aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5kb3cpKQogICAo bGV0ICgoZWRnZQotCSAoY29uZAotCSAgKChlcSBzaWRlICdsZWZ0KSAwKQotCSAgKChlcSBzaWRl ICd0b3ApIDEpCi0JICAoKGVxIHNpZGUgJ3JpZ2h0KSAyKQotCSAgKChtZW1xIHNpZGUgJyhib3R0 b20gbmlsKSkgMykpKSkKKyAgICAgICAgIChjb25kCisgICAgICAgICAgKChlcSBzaWRlICdsZWZ0 KSAwKQorICAgICAgICAgICgoZXEgc2lkZSAndG9wKSAxKQorICAgICAgICAgICgoZXEgc2lkZSAn cmlnaHQpIDIpCisgICAgICAgICAgKChtZW1xIHNpZGUgJyhib3R0b20gbmlsKSkgMykpKSkKICAg ICAoPSAobnRoIGVkZ2UgKHdpbmRvdy1waXhlbC1lZGdlcyB3aW5kb3cpKQogICAgICAgIChudGgg ZWRnZSAod2luZG93LXBpeGVsLWVkZ2VzIChmcmFtZS1yb290LXdpbmRvdyB3aW5kb3cpKSkpKSkK IApAQCAtMjI4Nyw3ICsyMjg3LDcgQEAgU0lERSBjYW4gYmUgYW55IG9mIHRoZSBzeW1ib2xzIGBs ZWZ0JywgYHRvcCcsIGByaWdodCcgb3IKICAgICAod2Fsay13aW5kb3ctdHJlZQogICAgICAobGFt YmRhICh3aW5kb3cpCiAgICAgICAgKHdoZW4gKHdpbmRvdy1hdC1zaWRlLXAgd2luZG93IHNpZGUp Ci0JIChzZXRxIHdpbmRvd3MgKGNvbnMgd2luZG93IHdpbmRvd3MpKSkpCisgICAgICAgICAoc2V0 cSB3aW5kb3dzIChjb25zIHdpbmRvdyB3aW5kb3dzKSkpKQogICAgICBmcmFtZSBuaWwgJ25vbWlu aSkKICAgICAobnJldmVyc2Ugd2luZG93cykpKQogCkBAIC0yMjk1LDEzICsyMjk1LDEzIEBAIFNJ REUgY2FuIGJlIGFueSBvZiB0aGUgc3ltYm9scyBgbGVmdCcsIGB0b3AnLCBgcmlnaHQnIG9yCiAg ICJTdXBwb3J0IGZ1bmN0aW9uIGZvciBgd2luZG93LWluLWRpcmVjdGlvbicuIgogICAoaWYgaG9y aXpvbnRhbAogICAgICAgKGxldCAoKHRvcCAod2luZG93LXBpeGVsLXRvcCB3aW5kb3cpKSkKLQko aWYgKD4gdG9wIHBvc24pCi0JICAgICgtIHRvcCBwb3NuKQotCSAgKC0gcG9zbiB0b3AgKHdpbmRv dy1waXhlbC1oZWlnaHQgd2luZG93KSkpKQorICAgICAgICAoaWYgKD4gdG9wIHBvc24pCisgICAg ICAgICAgICAoLSB0b3AgcG9zbikKKyAgICAgICAgICAoLSBwb3NuIHRvcCAod2luZG93LXBpeGVs LWhlaWdodCB3aW5kb3cpKSkpCiAgICAgKGxldCAoKGxlZnQgKHdpbmRvdy1waXhlbC1sZWZ0IHdp bmRvdykpKQogICAgICAgKGlmICg+IGxlZnQgcG9zbikKLQkgICgtIGxlZnQgcG9zbikKLQkoLSBw b3NuIGxlZnQgKHdpbmRvdy1waXhlbC13aWR0aCB3aW5kb3cpKSkpKSkKKyAgICAgICAgICAoLSBs ZWZ0IHBvc24pCisgICAgICAgICgtIHBvc24gbGVmdCAod2luZG93LXBpeGVsLXdpZHRoIHdpbmRv dykpKSkpKQogCiA7OyBQcmVkZWNlc3NvcnMgdG8gdGhlIGJlbG93IGhhdmUgYmVlbiBkZXZpc2Vk IGJ5IEp1bGlhbiBBc3NhbmdlIGluCiA7OyBjaGFuZ2Utd2luZG93cy1pbnR1aXRpdmVseS5lbCBh bmQgSG92YXYgU2hhY2hhbSBpbiB3aW5kbW92ZS5lbC4KQEAgLTIzNDYsMTEwICsyMzQ2LDExMCBA QCBSZXR1cm4gbmlsIGlmIG5vIHN1aXRhYmxlIHdpbmRvdyBjYW4gYmUgZm91bmQuIgogICAgKChu b3QgKG1lbXEgZGlyZWN0aW9uICcoYWJvdmUgYmVsb3cgbGVmdCByaWdodCkpKQogICAgIChlcnJv ciAiV3JvbmcgZGlyZWN0aW9uICVzIiBkaXJlY3Rpb24pKSkKICAgKGxldCogKChmcmFtZSAod2lu ZG93LWZyYW1lIHdpbmRvdykpCi0JIChob3IgKG1lbXEgZGlyZWN0aW9uICcobGVmdCByaWdodCkp KQotCSAoZmlyc3QgKGlmIGhvcgotCQkgICAgKHdpbmRvdy1waXhlbC1sZWZ0IHdpbmRvdykKLQkJ ICAod2luZG93LXBpeGVsLXRvcCB3aW5kb3cpKSkKLQkgKGxhc3QgKCsgZmlyc3QgKHdpbmRvdy1z aXplIHdpbmRvdyBob3IgdCkpKQotCSA7OyBUaGUgY29sdW1uIC8gcm93IHZhbHVlIG9mIGBwb3Nu LWF0LXBvaW50JyBjYW4gYmUgbmlsIGZvciB0aGUKLQkgOzsgbWluaS13aW5kb3csIGd1YXJkIGFn YWluc3QgdGhhdC4KLQkgKHBvc24KLQkgIChjb25kCi0JICAgKChhbmQgKG51bWJlcnAgc2lnbikg KDwgc2lnbiAwKSkKLQkgICAgKGlmIGhvcgotCQkoMS0gKCsgKHdpbmRvdy1waXhlbC10b3Agd2lu ZG93KSAod2luZG93LXBpeGVsLWhlaWdodCB3aW5kb3cpKSkKLQkgICAgICAoMS0gKCsgKHdpbmRv dy1waXhlbC1sZWZ0IHdpbmRvdykgKHdpbmRvdy1waXhlbC13aWR0aCB3aW5kb3cpKSkpKQotCSAg ICgoYW5kIChudW1iZXJwIHNpZ24pICg+IHNpZ24gMCkpCi0JICAgIChpZiBob3IKLQkJKHdpbmRv dy1waXhlbC10b3Agd2luZG93KQotCSAgICAgICh3aW5kb3ctcGl4ZWwtbGVmdCB3aW5kb3cpKSkK LQkgICAoKGxldCAoKHBvc24tY29ucyAobnRoIDIgKHBvc24tYXQtcG9pbnQgKHdpbmRvdy1wb2lu dCB3aW5kb3cpIHdpbmRvdykpKSkKLQkgICAgICAoaWYgaG9yCi0JCSAgKCsgKG9yIChjZHIgcG9z bi1jb25zKSAxKSAod2luZG93LXBpeGVsLXRvcCB3aW5kb3cpKQotCQkoKyAob3IgKGNhciBwb3Nu LWNvbnMpIDEpICh3aW5kb3ctcGl4ZWwtbGVmdCB3aW5kb3cpKSkpKSkpCi0JIChiZXN0LWVkZ2UK LQkgIChjb25kCi0JICAgKChlcSBkaXJlY3Rpb24gJ2JlbG93KSAoZnJhbWUtcGl4ZWwtaGVpZ2h0 IGZyYW1lKSkKLQkgICAoKGVxIGRpcmVjdGlvbiAncmlnaHQpIChmcmFtZS1waXhlbC13aWR0aCBm cmFtZSkpCi0JICAgKHQgLTEpKSkKLQkgKGJlc3QtZWRnZS0yIGJlc3QtZWRnZSkKLQkgKGJlc3Qt ZGlmZi0yIChpZiBob3IgKGZyYW1lLXBpeGVsLWhlaWdodCBmcmFtZSkgKGZyYW1lLXBpeGVsLXdp ZHRoIGZyYW1lKSkpCi0JIGJlc3QgYmVzdC0yIGJlc3QtZGlmZi0yLW5ldykKKyAgICAgICAgICho b3IgKG1lbXEgZGlyZWN0aW9uICcobGVmdCByaWdodCkpKQorICAgICAgICAgKGZpcnN0IChpZiBo b3IKKyAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1waXhlbC1sZWZ0IHdpbmRvdykKKyAgICAg ICAgICAgICAgICAgICh3aW5kb3ctcGl4ZWwtdG9wIHdpbmRvdykpKQorICAgICAgICAgKGxhc3Qg KCsgZmlyc3QgKHdpbmRvdy1zaXplIHdpbmRvdyBob3IgdCkpKQorICAgICAgICAgOzsgVGhlIGNv bHVtbiAvIHJvdyB2YWx1ZSBvZiBgcG9zbi1hdC1wb2ludCcgY2FuIGJlIG5pbCBmb3IgdGhlCisg ICAgICAgICA7OyBtaW5pLXdpbmRvdywgZ3VhcmQgYWdhaW5zdCB0aGF0LgorICAgICAgICAgKHBv c24KKyAgICAgICAgICAoY29uZAorICAgICAgICAgICAoKGFuZCAobnVtYmVycCBzaWduKSAoPCBz aWduIDApKQorICAgICAgICAgICAgKGlmIGhvcgorICAgICAgICAgICAgICAgICgxLSAoKyAod2lu ZG93LXBpeGVsLXRvcCB3aW5kb3cpICh3aW5kb3ctcGl4ZWwtaGVpZ2h0IHdpbmRvdykpKQorICAg ICAgICAgICAgICAoMS0gKCsgKHdpbmRvdy1waXhlbC1sZWZ0IHdpbmRvdykgKHdpbmRvdy1waXhl bC13aWR0aCB3aW5kb3cpKSkpKQorICAgICAgICAgICAoKGFuZCAobnVtYmVycCBzaWduKSAoPiBz aWduIDApKQorICAgICAgICAgICAgKGlmIGhvcgorICAgICAgICAgICAgICAgICh3aW5kb3ctcGl4 ZWwtdG9wIHdpbmRvdykKKyAgICAgICAgICAgICAgKHdpbmRvdy1waXhlbC1sZWZ0IHdpbmRvdykp KQorICAgICAgICAgICAoKGxldCAoKHBvc24tY29ucyAobnRoIDIgKHBvc24tYXQtcG9pbnQgKHdp bmRvdy1wb2ludCB3aW5kb3cpIHdpbmRvdykpKSkKKyAgICAgICAgICAgICAgKGlmIGhvcgorICAg ICAgICAgICAgICAgICAgKCsgKG9yIChjZHIgcG9zbi1jb25zKSAxKSAod2luZG93LXBpeGVsLXRv cCB3aW5kb3cpKQorICAgICAgICAgICAgICAgICgrIChvciAoY2FyIHBvc24tY29ucykgMSkgKHdp bmRvdy1waXhlbC1sZWZ0IHdpbmRvdykpKSkpKSkKKyAgICAgICAgIChiZXN0LWVkZ2UKKyAgICAg ICAgICAoY29uZAorICAgICAgICAgICAoKGVxIGRpcmVjdGlvbiAnYmVsb3cpIChmcmFtZS1waXhl bC1oZWlnaHQgZnJhbWUpKQorICAgICAgICAgICAoKGVxIGRpcmVjdGlvbiAncmlnaHQpIChmcmFt ZS1waXhlbC13aWR0aCBmcmFtZSkpCisgICAgICAgICAgICh0IC0xKSkpCisgICAgICAgICAoYmVz dC1lZGdlLTIgYmVzdC1lZGdlKQorICAgICAgICAgKGJlc3QtZGlmZi0yIChpZiBob3IgKGZyYW1l LXBpeGVsLWhlaWdodCBmcmFtZSkgKGZyYW1lLXBpeGVsLXdpZHRoIGZyYW1lKSkpCisgICAgICAg ICBiZXN0IGJlc3QtMiBiZXN0LWRpZmYtMi1uZXcpCiAgICAgKHdhbGstd2luZG93LXRyZWUKICAg ICAgKGxhbWJkYSAodykKICAgICAgICAobGV0KiAoKHctdG9wICh3aW5kb3ctcGl4ZWwtdG9wIHcp KQotCSAgICAgICh3LWxlZnQgKHdpbmRvdy1waXhlbC1sZWZ0IHcpKSkKLQkgKGNvbmQKLQkgICgo b3IgKGVxIHdpbmRvdyB3KQotCSAgICAgICA7OyBJZ25vcmUgb3Vyc2VsdmVzLgotCSAgICAgICAo YW5kICh3aW5kb3ctcGFyYW1ldGVyIHcgJ25vLW90aGVyLXdpbmRvdykKLQkJICAgIDs7IElnbm9y ZSBXIHVubGVzcyBJR05PUkUgaXMgbm9uLW5pbC4KLQkJICAgIChub3QgaWdub3JlKSkpKQotCSAg KGhvcgotCSAgIChjb25kCi0JICAgICgoYW5kICg8PSB3LXRvcCBwb3NuKQotCQkgICg8IHBvc24g KCsgdy10b3AgKHdpbmRvdy1waXhlbC1oZWlnaHQgdykpKSkKLQkgICAgIDs7IFcgaXMgdG8gdGhl IGxlZnQgb3IgcmlnaHQgb2YgV0lORE9XIGFuZCBjb3ZlcnMgUE9TTi4KLQkgICAgICh3aGVuIChv ciAoYW5kIChlcSBkaXJlY3Rpb24gJ2xlZnQpCi0JCQkgICAgKG9yIChhbmQgKDw9IHctbGVmdCBm aXJzdCkgKD4gdy1sZWZ0IGJlc3QtZWRnZSkpCi0JCQkJKGFuZCB3cmFwCi0JCQkJICAgICAod2lu ZG93LWF0LXNpZGUtcCB3aW5kb3cgJ2xlZnQpCi0JCQkJICAgICAod2luZG93LWF0LXNpZGUtcCB3 ICdyaWdodCkpKSkKLQkJICAgICAgIChhbmQgKGVxIGRpcmVjdGlvbiAncmlnaHQpCi0JCQkgICAg KG9yIChhbmQgKD49IHctbGVmdCBsYXN0KSAoPCB3LWxlZnQgYmVzdC1lZGdlKSkKLQkJCQkoYW5k IHdyYXAKLQkJCQkgICAgICh3aW5kb3ctYXQtc2lkZS1wIHdpbmRvdyAncmlnaHQpCi0JCQkJICAg ICAod2luZG93LWF0LXNpZGUtcCB3ICdsZWZ0KSkpKSkKLQkgICAgICAgKHNldHEgYmVzdC1lZGdl IHctbGVmdCkKLQkgICAgICAgKHNldHEgYmVzdCB3KSkpCi0JICAgICgoYW5kIChvciAoYW5kIChl cSBkaXJlY3Rpb24gJ2xlZnQpCi0JCQkgICAoPD0gKCsgdy1sZWZ0ICh3aW5kb3ctcGl4ZWwtd2lk dGggdykpIGZpcnN0KSkKLQkJICAgICAgKGFuZCAoZXEgZGlyZWN0aW9uICdyaWdodCkgKDw9IGxh c3Qgdy1sZWZ0KSkpCi0JCSAgOzsgVyBpcyB0byB0aGUgbGVmdCBvciByaWdodCBvZiBXSU5ET1cg YnV0IGRvZXMgbm90Ci0JCSAgOzsgY292ZXIgUE9TTi4KLQkJICAoc2V0cSBiZXN0LWRpZmYtMi1u ZXcKLQkJCSh3aW5kb3ctLWluLWRpcmVjdGlvbi0yIHcgcG9zbiBob3IpKQotCQkgIChvciAoPCBi ZXN0LWRpZmYtMi1uZXcgYmVzdC1kaWZmLTIpCi0JCSAgICAgIChhbmQgKD0gYmVzdC1kaWZmLTIt bmV3IGJlc3QtZGlmZi0yKQotCQkJICAgKGlmIChlcSBkaXJlY3Rpb24gJ2xlZnQpCi0JCQkgICAg ICAgKD4gdy1sZWZ0IGJlc3QtZWRnZS0yKQotCQkJICAgICAoPCB3LWxlZnQgYmVzdC1lZGdlLTIp KSkpKQotCSAgICAgKHNldHEgYmVzdC1lZGdlLTIgdy1sZWZ0KQotCSAgICAgKHNldHEgYmVzdC1k aWZmLTIgYmVzdC1kaWZmLTItbmV3KQotCSAgICAgKHNldHEgYmVzdC0yIHcpKSkpCi0JICAoKGFu ZCAoPD0gdy1sZWZ0IHBvc24pCi0JCSg8IHBvc24gKCsgdy1sZWZ0ICh3aW5kb3ctcGl4ZWwtd2lk dGggdykpKSkKLQkgICA7OyBXIGlzIGFib3ZlIG9yIGJlbG93IFdJTkRPVyBhbmQgY292ZXJzIFBP U04uCi0JICAgKHdoZW4gKG9yIChhbmQgKGVxIGRpcmVjdGlvbiAnYWJvdmUpCi0JCQkgIChvciAo YW5kICg8PSB3LXRvcCBmaXJzdCkgKD4gdy10b3AgYmVzdC1lZGdlKSkKLQkJCSAgICAgIChhbmQg d3JhcAotCQkJCSAgICh3aW5kb3ctYXQtc2lkZS1wIHdpbmRvdyAndG9wKQotCQkJCSAgIChpZiAo YWN0aXZlLW1pbmlidWZmZXItd2luZG93KQotCQkJCSAgICAgICAobWluaWJ1ZmZlci13aW5kb3ct YWN0aXZlLXAgdykKLQkJCQkgICAgICh3aW5kb3ctYXQtc2lkZS1wIHcgJ2JvdHRvbSkpKSkpCi0J CSAgICAgKGFuZCAoZXEgZGlyZWN0aW9uICdiZWxvdykKLQkJCSAgKG9yIChhbmQgKD49IHctdG9w IGZpcnN0KSAoPCB3LXRvcCBiZXN0LWVkZ2UpKQotCQkJICAgICAgKGFuZCB3cmFwCi0JCQkJICAg KGlmIChhY3RpdmUtbWluaWJ1ZmZlci13aW5kb3cpCi0JCQkJICAgICAgIChtaW5pYnVmZmVyLXdp bmRvdy1hY3RpdmUtcCB3aW5kb3cpCi0JCQkJICAgICAod2luZG93LWF0LXNpZGUtcCB3aW5kb3cg J2JvdHRvbSkpCi0JCQkJICAgKHdpbmRvdy1hdC1zaWRlLXAgdyAndG9wKSkpKSkKLQkgICAgIChz ZXRxIGJlc3QtZWRnZSB3LXRvcCkKLQkgICAgIChzZXRxIGJlc3QgdykpKQotCSAgKChhbmQgKG9y IChhbmQgKGVxIGRpcmVjdGlvbiAnYWJvdmUpCi0JCQkgKDw9ICgrIHctdG9wICh3aW5kb3ctcGl4 ZWwtaGVpZ2h0IHcpKSBmaXJzdCkpCi0JCSAgICAoYW5kIChlcSBkaXJlY3Rpb24gJ2JlbG93KSAo PD0gbGFzdCB3LXRvcCkpKQotCQk7OyBXIGlzIGFib3ZlIG9yIGJlbG93IFdJTkRPVyBidXQgZG9l cyBub3QgY292ZXIgUE9TTi4KLQkJKHNldHEgYmVzdC1kaWZmLTItbmV3Ci0JCSAgICAgICh3aW5k b3ctLWluLWRpcmVjdGlvbi0yIHcgcG9zbiBob3IpKQotCQkob3IgKDwgYmVzdC1kaWZmLTItbmV3 IGJlc3QtZGlmZi0yKQotCQkgICAgKGFuZCAoPSBiZXN0LWRpZmYtMi1uZXcgYmVzdC1kaWZmLTIp Ci0JCQkgKGlmIChlcSBkaXJlY3Rpb24gJ2Fib3ZlKQotCQkJICAgICAoPiB3LXRvcCBiZXN0LWVk Z2UtMikKLQkJCSAgICg8IHctdG9wIGJlc3QtZWRnZS0yKSkpKSkKLQkgICAoc2V0cSBiZXN0LWVk Z2UtMiB3LXRvcCkKLQkgICAoc2V0cSBiZXN0LWRpZmYtMiBiZXN0LWRpZmYtMi1uZXcpCi0JICAg KHNldHEgYmVzdC0yIHcpKSkpKQorICAgICAgICAgICAgICAody1sZWZ0ICh3aW5kb3ctcGl4ZWwt bGVmdCB3KSkpCisgICAgICAgICAoY29uZAorICAgICAgICAgICgob3IgKGVxIHdpbmRvdyB3KQor ICAgICAgICAgICAgICAgOzsgSWdub3JlIG91cnNlbHZlcy4KKyAgICAgICAgICAgICAgIChhbmQg KHdpbmRvdy1wYXJhbWV0ZXIgdyAnbm8tb3RoZXItd2luZG93KQorICAgICAgICAgICAgICAgICAg ICA7OyBJZ25vcmUgVyB1bmxlc3MgSUdOT1JFIGlzIG5vbi1uaWwuCisgICAgICAgICAgICAgICAg ICAgIChub3QgaWdub3JlKSkpKQorICAgICAgICAgIChob3IKKyAgICAgICAgICAgKGNvbmQKKyAg ICAgICAgICAgICgoYW5kICg8PSB3LXRvcCBwb3NuKQorICAgICAgICAgICAgICAgICAgKDwgcG9z biAoKyB3LXRvcCAod2luZG93LXBpeGVsLWhlaWdodCB3KSkpKQorICAgICAgICAgICAgIDs7IFcg aXMgdG8gdGhlIGxlZnQgb3IgcmlnaHQgb2YgV0lORE9XIGFuZCBjb3ZlcnMgUE9TTi4KKyAgICAg ICAgICAgICAod2hlbiAob3IgKGFuZCAoZXEgZGlyZWN0aW9uICdsZWZ0KQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChvciAoYW5kICg8PSB3LWxlZnQgZmlyc3QpICg+IHctbGVmdCBiZXN0 LWVkZ2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIHdyYXAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LWF0LXNpZGUtcCB3aW5kb3cg J2xlZnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1hdC1z aWRlLXAgdyAncmlnaHQpKSkpCisgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGVxIGRpcmVj dGlvbiAncmlnaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIChhbmQgKD49IHct bGVmdCBsYXN0KSAoPCB3LWxlZnQgYmVzdC1lZGdlKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGFuZCB3cmFwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHdpbmRvdy1hdC1zaWRlLXAgd2luZG93ICdyaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAod2luZG93LWF0LXNpZGUtcCB3ICdsZWZ0KSkpKSkKKyAgICAgICAgICAg ICAgIChzZXRxIGJlc3QtZWRnZSB3LWxlZnQpCisgICAgICAgICAgICAgICAoc2V0cSBiZXN0IHcp KSkKKyAgICAgICAgICAgICgoYW5kIChvciAoYW5kIChlcSBkaXJlY3Rpb24gJ2xlZnQpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAoPD0gKCsgdy1sZWZ0ICh3aW5kb3ctcGl4ZWwtd2lkdGgg dykpIGZpcnN0KSkKKyAgICAgICAgICAgICAgICAgICAgICAoYW5kIChlcSBkaXJlY3Rpb24gJ3Jp Z2h0KSAoPD0gbGFzdCB3LWxlZnQpKSkKKyAgICAgICAgICAgICAgICAgIDs7IFcgaXMgdG8gdGhl IGxlZnQgb3IgcmlnaHQgb2YgV0lORE9XIGJ1dCBkb2VzIG5vdAorICAgICAgICAgICAgICAgICAg OzsgY292ZXIgUE9TTi4KKyAgICAgICAgICAgICAgICAgIChzZXRxIGJlc3QtZGlmZi0yLW5ldwor ICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy0taW4tZGlyZWN0aW9uLTIgdyBwb3NuIGhv cikpCisgICAgICAgICAgICAgICAgICAob3IgKDwgYmVzdC1kaWZmLTItbmV3IGJlc3QtZGlmZi0y KQorICAgICAgICAgICAgICAgICAgICAgIChhbmQgKD0gYmVzdC1kaWZmLTItbmV3IGJlc3QtZGlm Zi0yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSBkaXJlY3Rpb24gJ2xlZnQp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKD4gdy1sZWZ0IGJlc3QtZWRnZS0yKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPCB3LWxlZnQgYmVzdC1lZGdlLTIpKSkpKQor ICAgICAgICAgICAgIChzZXRxIGJlc3QtZWRnZS0yIHctbGVmdCkKKyAgICAgICAgICAgICAoc2V0 cSBiZXN0LWRpZmYtMiBiZXN0LWRpZmYtMi1uZXcpCisgICAgICAgICAgICAgKHNldHEgYmVzdC0y IHcpKSkpCisgICAgICAgICAgKChhbmQgKDw9IHctbGVmdCBwb3NuKQorICAgICAgICAgICAgICAg ICg8IHBvc24gKCsgdy1sZWZ0ICh3aW5kb3ctcGl4ZWwtd2lkdGggdykpKSkKKyAgICAgICAgICAg OzsgVyBpcyBhYm92ZSBvciBiZWxvdyBXSU5ET1cgYW5kIGNvdmVycyBQT1NOLgorICAgICAgICAg ICAod2hlbiAob3IgKGFuZCAoZXEgZGlyZWN0aW9uICdhYm92ZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKG9yIChhbmQgKDw9IHctdG9wIGZpcnN0KSAoPiB3LXRvcCBiZXN0LWVkZ2UpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCB3cmFwCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh3aW5kb3ctYXQtc2lkZS1wIHdpbmRvdyAndG9wKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGFjdGl2ZS1taW5pYnVmZmVyLXdpbmRv dykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtaW5pYnVmZmVyLXdp bmRvdy1hY3RpdmUtcCB3KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3 aW5kb3ctYXQtc2lkZS1wIHcgJ2JvdHRvbSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAoYW5k IChlcSBkaXJlY3Rpb24gJ2JlbG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgKGFu ZCAoPj0gdy10b3AgZmlyc3QpICg8IHctdG9wIGJlc3QtZWRnZSkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoYW5kIHdyYXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGlmIChhY3RpdmUtbWluaWJ1ZmZlci13aW5kb3cpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobWluaWJ1ZmZlci13aW5kb3ctYWN0aXZlLXAgd2luZG93KQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctYXQtc2lkZS1wIHdpbmRv dyAnYm90dG9tKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1h dC1zaWRlLXAgdyAndG9wKSkpKSkKKyAgICAgICAgICAgICAoc2V0cSBiZXN0LWVkZ2Ugdy10b3Ap CisgICAgICAgICAgICAgKHNldHEgYmVzdCB3KSkpCisgICAgICAgICAgKChhbmQgKG9yIChhbmQg KGVxIGRpcmVjdGlvbiAnYWJvdmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKDw9ICgrIHct dG9wICh3aW5kb3ctcGl4ZWwtaGVpZ2h0IHcpKSBmaXJzdCkpCisgICAgICAgICAgICAgICAgICAg IChhbmQgKGVxIGRpcmVjdGlvbiAnYmVsb3cpICg8PSBsYXN0IHctdG9wKSkpCisgICAgICAgICAg ICAgICAgOzsgVyBpcyBhYm92ZSBvciBiZWxvdyBXSU5ET1cgYnV0IGRvZXMgbm90IGNvdmVyIFBP U04uCisgICAgICAgICAgICAgICAgKHNldHEgYmVzdC1kaWZmLTItbmV3CisgICAgICAgICAgICAg ICAgICAgICAgKHdpbmRvdy0taW4tZGlyZWN0aW9uLTIgdyBwb3NuIGhvcikpCisgICAgICAgICAg ICAgICAgKG9yICg8IGJlc3QtZGlmZi0yLW5ldyBiZXN0LWRpZmYtMikKKyAgICAgICAgICAgICAg ICAgICAgKGFuZCAoPSBiZXN0LWRpZmYtMi1uZXcgYmVzdC1kaWZmLTIpCisgICAgICAgICAgICAg ICAgICAgICAgICAgKGlmIChlcSBkaXJlY3Rpb24gJ2Fib3ZlKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoPiB3LXRvcCBiZXN0LWVkZ2UtMikKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICg8IHctdG9wIGJlc3QtZWRnZS0yKSkpKSkKKyAgICAgICAgICAgKHNldHEgYmVzdC1lZGdl LTIgdy10b3ApCisgICAgICAgICAgIChzZXRxIGJlc3QtZGlmZi0yIGJlc3QtZGlmZi0yLW5ldykK KyAgICAgICAgICAgKHNldHEgYmVzdC0yIHcpKSkpKQogICAgICBmcmFtZSBuaWwgKGFuZCBtaW5p IHQpKQogICAgIChvciBiZXN0IGJlc3QtMikpKQogCkBAIC0yNDg4LDE2ICsyNDg4LDE2IEBAIEFu eXRoaW5nIGVsc2UgbWVhbnMgY29uc2lkZXIgYWxsIHdpbmRvd3Mgb24gdGhlIHNlbGVjdGVkIGZy YW1lCiBhbmQgbm8gb3RoZXJzLiIKICAgKGNhdGNoICdmb3VuZAogICAgIChkb2xpc3QgKHdpbmRv dyAod2luZG93LWxpc3QtMQotCQkgICAgIChuZXh0LXdpbmRvdyBuaWwgbWluaWJ1ZiBhbGwtZnJh bWVzKQotCQkgICAgIG1pbmlidWYgYWxsLWZyYW1lcykpCisgICAgICAgICAgICAgICAgICAgICAo bmV4dC13aW5kb3cgbmlsIG1pbmlidWYgYWxsLWZyYW1lcykKKyAgICAgICAgICAgICAgICAgICAg IG1pbmlidWYgYWxsLWZyYW1lcykpCiAgICAgICAod2hlbiAoZnVuY2FsbCBwcmVkaWNhdGUgd2lu ZG93KQotCSh0aHJvdyAnZm91bmQgd2luZG93KSkpCisgICAgICAgICh0aHJvdyAnZm91bmQgd2lu ZG93KSkpCiAgICAgZGVmYXVsdCkpCiAKIChkZWZhbGlhcyAnc29tZS13aW5kb3cgJ2dldC13aW5k b3ctd2l0aC1wcmVkaWNhdGUpCiAKIChkZWZ1biBnZXQtbHJ1LXdpbmRvdyAoJm9wdGlvbmFsIGFs bC1mcmFtZXMgZGVkaWNhdGVkIG5vdC1zZWxlY3RlZCkKLSAgICJSZXR1cm4gdGhlIGxlYXN0IHJl Y2VudGx5IHVzZWQgd2luZG93IG9uIGZyYW1lcyBzcGVjaWZpZWQgYnkgQUxMLUZSQU1FUy4KKyAg IlJldHVybiB0aGUgbGVhc3QgcmVjZW50bHkgdXNlZCB3aW5kb3cgb24gZnJhbWVzIHNwZWNpZmll ZCBieSBBTEwtRlJBTUVTLgogUmV0dXJuIGEgZnVsbC13aWR0aCB3aW5kb3cgaWYgcG9zc2libGUu ICBBIG1pbmlidWZmZXIgd2luZG93IGlzCiBuZXZlciBhIGNhbmRpZGF0ZS4gIEEgZGVkaWNhdGVk IHdpbmRvdyBpcyBuZXZlciBhIGNhbmRpZGF0ZQogdW5sZXNzIERFRElDQVRFRCBpcyBub24tbmls LCBzbyBpZiBhbGwgd2luZG93cyBhcmUgZGVkaWNhdGVkLCB0aGUKQEAgLTI1MjAsMjMgKzI1MjAs MjMgQEAgaGF2ZSBzcGVjaWFsIG1lYW5pbmdzOgogCiBBbnkgb3RoZXIgdmFsdWUgb2YgQUxMLUZS QU1FUyBtZWFucyBjb25zaWRlciBhbGwgd2luZG93cyBvbiB0aGUKIHNlbGVjdGVkIGZyYW1lIGFu ZCBubyBvdGhlcnMuIgotICAgKGxldCAoYmVzdC13aW5kb3cgYmVzdC10aW1lIHNlY29uZC1iZXN0 LXdpbmRvdyBzZWNvbmQtYmVzdC10aW1lIHRpbWUpCisgIChsZXQgKGJlc3Qtd2luZG93IGJlc3Qt dGltZSBzZWNvbmQtYmVzdC13aW5kb3cgc2Vjb25kLWJlc3QtdGltZSB0aW1lKQogICAgIChkb2xp c3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgJ25vbWluaSBhbGwtZnJhbWVzKSkKICAgICAg ICh3aGVuIChhbmQgKG9yIGRlZGljYXRlZCAobm90ICh3aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93 KSkpCi0JCSAob3IgKG5vdCBub3Qtc2VsZWN0ZWQpIChub3QgKGVxIHdpbmRvdyAoc2VsZWN0ZWQt d2luZG93KSkpKSkKLQkoc2V0cSB0aW1lICh3aW5kb3ctdXNlLXRpbWUgd2luZG93KSkKLQkoaWYg KG9yIChlcSB3aW5kb3cgKHNlbGVjdGVkLXdpbmRvdykpCi0JCShub3QgKHdpbmRvdy1mdWxsLXdp ZHRoLXAgd2luZG93KSkpCi0JICAgICh3aGVuIChvciAobm90IHNlY29uZC1iZXN0LXRpbWUpICg8 IHRpbWUgc2Vjb25kLWJlc3QtdGltZSkpCi0JICAgICAgKHNldHEgc2Vjb25kLWJlc3QtdGltZSB0 aW1lKQotCSAgICAgIChzZXRxIHNlY29uZC1iZXN0LXdpbmRvdyB3aW5kb3cpKQotCSAgKHdoZW4g KG9yIChub3QgYmVzdC10aW1lKSAoPCB0aW1lIGJlc3QtdGltZSkpCi0JICAgIChzZXRxIGJlc3Qt dGltZSB0aW1lKQotCSAgICAoc2V0cSBiZXN0LXdpbmRvdyB3aW5kb3cpKSkpKQorICAgICAgICAg ICAgICAgICAob3IgKG5vdCBub3Qtc2VsZWN0ZWQpIChub3QgKGVxIHdpbmRvdyAoc2VsZWN0ZWQt d2luZG93KSkpKSkKKyAgICAgICAgKHNldHEgdGltZSAod2luZG93LXVzZS10aW1lIHdpbmRvdykp CisgICAgICAgIChpZiAob3IgKGVxIHdpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkKKyAgICAgICAg ICAgICAgICAobm90ICh3aW5kb3ctZnVsbC13aWR0aC1wIHdpbmRvdykpKQorICAgICAgICAgICAg KHdoZW4gKG9yIChub3Qgc2Vjb25kLWJlc3QtdGltZSkgKDwgdGltZSBzZWNvbmQtYmVzdC10aW1l KSkKKyAgICAgICAgICAgICAgKHNldHEgc2Vjb25kLWJlc3QtdGltZSB0aW1lKQorICAgICAgICAg ICAgICAoc2V0cSBzZWNvbmQtYmVzdC13aW5kb3cgd2luZG93KSkKKyAgICAgICAgICAod2hlbiAo b3IgKG5vdCBiZXN0LXRpbWUpICg8IHRpbWUgYmVzdC10aW1lKSkKKyAgICAgICAgICAgIChzZXRx IGJlc3QtdGltZSB0aW1lKQorICAgICAgICAgICAgKHNldHEgYmVzdC13aW5kb3cgd2luZG93KSkp KSkKICAgICAob3IgYmVzdC13aW5kb3cgc2Vjb25kLWJlc3Qtd2luZG93KSkpCiAKIChkZWZ1biBn ZXQtbXJ1LXdpbmRvdyAoJm9wdGlvbmFsIGFsbC1mcmFtZXMgZGVkaWNhdGVkIG5vdC1zZWxlY3Rl ZCkKLSAgICJSZXR1cm4gdGhlIG1vc3QgcmVjZW50bHkgdXNlZCB3aW5kb3cgb24gZnJhbWVzIHNw ZWNpZmllZCBieSBBTEwtRlJBTUVTLgorICAiUmV0dXJuIHRoZSBtb3N0IHJlY2VudGx5IHVzZWQg d2luZG93IG9uIGZyYW1lcyBzcGVjaWZpZWQgYnkgQUxMLUZSQU1FUy4KIEEgbWluaWJ1ZmZlciB3 aW5kb3cgaXMgbmV2ZXIgYSBjYW5kaWRhdGUuICBBIGRlZGljYXRlZCB3aW5kb3cgaXMKIG5ldmVy IGEgY2FuZGlkYXRlIHVubGVzcyBERURJQ0FURUQgaXMgbm9uLW5pbCwgc28gaWYgYWxsIHdpbmRv d3MKIGFyZSBkZWRpY2F0ZWQsIHRoZSB2YWx1ZSBpcyBuaWwuICBPcHRpb25hbCBhcmd1bWVudCBO T1QtU0VMRUNURUQKQEAgLTI1NTcsMTQgKzI1NTcsMTQgQEAgaGF2ZSBzcGVjaWFsIG1lYW5pbmdz OgogCiBBbnkgb3RoZXIgdmFsdWUgb2YgQUxMLUZSQU1FUyBtZWFucyBjb25zaWRlciBhbGwgd2lu ZG93cyBvbiB0aGUKIHNlbGVjdGVkIGZyYW1lIGFuZCBubyBvdGhlcnMuIgotICAgKGxldCAoYmVz dC13aW5kb3cgYmVzdC10aW1lIHRpbWUpCisgIChsZXQgKGJlc3Qtd2luZG93IGJlc3QtdGltZSB0 aW1lKQogICAgIChkb2xpc3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgJ25vbWluaSBhbGwt ZnJhbWVzKSkKICAgICAgIChzZXRxIHRpbWUgKHdpbmRvdy11c2UtdGltZSB3aW5kb3cpKQogICAg ICAgKHdoZW4gKGFuZCAob3IgZGVkaWNhdGVkIChub3QgKHdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5k b3cpKSkKLQkJIChvciAobm90IG5vdC1zZWxlY3RlZCkgKG5vdCAoZXEgd2luZG93IChzZWxlY3Rl ZC13aW5kb3cpKSkpCi0JCSAob3IgKG5vdCBiZXN0LXRpbWUpICg+IHRpbWUgYmVzdC10aW1lKSkp Ci0JKHNldHEgYmVzdC10aW1lIHRpbWUpCi0JKHNldHEgYmVzdC13aW5kb3cgd2luZG93KSkpCisg ICAgICAgICAgICAgICAgIChvciAobm90IG5vdC1zZWxlY3RlZCkgKG5vdCAoZXEgd2luZG93IChz ZWxlY3RlZC13aW5kb3cpKSkpCisgICAgICAgICAgICAgICAgIChvciAobm90IGJlc3QtdGltZSkg KD4gdGltZSBiZXN0LXRpbWUpKSkKKyAgICAgICAgKHNldHEgYmVzdC10aW1lIHRpbWUpCisgICAg ICAgIChzZXRxIGJlc3Qtd2luZG93IHdpbmRvdykpKQogICAgIGJlc3Qtd2luZG93KSkKIAogKGRl ZnVuIGdldC1sYXJnZXN0LXdpbmRvdyAoJm9wdGlvbmFsIGFsbC1mcmFtZXMgZGVkaWNhdGVkIG5v dC1zZWxlY3RlZCkKQEAgLTI1OTAsMTUgKzI1OTAsMTUgQEAgaGF2ZSBzcGVjaWFsIG1lYW5pbmdz OgogQW55IG90aGVyIHZhbHVlIG9mIEFMTC1GUkFNRVMgbWVhbnMgY29uc2lkZXIgYWxsIHdpbmRv d3Mgb24gdGhlCiBzZWxlY3RlZCBmcmFtZSBhbmQgbm8gb3RoZXJzLiIKICAgKGxldCAoKGJlc3Qt c2l6ZSAwKQotCWJlc3Qtd2luZG93IHNpemUpCisgICAgICAgIGJlc3Qtd2luZG93IHNpemUpCiAg ICAgKGRvbGlzdCAod2luZG93ICh3aW5kb3ctbGlzdC0xIG5pbCAnbm9taW5pIGFsbC1mcmFtZXMp KQogICAgICAgKHdoZW4gKGFuZCAob3IgZGVkaWNhdGVkIChub3QgKHdpbmRvdy1kZWRpY2F0ZWQt cCB3aW5kb3cpKSkKLQkJIChvciAobm90IG5vdC1zZWxlY3RlZCkgKG5vdCAoZXEgd2luZG93IChz ZWxlY3RlZC13aW5kb3cpKSkpKQotCShzZXRxIHNpemUgKCogKHdpbmRvdy1waXhlbC1oZWlnaHQg d2luZG93KQotCQkgICAgICAod2luZG93LXBpeGVsLXdpZHRoIHdpbmRvdykpKQotCSh3aGVuICg+ IHNpemUgYmVzdC1zaXplKQotCSAgKHNldHEgYmVzdC1zaXplIHNpemUpCi0JICAoc2V0cSBiZXN0 LXdpbmRvdyB3aW5kb3cpKSkpCisgICAgICAgICAgICAgICAgIChvciAobm90IG5vdC1zZWxlY3Rl ZCkgKG5vdCAoZXEgd2luZG93IChzZWxlY3RlZC13aW5kb3cpKSkpKQorICAgICAgICAoc2V0cSBz aXplICgqICh3aW5kb3ctcGl4ZWwtaGVpZ2h0IHdpbmRvdykKKyAgICAgICAgICAgICAgICAgICAg ICAod2luZG93LXBpeGVsLXdpZHRoIHdpbmRvdykpKQorICAgICAgICAod2hlbiAoPiBzaXplIGJl c3Qtc2l6ZSkKKyAgICAgICAgICAoc2V0cSBiZXN0LXNpemUgc2l6ZSkKKyAgICAgICAgICAoc2V0 cSBiZXN0LXdpbmRvdyB3aW5kb3cpKSkpCiAgICAgYmVzdC13aW5kb3cpKQogCiAoZGVmdW4gZ2V0 LWJ1ZmZlci13aW5kb3ctbGlzdCAoJm9wdGlvbmFsIGJ1ZmZlci1vci1uYW1lIG1pbmlidWYgYWxs LWZyYW1lcykKQEAgLTI2MzIsMTAgKzI2MzIsMTAgQEAgbm9uLW5pbCB2YWx1ZXMgb2YgQUxMLUZS QU1FUyBoYXZlIHNwZWNpYWwgbWVhbmluZ3M6CiBBbnl0aGluZyBlbHNlIG1lYW5zIGNvbnNpZGVy IGFsbCB3aW5kb3dzIG9uIHRoZSBzZWxlY3RlZCBmcmFtZQogYW5kIG5vIG90aGVycy4iCiAgIChs ZXQgKChidWZmZXIgKHdpbmRvdy1ub3JtYWxpemUtYnVmZmVyIGJ1ZmZlci1vci1uYW1lKSkKLQl3 aW5kb3dzKQorICAgICAgICB3aW5kb3dzKQogICAgIChkb2xpc3QgKHdpbmRvdyAod2luZG93LWxp c3QtMSAoc2VsZWN0ZWQtd2luZG93KSBtaW5pYnVmIGFsbC1mcmFtZXMpKQogICAgICAgKHdoZW4g KGVxICh3aW5kb3ctYnVmZmVyIHdpbmRvdykgYnVmZmVyKQotCShzZXRxIHdpbmRvd3MgKGNvbnMg d2luZG93IHdpbmRvd3MpKSkpCisgICAgICAgIChzZXRxIHdpbmRvd3MgKGNvbnMgd2luZG93IHdp bmRvd3MpKSkpCiAgICAgKG5yZXZlcnNlIHdpbmRvd3MpKSkKIAogKGRlZnVuIG1pbmlidWZmZXIt d2luZG93LWFjdGl2ZS1wICh3aW5kb3cpCkBAIC0yNjQzLDcgKzI2NDMsNyBAQCBhbmQgbm8gb3Ro ZXJzLiIKICAgKGFuZCAod2luZG93LWxpdmUtcCB3aW5kb3cpIChlcSB3aW5kb3cgKGFjdGl2ZS1t aW5pYnVmZmVyLXdpbmRvdykpKSkKIAogKGRlZnVuIGNvdW50LXdpbmRvd3MgKCZvcHRpb25hbCBt aW5pYnVmIGFsbC1mcmFtZXMpCi0gICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgbGl2ZSB3aW5kb3dz IG9uIHRoZSBzZWxlY3RlZCBmcmFtZS4KKyAgIlJldHVybiB0aGUgbnVtYmVyIG9mIGxpdmUgd2lu ZG93cyBvbiB0aGUgc2VsZWN0ZWQgZnJhbWUuCiAKIFRoZSBvcHRpb25hbCBhcmd1bWVudCBNSU5J QlVGIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBtaW5pYnVmZmVyCiB3aW5kb3cgaXMgaW5jbHVkZWQg aW4gdGhlIGNvdW50LgpAQCAtMjY1Miw3ICsyNjUyLDcgQEAgSWYgQUxMLUZSQU1FUyBpcyBub24t bmlsLCBjb3VudCB0aGUgd2luZG93cyBpbiBhbGwgZnJhbWVzIGluc3RlYWQKIGp1c3QgdGhlIHNl bGVjdGVkIGZyYW1lLgogCiBTZWUgYHdhbGstd2luZG93cycgZm9yIHRoZSBwcmVjaXNlIG1lYW5p bmcgb2YgdGhpcyBhcmd1bWVudC4iCi0gICAobGVuZ3RoICh3aW5kb3ctbGlzdC0xIG5pbCBtaW5p YnVmIGFsbC1mcmFtZXMpKSkKKyAgKGxlbmd0aCAod2luZG93LWxpc3QtMSBuaWwgbWluaWJ1ZiBh bGwtZnJhbWVzKSkpCiAMCiA7OzsgUmVzaXppbmcgd2luZG93cy4KIChkZWZ1biB3aW5kb3ctLXNp emUtdG8tcGl4ZWwgKHdpbmRvdyBzaXplICZvcHRpb25hbCBob3Jpem9udGFsIHBpeGVsd2lzZSBy b3VuZC1tYXliZSkKQEAgLTI2NzIsNTIgKzI2NzIsNTIgQEAgV0lORE9XJ3MgZnJhbWUgaWYgdGhl IG9wdGlvbiBgd2luZG93LXJlc2l6ZS1waXhlbHdpc2UnIGlzIG5pbC4iCiAgIChzZXRxIHdpbmRv dyAod2luZG93LW5vcm1hbGl6ZS13aW5kb3cgd2luZG93KSkKICAgKGxldCAoKGNoYXItc2l6ZSAo ZnJhbWUtY2hhci1zaXplIHdpbmRvdyBob3Jpem9udGFsKSkpCiAgICAgKGlmIHBpeGVsd2lzZQot CShpZiAoYW5kIHJvdW5kLW1heWJlIChub3Qgd2luZG93LXJlc2l6ZS1waXhlbHdpc2UpKQotCSAg ICAoKiAocm91bmQgc2l6ZSBjaGFyLXNpemUpIGNoYXItc2l6ZSkKLQkgIHNpemUpCisgICAgICAg IChpZiAoYW5kIHJvdW5kLW1heWJlIChub3Qgd2luZG93LXJlc2l6ZS1waXhlbHdpc2UpKQorICAg ICAgICAgICAgKCogKHJvdW5kIHNpemUgY2hhci1zaXplKSBjaGFyLXNpemUpCisgICAgICAgICAg c2l6ZSkKICAgICAgICgqIHNpemUgY2hhci1zaXplKSkpKQogCiAoZGVmdW4gd2luZG93LS1waXhl bC10by10b3RhbC0xICh3aW5kb3cgaG9yaXpvbnRhbCBjaGFyLXNpemUpCiAgICJTdWJyb3V0aW5l IG9mIGB3aW5kb3ctLXBpeGVsLXRvLXRvdGFsJy4iCiAgIChsZXQgKChjaGlsZCAod2luZG93LWNo aWxkIHdpbmRvdykpKQogICAgIChpZiAod2luZG93LWNvbWJpbmF0aW9uLXAgd2luZG93IGhvcml6 b250YWwpCi0JOzsgSW4gYW4gaXNvLWNvbWJpbmF0aW9uIGRpc3RyaWJ1dGUgc2l6ZXMgcHJvcG9y dGlvbmFsbHkuCi0JKGxldCAoKHJlbWFpbmRlciAod2luZG93LW5ldy10b3RhbCB3aW5kb3cpKQot CSAgICAgIHNpemUgYmVzdC1jaGlsZCByZW0gYmVzdC1yZW0pCi0JICA7OyBJbml0aWFsaXplIHRv dGFsIHNpemVzIHRvIGVhY2ggY2hpbGQncyBmbG9vci4KLQkgICh3aGlsZSBjaGlsZAotCSAgICAo c2V0cSBzaXplIChtYXggKC8gKHdpbmRvdy1zaXplIGNoaWxkIGhvcml6b250YWwgdCkgY2hhci1z aXplKSAxKSkKLQkgICAgKHNldC13aW5kb3ctbmV3LXRvdGFsIGNoaWxkIHNpemUpCi0JICAgIChz ZXRxIHJlbWFpbmRlciAoLSByZW1haW5kZXIgc2l6ZSkpCi0JICAgIChzZXRxIGNoaWxkICh3aW5k b3ctbmV4dC1zaWJsaW5nIGNoaWxkKSkpCi0JICA7OyBEaXN0cmlidXRlIHJlbWFpbmRlci4KLQkg ICh3aGlsZSAoPiByZW1haW5kZXIgMCkKLQkgICAgKHNldHEgY2hpbGQgKHdpbmRvdy1sYXN0LWNo aWxkIHdpbmRvdykpCi0JICAgIChzZXRxIGJlc3QtY2hpbGQgbmlsKQotCSAgICAoc2V0cSBiZXN0 LXJlbSAwKQotCSAgICAod2hpbGUgY2hpbGQKLQkgICAgICAod2hlbiAoYW5kICg8PSAod2luZG93 LW5ldy10b3RhbCBjaGlsZCkKLQkJCSAgICAgKC8gKHdpbmRvdy1zaXplIGNoaWxkIGhvcml6b250 YWwgdCkgY2hhci1zaXplKSkKLQkJCSAoPiAoc2V0cSByZW0gKCUgKHdpbmRvdy1zaXplIGNoaWxk IGhvcml6b250YWwgdCkKLQkJCQkJIGNoYXItc2l6ZSkpCi0JCQkgICAgYmVzdC1yZW0pKQotCQkg ICAoc2V0cSBiZXN0LWNoaWxkIGNoaWxkKQotCQkgICAoc2V0cSBiZXN0LXJlbSByZW0pKQotCSAg ICAgIChzZXRxIGNoaWxkICh3aW5kb3ctcHJldi1zaWJsaW5nIGNoaWxkKSkpCi0JICAgIDs7IFdl IE1VU1QgaGF2ZSBhIGJlc3QtY2hpbGQgaGVyZS4KLQkgICAgKHNldC13aW5kb3ctbmV3LXRvdGFs IGJlc3QtY2hpbGQgMSB0KQotCSAgICAoc2V0cSByZW1haW5kZXIgKDEtIHJlbWFpbmRlcikpKQot CSAgOzsgUmVjdXJzZS4KLQkgIChzZXRxIGNoaWxkICh3aW5kb3ctY2hpbGQgd2luZG93KSkKLQkg ICh3aGlsZSBjaGlsZAotCSAgICAod2luZG93LS1waXhlbC10by10b3RhbC0xIGNoaWxkIGhvcml6 b250YWwgY2hhci1zaXplKQotCSAgICAoc2V0cSBjaGlsZCAod2luZG93LW5leHQtc2libGluZyBj aGlsZCkpKSkKKyAgICAgICAgOzsgSW4gYW4gaXNvLWNvbWJpbmF0aW9uIGRpc3RyaWJ1dGUgc2l6 ZXMgcHJvcG9ydGlvbmFsbHkuCisgICAgICAgIChsZXQgKChyZW1haW5kZXIgKHdpbmRvdy1uZXct dG90YWwgd2luZG93KSkKKyAgICAgICAgICAgICAgc2l6ZSBiZXN0LWNoaWxkIHJlbSBiZXN0LXJl bSkKKyAgICAgICAgICA7OyBJbml0aWFsaXplIHRvdGFsIHNpemVzIHRvIGVhY2ggY2hpbGQncyBm bG9vci4KKyAgICAgICAgICAod2hpbGUgY2hpbGQKKyAgICAgICAgICAgIChzZXRxIHNpemUgKG1h eCAoLyAod2luZG93LXNpemUgY2hpbGQgaG9yaXpvbnRhbCB0KSBjaGFyLXNpemUpIDEpKQorICAg ICAgICAgICAgKHNldC13aW5kb3ctbmV3LXRvdGFsIGNoaWxkIHNpemUpCisgICAgICAgICAgICAo c2V0cSByZW1haW5kZXIgKC0gcmVtYWluZGVyIHNpemUpKQorICAgICAgICAgICAgKHNldHEgY2hp bGQgKHdpbmRvdy1uZXh0LXNpYmxpbmcgY2hpbGQpKSkKKyAgICAgICAgICA7OyBEaXN0cmlidXRl IHJlbWFpbmRlci4KKyAgICAgICAgICAod2hpbGUgKD4gcmVtYWluZGVyIDApCisgICAgICAgICAg ICAoc2V0cSBjaGlsZCAod2luZG93LWxhc3QtY2hpbGQgd2luZG93KSkKKyAgICAgICAgICAgIChz ZXRxIGJlc3QtY2hpbGQgbmlsKQorICAgICAgICAgICAgKHNldHEgYmVzdC1yZW0gMCkKKyAgICAg ICAgICAgICh3aGlsZSBjaGlsZAorICAgICAgICAgICAgICAod2hlbiAoYW5kICg8PSAod2luZG93 LW5ldy10b3RhbCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKC8gKHdpbmRv dy1zaXplIGNoaWxkIGhvcml6b250YWwgdCkgY2hhci1zaXplKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAoPiAoc2V0cSByZW0gKCUgKHdpbmRvdy1zaXplIGNoaWxkIGhvcml6b250YWwgdCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhci1zaXplKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0LXJlbSkpCisgICAgICAgICAgICAgICAgKHNl dHEgYmVzdC1jaGlsZCBjaGlsZCkKKyAgICAgICAgICAgICAgICAoc2V0cSBiZXN0LXJlbSByZW0p KQorICAgICAgICAgICAgICAoc2V0cSBjaGlsZCAod2luZG93LXByZXYtc2libGluZyBjaGlsZCkp KQorICAgICAgICAgICAgOzsgV2UgTVVTVCBoYXZlIGEgYmVzdC1jaGlsZCBoZXJlLgorICAgICAg ICAgICAgKHNldC13aW5kb3ctbmV3LXRvdGFsIGJlc3QtY2hpbGQgMSB0KQorICAgICAgICAgICAg KHNldHEgcmVtYWluZGVyICgxLSByZW1haW5kZXIpKSkKKyAgICAgICAgICA7OyBSZWN1cnNlLgor ICAgICAgICAgIChzZXRxIGNoaWxkICh3aW5kb3ctY2hpbGQgd2luZG93KSkKKyAgICAgICAgICAo d2hpbGUgY2hpbGQKKyAgICAgICAgICAgICh3aW5kb3ctLXBpeGVsLXRvLXRvdGFsLTEgY2hpbGQg aG9yaXpvbnRhbCBjaGFyLXNpemUpCisgICAgICAgICAgICAoc2V0cSBjaGlsZCAod2luZG93LW5l eHQtc2libGluZyBjaGlsZCkpKSkKICAgICAgIDs7IEluIGFuIG9ydGhvLWNvbWJpbmF0aW9uIGFz c2lnbiBuZXcgc2l6ZXMgZGlyZWN0bHkuCiAgICAgICAobGV0ICgoc2l6ZSAod2luZG93LW5ldy10 b3RhbCB3aW5kb3cpKSkKLQkod2hpbGUgY2hpbGQKLQkgIChzZXQtd2luZG93LW5ldy10b3RhbCBj aGlsZCBzaXplKQotCSAgKHdpbmRvdy0tcGl4ZWwtdG8tdG90YWwtMSBjaGlsZCBob3Jpem9udGFs IGNoYXItc2l6ZSkKLQkgIChzZXRxIGNoaWxkICh3aW5kb3ctbmV4dC1zaWJsaW5nIGNoaWxkKSkp KSkpKQorICAgICAgICAod2hpbGUgY2hpbGQKKyAgICAgICAgICAoc2V0LXdpbmRvdy1uZXctdG90 YWwgY2hpbGQgc2l6ZSkKKyAgICAgICAgICAod2luZG93LS1waXhlbC10by10b3RhbC0xIGNoaWxk IGhvcml6b250YWwgY2hhci1zaXplKQorICAgICAgICAgIChzZXRxIGNoaWxkICh3aW5kb3ctbmV4 dC1zaWJsaW5nIGNoaWxkKSkpKSkpKQogCiAoZGVmdW4gd2luZG93LS1waXhlbC10by10b3RhbCAo Jm9wdGlvbmFsIGZyYW1lIGhvcml6b250YWwpCiAgICJPbiBGUkFNRSBhc3NpZ24gbmV3IHRvdGFs IHdpbmRvdyBoZWlnaHRzIGZyb20gcGl4ZWwgaGVpZ2h0cy4KQEAgLTI3MjcsMzQgKzI3MjcsMzQg QEAgT3B0aW9uYWwgYXJndW1lbnQgSE9SSVpPTlRBTCBub24tbmlsIG1lYW5zIGFzc2lnbiBuZXcg dG90YWwKIHdpbmRvdyB3aWR0aHMgZnJvbSBwaXhlbCB3aWR0aHMuIgogICAoc2V0cSBmcmFtZSAo d2luZG93LW5vcm1hbGl6ZS1mcmFtZSBmcmFtZSkpCiAgIChsZXQqICgoY2hhci1zaXplIChmcmFt ZS1jaGFyLXNpemUgZnJhbWUgaG9yaXpvbnRhbCkpCi0JIChyb290IChmcmFtZS1yb290LXdpbmRv dyBmcmFtZSkpCi0JIChyb290LXNpemUgKHdpbmRvdy1zaXplIHJvb3QgaG9yaXpvbnRhbCB0KSkK LQkgOzsgV2UgaGF2ZSB0byBjYXJlIGFib3V0IHRoZSBtaW5pYnVmZmVyIHdpbmRvdyBvbmx5IGlm IGl0Ci0JIDs7IGFwcGVhcnMgdG9nZXRoZXIgd2l0aCB0aGUgcm9vdCB3aW5kb3cgb24gdGhpcyBm cmFtZS4KLQkgKG1pbmkgKGxldCAoKG1pbmkgKG1pbmlidWZmZXItd2luZG93IGZyYW1lKSkpCi0J CSAoYW5kIChlcSAod2luZG93LWZyYW1lIG1pbmkpIGZyYW1lKQotCQkgICAgICAobm90IChlcSBt aW5pIHJvb3QpKSBtaW5pKSkpCi0JIChtaW5pLXNpemUgKGFuZCBtaW5pICh3aW5kb3ctc2l6ZSBt aW5pIGhvcml6b250YWwgdCkpKSkKKyAgICAgICAgIChyb290IChmcmFtZS1yb290LXdpbmRvdyBm cmFtZSkpCisgICAgICAgICAocm9vdC1zaXplICh3aW5kb3ctc2l6ZSByb290IGhvcml6b250YWwg dCkpCisgICAgICAgICA7OyBXZSBoYXZlIHRvIGNhcmUgYWJvdXQgdGhlIG1pbmlidWZmZXIgd2lu ZG93IG9ubHkgaWYgaXQKKyAgICAgICAgIDs7IGFwcGVhcnMgdG9nZXRoZXIgd2l0aCB0aGUgcm9v dCB3aW5kb3cgb24gdGhpcyBmcmFtZS4KKyAgICAgICAgIChtaW5pIChsZXQgKChtaW5pIChtaW5p YnVmZmVyLXdpbmRvdyBmcmFtZSkpKQorICAgICAgICAgICAgICAgICAoYW5kIChlcSAod2luZG93 LWZyYW1lIG1pbmkpIGZyYW1lKQorICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxIG1pbmkg cm9vdCkpIG1pbmkpKSkKKyAgICAgICAgIChtaW5pLXNpemUgKGFuZCBtaW5pICh3aW5kb3ctc2l6 ZSBtaW5pIGhvcml6b250YWwgdCkpKSkKICAgICA7OyBXZSByb3VuZCB0aGUgbGluZS9jb2x1bW4g c2l6ZXMgb2Ygd2luZG93cyBoZXJlIHRvIHRoZSBuZWFyZXN0CiAgICAgOzsgaW50ZWdlci4gIElu IHNvbWUgY2FzZXMgdGhpcyBjYW4gbWFrZSB3aW5kb3dzIGFwcGVhciBfbGFyZ2VyXwogICAgIDs7 IHRoYW4gdGhlIGNvbnRhaW5pbmcgZnJhbWUgKGxpbmUvY29sdW1uLXdpc2UpIGJlY2F1c2UgdGhl IGxhdHRlcidzCiAgICAgOzsgc2l6ZXMgYXJlIG5vdCAoeWV0KSByb3VuZGVkLiAgV2UgbWlnaHQg ZXZlbnR1YWxseSBmaXggdGhhdC4KICAgICAoaWYgKGFuZCBtaW5pIChub3QgaG9yaXpvbnRhbCkp Ci0JKGxldCAobGluZXMpCi0JICAoc2V0LXdpbmRvdy1uZXctdG90YWwgcm9vdCAobWF4ICgvIHJv b3Qtc2l6ZSBjaGFyLXNpemUpIDEpKQotCSAgKHNldC13aW5kb3ctbmV3LXRvdGFsIG1pbmkgKG1h eCAoLyBtaW5pLXNpemUgY2hhci1zaXplKSAxKSkKLQkgIChzZXRxIGxpbmVzICgtIChyb3VuZCAo KyByb290LXNpemUgbWluaS1zaXplKSBjaGFyLXNpemUpCi0JCQkgKCsgKHdpbmRvdy1uZXctdG90 YWwgcm9vdCkgKHdpbmRvdy1uZXctdG90YWwgbWluaSkpKSkKLQkgICh3aGlsZSAoPiBsaW5lcyAw KQotCSAgICAoaWYgKD49ICglIHJvb3Qtc2l6ZSAod2luZG93LW5ldy10b3RhbCByb290KSkKLQkJ ICAgICglIG1pbmktc2l6ZSAod2luZG93LW5ldy10b3RhbCBtaW5pKSkpCi0JCShzZXQtd2luZG93 LW5ldy10b3RhbCByb290IDEgdCkKLQkgICAgICAoc2V0LXdpbmRvdy1uZXctdG90YWwgbWluaSAx IHQpKQotCSAgICAoc2V0cSBsaW5lcyAoMS0gbGluZXMpKSkpCisgICAgICAgIChsZXQgKGxpbmVz KQorICAgICAgICAgIChzZXQtd2luZG93LW5ldy10b3RhbCByb290IChtYXggKC8gcm9vdC1zaXpl IGNoYXItc2l6ZSkgMSkpCisgICAgICAgICAgKHNldC13aW5kb3ctbmV3LXRvdGFsIG1pbmkgKG1h eCAoLyBtaW5pLXNpemUgY2hhci1zaXplKSAxKSkKKyAgICAgICAgICAoc2V0cSBsaW5lcyAoLSAo cm91bmQgKCsgcm9vdC1zaXplIG1pbmktc2l6ZSkgY2hhci1zaXplKQorICAgICAgICAgICAgICAg ICAgICAgICAgICgrICh3aW5kb3ctbmV3LXRvdGFsIHJvb3QpICh3aW5kb3ctbmV3LXRvdGFsIG1p bmkpKSkpCisgICAgICAgICAgKHdoaWxlICg+IGxpbmVzIDApCisgICAgICAgICAgICAoaWYgKD49 ICglIHJvb3Qtc2l6ZSAod2luZG93LW5ldy10b3RhbCByb290KSkKKyAgICAgICAgICAgICAgICAg ICAgKCUgbWluaS1zaXplICh3aW5kb3ctbmV3LXRvdGFsIG1pbmkpKSkKKyAgICAgICAgICAgICAg ICAoc2V0LXdpbmRvdy1uZXctdG90YWwgcm9vdCAxIHQpCisgICAgICAgICAgICAgIChzZXQtd2lu ZG93LW5ldy10b3RhbCBtaW5pIDEgdCkpCisgICAgICAgICAgICAoc2V0cSBsaW5lcyAoMS0gbGlu ZXMpKSkpCiAgICAgICAoc2V0LXdpbmRvdy1uZXctdG90YWwgcm9vdCAocm91bmQgcm9vdC1zaXpl IGNoYXItc2l6ZSkpCiAgICAgICAod2hlbiBtaW5pCi0JOzsgVGhpcyBpcyB0YWtlbiBpbiB0aGUg aG9yaXpvbnRhbCBjYXNlIG9ubHkuCi0JKHNldC13aW5kb3ctbmV3LXRvdGFsIG1pbmkgKHJvdW5k IG1pbmktc2l6ZSBjaGFyLXNpemUpKSkpCisgICAgICAgIDs7IFRoaXMgaXMgdGFrZW4gaW4gdGhl IGhvcml6b250YWwgY2FzZSBvbmx5LgorICAgICAgICAoc2V0LXdpbmRvdy1uZXctdG90YWwgbWlu aSAocm91bmQgbWluaS1zaXplIGNoYXItc2l6ZSkpKSkKICAgICAodW5sZXNzICh3aW5kb3ctYnVm ZmVyIHJvb3QpCiAgICAgICAod2luZG93LS1waXhlbC10by10b3RhbC0xIHJvb3QgaG9yaXpvbnRh bCBjaGFyLXNpemUpKQogICAgIDs7IEFwcGx5IHRoZSBuZXcgc2l6ZXMuCkBAIC0yNzkzLDI4ICsy NzkzLDI4IEBAIElmIFdJTkRPVyBjYW5ub3QgYmUgcmVzaXplZCBieSBERUxUQSBwaXhlbHMgbWFr ZSBpdCBhcyBsYXJnZSAob3IKIGFzIHNtYWxsKSBhcyBwb3NzaWJsZSwgYnV0IGRvbid0IHNpZ25h bCBhbiBlcnJvci4iCiAgICh3aGVuICh3aW5kb3ctbWluaWJ1ZmZlci1wIHdpbmRvdykKICAgICAo bGV0KiAoKGZyYW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkKLQkgICAocm9vdCAoZnJhbWUtcm9v dC13aW5kb3cgZnJhbWUpKQotCSAgIChoZWlnaHQgKHdpbmRvdy1waXhlbC1oZWlnaHQgd2luZG93 KSkKKyAgICAgICAgICAgKHJvb3QgKGZyYW1lLXJvb3Qtd2luZG93IGZyYW1lKSkKKyAgICAgICAg ICAgKGhlaWdodCAod2luZG93LXBpeGVsLWhlaWdodCB3aW5kb3cpKQogICAgICAgICAgICAobWlu LWhlaWdodCAoKyAoZnJhbWUtY2hhci1oZWlnaHQgZnJhbWUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICgtICh3aW5kb3ctcGl4ZWwtaGVpZ2h0IHdpbmRvdykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHdpbmRvdy1ib2R5LWhlaWdodCB3aW5kb3cgdCkpKSkKICAgICAgICAgICAg KG1heC1kZWx0YSAoLSAod2luZG93LXBpeGVsLWhlaWdodCByb290KQotCSAgICAgICAgICAgICAg ICAgKHdpbmRvdy1taW4tc2l6ZSByb290IG5pbCBuaWwgdCkpKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAod2luZG93LW1pbi1zaXplIHJvb3QgbmlsIG5pbCB0KSkpKQogICAgICAgOzsgRG9u J3QgbWFrZSBtaW5pIHdpbmRvdyB0b28gc21hbGwuCiAgICAgICAod2hlbiAoPCAoKyBoZWlnaHQg ZGVsdGEpIG1pbi1oZWlnaHQpCi0JKHNldHEgZGVsdGEgKC0gbWluLWhlaWdodCBoZWlnaHQpKSkK KyAgICAgICAgKHNldHEgZGVsdGEgKC0gbWluLWhlaWdodCBoZWlnaHQpKSkKICAgICAgIDs7IERv bid0IG1ha2Ugcm9vdCB3aW5kb3cgdG9vIHNtYWxsLgogICAgICAgKHdoZW4gKD4gZGVsdGEgbWF4 LWRlbHRhKQotCShzZXRxIGRlbHRhIG1heC1kZWx0YSkpCisgICAgICAgIChzZXRxIGRlbHRhIG1h eC1kZWx0YSkpCiAKICAgICAgICh1bmxlc3MgKHplcm9wIGRlbHRhKQotCSh3aW5kb3ctLXJlc2l6 ZS1yZXNldCBmcmFtZSkKLQkod2luZG93LS1yZXNpemUtdGhpcy13aW5kb3cgcm9vdCAoLSBkZWx0 YSkgbmlsIG5pbCB0KQotCShzZXQtd2luZG93LW5ldy1waXhlbCB3aW5kb3cgKCsgaGVpZ2h0IGRl bHRhKSkKLQk7OyBUaGUgZm9sbG93aW5nIHJvdXRpbmUgY2F0Y2hlcyB0aGUgY2FzZSB3aGVyZSB3 ZSB3YW50IHRvIHJlc2l6ZQotCTs7IGEgbWluaWJ1ZmZlci1vbmx5IGZyYW1lLgotCSh3aGVuIChy ZXNpemUtbWluaS13aW5kb3ctaW50ZXJuYWwgd2luZG93KQotCSAgKHdpbmRvdy0tcGl4ZWwtdG8t dG90YWwgZnJhbWUpKSkpKSkKKyAgICAgICAgKHdpbmRvdy0tcmVzaXplLXJlc2V0IGZyYW1lKQor ICAgICAgICAod2luZG93LS1yZXNpemUtdGhpcy13aW5kb3cgcm9vdCAoLSBkZWx0YSkgbmlsIG5p bCB0KQorICAgICAgICAoc2V0LXdpbmRvdy1uZXctcGl4ZWwgd2luZG93ICgrIGhlaWdodCBkZWx0 YSkpCisgICAgICAgIDs7IFRoZSBmb2xsb3dpbmcgcm91dGluZSBjYXRjaGVzIHRoZSBjYXNlIHdo ZXJlIHdlIHdhbnQgdG8gcmVzaXplCisgICAgICAgIDs7IGEgbWluaWJ1ZmZlci1vbmx5IGZyYW1l LgorICAgICAgICAod2hlbiAocmVzaXplLW1pbmktd2luZG93LWludGVybmFsIHdpbmRvdykKKyAg ICAgICAgICAod2luZG93LS1waXhlbC10by10b3RhbCBmcmFtZSkpKSkpKQogCiAoZGVmdW4gd2lu ZG93LS1yZXNpemUtYXBwbHktcCAoZnJhbWUgJm9wdGlvbmFsIGhvcml6b250YWwpCiAgICJSZXR1 cm4gdCB3aGVuIGEgd2luZG93IG9uIEZSQU1FIHNoYWxsIGJlIHJlc2l6ZWQgdmVydGljYWxseS4K QEAgLTI4MjQsOCArMjgyNCw4IEBAIHNoYWxsIGJlIHJlc2l6ZWQgaG9yaXpvbnRhbGx5LiIKICAg ICAod2Fsay13aW5kb3ctdHJlZQogICAgICAobGFtYmRhICh3aW5kb3cpCiAgICAgICAgKHVubGVz cyAoPSAod2luZG93LW5ldy1waXhlbCB3aW5kb3cpCi0JCSAgKHdpbmRvdy1zaXplIHdpbmRvdyBo b3Jpem9udGFsIHQpKQotCSAodGhyb3cgJ2FwcGx5IHQpKSkKKyAgICAgICAgICAgICAgICAgICh3 aW5kb3ctc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCB0KSkKKyAgICAgICAgICh0aHJvdyAnYXBwbHkg dCkpKQogICAgICBmcmFtZSB0IHQpCiAgICAgbmlsKSkKIApAQCAtMjg2Miw1OCArMjg2Miw1OCBA QCBlZGdlIG9mIFdJTkRPVyBjb25zaWRlciB1c2luZyBgYWRqdXN0LXdpbmRvdy10cmFpbGluZy1l ZGdlJwogaW5zdGVhZC4iCiAgIChzZXRxIHdpbmRvdyAod2luZG93LW5vcm1hbGl6ZS13aW5kb3cg d2luZG93KSkKICAgKGxldCogKChmcmFtZSAod2luZG93LWZyYW1lIHdpbmRvdykpCi0JIChtaW5p YnVmZmVyLXdpbmRvdyAobWluaWJ1ZmZlci13aW5kb3cgZnJhbWUpKQotCSBzaWJsaW5nKQorICAg ICAgICAgKG1pbmlidWZmZXItd2luZG93IChtaW5pYnVmZmVyLXdpbmRvdyBmcmFtZSkpCisgICAg ICAgICBzaWJsaW5nKQogICAgIChzZXRxIGRlbHRhICh3aW5kb3ctLXNpemUtdG8tcGl4ZWwKLQkJ IHdpbmRvdyBkZWx0YSBob3Jpem9udGFsIHBpeGVsd2lzZSB0KSkKKyAgICAgICAgICAgICAgICAg d2luZG93IGRlbHRhIGhvcml6b250YWwgcGl4ZWx3aXNlIHQpKQogICAgIChjb25kCiAgICAgICgo ZXEgd2luZG93IChmcmFtZS1yb290LXdpbmRvdyBmcmFtZSkpCiAgICAgICAoZXJyb3IgIkNhbm5v dCByZXNpemUgdGhlIHJvb3Qgd2luZG93IG9mIGEgZnJhbWUiKSkKICAgICAgKCh3aW5kb3ctbWlu aWJ1ZmZlci1wIHdpbmRvdykKICAgICAgIChpZiBob3Jpem9udGFsCi0JICAoZXJyb3IgIkNhbm5v dCByZXNpemUgbWluaWJ1ZmZlciB3aW5kb3cgaG9yaXpvbnRhbGx5IikKLQkod2luZG93LS1yZXNp emUtbWluaS13aW5kb3cgd2luZG93IGRlbHRhKSkpCisgICAgICAgICAgKGVycm9yICJDYW5ub3Qg cmVzaXplIG1pbmlidWZmZXIgd2luZG93IGhvcml6b250YWxseSIpCisgICAgICAgICh3aW5kb3ct LXJlc2l6ZS1taW5pLXdpbmRvdyB3aW5kb3cgZGVsdGEpKSkKICAgICAgKChhbmQgKG5vdCBob3Jp em9udGFsKQotCSAgICh3aW5kb3ctZnVsbC1oZWlnaHQtcCB3aW5kb3cpCi0JICAgKGVxICh3aW5k b3ctZnJhbWUgbWluaWJ1ZmZlci13aW5kb3cpIGZyYW1lKQotCSAgIChvciAobm90IHJlc2l6ZS1t aW5pLXdpbmRvd3MpCi0JICAgICAgIChlcSBtaW5pYnVmZmVyLXdpbmRvdyAoYWN0aXZlLW1pbmli dWZmZXItd2luZG93KSkpKQorICAgICAgICAgICAod2luZG93LWZ1bGwtaGVpZ2h0LXAgd2luZG93 KQorICAgICAgICAgICAoZXEgKHdpbmRvdy1mcmFtZSBtaW5pYnVmZmVyLXdpbmRvdykgZnJhbWUp CisgICAgICAgICAgIChvciAobm90IHJlc2l6ZS1taW5pLXdpbmRvd3MpCisgICAgICAgICAgICAg ICAoZXEgbWluaWJ1ZmZlci13aW5kb3cgKGFjdGl2ZS1taW5pYnVmZmVyLXdpbmRvdykpKSkKICAg ICAgIDs7IElmIFdJTkRPVyBpcyBmdWxsIGhlaWdodCBhbmQgZWl0aGVyIGByZXNpemUtbWluaS13 aW5kb3dzJyBpcwogICAgICAgOzsgbmlsIG9yIHRoZSBtaW5pYnVmZmVyIHdpbmRvdyBpcyBhY3Rp dmUsIHJlc2l6ZSB0aGUgbWluaWJ1ZmZlcgogICAgICAgOzsgd2luZG93LgogICAgICAgKHdpbmRv dy0tcmVzaXplLW1pbmktd2luZG93IG1pbmlidWZmZXItd2luZG93ICgtIGRlbHRhKSkpCiAgICAg ICgob3IgKHdpbmRvdy0tcmVzaXphYmxlLXAKLQkgICB3aW5kb3cgZGVsdGEgaG9yaXpvbnRhbCBp Z25vcmUgbmlsIG5pbCBuaWwgdCkKLQkgIChhbmQgKG5vdCBpZ25vcmUpCi0JICAgICAgIChzZXRx IGlnbm9yZSAncHJlc2VydmVkKQotCSAgICAgICAod2luZG93LS1yZXNpemFibGUtcAotCQl3aW5k b3cgZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgbmlsIG5pbCBuaWwgdCkpKQorICAgICAgICAgICB3 aW5kb3cgZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgbmlsIG5pbCBuaWwgdCkKKyAgICAgICAgICAo YW5kIChub3QgaWdub3JlKQorICAgICAgICAgICAgICAgKHNldHEgaWdub3JlICdwcmVzZXJ2ZWQp CisgICAgICAgICAgICAgICAod2luZG93LS1yZXNpemFibGUtcAorICAgICAgICAgICAgICAgIHdp bmRvdyBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSBuaWwgbmlsIG5pbCB0KSkpCiAgICAgICAod2lu ZG93LS1yZXNpemUtcmVzZXQgZnJhbWUgaG9yaXpvbnRhbCkKICAgICAgICh3aW5kb3ctLXJlc2l6 ZS10aGlzLXdpbmRvdyB3aW5kb3cgZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgdCkKICAgICAgIChp ZiAoYW5kIChub3QgKGVxIHdpbmRvdy1jb21iaW5hdGlvbi1yZXNpemUgdCkpCi0JICAgICAgICh3 aW5kb3ctY29tYmluZWQtcCB3aW5kb3cgaG9yaXpvbnRhbCkKLQkgICAgICAgKHNldHEgc2libGlu ZyAob3IgKHdpbmRvdy1yaWdodCB3aW5kb3cpICh3aW5kb3ctbGVmdCB3aW5kb3cpKSkKLQkgICAg ICAgKHdpbmRvdy1zaXphYmxlLXAKLQkJc2libGluZyAoLSBkZWx0YSkgaG9yaXpvbnRhbCBpZ25v cmUgdCkpCi0JICA7OyBJZiB3aW5kb3ctY29tYmluYXRpb24tcmVzaXplIGlzIG5pbCwgV0lORE9X IGlzIHBhcnQgb2YgYW4KLQkgIDs7IGlzby1jb21iaW5hdGlvbiwgYW5kIFdJTkRPVydzIG5laWdo Ym9yaW5nIHJpZ2h0IG9yIGxlZnQKLQkgIDs7IHNpYmxpbmcgY2FuIGJlIHJlc2l6ZWQgYXMgcmVx dWVzdGVkLCByZXNpemUgdGhhdCBzaWJsaW5nLgotCSAgKGxldCAoKG5vcm1hbC1kZWx0YQotCQkg KC8gKGZsb2F0IGRlbHRhKQotCQkgICAgKHdpbmRvdy1zaXplICh3aW5kb3ctcGFyZW50IHdpbmRv dykgaG9yaXpvbnRhbCB0KSkpKQotCSAgICAod2luZG93LS1yZXNpemUtdGhpcy13aW5kb3cgc2li bGluZyAoLSBkZWx0YSkgaG9yaXpvbnRhbCBuaWwgdCkKLQkgICAgKHNldC13aW5kb3ctbmV3LW5v cm1hbAotCSAgICAgd2luZG93ICgrICh3aW5kb3ctbm9ybWFsLXNpemUgd2luZG93IGhvcml6b250 YWwpCi0JCSAgICAgICBub3JtYWwtZGVsdGEpKQotCSAgICAoc2V0LXdpbmRvdy1uZXctbm9ybWFs Ci0JICAgICBzaWJsaW5nICgtICh3aW5kb3ctbm9ybWFsLXNpemUgc2libGluZyBob3Jpem9udGFs KQotCQkJbm9ybWFsLWRlbHRhKSkpCi0JOzsgT3RoZXJ3aXNlLCByZXNpemUgYWxsIG90aGVyIHdp bmRvd3MgaW4gdGhlIHNhbWUgY29tYmluYXRpb24uCi0JKHdpbmRvdy0tcmVzaXplLXNpYmxpbmdz IHdpbmRvdyBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSkpCisgICAgICAgICAgICAgICAod2luZG93 LWNvbWJpbmVkLXAgd2luZG93IGhvcml6b250YWwpCisgICAgICAgICAgICAgICAoc2V0cSBzaWJs aW5nIChvciAod2luZG93LXJpZ2h0IHdpbmRvdykgKHdpbmRvdy1sZWZ0IHdpbmRvdykpKQorICAg ICAgICAgICAgICAgKHdpbmRvdy1zaXphYmxlLXAKKyAgICAgICAgICAgICAgICBzaWJsaW5nICgt IGRlbHRhKSBob3Jpem9udGFsIGlnbm9yZSB0KSkKKyAgICAgICAgICA7OyBJZiB3aW5kb3ctY29t YmluYXRpb24tcmVzaXplIGlzIG5pbCwgV0lORE9XIGlzIHBhcnQgb2YgYW4KKyAgICAgICAgICA7 OyBpc28tY29tYmluYXRpb24sIGFuZCBXSU5ET1cncyBuZWlnaGJvcmluZyByaWdodCBvciBsZWZ0 CisgICAgICAgICAgOzsgc2libGluZyBjYW4gYmUgcmVzaXplZCBhcyByZXF1ZXN0ZWQsIHJlc2l6 ZSB0aGF0IHNpYmxpbmcuCisgICAgICAgICAgKGxldCAoKG5vcm1hbC1kZWx0YQorICAgICAgICAg ICAgICAgICAoLyAoZmxvYXQgZGVsdGEpCisgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctc2l6 ZSAod2luZG93LXBhcmVudCB3aW5kb3cpIGhvcml6b250YWwgdCkpKSkKKyAgICAgICAgICAgICh3 aW5kb3ctLXJlc2l6ZS10aGlzLXdpbmRvdyBzaWJsaW5nICgtIGRlbHRhKSBob3Jpem9udGFsIG5p bCB0KQorICAgICAgICAgICAgKHNldC13aW5kb3ctbmV3LW5vcm1hbAorICAgICAgICAgICAgIHdp bmRvdyAoKyAod2luZG93LW5vcm1hbC1zaXplIHdpbmRvdyBob3Jpem9udGFsKQorICAgICAgICAg ICAgICAgICAgICAgICBub3JtYWwtZGVsdGEpKQorICAgICAgICAgICAgKHNldC13aW5kb3ctbmV3 LW5vcm1hbAorICAgICAgICAgICAgIHNpYmxpbmcgKC0gKHdpbmRvdy1ub3JtYWwtc2l6ZSBzaWJs aW5nIGhvcml6b250YWwpCisgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWwtZGVsdGEpKSkK KyAgICAgICAgOzsgT3RoZXJ3aXNlLCByZXNpemUgYWxsIG90aGVyIHdpbmRvd3MgaW4gdGhlIHNh bWUgY29tYmluYXRpb24uCisgICAgICAgICh3aW5kb3ctLXJlc2l6ZS1zaWJsaW5ncyB3aW5kb3cg ZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUpKQogICAgICAgKHdoZW4gKHdpbmRvdy0tcmVzaXplLWFw cGx5LXAgZnJhbWUgaG9yaXpvbnRhbCkKLQkoaWYgKHdpbmRvdy1yZXNpemUtYXBwbHkgZnJhbWUg aG9yaXpvbnRhbCkKLQkgICAgKHdpbmRvdy0tcGl4ZWwtdG8tdG90YWwgZnJhbWUgaG9yaXpvbnRh bCkKLQkgIChlcnJvciAiRmFpbGVkIHRvIGFwcGx5IHJlc2l6aW5nICVzIiB3aW5kb3cpKSkpCisg ICAgICAgIChpZiAod2luZG93LXJlc2l6ZS1hcHBseSBmcmFtZSBob3Jpem9udGFsKQorICAgICAg ICAgICAgKHdpbmRvdy0tcGl4ZWwtdG8tdG90YWwgZnJhbWUgaG9yaXpvbnRhbCkKKyAgICAgICAg ICAoZXJyb3IgIkZhaWxlZCB0byBhcHBseSByZXNpemluZyAlcyIgd2luZG93KSkpKQogICAgICAo dAogICAgICAgKGVycm9yICJDYW5ub3QgcmVzaXplIHdpbmRvdyAlcyIgd2luZG93KSkpKSkKIApA QCAtMjkyMyw3ICsyOTIzLDcgQEAgVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGB3aW5kb3ctcmVzaXpl JyBidXQgZG9lcyBub3Qgc2lnbmFsIGFuCiBlcnJvciB3aGVuIFdJTkRPVyBjYW5ub3QgYmUgcmVz aXplZC4gIEZvciB0aGUgbWVhbmluZyBvZiB0aGUKIG9wdGlvbmFsIGFyZ3VtZW50cyBzZWUgdGhl IGRvY3VtZW50YXRpb24gb2YgYHdpbmRvdy1yZXNpemUnLiIKICAgKHdoZW4gKHdpbmRvdy0tcmVz aXphYmxlLXAKLQkgd2luZG93IGRlbHRhIGhvcml6b250YWwgaWdub3JlIG5pbCBuaWwgbmlsIHBp eGVsd2lzZSkKKyAgICAgICAgIHdpbmRvdyBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSBuaWwgbmls IG5pbCBwaXhlbHdpc2UpCiAgICAgKHdpbmRvdy1yZXNpemUgd2luZG93IGRlbHRhIGhvcml6b250 YWwgaWdub3JlIHBpeGVsd2lzZSkpKQogCiAoZGVmdW4gd2luZG93LS1yZXNpemUtY2hpbGQtd2lu ZG93cy1za2lwLXAgKHdpbmRvdykKQEAgLTI5NDIsMjAgKzI5NDIsMjAgQEAgT1RIRVItREVMVEEs IGEgbnVtYmVyLCBzcGVjaWZpZXMgdGhhdCB0aGlzIG1hbnkgbGluZXMgKGNvbHVtbnMpCiBoYXZl IGJlZW4gb2J0YWluZWQgZnJvbSAob3IgcmV0dXJuZWQgdG8pIGFuIGFuY2VzdG9yIHdpbmRvdyBv ZgogUEFSRU5UIGluIG9yZGVyIHRvIHJlc2l6ZSBXSU5ET1cuIgogICAobGV0KiAoKGRlbHRhLW5v cm1hbAotCSAgKGlmIChhbmQgKD0gKC0gdGhpcy1kZWx0YSkKLQkJICAgICAgKHdpbmRvdy1zaXpl IHdpbmRvdyBob3Jpem9udGFsIHQpKQotCQkgICAoemVyb3Agb3RoZXItZGVsdGEpKQotCSAgICAg IDs7IFdoZW4gV0lORE9XIGdldHMgZGVsZXRlZCBhbmQgd2UgY2FuIHJldHVybiBpdHMgZW50aXJl Ci0JICAgICAgOzsgc3BhY2UgdG8gaXRzIHNpYmxpbmdzLCB1c2UgV0lORE9XJ3Mgbm9ybWFsIHNp emUgYXMgdGhlCi0JICAgICAgOzsgbm9ybWFsIGRlbHRhLgotCSAgICAgICgtICh3aW5kb3ctbm9y bWFsLXNpemUgd2luZG93IGhvcml6b250YWwpKQotCSAgICA7OyBJbiBhbnkgb3RoZXIgY2FzZSBj YWxjdWxhdGUgdGhlIG5vcm1hbCBkZWx0YSBmcm9tIHRoZQotCSAgICA7OyByZWxhdGlvbiBvZiBU SElTLURFTFRBIHRvIHRoZSB0b3RhbCBzaXplIG9mIFBBUkVOVC4KLQkgICAgKC8gKGZsb2F0IHRo aXMtZGVsdGEpCi0JICAgICAgICh3aW5kb3ctc2l6ZSBwYXJlbnQgaG9yaXpvbnRhbCB0KSkpKQot CSAoc3ViICh3aW5kb3ctY2hpbGQgcGFyZW50KSkKLQkgKHBhcmVudC1ub3JtYWwgMC4wKQotCSAo c2tpcCAoZXEgdHJhaWwgJ2FmdGVyKSkpCisgICAgICAgICAgKGlmIChhbmQgKD0gKC0gdGhpcy1k ZWx0YSkKKyAgICAgICAgICAgICAgICAgICAgICAod2luZG93LXNpemUgd2luZG93IGhvcml6b250 YWwgdCkpCisgICAgICAgICAgICAgICAgICAgKHplcm9wIG90aGVyLWRlbHRhKSkKKyAgICAgICAg ICAgICAgOzsgV2hlbiBXSU5ET1cgZ2V0cyBkZWxldGVkIGFuZCB3ZSBjYW4gcmV0dXJuIGl0cyBl bnRpcmUKKyAgICAgICAgICAgICAgOzsgc3BhY2UgdG8gaXRzIHNpYmxpbmdzLCB1c2UgV0lORE9X J3Mgbm9ybWFsIHNpemUgYXMgdGhlCisgICAgICAgICAgICAgIDs7IG5vcm1hbCBkZWx0YS4KKyAg ICAgICAgICAgICAgKC0gKHdpbmRvdy1ub3JtYWwtc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCkpCisg ICAgICAgICAgICA7OyBJbiBhbnkgb3RoZXIgY2FzZSBjYWxjdWxhdGUgdGhlIG5vcm1hbCBkZWx0 YSBmcm9tIHRoZQorICAgICAgICAgICAgOzsgcmVsYXRpb24gb2YgVEhJUy1ERUxUQSB0byB0aGUg dG90YWwgc2l6ZSBvZiBQQVJFTlQuCisgICAgICAgICAgICAoLyAoZmxvYXQgdGhpcy1kZWx0YSkK KyAgICAgICAgICAgICAgICh3aW5kb3ctc2l6ZSBwYXJlbnQgaG9yaXpvbnRhbCB0KSkpKQorICAg ICAgICAgKHN1YiAod2luZG93LWNoaWxkIHBhcmVudCkpCisgICAgICAgICAocGFyZW50LW5vcm1h bCAwLjApCisgICAgICAgICAoc2tpcCAoZXEgdHJhaWwgJ2FmdGVyKSkpCiAKICAgICA7OyBTZXQg cGFyZW50LW5vcm1hbCB0byB0aGUgc3VtIG9mIHRoZSBub3JtYWwgc2l6ZXMgb2YgYWxsIGNoaWxk CiAgICAgOzsgd2luZG93cyBvZiBQQVJFTlQgdGhhdCBzaGFsbCBiZSByZXNpemVkLCBleGNsdWRp bmcgb25seSBXSU5ET1cKQEAgLTI5NjMsMTEgKzI5NjMsMTEgQEAgUEFSRU5UIGluIG9yZGVyIHRv IHJlc2l6ZSBXSU5ET1cuIgogICAgICh3aGlsZSBzdWIKICAgICAgIChjb25kCiAgICAgICAgKChl cSBzdWIgd2luZG93KQotCShzZXRxIHNraXAgKGVxIHRyYWlsICdiZWZvcmUpKSkKKyAgICAgICAg KHNldHEgc2tpcCAoZXEgdHJhaWwgJ2JlZm9yZSkpKQogICAgICAgIChza2lwKQogICAgICAgICh0 Ci0JKHNldHEgcGFyZW50LW5vcm1hbAotCSAgICAgICgrIHBhcmVudC1ub3JtYWwgKHdpbmRvdy1u b3JtYWwtc2l6ZSBzdWIgaG9yaXpvbnRhbCkpKSkpCisgICAgICAgIChzZXRxIHBhcmVudC1ub3Jt YWwKKyAgICAgICAgICAgICAgKCsgcGFyZW50LW5vcm1hbCAod2luZG93LW5vcm1hbC1zaXplIHN1 YiBob3Jpem9udGFsKSkpKSkKICAgICAgIChzZXRxIHN1YiAod2luZG93LXJpZ2h0IHN1YikpKQog CiAgICAgOzsgU2V0IHRoZSBuZXcgbm9ybWFsIHNpemUgb2YgYWxsIGNoaWxkIHdpbmRvd3Mgb2Yg UEFSRU5UIGZyb20gd2hhdApAQCAtMjk3OCwzOSArMjk3OCwzOSBAQCBQQVJFTlQgaW4gb3JkZXIg dG8gcmVzaXplIFdJTkRPVy4iCiAgICAgKHdoaWxlIHN1YgogICAgICAgKGNvbmQKICAgICAgICAo KGVxIHN1YiB3aW5kb3cpCi0JKHNldHEgc2tpcCAoZXEgdHJhaWwgJ2JlZm9yZSkpKQorICAgICAg ICAoc2V0cSBza2lwIChlcSB0cmFpbCAnYmVmb3JlKSkpCiAgICAgICAgKHNraXApCiAgICAgICAg KHQKLQkobGV0ICgob2xkLW5vcm1hbCAod2luZG93LW5vcm1hbC1zaXplIHN1YiBob3Jpem9udGFs KSkpCi0JICAoc2V0LXdpbmRvdy1uZXctbm9ybWFsCi0JICAgc3ViIChtaW4gMS4wIDsgRG9uJ3Qg Z2V0IGxhcmdlciB0aGFuIDEuCi0JCSAgICAobWF4ICgtIG9sZC1ub3JtYWwKLQkJCSAgICAoKiAo LyBvbGQtbm9ybWFsIHBhcmVudC1ub3JtYWwpCi0JCQkgICAgICAgZGVsdGEtbm9ybWFsKSkKLQkJ CSA7OyBEb24ndCBkcm9wIGJlbG93IDAuCi0JCQkgMC4wKSkpKSkpCisgICAgICAgIChsZXQgKChv bGQtbm9ybWFsICh3aW5kb3ctbm9ybWFsLXNpemUgc3ViIGhvcml6b250YWwpKSkKKyAgICAgICAg ICAoc2V0LXdpbmRvdy1uZXctbm9ybWFsCisgICAgICAgICAgIHN1YiAobWluIDEuMCA7IERvbid0 IGdldCBsYXJnZXIgdGhhbiAxLgorICAgICAgICAgICAgICAgICAgICAobWF4ICgtIG9sZC1ub3Jt YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAoLyBvbGQtbm9ybWFsIHBhcmVudC1u b3JtYWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGEtbm9ybWFsKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICA7OyBEb24ndCBkcm9wIGJlbG93IDAuCisgICAgICAgICAg ICAgICAgICAgICAgICAgMC4wKSkpKSkpCiAgICAgICAoc2V0cSBzdWIgKHdpbmRvdy1yaWdodCBz dWIpKSkKIAogICAgICh3aGVuIChudW1iZXJwIG90aGVyLWRlbHRhKQogICAgICAgOzsgU2V0IHRo ZSBuZXcgbm9ybWFsIHNpemUgb2Ygd2luZG93cyBmcm9tIHdoYXQgdGhleSBzaG91bGQgaGF2ZQog ICAgICAgOzsgY29udHJpYnV0ZWQgZm9yIHJlY292ZXJpbmcgT1RIRVItREVMVEEgbGluZXMgKGNv bHVtbnMpLgogICAgICAgKHNldHEgZGVsdGEtbm9ybWFsICgvIChmbG9hdCAod2luZG93LXNpemUg cGFyZW50IGhvcml6b250YWwgdCkpCi0JCQkgICAgKCsgKHdpbmRvdy1zaXplIHBhcmVudCBob3Jp em9udGFsIHQpCi0JCQkgICAgICAgb3RoZXItZGVsdGEpKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoKyAod2luZG93LXNpemUgcGFyZW50IGhvcml6b250YWwgdCkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvdGhlci1kZWx0YSkpKQogICAgICAgKHNldHEgc3ViICh3aW5k b3ctY2hpbGQgcGFyZW50KSkKICAgICAgIChzZXRxIHNraXAgKGVxIHRyYWlsICdhZnRlcikpCiAg ICAgICAod2hpbGUgc3ViCi0JKGNvbmQKLQkgKChlcSBzdWIgd2luZG93KQotCSAgKHNldHEgc2tp cCAoZXEgdHJhaWwgJ2JlZm9yZSkpKQotCSAoc2tpcCkKLQkgKHQKLQkgIChzZXQtd2luZG93LW5l dy1ub3JtYWwKLQkgICBzdWIgKG1pbiAxLjAgOyBEb24ndCBnZXQgbGFyZ2VyIHRoYW4gMS4KLQkJ ICAgIChtYXggKCogKHdpbmRvdy1uZXctbm9ybWFsIHN1YikgZGVsdGEtbm9ybWFsKQotCQkJIDs7 IERvbid0IGRyb3AgYmVsb3cgMC4KLQkJCSAwLjApKSkpKQotCShzZXRxIHN1YiAod2luZG93LXJp Z2h0IHN1YikpKSkKKyAgICAgICAgKGNvbmQKKyAgICAgICAgICgoZXEgc3ViIHdpbmRvdykKKyAg ICAgICAgICAoc2V0cSBza2lwIChlcSB0cmFpbCAnYmVmb3JlKSkpCisgICAgICAgICAoc2tpcCkK KyAgICAgICAgICh0CisgICAgICAgICAgKHNldC13aW5kb3ctbmV3LW5vcm1hbAorICAgICAgICAg ICBzdWIgKG1pbiAxLjAgOyBEb24ndCBnZXQgbGFyZ2VyIHRoYW4gMS4KKyAgICAgICAgICAgICAg ICAgICAgKG1heCAoKiAod2luZG93LW5ldy1ub3JtYWwgc3ViKSBkZWx0YS1ub3JtYWwpCisgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgRG9uJ3QgZHJvcCBiZWxvdyAwLgorICAgICAgICAgICAg ICAgICAgICAgICAgIDAuMCkpKSkpCisgICAgICAgIChzZXRxIHN1YiAod2luZG93LXJpZ2h0IHN1 YikpKSkKIAogICAgIDs7IFNldCB0aGUgbmV3IG5vcm1hbCBzaXplIG9mIFdJTkRPVyB0byB3aGF0 IGlzIGxlZnQgYnkgdGhlIHN1bSBvZgogICAgIDs7IHRoZSBub3JtYWwgc2l6ZXMgb2YgaXRzIHNp YmxpbmdzLgpAQCAtMzAxOSwxMyArMzAxOSwxMyBAQCBQQVJFTlQgaW4gb3JkZXIgdG8gcmVzaXpl IFdJTkRPVy4iCiAgICAgIChsZXQgKChzdW0gMCkpCiAgICAgICAgKHNldHEgc3ViICh3aW5kb3ct Y2hpbGQgcGFyZW50KSkKICAgICAgICAod2hpbGUgc3ViCi0JIChjb25kCi0JICAoKGVxIHN1YiB3 aW5kb3cpKQotCSAgKChub3QgKG51bWJlcnAgKHdpbmRvdy1uZXctbm9ybWFsIHN1YikpKQotCSAg IChzZXRxIHN1bSAoKyBzdW0gKHdpbmRvdy1ub3JtYWwtc2l6ZSBzdWIgaG9yaXpvbnRhbCkpKSkK LQkgICh0Ci0JICAgKHNldHEgc3VtICgrIHN1bSAod2luZG93LW5ldy1ub3JtYWwgc3ViKSkpKSkK LQkgKHNldHEgc3ViICh3aW5kb3ctcmlnaHQgc3ViKSkpCisgICAgICAgICAoY29uZAorICAgICAg ICAgICgoZXEgc3ViIHdpbmRvdykpCisgICAgICAgICAgKChub3QgKG51bWJlcnAgKHdpbmRvdy1u ZXctbm9ybWFsIHN1YikpKQorICAgICAgICAgICAoc2V0cSBzdW0gKCsgc3VtICh3aW5kb3ctbm9y bWFsLXNpemUgc3ViIGhvcml6b250YWwpKSkpCisgICAgICAgICAgKHQKKyAgICAgICAgICAgKHNl dHEgc3VtICgrIHN1bSAod2luZG93LW5ldy1ub3JtYWwgc3ViKSkpKSkKKyAgICAgICAgIChzZXRx IHN1YiAod2luZG93LXJpZ2h0IHN1YikpKQogICAgICAgIDs7IERvbid0IGdldCBsYXJnZXIgdGhh biAxIG9yIHNtYWxsZXIgdGhhbiAwLgogICAgICAgIChtaW4gMS4wIChtYXggKC0gMS4wIHN1bSkg MC4wKSkpKSkpCiAKQEAgLTMwNTcsMTYyICszMDU3LDE2MiBAQCBJZiBDSEFSLVNJWkUgaXMgbmls LCB0aGlzIG1lYW5zIHRvIHVzZSB0aGUgdmFsdWUgb2YKIFJldHVybiB0aGUgc3ltYm9sIGBub3Jt YWxpemVkJyBpZiBuZXcgbm9ybWFsIHNpemVzIGhhdmUgYmVlbgogYWxyZWFkeSBzZXQgYnkgdGhp cyByb3V0aW5lLiIKICAgKGxldCogKChmaXJzdCAod2luZG93LWNoaWxkIHBhcmVudCkpCi0JIChs YXN0ICh3aW5kb3ctbGFzdC1jaGlsZCBwYXJlbnQpKQotCSAocGFyZW50LXRvdGFsICgrICh3aW5k b3ctc2l6ZSBwYXJlbnQgaG9yaXpvbnRhbCB0KQotCQkJICBkZWx0YSkpCi0JIChjaGFyLXNpemUg KG9yIGNoYXItc2l6ZQotCQkJKGFuZCB3aW5kb3ctcmVzaXplLXBpeGVsd2lzZSAxKQotCQkJKGZy YW1lLWNoYXItc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCkpKQotCSBzdWIgYmVzdC13aW5kb3cgYmVz dC12YWx1ZSBiZXN0LWRlbHRhKQorICAgICAgICAgKGxhc3QgKHdpbmRvdy1sYXN0LWNoaWxkIHBh cmVudCkpCisgICAgICAgICAocGFyZW50LXRvdGFsICgrICh3aW5kb3ctc2l6ZSBwYXJlbnQgaG9y aXpvbnRhbCB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICBkZWx0YSkpCisgICAgICAgICAo Y2hhci1zaXplIChvciBjaGFyLXNpemUKKyAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgd2lu ZG93LXJlc2l6ZS1waXhlbHdpc2UgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChmcmFtZS1j aGFyLXNpemUgd2luZG93IGhvcml6b250YWwpKSkKKyAgICAgICAgIHN1YiBiZXN0LXdpbmRvdyBi ZXN0LXZhbHVlIGJlc3QtZGVsdGEpCiAKICAgICAoaWYgKGFuZCBlZGdlIChtZW1xIHRyYWlsICco YmVmb3JlIGFmdGVyKSkKLQkgICAgIChwcm9nbgotCSAgICAgICAoc2V0cSBzdWIgZmlyc3QpCi0J ICAgICAgICh3aGlsZSAoYW5kICh3aW5kb3ctcmlnaHQgc3ViKQotCQkJICAgKG9yIChhbmQgKGVx IHRyYWlsICdiZWZvcmUpCi0JCQkJICAgIChub3QgKHdpbmRvdy0tcmVzaXplLWNoaWxkLXdpbmRv d3Mtc2tpcC1wCi0JCQkJCSAgKHdpbmRvdy1yaWdodCBzdWIpKSkpCi0JCQkgICAgICAgKGFuZCAo ZXEgdHJhaWwgJ2FmdGVyKQotCQkJCSAgICAod2luZG93LS1yZXNpemUtY2hpbGQtd2luZG93cy1z a2lwLXAgc3ViKSkpKQotCQkgKHNldHEgc3ViICh3aW5kb3ctcmlnaHQgc3ViKSkpCi0JICAgICAg IHN1YikKLQkgICAgIChpZiBob3Jpem9udGFsCi0JCSAoaWYgKGVxIHRyYWlsICdiZWZvcmUpCi0J CSAgICAgKD0gKCsgKHdpbmRvdy1waXhlbC1sZWZ0IHN1YikgKHdpbmRvdy1waXhlbC13aWR0aCBz dWIpKQotCQkJZWRnZSkKLQkJICAgKD0gKHdpbmRvdy1waXhlbC1sZWZ0IHN1YikgZWRnZSkpCi0J ICAgICAgIChpZiAoZXEgdHJhaWwgJ2JlZm9yZSkKLQkJICAgKD0gKCsgKHdpbmRvdy1waXhlbC10 b3Agc3ViKSAod2luZG93LXBpeGVsLWhlaWdodCBzdWIpKQotCQkgICAgICBlZGdlKQotCQkgKD0g KHdpbmRvdy1waXhlbC10b3Agc3ViKSBlZGdlKSkpCi0JICAgICAod2luZG93LXNpemFibGUtcCBz dWIgZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgdCkpCi0JOzsgUmVzaXplIG9ubHkgd2luZG93cyBh ZGphY2VudCB0byBFREdFLgotCShwcm9nbgotCSAgKHdpbmRvdy0tcmVzaXplLXRoaXMtd2luZG93 Ci0JICAgc3ViIGRlbHRhIGhvcml6b250YWwgaWdub3JlIHQgdHJhaWwgZWRnZSkKLQkgIChpZiAo YW5kIHdpbmRvdyAoZXEgKHdpbmRvdy1wYXJlbnQgc3ViKSBwYXJlbnQpKQotCSAgICAgIChwcm9n bgotCQk7OyBBc3NpZ24gbmV3IG5vcm1hbCBzaXplcy4KLQkJKHNldC13aW5kb3ctbmV3LW5vcm1h bAotCQkgc3ViICgvIChmbG9hdCAod2luZG93LW5ldy1waXhlbCBzdWIpKSBwYXJlbnQtdG90YWwp KQotCQkoc2V0LXdpbmRvdy1uZXctbm9ybWFsCi0JCSB3aW5kb3cgKC0gKHdpbmRvdy1ub3JtYWwt c2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCkKLQkJCSAgICgtICh3aW5kb3ctbmV3LW5vcm1hbCBzdWIp Ci0JCQkgICAgICAod2luZG93LW5vcm1hbC1zaXplIHN1YiBob3Jpem9udGFsKSkpKSkKLQkgICAg KHdpbmRvdy0tcmVzaXplLWNoaWxkLXdpbmRvd3Mtbm9ybWFsCi0JICAgICBwYXJlbnQgaG9yaXpv bnRhbCBzdWIgMCB0cmFpbCBkZWx0YSkpCi0JICA7OyBSZXR1cm4gJ25vcm1hbGl6ZWQgdG8gbm90 aWZ5IGB3aW5kb3ctLXJlc2l6ZS1zaWJsaW5ncycgdGhhdAotCSAgOzsgbm9ybWFsIHNpemVzIGhh dmUgYmVlbiBhbHJlYWR5IHNldC4KLQkgICdub3JtYWxpemVkKQorICAgICAgICAgICAgIChwcm9n bgorICAgICAgICAgICAgICAgKHNldHEgc3ViIGZpcnN0KQorICAgICAgICAgICAgICAgKHdoaWxl IChhbmQgKHdpbmRvdy1yaWdodCBzdWIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAob3Ig KGFuZCAoZXEgdHJhaWwgJ2JlZm9yZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChub3QgKHdpbmRvdy0tcmVzaXplLWNoaWxkLXdpbmRvd3Mtc2tpcC1wCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LXJpZ2h0IHN1YikpKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChlcSB0cmFpbCAnYWZ0ZXIpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LS1yZXNpemUtY2hpbGQtd2lu ZG93cy1za2lwLXAgc3ViKSkpKQorICAgICAgICAgICAgICAgICAoc2V0cSBzdWIgKHdpbmRvdy1y aWdodCBzdWIpKSkKKyAgICAgICAgICAgICAgIHN1YikKKyAgICAgICAgICAgICAoaWYgaG9yaXpv bnRhbAorICAgICAgICAgICAgICAgICAoaWYgKGVxIHRyYWlsICdiZWZvcmUpCisgICAgICAgICAg ICAgICAgICAgICAoPSAoKyAod2luZG93LXBpeGVsLWxlZnQgc3ViKSAod2luZG93LXBpeGVsLXdp ZHRoIHN1YikpCisgICAgICAgICAgICAgICAgICAgICAgICBlZGdlKQorICAgICAgICAgICAgICAg ICAgICg9ICh3aW5kb3ctcGl4ZWwtbGVmdCBzdWIpIGVkZ2UpKQorICAgICAgICAgICAgICAgKGlm IChlcSB0cmFpbCAnYmVmb3JlKQorICAgICAgICAgICAgICAgICAgICg9ICgrICh3aW5kb3ctcGl4 ZWwtdG9wIHN1YikgKHdpbmRvdy1waXhlbC1oZWlnaHQgc3ViKSkKKyAgICAgICAgICAgICAgICAg ICAgICBlZGdlKQorICAgICAgICAgICAgICAgICAoPSAod2luZG93LXBpeGVsLXRvcCBzdWIpIGVk Z2UpKSkKKyAgICAgICAgICAgICAod2luZG93LXNpemFibGUtcCBzdWIgZGVsdGEgaG9yaXpvbnRh bCBpZ25vcmUgdCkpCisgICAgICAgIDs7IFJlc2l6ZSBvbmx5IHdpbmRvd3MgYWRqYWNlbnQgdG8g RURHRS4KKyAgICAgICAgKHByb2duCisgICAgICAgICAgKHdpbmRvdy0tcmVzaXplLXRoaXMtd2lu ZG93CisgICAgICAgICAgIHN1YiBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSB0IHRyYWlsIGVkZ2Up CisgICAgICAgICAgKGlmIChhbmQgd2luZG93IChlcSAod2luZG93LXBhcmVudCBzdWIpIHBhcmVu dCkpCisgICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgIDs7IEFzc2lnbiBuZXcg bm9ybWFsIHNpemVzLgorICAgICAgICAgICAgICAgIChzZXQtd2luZG93LW5ldy1ub3JtYWwKKyAg ICAgICAgICAgICAgICAgc3ViICgvIChmbG9hdCAod2luZG93LW5ldy1waXhlbCBzdWIpKSBwYXJl bnQtdG90YWwpKQorICAgICAgICAgICAgICAgIChzZXQtd2luZG93LW5ldy1ub3JtYWwKKyAgICAg ICAgICAgICAgICAgd2luZG93ICgtICh3aW5kb3ctbm9ybWFsLXNpemUgd2luZG93IGhvcml6b250 YWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAod2luZG93LW5ldy1ub3JtYWwgc3Vi KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1ub3JtYWwtc2l6ZSBzdWIg aG9yaXpvbnRhbCkpKSkpCisgICAgICAgICAgICAod2luZG93LS1yZXNpemUtY2hpbGQtd2luZG93 cy1ub3JtYWwKKyAgICAgICAgICAgICBwYXJlbnQgaG9yaXpvbnRhbCBzdWIgMCB0cmFpbCBkZWx0 YSkpCisgICAgICAgICAgOzsgUmV0dXJuICdub3JtYWxpemVkIHRvIG5vdGlmeSBgd2luZG93LS1y ZXNpemUtc2libGluZ3MnIHRoYXQKKyAgICAgICAgICA7OyBub3JtYWwgc2l6ZXMgaGF2ZSBiZWVu IGFscmVhZHkgc2V0LgorICAgICAgICAgICdub3JtYWxpemVkKQogICAgICAgOzsgUmVzaXplIGFs bCB3aW5kb3dzIHByb3BvcnRpb25hbGx5LgogICAgICAgKHNldHEgc3ViIGxhc3QpCiAgICAgICAo d2hpbGUgc3ViCi0JKGNvbmQKLQkgKChvciAod2luZG93LS1yZXNpemUtY2hpbGQtd2luZG93cy1z a2lwLXAgc3ViKQotCSAgICAgIDs7IElnbm9yZSB3aW5kb3dzIHRvIHNraXAgYW5kIGZpeGVkLXNp emUgY2hpbGQgd2luZG93cyAtCi0JICAgICAgOzsgaW4gdGhlIGxhdHRlciBjYXNlIG1ha2UgaXQg YSB3aW5kb3cgdG8gc2tpcC4KLQkgICAgICAoYW5kIChub3QgaWdub3JlKQotCQkgICAod2luZG93 LXNpemUtZml4ZWQtcCBzdWIgaG9yaXpvbnRhbCBpZ25vcmUpCi0JCSAgIChzZXQtd2luZG93LW5l dy1ub3JtYWwgc3ViICdpZ25vcmUpKSkpCi0JICgoPCBkZWx0YSAwKQotCSAgOzsgV2hlbiBzaHJp bmtpbmcgc3RvcmUgdGhlIG51bWJlciBvZiBsaW5lcy9jb2xzIHdlIGNhbiBnZXQKLQkgIDs7IGZy b20gdGhpcyB3aW5kb3cgaGVyZSB0b2dldGhlciB3aXRoIHRoZSB0b3RhbC9ub3JtYWwgc2l6ZQot CSAgOzsgZmFjdG9yLgotCSAgKHNldC13aW5kb3ctbmV3LW5vcm1hbAotCSAgIHN1YgotCSAgIChj b25zCi0JICAgIDs7IFdlIHVzZWQgdG8gY2FsbCB0aGlzIHdpdGggTk9ET1dOIHQsICJmaXhlZCIg MjAxMS0wNS0xMS4KLQkgICAgKHdpbmRvdy1taW4tZGVsdGEgc3ViIGhvcml6b250YWwgaWdub3Jl IHRyYWlsIHQgbmlsIHQpCi0JICAgICgtICgvIChmbG9hdCAod2luZG93LXNpemUgc3ViIGhvcml6 b250YWwgdCkpCi0JCSAgcGFyZW50LXRvdGFsKQotCSAgICAgICAod2luZG93LW5vcm1hbC1zaXpl IHN1YiBob3Jpem9udGFsKSkpKSkKLQkgKCg+IGRlbHRhIDApCi0JICA7OyBXaGVuIGVubGFyZ2lu ZyBzdG9yZSB0aGUgdG90YWwvbm9ybWFsIHNpemUgZmFjdG9yIG9ubHkKLQkgIChzZXQtd2luZG93 LW5ldy1ub3JtYWwKLQkgICBzdWIKLQkgICAoLSAoLyAoZmxvYXQgKHdpbmRvdy1zaXplIHN1YiBo b3Jpem9udGFsIHQpKQotCQkgcGFyZW50LXRvdGFsKQotCSAgICAgICh3aW5kb3ctbm9ybWFsLXNp emUgc3ViIGhvcml6b250YWwpKSkpKQotCi0JKHNldHEgc3ViICh3aW5kb3ctbGVmdCBzdWIpKSkK KyAgICAgICAgKGNvbmQKKyAgICAgICAgICgob3IgKHdpbmRvdy0tcmVzaXplLWNoaWxkLXdpbmRv d3Mtc2tpcC1wIHN1YikKKyAgICAgICAgICAgICAgOzsgSWdub3JlIHdpbmRvd3MgdG8gc2tpcCBh bmQgZml4ZWQtc2l6ZSBjaGlsZCB3aW5kb3dzIC0KKyAgICAgICAgICAgICAgOzsgaW4gdGhlIGxh dHRlciBjYXNlIG1ha2UgaXQgYSB3aW5kb3cgdG8gc2tpcC4KKyAgICAgICAgICAgICAgKGFuZCAo bm90IGlnbm9yZSkKKyAgICAgICAgICAgICAgICAgICAod2luZG93LXNpemUtZml4ZWQtcCBzdWIg aG9yaXpvbnRhbCBpZ25vcmUpCisgICAgICAgICAgICAgICAgICAgKHNldC13aW5kb3ctbmV3LW5v cm1hbCBzdWIgJ2lnbm9yZSkpKSkKKyAgICAgICAgICgoPCBkZWx0YSAwKQorICAgICAgICAgIDs7 IFdoZW4gc2hyaW5raW5nIHN0b3JlIHRoZSBudW1iZXIgb2YgbGluZXMvY29scyB3ZSBjYW4gZ2V0 CisgICAgICAgICAgOzsgZnJvbSB0aGlzIHdpbmRvdyBoZXJlIHRvZ2V0aGVyIHdpdGggdGhlIHRv dGFsL25vcm1hbCBzaXplCisgICAgICAgICAgOzsgZmFjdG9yLgorICAgICAgICAgIChzZXQtd2lu ZG93LW5ldy1ub3JtYWwKKyAgICAgICAgICAgc3ViCisgICAgICAgICAgIChjb25zCisgICAgICAg ICAgICA7OyBXZSB1c2VkIHRvIGNhbGwgdGhpcyB3aXRoIE5PRE9XTiB0LCAiZml4ZWQiIDIwMTEt MDUtMTEuCisgICAgICAgICAgICAod2luZG93LW1pbi1kZWx0YSBzdWIgaG9yaXpvbnRhbCBpZ25v cmUgdHJhaWwgdCBuaWwgdCkKKyAgICAgICAgICAgICgtICgvIChmbG9hdCAod2luZG93LXNpemUg c3ViIGhvcml6b250YWwgdCkpCisgICAgICAgICAgICAgICAgICBwYXJlbnQtdG90YWwpCisgICAg ICAgICAgICAgICAod2luZG93LW5vcm1hbC1zaXplIHN1YiBob3Jpem9udGFsKSkpKSkKKyAgICAg ICAgICgoPiBkZWx0YSAwKQorICAgICAgICAgIDs7IFdoZW4gZW5sYXJnaW5nIHN0b3JlIHRoZSB0 b3RhbC9ub3JtYWwgc2l6ZSBmYWN0b3Igb25seQorICAgICAgICAgIChzZXQtd2luZG93LW5ldy1u b3JtYWwKKyAgICAgICAgICAgc3ViCisgICAgICAgICAgICgtICgvIChmbG9hdCAod2luZG93LXNp emUgc3ViIGhvcml6b250YWwgdCkpCisgICAgICAgICAgICAgICAgIHBhcmVudC10b3RhbCkKKyAg ICAgICAgICAgICAgKHdpbmRvdy1ub3JtYWwtc2l6ZSBzdWIgaG9yaXpvbnRhbCkpKSkpCisKKyAg ICAgICAgKHNldHEgc3ViICh3aW5kb3ctbGVmdCBzdWIpKSkKIAogICAgICAgKGNvbmQKICAgICAg ICAoKDwgZGVsdGEgMCkKLQk7OyBTaHJpbmsgd2luZG93cyBieSBkZWx0YS4KLQkoc2V0cSBiZXN0 LXdpbmRvdyB0KQotCSh3aGlsZSAoYW5kIGJlc3Qtd2luZG93IChub3QgKHplcm9wIGRlbHRhKSkp Ci0JICAoc2V0cSBzdWIgbGFzdCkKLQkgIChzZXRxIGJlc3Qtd2luZG93IG5pbCkKLQkgIChzZXRx IGJlc3QtdmFsdWUgbmlsKQotCSAgKHdoaWxlIHN1YgotCSAgICAod2hlbiAoYW5kIChjb25zcCAo d2luZG93LW5ldy1ub3JtYWwgc3ViKSkKLQkJICAgICAgIChub3QgKDw9IChjYXIgKHdpbmRvdy1u ZXctbm9ybWFsIHN1YikpIDApKQotCQkgICAgICAgKG9yIChub3QgYmVzdC12YWx1ZSkKLQkJCSAg ICg+IChjZHIgKHdpbmRvdy1uZXctbm9ybWFsIHN1YikpIGJlc3QtdmFsdWUpKSkKLQkgICAgICAo c2V0cSBiZXN0LXdpbmRvdyBzdWIpCi0JICAgICAgKHNldHEgYmVzdC12YWx1ZSAoY2RyICh3aW5k b3ctbmV3LW5vcm1hbCBzdWIpKSkpCi0KLQkgICAgKHNldHEgc3ViICh3aW5kb3ctbGVmdCBzdWIp KSkKLQotCSAgKHdoZW4gYmVzdC13aW5kb3cKLQkgICAgKHNldHEgYmVzdC1kZWx0YSAobWluIChj YXIgKHdpbmRvdy1uZXctbm9ybWFsIGJlc3Qtd2luZG93KSkKLQkJCQkgIGNoYXItc2l6ZSAoLSBk ZWx0YSkpKQotCSAgICAoc2V0cSBkZWx0YSAoKyBkZWx0YSBiZXN0LWRlbHRhKSkKLQkgICAgKHNl dC13aW5kb3ctbmV3LXBpeGVsIGJlc3Qtd2luZG93ICgtIGJlc3QtZGVsdGEpIHQpCi0JICAgIChz ZXQtd2luZG93LW5ldy1ub3JtYWwKLQkgICAgIGJlc3Qtd2luZG93Ci0JICAgICAoaWYgKD0gKGNh ciAod2luZG93LW5ldy1ub3JtYWwgYmVzdC13aW5kb3cpKSBiZXN0LWRlbHRhKQotCQkgJ3NraXAJ ICAgIDsgV2UgY2FuJ3Qgc2hyaW5rIGJlc3Qtd2luZG93IGFueSBmdXJ0aGVyLgotCSAgICAgICAo Y29ucyAoLSAoY2FyICh3aW5kb3ctbmV3LW5vcm1hbCBiZXN0LXdpbmRvdykpIGJlc3QtZGVsdGEp Ci0JCSAgICAgKC0gKC8gKGZsb2F0ICh3aW5kb3ctbmV3LXBpeGVsIGJlc3Qtd2luZG93KSkKLQkJ CSAgIHBhcmVudC10b3RhbCkKLQkJCSh3aW5kb3ctbm9ybWFsLXNpemUgYmVzdC13aW5kb3cgaG9y aXpvbnRhbCkpKSkpKSkpCisgICAgICAgIDs7IFNocmluayB3aW5kb3dzIGJ5IGRlbHRhLgorICAg ICAgICAoc2V0cSBiZXN0LXdpbmRvdyB0KQorICAgICAgICAod2hpbGUgKGFuZCBiZXN0LXdpbmRv dyAobm90ICh6ZXJvcCBkZWx0YSkpKQorICAgICAgICAgIChzZXRxIHN1YiBsYXN0KQorICAgICAg ICAgIChzZXRxIGJlc3Qtd2luZG93IG5pbCkKKyAgICAgICAgICAoc2V0cSBiZXN0LXZhbHVlIG5p bCkKKyAgICAgICAgICAod2hpbGUgc3ViCisgICAgICAgICAgICAod2hlbiAoYW5kIChjb25zcCAo d2luZG93LW5ldy1ub3JtYWwgc3ViKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoPD0g KGNhciAod2luZG93LW5ldy1ub3JtYWwgc3ViKSkgMCkpCisgICAgICAgICAgICAgICAgICAgICAg IChvciAobm90IGJlc3QtdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoPiAoY2Ry ICh3aW5kb3ctbmV3LW5vcm1hbCBzdWIpKSBiZXN0LXZhbHVlKSkpCisgICAgICAgICAgICAgIChz ZXRxIGJlc3Qtd2luZG93IHN1YikKKyAgICAgICAgICAgICAgKHNldHEgYmVzdC12YWx1ZSAoY2Ry ICh3aW5kb3ctbmV3LW5vcm1hbCBzdWIpKSkpCisKKyAgICAgICAgICAgIChzZXRxIHN1YiAod2lu ZG93LWxlZnQgc3ViKSkpCisKKyAgICAgICAgICAod2hlbiBiZXN0LXdpbmRvdworICAgICAgICAg ICAgKHNldHEgYmVzdC1kZWx0YSAobWluIChjYXIgKHdpbmRvdy1uZXctbm9ybWFsIGJlc3Qtd2lu ZG93KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyLXNpemUgKC0gZGVs dGEpKSkKKyAgICAgICAgICAgIChzZXRxIGRlbHRhICgrIGRlbHRhIGJlc3QtZGVsdGEpKQorICAg ICAgICAgICAgKHNldC13aW5kb3ctbmV3LXBpeGVsIGJlc3Qtd2luZG93ICgtIGJlc3QtZGVsdGEp IHQpCisgICAgICAgICAgICAoc2V0LXdpbmRvdy1uZXctbm9ybWFsCisgICAgICAgICAgICAgYmVz dC13aW5kb3cKKyAgICAgICAgICAgICAoaWYgKD0gKGNhciAod2luZG93LW5ldy1ub3JtYWwgYmVz dC13aW5kb3cpKSBiZXN0LWRlbHRhKQorICAgICAgICAgICAgICAgICAnc2tpcCAgICAgIDsgV2Ug Y2FuJ3Qgc2hyaW5rIGJlc3Qtd2luZG93IGFueSBmdXJ0aGVyLgorICAgICAgICAgICAgICAgKGNv bnMgKC0gKGNhciAod2luZG93LW5ldy1ub3JtYWwgYmVzdC13aW5kb3cpKSBiZXN0LWRlbHRhKQor ICAgICAgICAgICAgICAgICAgICAgKC0gKC8gKGZsb2F0ICh3aW5kb3ctbmV3LXBpeGVsIGJlc3Qt d2luZG93KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC10b3RhbCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICh3aW5kb3ctbm9ybWFsLXNpemUgYmVzdC13aW5kb3cgaG9yaXpv bnRhbCkpKSkpKSkpCiAgICAgICAgKCg+IGRlbHRhIDApCi0JOzsgRW5sYXJnZSB3aW5kb3dzIGJ5 IGRlbHRhLgotCShzZXRxIGJlc3Qtd2luZG93IHQpCi0JKHdoaWxlIChhbmQgYmVzdC13aW5kb3cg KG5vdCAoemVyb3AgZGVsdGEpKSkKLQkgIChzZXRxIHN1YiBsYXN0KQotCSAgKHNldHEgYmVzdC13 aW5kb3cgbmlsKQotCSAgKHNldHEgYmVzdC12YWx1ZSBuaWwpCi0JICAod2hpbGUgc3ViCi0JICAg ICh3aGVuIChhbmQgKG51bWJlcnAgKHdpbmRvdy1uZXctbm9ybWFsIHN1YikpCi0JCSAgICAgICAo b3IgKG5vdCBiZXN0LXZhbHVlKQotCQkgICAgICAgICAgICg8ICh3aW5kb3ctbmV3LW5vcm1hbCBz dWIpIGJlc3QtdmFsdWUpKSkKLQkgICAgICAoc2V0cSBiZXN0LXdpbmRvdyBzdWIpCi0JICAgICAg KHNldHEgYmVzdC12YWx1ZSAod2luZG93LW5ldy1ub3JtYWwgc3ViKSkpCi0KLQkgICAgKHNldHEg c3ViICh3aW5kb3ctbGVmdCBzdWIpKSkKLQotCSAgKHdoZW4gYmVzdC13aW5kb3cKLQkgICAgKHNl dHEgYmVzdC1kZWx0YSAobWluIGRlbHRhIGNoYXItc2l6ZSkpCi0JICAgIChzZXRxIGRlbHRhICgt IGRlbHRhIGJlc3QtZGVsdGEpKQotCSAgICAoc2V0LXdpbmRvdy1uZXctcGl4ZWwgYmVzdC13aW5k b3cgYmVzdC1kZWx0YSB0KQotCSAgICAoc2V0LXdpbmRvdy1uZXctbm9ybWFsCi0JICAgICBiZXN0 LXdpbmRvdwotCSAgICAgKC0gKC8gKGZsb2F0ICh3aW5kb3ctbmV3LXBpeGVsIGJlc3Qtd2luZG93 KSkKLQkJICAgcGFyZW50LXRvdGFsKQotCQkod2luZG93LW5vcm1hbC1zaXplIGJlc3Qtd2luZG93 IGhvcml6b250YWwpKSkpKSkpCisgICAgICAgIDs7IEVubGFyZ2Ugd2luZG93cyBieSBkZWx0YS4K KyAgICAgICAgKHNldHEgYmVzdC13aW5kb3cgdCkKKyAgICAgICAgKHdoaWxlIChhbmQgYmVzdC13 aW5kb3cgKG5vdCAoemVyb3AgZGVsdGEpKSkKKyAgICAgICAgICAoc2V0cSBzdWIgbGFzdCkKKyAg ICAgICAgICAoc2V0cSBiZXN0LXdpbmRvdyBuaWwpCisgICAgICAgICAgKHNldHEgYmVzdC12YWx1 ZSBuaWwpCisgICAgICAgICAgKHdoaWxlIHN1YgorICAgICAgICAgICAgKHdoZW4gKGFuZCAobnVt YmVycCAod2luZG93LW5ldy1ub3JtYWwgc3ViKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKG9y IChub3QgYmVzdC12YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICg8ICh3aW5kb3ct bmV3LW5vcm1hbCBzdWIpIGJlc3QtdmFsdWUpKSkKKyAgICAgICAgICAgICAgKHNldHEgYmVzdC13 aW5kb3cgc3ViKQorICAgICAgICAgICAgICAoc2V0cSBiZXN0LXZhbHVlICh3aW5kb3ctbmV3LW5v cm1hbCBzdWIpKSkKKworICAgICAgICAgICAgKHNldHEgc3ViICh3aW5kb3ctbGVmdCBzdWIpKSkK KworICAgICAgICAgICh3aGVuIGJlc3Qtd2luZG93CisgICAgICAgICAgICAoc2V0cSBiZXN0LWRl bHRhIChtaW4gZGVsdGEgY2hhci1zaXplKSkKKyAgICAgICAgICAgIChzZXRxIGRlbHRhICgtIGRl bHRhIGJlc3QtZGVsdGEpKQorICAgICAgICAgICAgKHNldC13aW5kb3ctbmV3LXBpeGVsIGJlc3Qt d2luZG93IGJlc3QtZGVsdGEgdCkKKyAgICAgICAgICAgIChzZXQtd2luZG93LW5ldy1ub3JtYWwK KyAgICAgICAgICAgICBiZXN0LXdpbmRvdworICAgICAgICAgICAgICgtICgvIChmbG9hdCAod2lu ZG93LW5ldy1waXhlbCBiZXN0LXdpbmRvdykpCisgICAgICAgICAgICAgICAgICAgcGFyZW50LXRv dGFsKQorICAgICAgICAgICAgICAgICh3aW5kb3ctbm9ybWFsLXNpemUgYmVzdC13aW5kb3cgaG9y aXpvbnRhbCkpKSkpKSkKIAogICAgICAgKHdoZW4gYmVzdC13aW5kb3cKLQkoc2V0cSBzdWIgbGFz dCkKLQkod2hpbGUgc3ViCi0JICAod2hlbiAob3IgKGNvbnNwICh3aW5kb3ctbmV3LW5vcm1hbCBz dWIpKQotCQkgICAgKG51bWJlcnAgKHdpbmRvdy1uZXctbm9ybWFsIHN1YikpKQotCSAgICA7OyBS ZXNldCBuZXcgbm9ybWFsIHNpemUgZmllbGRzIHNvIGB3aW5kb3ctcmVzaXplLWFwcGx5JwotCSAg ICA7OyB3b24ndCB1c2UgdGhlbSB0byBhcHBseSBuZXcgc2l6ZXMuCi0JICAgIChzZXQtd2luZG93 LW5ldy1ub3JtYWwgc3ViKSkKLQotCSAgKHVubGVzcyAoZXEgKHdpbmRvdy1uZXctbm9ybWFsIHN1 YikgJ2lnbm9yZSkKLQkgICAgOzsgUmVzaXplIHRoaXMgd2luZG93J3MgY2hpbGQgd2luZG93cyAo YmFjay1lbmdpbmVlcmluZwotCSAgICA7OyBkZWx0YSBmcm9tIHN1YidzIG9sZCBhbmQgbmV3IHRv dGFsIHNpemVzKS4KLQkgICAgKGxldCAoKGRlbHRhICgtICh3aW5kb3ctbmV3LXBpeGVsIHN1YikK LQkJCSAgICAod2luZG93LXNpemUgc3ViIGhvcml6b250YWwgdCkpKSkKLQkgICAgICAodW5sZXNz IChhbmQgKHplcm9wIGRlbHRhKSAobm90IHRyYWlsKSkKLQkJOzsgRm9yIHRoZSBUUkFJTCBub24t bmlsIGNhc2Ugd2UgaGF2ZSB0byByZXNpemUgU1VCCi0JCTs7IHJlY3Vyc2l2ZWx5IGV2ZW4gaWYg aXQncyBzaXplIGRvZXMgbm90IGNoYW5nZS4KLQkJKHdpbmRvdy0tcmVzaXplLXRoaXMtd2luZG93 Ci0JCSBzdWIgZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgbmlsIHRyYWlsIGVkZ2UpKSkpCi0JICAo c2V0cSBzdWIgKHdpbmRvdy1sZWZ0IHN1YikpKSkpKSkKKyAgICAgICAgKHNldHEgc3ViIGxhc3Qp CisgICAgICAgICh3aGlsZSBzdWIKKyAgICAgICAgICAod2hlbiAob3IgKGNvbnNwICh3aW5kb3ct bmV3LW5vcm1hbCBzdWIpKQorICAgICAgICAgICAgICAgICAgICAobnVtYmVycCAod2luZG93LW5l dy1ub3JtYWwgc3ViKSkpCisgICAgICAgICAgICA7OyBSZXNldCBuZXcgbm9ybWFsIHNpemUgZmll bGRzIHNvIGB3aW5kb3ctcmVzaXplLWFwcGx5JworICAgICAgICAgICAgOzsgd29uJ3QgdXNlIHRo ZW0gdG8gYXBwbHkgbmV3IHNpemVzLgorICAgICAgICAgICAgKHNldC13aW5kb3ctbmV3LW5vcm1h bCBzdWIpKQorCisgICAgICAgICAgKHVubGVzcyAoZXEgKHdpbmRvdy1uZXctbm9ybWFsIHN1Yikg J2lnbm9yZSkKKyAgICAgICAgICAgIDs7IFJlc2l6ZSB0aGlzIHdpbmRvdydzIGNoaWxkIHdpbmRv d3MgKGJhY2stZW5naW5lZXJpbmcKKyAgICAgICAgICAgIDs7IGRlbHRhIGZyb20gc3ViJ3Mgb2xk IGFuZCBuZXcgdG90YWwgc2l6ZXMpLgorICAgICAgICAgICAgKGxldCAoKGRlbHRhICgtICh3aW5k b3ctbmV3LXBpeGVsIHN1YikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LXNp emUgc3ViIGhvcml6b250YWwgdCkpKSkKKyAgICAgICAgICAgICAgKHVubGVzcyAoYW5kICh6ZXJv cCBkZWx0YSkgKG5vdCB0cmFpbCkpCisgICAgICAgICAgICAgICAgOzsgRm9yIHRoZSBUUkFJTCBu b24tbmlsIGNhc2Ugd2UgaGF2ZSB0byByZXNpemUgU1VCCisgICAgICAgICAgICAgICAgOzsgcmVj dXJzaXZlbHkgZXZlbiBpZiBpdCdzIHNpemUgZG9lcyBub3QgY2hhbmdlLgorICAgICAgICAgICAg ICAgICh3aW5kb3ctLXJlc2l6ZS10aGlzLXdpbmRvdworICAgICAgICAgICAgICAgICBzdWIgZGVs dGEgaG9yaXpvbnRhbCBpZ25vcmUgbmlsIHRyYWlsIGVkZ2UpKSkpCisgICAgICAgICAgKHNldHEg c3ViICh3aW5kb3ctbGVmdCBzdWIpKSkpKSkpCiAKIChkZWZ1biB3aW5kb3ctLXJlc2l6ZS1zaWJs aW5ncyAod2luZG93IGRlbHRhICZvcHRpb25hbCBob3Jpem9udGFsIGlnbm9yZSB0cmFpbCBlZGdl IGNoYXItc2l6ZSkKICAgIlJlc2l6ZSBvdGhlciB3aW5kb3dzIHdoZW4gV0lORE9XIGlzIHJlc2l6 ZWQgdmVydGljYWxseSBieSBERUxUQSBwaXhlbHMuCkBAIC0zMjMwLDg4ICszMjMwLDg4IEBAIHJl c2l6ZSBvbmx5IHdpbmRvd3Mgb24gdGhlIGxlZnQgb3IgYWJvdmUgRURHRS4gIElmIFRSQUlMIGVx dWFscwogcHJlZmVyYWJseSBvbmx5IHJlc2l6ZSB3aW5kb3dzIGFkamFjZW50IHRvIEVER0UuIgog ICAod2hlbiAod2luZG93LXBhcmVudCB3aW5kb3cpCiAgICAgKGxldCogKChwYXJlbnQgKHdpbmRv dy1wYXJlbnQgd2luZG93KSkKLQkgICAoc3ViICh3aW5kb3ctY2hpbGQgcGFyZW50KSkpCisgICAg ICAgICAgIChzdWIgKHdpbmRvdy1jaGlsZCBwYXJlbnQpKSkKICAgICAgIChpZiAod2luZG93LWNv bWJpbmVkLXAgc3ViIGhvcml6b250YWwpCi0JICA7OyBJbiBhbiBpc28tY29tYmluYXRpb24gdHJ5 IHRvIGV4dHJhY3QgREVMVEEgZnJvbSBXSU5ET1cncwotCSAgOzsgc2libGluZ3MuCi0JICAobGV0 ICgoc2tpcCAoZXEgdHJhaWwgJ2FmdGVyKSkKLQkJdGhpcy1kZWx0YSBvdGhlci1kZWx0YSkKLQkg ICAgOzsgRGVjaWRlIHdoaWNoIHdpbmRvd3Mgc2hhbGwgYmUgbGVmdCBhbG9uZS4KLQkgICAgKHdo aWxlIHN1YgotCSAgICAgIChjb25kCi0JICAgICAgICgoZXEgc3ViIHdpbmRvdykKLQkJOzsgTWFr ZSBzdXJlIFdJTkRPVyBpcyBsZWZ0IGFsb25lIHdoZW4KLQkJOzsgcmVzaXppbmcgaXRzIHNpYmxp bmdzLgotCQkoc2V0LXdpbmRvdy1uZXctbm9ybWFsIHN1YiAnaWdub3JlKQotCQkoc2V0cSBza2lw IChlcSB0cmFpbCAnYmVmb3JlKSkpCi0JICAgICAgIChza2lwCi0JCTs7IE1ha2Ugc3VyZSB0aGlz IHNpYmxpbmcgaXMgbGVmdCBhbG9uZSB3aGVuCi0JCTs7IHJlc2l6aW5nIGl0cyBzaWJsaW5ncy4K LQkJKHNldC13aW5kb3ctbmV3LW5vcm1hbCBzdWIgJ2lnbm9yZSkpCi0JICAgICAgICgobm90ICh3 aW5kb3ctc2l6ZS1maXhlZC1wIHN1YiBob3Jpem9udGFsIGlnbm9yZSkpCi0JCTs7IFNldCB0aGlz LWRlbHRhIHRvIHQgdG8gc2lnbmFsIHRoYXQgd2UgZm91bmQgYSBzaWJsaW5nCi0JCTs7IG9mIFdJ TkRPVyB3aG9zZSBzaXplIGlzIG5vdCBmaXhlZC4KLQkJKHNldHEgdGhpcy1kZWx0YSB0KSkpCi0K LQkgICAgICAoc2V0cSBzdWIgKHdpbmRvdy1yaWdodCBzdWIpKSkKLQotCSAgICA7OyBTZXQgdGhp cy1kZWx0YSB0byB3aGF0IHdlIGNhbiBnZXQgZnJvbSBXSU5ET1cncyBzaWJsaW5ncy4KLQkgICAg KGlmICg9ICgtIGRlbHRhKSAod2luZG93LXNpemUgd2luZG93IGhvcml6b250YWwgdCkpCi0JCTs7 IEEgZGVsZXRpb24sIHByZXN1bWFibHkuICBXZSBtdXN0IGhhbmRsZSB0aGlzIGNhc2UKLQkJOzsg c3BlY2lhbGx5IHNpbmNlIGB3aW5kb3ctLXJlc2l6YWJsZScgY2FuJ3QgYmUgdXNlZC4KLQkJKGlm IHRoaXMtZGVsdGEKLQkJICAgIDs7IFRoZXJlJ3MgYXQgbGVhc3Qgb25lIHJlc2l6YWJsZSBzaWJs aW5nIHdlIGNhbgotCQkgICAgOzsgZ2l2ZSBXSU5ET1cncyBzaXplIHRvLgotCQkgICAgKHNldHEg dGhpcy1kZWx0YSBkZWx0YSkKLQkJICA7OyBObyByZXNpemFibGUgc2libGluZyBleGlzdHMuCi0J CSAgKHNldHEgdGhpcy1kZWx0YSAwKSkKLQkgICAgICA7OyBBbnkgb3RoZXIgZm9ybSBvZiByZXNp emluZy4KLQkgICAgICAoc2V0cSB0aGlzLWRlbHRhCi0JCSAgICAod2luZG93LS1yZXNpemFibGUK LQkJICAgICB3aW5kb3cgZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgdHJhaWwgdCBuaWwgdCkpKQot Ci0JICAgIDs7IFNldCBvdGhlci1kZWx0YSB0byB3aGF0IHdlIHN0aWxsIGhhdmUgdG8gZ2V0IGZy b20KLQkgICAgOzsgYW5jZXN0b3Igd2luZG93cyBvZiBwYXJlbnQuCi0JICAgIChzZXRxIG90aGVy LWRlbHRhICgtIGRlbHRhIHRoaXMtZGVsdGEpKQotCSAgICAodW5sZXNzICh6ZXJvcCBvdGhlci1k ZWx0YSkKLQkgICAgICA7OyBVbmxlc3Mgd2UgZ290IGV2ZXJ5dGhpbmcgZnJvbSBXSU5ET1cncyBz aWJsaW5ncywgUEFSRU5UCi0JICAgICAgOzsgbXVzdCBiZSByZXNpemVkIGJ5IG90aGVyLWRlbHRh IGxpbmVzIG9yIGNvbHVtbnMuCi0JICAgICAgKHNldC13aW5kb3ctbmV3LXBpeGVsIHBhcmVudCBv dGhlci1kZWx0YSAnYWRkKSkKLQotCSAgICAoaWYgKHplcm9wIHRoaXMtZGVsdGEpCi0JCTs7IFdl IGhhdmVuJ3QgZ290IGFueXRoaW5nIGZyb20gV0lORE9XJ3Mgc2libGluZ3MgYnV0IHdlCi0JCTs7 IG11c3QgdXBkYXRlIHRoZSBub3JtYWwgc2l6ZXMgdG8gcmVzcGVjdCBvdGhlci1kZWx0YS4KLQkJ KHdpbmRvdy0tcmVzaXplLWNoaWxkLXdpbmRvd3Mtbm9ybWFsCi0JCSBwYXJlbnQgaG9yaXpvbnRh bCB3aW5kb3cgdGhpcy1kZWx0YSB0cmFpbCBvdGhlci1kZWx0YSkKLQkgICAgICA7OyBXZSBkaWQg Z2V0IHNvbWV0aGluZyBmcm9tIFdJTkRPVydzIHNpYmxpbmdzIHdoaWNoIG1lYW5zCi0JICAgICAg Ozsgd2UgaGF2ZSB0byByZXNpemUgdGhlaXIgY2hpbGQgd2luZG93cy4KLQkgICAgICAodW5sZXNz IChlcSAod2luZG93LS1yZXNpemUtY2hpbGQtd2luZG93cwotCQkJICAgcGFyZW50ICgtIHRoaXMt ZGVsdGEpIGhvcml6b250YWwKLQkJCSAgIHdpbmRvdyBpZ25vcmUgdHJhaWwgZWRnZSBjaGFyLXNp emUpCi0JCQkgIDs7IElmIGB3aW5kb3ctLXJlc2l6ZS1jaGlsZC13aW5kb3dzJyByZXR1cm5zCi0J CQkgIDs7ICdub3JtYWxpemVkLCB0aGlzIG1lYW5zIGl0IGhhcyBzZXQgdGhlCi0JCQkgIDs7IG5v cm1hbCBzaXplcyBhbHJlYWR5LgotCQkJICAnbm9ybWFsaXplZCkKLQkJOzsgU2V0IHRoZSBub3Jt YWwgc2l6ZXMuCi0JCSh3aW5kb3ctLXJlc2l6ZS1jaGlsZC13aW5kb3dzLW5vcm1hbAotCQkgcGFy ZW50IGhvcml6b250YWwgd2luZG93IHRoaXMtZGVsdGEgdHJhaWwgb3RoZXItZGVsdGEpKQotCSAg ICAgIDs7IFNldCBERUxUQSB0byB3aGF0IHdlIHN0aWxsIGhhdmUgdG8gZ2V0IGZyb20gYW5jZXN0 b3IKLQkgICAgICA7OyB3aW5kb3dzLgotCSAgICAgIChzZXRxIGRlbHRhIG90aGVyLWRlbHRhKSkp Ci0KLQk7OyBJbiBhbiBvcnRoby1jb21iaW5hdGlvbiBhbGwgc2libGluZ3Mgb2YgV0lORE9XIG11 c3QgYmUKLQk7OyByZXNpemVkIGJ5IERFTFRBLgotCShzZXQtd2luZG93LW5ldy1waXhlbCBwYXJl bnQgZGVsdGEgJ2FkZCkKLQkod2hpbGUgc3ViCi0JICAodW5sZXNzIChlcSBzdWIgd2luZG93KQot CSAgICAod2luZG93LS1yZXNpemUtdGhpcy13aW5kb3cKLQkgICAgIHN1YiBkZWx0YSBob3Jpem9u dGFsIGlnbm9yZSB0KSkKLQkgIChzZXRxIHN1YiAod2luZG93LXJpZ2h0IHN1YikpKSkKKyAgICAg ICAgICA7OyBJbiBhbiBpc28tY29tYmluYXRpb24gdHJ5IHRvIGV4dHJhY3QgREVMVEEgZnJvbSBX SU5ET1cncworICAgICAgICAgIDs7IHNpYmxpbmdzLgorICAgICAgICAgIChsZXQgKChza2lwIChl cSB0cmFpbCAnYWZ0ZXIpKQorICAgICAgICAgICAgICAgIHRoaXMtZGVsdGEgb3RoZXItZGVsdGEp CisgICAgICAgICAgICA7OyBEZWNpZGUgd2hpY2ggd2luZG93cyBzaGFsbCBiZSBsZWZ0IGFsb25l LgorICAgICAgICAgICAgKHdoaWxlIHN1YgorICAgICAgICAgICAgICAoY29uZAorICAgICAgICAg ICAgICAgKChlcSBzdWIgd2luZG93KQorICAgICAgICAgICAgICAgIDs7IE1ha2Ugc3VyZSBXSU5E T1cgaXMgbGVmdCBhbG9uZSB3aGVuCisgICAgICAgICAgICAgICAgOzsgcmVzaXppbmcgaXRzIHNp YmxpbmdzLgorICAgICAgICAgICAgICAgIChzZXQtd2luZG93LW5ldy1ub3JtYWwgc3ViICdpZ25v cmUpCisgICAgICAgICAgICAgICAgKHNldHEgc2tpcCAoZXEgdHJhaWwgJ2JlZm9yZSkpKQorICAg ICAgICAgICAgICAgKHNraXAKKyAgICAgICAgICAgICAgICA7OyBNYWtlIHN1cmUgdGhpcyBzaWJs aW5nIGlzIGxlZnQgYWxvbmUgd2hlbgorICAgICAgICAgICAgICAgIDs7IHJlc2l6aW5nIGl0cyBz aWJsaW5ncy4KKyAgICAgICAgICAgICAgICAoc2V0LXdpbmRvdy1uZXctbm9ybWFsIHN1YiAnaWdu b3JlKSkKKyAgICAgICAgICAgICAgICgobm90ICh3aW5kb3ctc2l6ZS1maXhlZC1wIHN1YiBob3Jp em9udGFsIGlnbm9yZSkpCisgICAgICAgICAgICAgICAgOzsgU2V0IHRoaXMtZGVsdGEgdG8gdCB0 byBzaWduYWwgdGhhdCB3ZSBmb3VuZCBhIHNpYmxpbmcKKyAgICAgICAgICAgICAgICA7OyBvZiBX SU5ET1cgd2hvc2Ugc2l6ZSBpcyBub3QgZml4ZWQuCisgICAgICAgICAgICAgICAgKHNldHEgdGhp cy1kZWx0YSB0KSkpCisKKyAgICAgICAgICAgICAgKHNldHEgc3ViICh3aW5kb3ctcmlnaHQgc3Vi KSkpCisKKyAgICAgICAgICAgIDs7IFNldCB0aGlzLWRlbHRhIHRvIHdoYXQgd2UgY2FuIGdldCBm cm9tIFdJTkRPVydzIHNpYmxpbmdzLgorICAgICAgICAgICAgKGlmICg9ICgtIGRlbHRhKSAod2lu ZG93LXNpemUgd2luZG93IGhvcml6b250YWwgdCkpCisgICAgICAgICAgICAgICAgOzsgQSBkZWxl dGlvbiwgcHJlc3VtYWJseS4gIFdlIG11c3QgaGFuZGxlIHRoaXMgY2FzZQorICAgICAgICAgICAg ICAgIDs7IHNwZWNpYWxseSBzaW5jZSBgd2luZG93LS1yZXNpemFibGUnIGNhbid0IGJlIHVzZWQu CisgICAgICAgICAgICAgICAgKGlmIHRoaXMtZGVsdGEKKyAgICAgICAgICAgICAgICAgICAgOzsg VGhlcmUncyBhdCBsZWFzdCBvbmUgcmVzaXphYmxlIHNpYmxpbmcgd2UgY2FuCisgICAgICAgICAg ICAgICAgICAgIDs7IGdpdmUgV0lORE9XJ3Mgc2l6ZSB0by4KKyAgICAgICAgICAgICAgICAgICAg KHNldHEgdGhpcy1kZWx0YSBkZWx0YSkKKyAgICAgICAgICAgICAgICAgIDs7IE5vIHJlc2l6YWJs ZSBzaWJsaW5nIGV4aXN0cy4KKyAgICAgICAgICAgICAgICAgIChzZXRxIHRoaXMtZGVsdGEgMCkp CisgICAgICAgICAgICAgIDs7IEFueSBvdGhlciBmb3JtIG9mIHJlc2l6aW5nLgorICAgICAgICAg ICAgICAoc2V0cSB0aGlzLWRlbHRhCisgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctLXJlc2l6 YWJsZQorICAgICAgICAgICAgICAgICAgICAgd2luZG93IGRlbHRhIGhvcml6b250YWwgaWdub3Jl IHRyYWlsIHQgbmlsIHQpKSkKKworICAgICAgICAgICAgOzsgU2V0IG90aGVyLWRlbHRhIHRvIHdo YXQgd2Ugc3RpbGwgaGF2ZSB0byBnZXQgZnJvbQorICAgICAgICAgICAgOzsgYW5jZXN0b3Igd2lu ZG93cyBvZiBwYXJlbnQuCisgICAgICAgICAgICAoc2V0cSBvdGhlci1kZWx0YSAoLSBkZWx0YSB0 aGlzLWRlbHRhKSkKKyAgICAgICAgICAgICh1bmxlc3MgKHplcm9wIG90aGVyLWRlbHRhKQorICAg ICAgICAgICAgICA7OyBVbmxlc3Mgd2UgZ290IGV2ZXJ5dGhpbmcgZnJvbSBXSU5ET1cncyBzaWJs aW5ncywgUEFSRU5UCisgICAgICAgICAgICAgIDs7IG11c3QgYmUgcmVzaXplZCBieSBvdGhlci1k ZWx0YSBsaW5lcyBvciBjb2x1bW5zLgorICAgICAgICAgICAgICAoc2V0LXdpbmRvdy1uZXctcGl4 ZWwgcGFyZW50IG90aGVyLWRlbHRhICdhZGQpKQorCisgICAgICAgICAgICAoaWYgKHplcm9wIHRo aXMtZGVsdGEpCisgICAgICAgICAgICAgICAgOzsgV2UgaGF2ZW4ndCBnb3QgYW55dGhpbmcgZnJv bSBXSU5ET1cncyBzaWJsaW5ncyBidXQgd2UKKyAgICAgICAgICAgICAgICA7OyBtdXN0IHVwZGF0 ZSB0aGUgbm9ybWFsIHNpemVzIHRvIHJlc3BlY3Qgb3RoZXItZGVsdGEuCisgICAgICAgICAgICAg ICAgKHdpbmRvdy0tcmVzaXplLWNoaWxkLXdpbmRvd3Mtbm9ybWFsCisgICAgICAgICAgICAgICAg IHBhcmVudCBob3Jpem9udGFsIHdpbmRvdyB0aGlzLWRlbHRhIHRyYWlsIG90aGVyLWRlbHRhKQor ICAgICAgICAgICAgICA7OyBXZSBkaWQgZ2V0IHNvbWV0aGluZyBmcm9tIFdJTkRPVydzIHNpYmxp bmdzIHdoaWNoIG1lYW5zCisgICAgICAgICAgICAgIDs7IHdlIGhhdmUgdG8gcmVzaXplIHRoZWly IGNoaWxkIHdpbmRvd3MuCisgICAgICAgICAgICAgICh1bmxlc3MgKGVxICh3aW5kb3ctLXJlc2l6 ZS1jaGlsZC13aW5kb3dzCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgKC0gdGhp cy1kZWx0YSkgaG9yaXpvbnRhbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93IGln bm9yZSB0cmFpbCBlZGdlIGNoYXItc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg SWYgYHdpbmRvdy0tcmVzaXplLWNoaWxkLXdpbmRvd3MnIHJldHVybnMKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgOzsgJ25vcm1hbGl6ZWQsIHRoaXMgbWVhbnMgaXQgaGFzIHNldCB0aGUKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgOzsgbm9ybWFsIHNpemVzIGFscmVhZHkuCisgICAgICAg ICAgICAgICAgICAgICAgICAgICdub3JtYWxpemVkKQorICAgICAgICAgICAgICAgIDs7IFNldCB0 aGUgbm9ybWFsIHNpemVzLgorICAgICAgICAgICAgICAgICh3aW5kb3ctLXJlc2l6ZS1jaGlsZC13 aW5kb3dzLW5vcm1hbAorICAgICAgICAgICAgICAgICBwYXJlbnQgaG9yaXpvbnRhbCB3aW5kb3cg dGhpcy1kZWx0YSB0cmFpbCBvdGhlci1kZWx0YSkpCisgICAgICAgICAgICAgIDs7IFNldCBERUxU QSB0byB3aGF0IHdlIHN0aWxsIGhhdmUgdG8gZ2V0IGZyb20gYW5jZXN0b3IKKyAgICAgICAgICAg ICAgOzsgd2luZG93cy4KKyAgICAgICAgICAgICAgKHNldHEgZGVsdGEgb3RoZXItZGVsdGEpKSkK KworICAgICAgICA7OyBJbiBhbiBvcnRoby1jb21iaW5hdGlvbiBhbGwgc2libGluZ3Mgb2YgV0lO RE9XIG11c3QgYmUKKyAgICAgICAgOzsgcmVzaXplZCBieSBERUxUQS4KKyAgICAgICAgKHNldC13 aW5kb3ctbmV3LXBpeGVsIHBhcmVudCBkZWx0YSAnYWRkKQorICAgICAgICAod2hpbGUgc3ViCisg ICAgICAgICAgKHVubGVzcyAoZXEgc3ViIHdpbmRvdykKKyAgICAgICAgICAgICh3aW5kb3ctLXJl c2l6ZS10aGlzLXdpbmRvdworICAgICAgICAgICAgIHN1YiBkZWx0YSBob3Jpem9udGFsIGlnbm9y ZSB0KSkKKyAgICAgICAgICAoc2V0cSBzdWIgKHdpbmRvdy1yaWdodCBzdWIpKSkpCiAKICAgICAg ICh1bmxlc3MgKHplcm9wIGRlbHRhKQotCTs7ICJHbyB1cC4iCi0JKHdpbmRvdy0tcmVzaXplLXNp YmxpbmdzCi0JIHBhcmVudCBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSB0cmFpbCBlZGdlIGNoYXIt c2l6ZSkpKSkpCisgICAgICAgIDs7ICJHbyB1cC4iCisgICAgICAgICh3aW5kb3ctLXJlc2l6ZS1z aWJsaW5ncworICAgICAgICAgcGFyZW50IGRlbHRhIGhvcml6b250YWwgaWdub3JlIHRyYWlsIGVk Z2UgY2hhci1zaXplKSkpKSkKIAogKGRlZnVuIHdpbmRvdy0tcmVzaXplLXRoaXMtd2luZG93ICh3 aW5kb3cgZGVsdGEgJm9wdGlvbmFsIGhvcml6b250YWwgaWdub3JlIGFkZCB0cmFpbCBlZGdlIGNo YXItc2l6ZSkKICAgIlJlc2l6ZSBXSU5ET1cgdmVydGljYWxseSBieSBERUxUQSBwaXhlbHMuCkBA IC0zMzU0LDkgKzMzNTQsOSBAQCBhY3R1YWxseSB0YWtlIGVmZmVjdC4iCiAgICAgIDs7IEluIGFu IG9ydGhvLWNvbWJpbmF0aW9uIHJlc2l6ZSBlYWNoIGNoaWxkIHdpbmRvdyBieSBERUxUQS4KICAg ICAgKHQKICAgICAgICh3aGlsZSBzdWIKLQkod2luZG93LS1yZXNpemUtdGhpcy13aW5kb3cKLQkg c3ViIGRlbHRhIGhvcml6b250YWwgaWdub3JlIHQgdHJhaWwgZWRnZSBjaGFyLXNpemUpCi0JKHNl dHEgc3ViICh3aW5kb3ctcmlnaHQgc3ViKSkpKSkpKQorICAgICAgICAod2luZG93LS1yZXNpemUt dGhpcy13aW5kb3cKKyAgICAgICAgIHN1YiBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSB0IHRyYWls IGVkZ2UgY2hhci1zaXplKQorICAgICAgICAoc2V0cSBzdWIgKHdpbmRvdy1yaWdodCBzdWIpKSkp KSkpCiAKIChkZWZ1biB3aW5kb3ctLXJlc2l6ZS1yb290LXdpbmRvdyAod2luZG93IGRlbHRhIGhv cml6b250YWwgaWdub3JlIHBpeGVsd2lzZSkKICAgIlJlc2l6ZSByb290IHdpbmRvdyBXSU5ET1cg dmVydGljYWxseSBieSBERUxUQSBsaW5lcy4KQEAgLTMzNzAsMTMgKzMzNzAsMTMgQEAgVGhpcyBm dW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBieSB0aGUgZnJhbWUgcmVzaXppbmcgcm91dGluZXMuICBJ dAogcmVzaXplcyB3aW5kb3dzIHByb3BvcnRpb25hbGx5IGFuZCBuZXZlciBkZWxldGVzIGFueSB3 aW5kb3dzLiIKICAgKHdoZW4gKGFuZCAod2luZG93cCB3aW5kb3cpIChudW1iZXJwIGRlbHRhKSkK ICAgICAobGV0ICgocGl4ZWwtZGVsdGEKLQkgICAoaWYgcGl4ZWx3aXNlCi0JICAgICAgIGRlbHRh Ci0JICAgICAod2luZG93LS1zaXplLXRvLXBpeGVsIHdpbmRvdyBkZWx0YSBob3Jpem9udGFsKSkp KQorICAgICAgICAgICAoaWYgcGl4ZWx3aXNlCisgICAgICAgICAgICAgICBkZWx0YQorICAgICAg ICAgICAgICh3aW5kb3ctLXNpemUtdG8tcGl4ZWwgd2luZG93IGRlbHRhIGhvcml6b250YWwpKSkp CiAgICAgICAod2hlbiAod2luZG93LXNpemFibGUtcCB3aW5kb3cgcGl4ZWwtZGVsdGEgaG9yaXpv bnRhbCBpZ25vcmUgdCkKLQkod2luZG93LS1yZXNpemUtcmVzZXQgKHdpbmRvdy1mcmFtZSB3aW5k b3cpIGhvcml6b250YWwpCi0JKHdpbmRvdy0tcmVzaXplLXRoaXMtd2luZG93Ci0JIHdpbmRvdyBw aXhlbC1kZWx0YSBob3Jpem9udGFsIGlnbm9yZSB0KSkpKSkKKyAgICAgICAgKHdpbmRvdy0tcmVz aXplLXJlc2V0ICh3aW5kb3ctZnJhbWUgd2luZG93KSBob3Jpem9udGFsKQorICAgICAgICAod2lu ZG93LS1yZXNpemUtdGhpcy13aW5kb3cKKyAgICAgICAgIHdpbmRvdyBwaXhlbC1kZWx0YSBob3Jp em9udGFsIGlnbm9yZSB0KSkpKSkKIAogKGRlZnVuIHdpbmRvdy0tcmVzaXplLXJvb3Qtd2luZG93 LXZlcnRpY2FsbHkgKHdpbmRvdyBkZWx0YSBwaXhlbHdpc2UpCiAgICJSZXNpemUgcm9vdCB3aW5k b3cgV0lORE9XIHZlcnRpY2FsbHkgYnkgREVMVEEgbGluZXMuCkBAIC0zMzkyLDE0ICszMzkyLDE0 IEBAIHBpeGVscyBhbmQgcmV0dXJuIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRoYXQgd2VyZSByZWNv dmVyZWQuCiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgbWluaWJ1ZmZlciB3aW5kb3cg cmVzaXppbmcKIHJvdXRpbmVzLiIKICAgKGxldCogKChmcmFtZSAod2luZG93LWZyYW1lIHdpbmRv dykpCi0JIChwaXhlbC1kZWx0YQotCSAgKGNvbmQKLQkgICAocGl4ZWx3aXNlCi0JICAgIGRlbHRh KQotCSAgICgobnVtYmVycCBkZWx0YSkKLQkgICAgKCogKGZyYW1lLWNoYXItaGVpZ2h0IGZyYW1l KSBkZWx0YSkpCi0JICAgKHQgMCkpKQotCSBpZ25vcmUpCisgICAgICAgICAocGl4ZWwtZGVsdGEK KyAgICAgICAgICAoY29uZAorICAgICAgICAgICAocGl4ZWx3aXNlCisgICAgICAgICAgICBkZWx0 YSkKKyAgICAgICAgICAgKChudW1iZXJwIGRlbHRhKQorICAgICAgICAgICAgKCogKGZyYW1lLWNo YXItaGVpZ2h0IGZyYW1lKSBkZWx0YSkpCisgICAgICAgICAgICh0IDApKSkKKyAgICAgICAgIGln bm9yZSkKICAgICAoY29uZAogICAgICAoKHplcm9wIHBpeGVsLWRlbHRhKSkKICAgICAgKCg8IHBp eGVsLWRlbHRhIDApCkBAIC0zNDE3LDE1ICszNDE3LDE1IEBAIHJvdXRpbmVzLiIKICAgICAgKCg+ IHBpeGVsLWRlbHRhIDApCiAgICAgICAod2luZG93LS1yZXNpemUtcmVzZXQgZnJhbWUpCiAgICAg ICAodW5sZXNzICh3aW5kb3ctc2l6YWJsZSB3aW5kb3cgcGl4ZWwtZGVsdGEgbmlsIG5pbCBwaXhl bHdpc2UpCi0JKHNldHEgaWdub3JlIHQpKQorICAgICAgICAoc2V0cSBpZ25vcmUgdCkpCiAgICAg ICA7OyBXaGVuIGdyb3dpbmcgdGhlIHJvb3Qgd2luZG93LCByZXNpemUgcHJvcG9ydGlvbmFsbHku ICBUaGlzCiAgICAgICA7OyBzaG91bGQgZ2l2ZSB3aW5kb3dzIGJhY2sgdGhlaXIgb3JpZ2luYWwg c2l6ZXMgKGhvcGVmdWxseSkuCiAgICAgICAod2luZG93LS1yZXNpemUtdGhpcy13aW5kb3cKICAg ICAgICB3aW5kb3cgcGl4ZWwtZGVsdGEgbmlsIGlnbm9yZSB0KSkpCi0gICAgIDs7IFJldHVybiB0 aGUgcG9zc2libHkgYWRqdXN0ZWQgREVMVEEuCi0gICAgIChpZiBwaXhlbHdpc2UKLQkgcGl4ZWwt ZGVsdGEKLSAgICAgICAoLyBwaXhlbC1kZWx0YSAoZnJhbWUtY2hhci1oZWlnaHQgZnJhbWUpKSkp KQorICAgIDs7IFJldHVybiB0aGUgcG9zc2libHkgYWRqdXN0ZWQgREVMVEEuCisgICAgKGlmIHBp eGVsd2lzZQorICAgICAgICBwaXhlbC1kZWx0YQorICAgICAgKC8gcGl4ZWwtZGVsdGEgKGZyYW1l LWNoYXItaGVpZ2h0IGZyYW1lKSkpKSkKIAogKGRlZnVuIHdpbmRvdy0tcmVzaXplLW1pbmktZnJh bWUgKGZyYW1lKQogICAiUmVzaXplIG1pbmlidWZmZXItb25seSBmcmFtZSBGUkFNRS4iCkBAIC0z NDQ4LDExICszNDQ4LDExIEBAIG1heSBoYXBwZW4gd2hlbiB0aGUgRlJBTUUgaXMgbm90IGxhcmdl IGVub3VnaCB0byBhY2NvbW1vZGF0ZSBpdC4iCiAgICAgKHdhbGstd2luZG93LXRyZWUKICAgICAg KGxhbWJkYSAod2luZG93KQogICAgICAgIChsZXQgICgoZGVsdGEgKC0gKHdpbmRvdy1taW4tc2l6 ZSB3aW5kb3cgaG9yaXpvbnRhbCBuaWwgdCkKLQkJCSh3aW5kb3ctc2l6ZSB3aW5kb3cgaG9yaXpv bnRhbCB0KSkpKQotCSAod2hlbiAoPiBkZWx0YSAwKQotCSAgIChpZiAod2luZG93LXJlc2l6YWJs ZS1wIHdpbmRvdyBkZWx0YSBob3Jpem9udGFsIG5pbCB0KQotCSAgICAgICAod2luZG93LXJlc2l6 ZSB3aW5kb3cgZGVsdGEgaG9yaXpvbnRhbCBuaWwgdCkKLQkgICAgIChzZXRxIHZhbHVlIG5pbCkp KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LXNpemUgd2luZG93IGhvcml6b250 YWwgdCkpKSkKKyAgICAgICAgICh3aGVuICg+IGRlbHRhIDApCisgICAgICAgICAgIChpZiAod2lu ZG93LXJlc2l6YWJsZS1wIHdpbmRvdyBkZWx0YSBob3Jpem9udGFsIG5pbCB0KQorICAgICAgICAg ICAgICAgKHdpbmRvdy1yZXNpemUgd2luZG93IGRlbHRhIGhvcml6b250YWwgbmlsIHQpCisgICAg ICAgICAgICAgKHNldHEgdmFsdWUgbmlsKSkpKSkKICAgICAgbmlsIG5pbCAnbm9taW5pKQogICAg IHZhbHVlKSkKIApAQCAtMzQ3MSw5ICszNDcxLDkgQEAgdGhlIGxlZnQuICBJZiB0aGUgZWRnZSBj YW4ndCBiZSBtb3ZlZCBieSBERUxUQSBsaW5lcyBvciBjb2x1bW5zLAogbW92ZSBpdCBhcyBmYXIg YXMgcG9zc2libGUgaW4gdGhlIGRlc2lyZWQgZGlyZWN0aW9uLiIKICAgKHNldHEgd2luZG93ICh3 aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5kb3cpKQogICAobGV0KiAoKGZyYW1lICh3aW5kb3ct ZnJhbWUgd2luZG93KSkKLQkgKG1pbmlidWZmZXItd2luZG93IChtaW5pYnVmZmVyLXdpbmRvdyBm cmFtZSkpCi0JIChyaWdodCB3aW5kb3cpCi0JIGxlZnQgZmlyc3QtbGVmdCBmaXJzdC1yaWdodCB0 aGlzLWRlbHRhIG1pbi1kZWx0YSBtYXgtZGVsdGEgaWdub3JlKQorICAgICAgICAgKG1pbmlidWZm ZXItd2luZG93IChtaW5pYnVmZmVyLXdpbmRvdyBmcmFtZSkpCisgICAgICAgICAocmlnaHQgd2lu ZG93KQorICAgICAgICAgbGVmdCBmaXJzdC1sZWZ0IGZpcnN0LXJpZ2h0IHRoaXMtZGVsdGEgbWlu LWRlbHRhIG1heC1kZWx0YSBpZ25vcmUpCiAKICAgICAodW5sZXNzIHBpeGVsd2lzZQogICAgICAg KHNldHEgcGl4ZWx3aXNlIHQpCkBAIC0zNDgxLDE2NiArMzQ4MSwxNjYgQEAgbW92ZSBpdCBhcyBm YXIgYXMgcG9zc2libGUgaW4gdGhlIGRlc2lyZWQgZGlyZWN0aW9uLiIKIAogICAgIDs7IEZpbmQg dGhlIGVkZ2Ugd2Ugd2FudCB0byBtb3ZlLgogICAgICh3aGlsZSAoYW5kIChvciAobm90ICh3aW5k b3ctY29tYmluZWQtcCByaWdodCBob3Jpem9udGFsKSkKLQkJICAgIChub3QgKHdpbmRvdy1yaWdo dCByaWdodCkpKQotCQkoc2V0cSByaWdodCAod2luZG93LXBhcmVudCByaWdodCkpKSkKKyAgICAg ICAgICAgICAgICAgICAgKG5vdCAod2luZG93LXJpZ2h0IHJpZ2h0KSkpCisgICAgICAgICAgICAg ICAgKHNldHEgcmlnaHQgKHdpbmRvdy1wYXJlbnQgcmlnaHQpKSkpCiAgICAgKGNvbmQKICAgICAg KChhbmQgKG5vdCByaWdodCkgKG5vdCBob3Jpem9udGFsKQotCSAgIDs7IFJlc2l6ZSB0aGUgbWlu aWJ1ZmZlciB3aW5kb3cgaWYgaXQncyBvbiB0aGUgc2FtZSBmcmFtZSBhcwotCSAgIDs7IGFuZCBp bW1lZGlhdGVseSBiZWxvdyBXSU5ET1cgYW5kIGl0J3MgZWl0aGVyIGFjdGl2ZSBvcgotCSAgIDs7 IGByZXNpemUtbWluaS13aW5kb3dzJyBpcyBuaWwuCi0JICAgKGVxICh3aW5kb3ctZnJhbWUgbWlu aWJ1ZmZlci13aW5kb3cpIGZyYW1lKQotCSAgICg9IChudGggMSAod2luZG93LXBpeGVsLWVkZ2Vz IG1pbmlidWZmZXItd2luZG93KSkKLQkgICAgICAobnRoIDMgKHdpbmRvdy1waXhlbC1lZGdlcyB3 aW5kb3cpKSkKLQkgICAob3IgKG5vdCByZXNpemUtbWluaS13aW5kb3dzKQotCSAgICAgICAoZXEg bWluaWJ1ZmZlci13aW5kb3cgKGFjdGl2ZS1taW5pYnVmZmVyLXdpbmRvdykpKSkKKyAgICAgICAg ICAgOzsgUmVzaXplIHRoZSBtaW5pYnVmZmVyIHdpbmRvdyBpZiBpdCdzIG9uIHRoZSBzYW1lIGZy YW1lIGFzCisgICAgICAgICAgIDs7IGFuZCBpbW1lZGlhdGVseSBiZWxvdyBXSU5ET1cgYW5kIGl0 J3MgZWl0aGVyIGFjdGl2ZSBvcgorICAgICAgICAgICA7OyBgcmVzaXplLW1pbmktd2luZG93cycg aXMgbmlsLgorICAgICAgICAgICAoZXEgKHdpbmRvdy1mcmFtZSBtaW5pYnVmZmVyLXdpbmRvdykg ZnJhbWUpCisgICAgICAgICAgICg9IChudGggMSAod2luZG93LXBpeGVsLWVkZ2VzIG1pbmlidWZm ZXItd2luZG93KSkKKyAgICAgICAgICAgICAgKG50aCAzICh3aW5kb3ctcGl4ZWwtZWRnZXMgd2lu ZG93KSkpCisgICAgICAgICAgIChvciAobm90IHJlc2l6ZS1taW5pLXdpbmRvd3MpCisgICAgICAg ICAgICAgICAoZXEgbWluaWJ1ZmZlci13aW5kb3cgKGFjdGl2ZS1taW5pYnVmZmVyLXdpbmRvdykp KSkKICAgICAgICh3aW5kb3ctLXJlc2l6ZS1taW5pLXdpbmRvdyBtaW5pYnVmZmVyLXdpbmRvdyAo LSBkZWx0YSkpKQogICAgICAoKG9yIChub3QgKHNldHEgbGVmdCByaWdodCkpIChub3QgKHNldHEg cmlnaHQgKHdpbmRvdy1yaWdodCByaWdodCkpKSkKICAgICAgIChpZiBob3Jpem9udGFsCi0JICAo dXNlci1lcnJvciAiTm8gd2luZG93IG9uIHRoZSByaWdodCBvZiB0aGlzIG9uZSIpCi0JKHVzZXIt ZXJyb3IgIk5vIHdpbmRvdyBiZWxvdyB0aGlzIG9uZSIpKSkKKyAgICAgICAgICAodXNlci1lcnJv ciAiTm8gd2luZG93IG9uIHRoZSByaWdodCBvZiB0aGlzIG9uZSIpCisgICAgICAgICh1c2VyLWVy cm9yICJObyB3aW5kb3cgYmVsb3cgdGhpcyBvbmUiKSkpCiAgICAgICh0CiAgICAgICA7OyBTZXQg TEVGVCB0byB0aGUgZmlyc3QgcmVzaXphYmxlIHdpbmRvdyBvbiB0aGUgbGVmdC4gIFRoaXMgc3Rl cCBpcwogICAgICAgOzsgbmVlZGVkIHRvIGhhbmRsZSBmaXhlZC1zaXplIHdpbmRvd3MuCiAgICAg ICAoc2V0cSBmaXJzdC1sZWZ0IGxlZnQpCiAgICAgICAod2hpbGUgKGFuZCBsZWZ0Ci0JCSAgKG9y ICh3aW5kb3ctc2l6ZS1maXhlZC1wIGxlZnQgaG9yaXpvbnRhbCkKLQkJICAgICAgKGFuZCAoPCBk ZWx0YSAwKQotCQkJICAgKDw9ICh3aW5kb3ctc2l6ZSBsZWZ0IGhvcml6b250YWwgdCkKLQkJCSAg ICAgICAod2luZG93LW1pbi1zaXplIGxlZnQgaG9yaXpvbnRhbCBuaWwgdCkpKSkpCi0JKHNldHEg bGVmdAotCSAgICAgIChvciAod2luZG93LWxlZnQgbGVmdCkKLQkJICAocHJvZ24KLQkJICAgICh3 aGlsZSAoYW5kIChzZXRxIGxlZnQgKHdpbmRvdy1wYXJlbnQgbGVmdCkpCi0JCQkJKG5vdCAod2lu ZG93LWNvbWJpbmVkLXAgbGVmdCBob3Jpem9udGFsKSkpKQotCQkgICAgKHdpbmRvdy1sZWZ0IGxl ZnQpKSkpKQorICAgICAgICAgICAgICAgICAgKG9yICh3aW5kb3ctc2l6ZS1maXhlZC1wIGxlZnQg aG9yaXpvbnRhbCkKKyAgICAgICAgICAgICAgICAgICAgICAoYW5kICg8IGRlbHRhIDApCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAoPD0gKHdpbmRvdy1zaXplIGxlZnQgaG9yaXpvbnRhbCB0 KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctbWluLXNpemUgbGVmdCBo b3Jpem9udGFsIG5pbCB0KSkpKSkKKyAgICAgICAgKHNldHEgbGVmdAorICAgICAgICAgICAgICAo b3IgKHdpbmRvdy1sZWZ0IGxlZnQpCisgICAgICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAg ICAgICAgICAgICAgKHdoaWxlIChhbmQgKHNldHEgbGVmdCAod2luZG93LXBhcmVudCBsZWZ0KSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAod2luZG93LWNvbWJpbmVkLXAg bGVmdCBob3Jpem9udGFsKSkpKQorICAgICAgICAgICAgICAgICAgICAod2luZG93LWxlZnQgbGVm dCkpKSkpCiAgICAgICAodW5sZXNzIGxlZnQKLQk7OyBXZSBoYXZlIHRvIHJlc2l6ZSBhIHNpemUt cHJlc2VydmVkIHdpbmRvdy4gIFN0YXJ0IGFnYWluIHdpdGgKLQk7OyB0aGUgd2luZG93IGluaXRp YWxseSBvbiB0aGUgbGVmdC4KLQkoc2V0cSBpZ25vcmUgJ3ByZXNlcnZlZCkKLQkoc2V0cSBsZWZ0 IGZpcnN0LWxlZnQpCi0JKHdoaWxlIChhbmQgbGVmdAotCQkgICAgKG9yICh3aW5kb3ctc2l6ZS1m aXhlZC1wIGxlZnQgaG9yaXpvbnRhbCAncHJlc2VydmVkKQotCQkJKGFuZCAoPCBkZWx0YSAwKQor ICAgICAgICA7OyBXZSBoYXZlIHRvIHJlc2l6ZSBhIHNpemUtcHJlc2VydmVkIHdpbmRvdy4gIFN0 YXJ0IGFnYWluIHdpdGgKKyAgICAgICAgOzsgdGhlIHdpbmRvdyBpbml0aWFsbHkgb24gdGhlIGxl ZnQuCisgICAgICAgIChzZXRxIGlnbm9yZSAncHJlc2VydmVkKQorICAgICAgICAoc2V0cSBsZWZ0 IGZpcnN0LWxlZnQpCisgICAgICAgICh3aGlsZSAoYW5kIGxlZnQKKyAgICAgICAgICAgICAgICAg ICAgKG9yICh3aW5kb3ctc2l6ZS1maXhlZC1wIGxlZnQgaG9yaXpvbnRhbCAncHJlc2VydmVkKQor ICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoPCBkZWx0YSAwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoPD0gKHdpbmRvdy1zaXplIGxlZnQgaG9yaXpvbnRhbCB0KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1taW4tc2l6ZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxlZnQgaG9yaXpvbnRhbCAncHJlc2VydmVkIHQpKSkpKQot CSAgKHNldHEgbGVmdAotCQkob3IgKHdpbmRvdy1sZWZ0IGxlZnQpCi0JCSAgICAocHJvZ24KLQkJ ICAgICAgKHdoaWxlIChhbmQgKHNldHEgbGVmdCAod2luZG93LXBhcmVudCBsZWZ0KSkKLQkJCQkg IChub3QgKHdpbmRvdy1jb21iaW5lZC1wIGxlZnQgaG9yaXpvbnRhbCkpKSkKLQkJICAgICAgKHdp bmRvdy1sZWZ0IGxlZnQpKSkpKQotCi0JKHVubGVzcyBsZWZ0Ci0JICAoaWYgaG9yaXpvbnRhbAot CSAgICAgICh1c2VyLWVycm9yICJObyByZXNpemFibGUgd2luZG93IG9uIHRoZSBsZWZ0IG9mIHRo aXMgb25lIikKLQkgICAgKHVzZXItZXJyb3IgIk5vIHJlc2l6YWJsZSB3aW5kb3cgYWJvdmUgdGhp cyBvbmUiKSkpKQorICAgICAgICAgIChzZXRxIGxlZnQKKyAgICAgICAgICAgICAgICAob3IgKHdp bmRvdy1sZWZ0IGxlZnQpCisgICAgICAgICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAg ICAgICAgICAgICh3aGlsZSAoYW5kIChzZXRxIGxlZnQgKHdpbmRvdy1wYXJlbnQgbGVmdCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAod2luZG93LWNvbWJpbmVkLXAg bGVmdCBob3Jpem9udGFsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctbGVmdCBs ZWZ0KSkpKSkKKworICAgICAgICAodW5sZXNzIGxlZnQKKyAgICAgICAgICAoaWYgaG9yaXpvbnRh bAorICAgICAgICAgICAgICAodXNlci1lcnJvciAiTm8gcmVzaXphYmxlIHdpbmRvdyBvbiB0aGUg bGVmdCBvZiB0aGlzIG9uZSIpCisgICAgICAgICAgICAodXNlci1lcnJvciAiTm8gcmVzaXphYmxl IHdpbmRvdyBhYm92ZSB0aGlzIG9uZSIpKSkpCiAKICAgICAgIDs7IFNldCBSSUdIVCB0byB0aGUg Zmlyc3QgcmVzaXphYmxlIHdpbmRvdyBvbiB0aGUgcmlnaHQuICBUaGlzIHN0ZXAKICAgICAgIDs7 IGlzIG5lZWRlZCB0byBoYW5kbGUgZml4ZWQtc2l6ZSB3aW5kb3dzLgogICAgICAgKHNldHEgZmly c3QtcmlnaHQgcmlnaHQpCiAgICAgICAod2hpbGUgKGFuZCByaWdodAotCQkgIChvciAod2luZG93 LXNpemUtZml4ZWQtcCByaWdodCBob3Jpem9udGFsKQotCQkgICAgICAoYW5kICg+IGRlbHRhIDAp Ci0JCQkgICAoPD0gKHdpbmRvdy1zaXplIHJpZ2h0IGhvcml6b250YWwgdCkKLQkJCSAgICAgICAo d2luZG93LW1pbi1zaXplCisgICAgICAgICAgICAgICAgICAob3IgKHdpbmRvdy1zaXplLWZpeGVk LXAgcmlnaHQgaG9yaXpvbnRhbCkKKyAgICAgICAgICAgICAgICAgICAgICAoYW5kICg+IGRlbHRh IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoPD0gKHdpbmRvdy1zaXplIHJpZ2h0IGhv cml6b250YWwgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LW1pbi1z aXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0IGhvcml6b250YWwgJ3By ZXNlcnZlZCB0KSkpKSkKLQkoc2V0cSByaWdodAotCSAgICAgIChvciAod2luZG93LXJpZ2h0IHJp Z2h0KQotCQkgIChwcm9nbgotCQkgICAgKHdoaWxlIChhbmQgKHNldHEgcmlnaHQgKHdpbmRvdy1w YXJlbnQgcmlnaHQpKQotCQkJCShub3QgKHdpbmRvdy1jb21iaW5lZC1wIHJpZ2h0IGhvcml6b250 YWwpKSkpCi0JCSAgICAod2luZG93LXJpZ2h0IHJpZ2h0KSkpKSkKKyAgICAgICAgKHNldHEgcmln aHQKKyAgICAgICAgICAgICAgKG9yICh3aW5kb3ctcmlnaHQgcmlnaHQpCisgICAgICAgICAgICAg ICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAgICAgKHdoaWxlIChhbmQgKHNldHEgcmlnaHQg KHdpbmRvdy1wYXJlbnQgcmlnaHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bm90ICh3aW5kb3ctY29tYmluZWQtcCByaWdodCBob3Jpem9udGFsKSkpKQorICAgICAgICAgICAg ICAgICAgICAod2luZG93LXJpZ2h0IHJpZ2h0KSkpKSkKICAgICAgICh1bmxlc3MgcmlnaHQKLQk7 OyBXZSBoYXZlIHRvIHJlc2l6ZSBhIHNpemUtcHJlc2VydmVkIHdpbmRvdy4gIFN0YXJ0IGFnYWlu IHdpdGgKLQk7OyB0aGUgd2luZG93IGluaXRpYWxseSBvbiB0aGUgcmlnaHQuCi0JKHNldHEgaWdu b3JlICdwcmVzZXJ2ZWQpCi0JKHNldHEgcmlnaHQgZmlyc3QtcmlnaHQpCi0JKHdoaWxlIChhbmQg cmlnaHQKLQkJICAgIChvciAod2luZG93LXNpemUtZml4ZWQtcCByaWdodCBob3Jpem9udGFsICdw cmVzZXJ2ZWQpCisgICAgICAgIDs7IFdlIGhhdmUgdG8gcmVzaXplIGEgc2l6ZS1wcmVzZXJ2ZWQg d2luZG93LiAgU3RhcnQgYWdhaW4gd2l0aAorICAgICAgICA7OyB0aGUgd2luZG93IGluaXRpYWxs eSBvbiB0aGUgcmlnaHQuCisgICAgICAgIChzZXRxIGlnbm9yZSAncHJlc2VydmVkKQorICAgICAg ICAoc2V0cSByaWdodCBmaXJzdC1yaWdodCkKKyAgICAgICAgKHdoaWxlIChhbmQgcmlnaHQKKyAg ICAgICAgICAgICAgICAgICAgKG9yICh3aW5kb3ctc2l6ZS1maXhlZC1wIHJpZ2h0IGhvcml6b250 YWwgJ3ByZXNlcnZlZCkKICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKD4gZGVsdGEgMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDw9ICh3aW5kb3ctc2l6ZSByaWdodCBob3Jp em9udGFsIHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LW1pbi1z aXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQgaG9yaXpvbnRhbCAn cHJlc2VydmVkIHQpKSkpKQotCSAgKHNldHEgcmlnaHQKLQkJKG9yICh3aW5kb3ctcmlnaHQgcmln aHQpCi0JCSAgICAocHJvZ24KLQkJICAgICAgKHdoaWxlIChhbmQgKHNldHEgcmlnaHQgKHdpbmRv dy1wYXJlbnQgcmlnaHQpKQotCQkJCSAgKG5vdCAod2luZG93LWNvbWJpbmVkLXAgcmlnaHQgaG9y aXpvbnRhbCkpKSkKLQkJICAgICAgKHdpbmRvdy1yaWdodCByaWdodCkpKSkpCi0JKHVubGVzcyBy aWdodAotCSAgKGlmIGhvcml6b250YWwKLQkgICAgICAodXNlci1lcnJvciAiTm8gcmVzaXphYmxl IHdpbmRvdyBvbiB0aGUgcmlnaHQgb2YgdGhpcyBvbmUiKQotCSAgICAodXNlci1lcnJvciAiTm8g cmVzaXphYmxlIHdpbmRvdyBiZWxvdyB0aGlzIG9uZSIpKSkpCisgICAgICAgICAgKHNldHEgcmln aHQKKyAgICAgICAgICAgICAgICAob3IgKHdpbmRvdy1yaWdodCByaWdodCkKKyAgICAgICAgICAg ICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgICAgICAgKHdoaWxlIChhbmQgKHNldHEg cmlnaHQgKHdpbmRvdy1wYXJlbnQgcmlnaHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChub3QgKHdpbmRvdy1jb21iaW5lZC1wIHJpZ2h0IGhvcml6b250YWwpKSkpCisgICAg ICAgICAgICAgICAgICAgICAgKHdpbmRvdy1yaWdodCByaWdodCkpKSkpCisgICAgICAgICh1bmxl c3MgcmlnaHQKKyAgICAgICAgICAoaWYgaG9yaXpvbnRhbAorICAgICAgICAgICAgICAodXNlci1l cnJvciAiTm8gcmVzaXphYmxlIHdpbmRvdyBvbiB0aGUgcmlnaHQgb2YgdGhpcyBvbmUiKQorICAg ICAgICAgICAgKHVzZXItZXJyb3IgIk5vIHJlc2l6YWJsZSB3aW5kb3cgYmVsb3cgdGhpcyBvbmUi KSkpKQogCiAgICAgICA7OyBMRUZUIGFuZCBSSUdIVCAod2hpY2ggbWlnaHQgYmUgYm90aCBpbnRl cm5hbCB3aW5kb3dzKSBhcmUgbm93IHRoZQogICAgICAgOzsgdHdvIHdpbmRvd3Mgd2Ugd2FudCB0 byByZXNpemUuCiAgICAgICAoY29uZAogICAgICAgICgoPiBkZWx0YSAwKQotCShzZXRxIG1heC1k ZWx0YQotCSAgICAgICh3aW5kb3ctLW1heC1kZWx0YS0xCi0JICAgICAgIGxlZnQgMCBob3Jpem9u dGFsIGlnbm9yZSAnYWZ0ZXIgbmlsIHBpeGVsd2lzZSkpCi0JKHNldHEgbWluLWRlbHRhCi0JICAg ICAgKHdpbmRvdy0tbWluLWRlbHRhLTEKLQkgICAgICAgcmlnaHQgKC0gZGVsdGEpIGhvcml6b250 YWwgaWdub3JlICdiZWZvcmUgbmlsIHBpeGVsd2lzZSkpCi0JKHdoZW4gKG9yICg8IG1heC1kZWx0 YSBkZWx0YSkgKD4gbWluLWRlbHRhICgtIGRlbHRhKSkpCi0JICA7OyBXZSBjYW4ndCBnZXQgdGhl IHdob2xlIERFTFRBIC0gbW92ZSBhcyBmYXIgYXMgcG9zc2libGUuCi0JICAoc2V0cSBkZWx0YSAo bWluIG1heC1kZWx0YSAoLSBtaW4tZGVsdGEpKSkpCi0JKHVubGVzcyAoemVyb3AgZGVsdGEpCi0J ICA7OyBTdGFydCByZXNpemluZy4KLQkgICh3aW5kb3ctLXJlc2l6ZS1yZXNldCBmcmFtZSBob3Jp em9udGFsKQotCSAgOzsgVHJ5IHRvIGVubGFyZ2UgTEVGVCBmaXJzdC4KLQkgIChzZXRxIHRoaXMt ZGVsdGEKKyAgICAgICAgKHNldHEgbWF4LWRlbHRhCisgICAgICAgICAgICAgICh3aW5kb3ctLW1h eC1kZWx0YS0xCisgICAgICAgICAgICAgICBsZWZ0IDAgaG9yaXpvbnRhbCBpZ25vcmUgJ2FmdGVy IG5pbCBwaXhlbHdpc2UpKQorICAgICAgICAoc2V0cSBtaW4tZGVsdGEKKyAgICAgICAgICAgICAg KHdpbmRvdy0tbWluLWRlbHRhLTEKKyAgICAgICAgICAgICAgIHJpZ2h0ICgtIGRlbHRhKSBob3Jp em9udGFsIGlnbm9yZSAnYmVmb3JlIG5pbCBwaXhlbHdpc2UpKQorICAgICAgICAod2hlbiAob3Ig KDwgbWF4LWRlbHRhIGRlbHRhKSAoPiBtaW4tZGVsdGEgKC0gZGVsdGEpKSkKKyAgICAgICAgICA7 OyBXZSBjYW4ndCBnZXQgdGhlIHdob2xlIERFTFRBIC0gbW92ZSBhcyBmYXIgYXMgcG9zc2libGUu CisgICAgICAgICAgKHNldHEgZGVsdGEgKG1pbiBtYXgtZGVsdGEgKC0gbWluLWRlbHRhKSkpKQor ICAgICAgICAodW5sZXNzICh6ZXJvcCBkZWx0YSkKKyAgICAgICAgICA7OyBTdGFydCByZXNpemlu Zy4KKyAgICAgICAgICAod2luZG93LS1yZXNpemUtcmVzZXQgZnJhbWUgaG9yaXpvbnRhbCkKKyAg ICAgICAgICA7OyBUcnkgdG8gZW5sYXJnZSBMRUZUIGZpcnN0LgorICAgICAgICAgIChzZXRxIHRo aXMtZGVsdGEKICAgICAgICAgICAgICAgICAod2luZG93LS1yZXNpemFibGUKICAgICAgICAgICAg ICAgICAgbGVmdCBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSAnYWZ0ZXIgbmlsIG5pbCBwaXhlbHdp c2UpKQotCSAgKHVubGVzcyAoemVyb3AgdGhpcy1kZWx0YSkKLQkgICAgKHdpbmRvdy0tcmVzaXpl LXRoaXMtd2luZG93Ci0JICAgICBsZWZ0IHRoaXMtZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgdCAn YmVmb3JlCi0JICAgICAoaWYgaG9yaXpvbnRhbAotCQkgKCsgKHdpbmRvdy1waXhlbC1sZWZ0IGxl ZnQpICh3aW5kb3ctcGl4ZWwtd2lkdGggbGVmdCkpCi0JICAgICAgICgrICh3aW5kb3ctcGl4ZWwt dG9wIGxlZnQpICh3aW5kb3ctcGl4ZWwtaGVpZ2h0IGxlZnQpKSkpKQotCSAgOzsgU2hyaW5rIHdp bmRvd3Mgb24gcmlnaHQgb2YgTEVGVC4KLQkgICh3aW5kb3ctLXJlc2l6ZS1zaWJsaW5ncwotCSAg IGxlZnQgZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgJ2FmdGVyCi0JICAgKGlmIGhvcml6b250YWwK LQkgICAgICAgKHdpbmRvdy1waXhlbC1sZWZ0IHJpZ2h0KQotCSAgICAgKHdpbmRvdy1waXhlbC10 b3AgcmlnaHQpKSkpKQorICAgICAgICAgICh1bmxlc3MgKHplcm9wIHRoaXMtZGVsdGEpCisgICAg ICAgICAgICAod2luZG93LS1yZXNpemUtdGhpcy13aW5kb3cKKyAgICAgICAgICAgICBsZWZ0IHRo aXMtZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgdCAnYmVmb3JlCisgICAgICAgICAgICAgKGlmIGhv cml6b250YWwKKyAgICAgICAgICAgICAgICAgKCsgKHdpbmRvdy1waXhlbC1sZWZ0IGxlZnQpICh3 aW5kb3ctcGl4ZWwtd2lkdGggbGVmdCkpCisgICAgICAgICAgICAgICAoKyAod2luZG93LXBpeGVs LXRvcCBsZWZ0KSAod2luZG93LXBpeGVsLWhlaWdodCBsZWZ0KSkpKSkKKyAgICAgICAgICA7OyBT aHJpbmsgd2luZG93cyBvbiByaWdodCBvZiBMRUZULgorICAgICAgICAgICh3aW5kb3ctLXJlc2l6 ZS1zaWJsaW5ncworICAgICAgICAgICBsZWZ0IGRlbHRhIGhvcml6b250YWwgaWdub3JlICdhZnRl cgorICAgICAgICAgICAoaWYgaG9yaXpvbnRhbAorICAgICAgICAgICAgICAgKHdpbmRvdy1waXhl bC1sZWZ0IHJpZ2h0KQorICAgICAgICAgICAgICh3aW5kb3ctcGl4ZWwtdG9wIHJpZ2h0KSkpKSkK ICAgICAgICAoKDwgZGVsdGEgMCkKLQkoc2V0cSBtYXgtZGVsdGEKLQkgICAgICAod2luZG93LS1t YXgtZGVsdGEtMQotCSAgICAgICByaWdodCAwIGhvcml6b250YWwgaWdub3JlICdiZWZvcmUgbmls IHBpeGVsd2lzZSkpCi0JKHNldHEgbWluLWRlbHRhCi0JICAgICAgKHdpbmRvdy0tbWluLWRlbHRh LTEKLQkgICAgICAgbGVmdCBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSAnYWZ0ZXIgbmlsIHBpeGVs d2lzZSkpCi0JKHdoZW4gKG9yICg8IG1heC1kZWx0YSAoLSBkZWx0YSkpICg+IG1pbi1kZWx0YSBk ZWx0YSkpCi0JICA7OyBXZSBjYW4ndCBnZXQgdGhlIHdob2xlIERFTFRBIC0gbW92ZSBhcyBmYXIg YXMgcG9zc2libGUuCi0JICAoc2V0cSBkZWx0YSAobWF4ICgtIG1heC1kZWx0YSkgbWluLWRlbHRh KSkpCi0JKHVubGVzcyAoemVyb3AgZGVsdGEpCi0JICA7OyBTdGFydCByZXNpemluZy4KLQkgICh3 aW5kb3ctLXJlc2l6ZS1yZXNldCBmcmFtZSBob3Jpem9udGFsKQotCSAgOzsgVHJ5IHRvIGVubGFy Z2UgUklHSFQuCi0JICAoc2V0cSB0aGlzLWRlbHRhCi0JCSh3aW5kb3ctLXJlc2l6YWJsZQotCQkg cmlnaHQgKC0gZGVsdGEpIGhvcml6b250YWwgaWdub3JlICdiZWZvcmUgbmlsIG5pbCBwaXhlbHdp c2UpKQotCSAgKHVubGVzcyAoemVyb3AgdGhpcy1kZWx0YSkKLQkgICAgKHdpbmRvdy0tcmVzaXpl LXRoaXMtd2luZG93Ci0JICAgICByaWdodCB0aGlzLWRlbHRhIGhvcml6b250YWwgaWdub3JlIHQg J2FmdGVyCi0JICAgICAoaWYgaG9yaXpvbnRhbAotCQkgKHdpbmRvdy1waXhlbC1sZWZ0IHJpZ2h0 KQotCSAgICAgICAod2luZG93LXBpeGVsLXRvcCByaWdodCkpKSkKLQkgIDs7IFNocmluayB3aW5k b3dzIG9uIGxlZnQgb2YgUklHSFQuCi0JICAod2luZG93LS1yZXNpemUtc2libGluZ3MKLQkgICBy aWdodCAoLSBkZWx0YSkgaG9yaXpvbnRhbCBpZ25vcmUgJ2JlZm9yZQotCSAgIChpZiBob3Jpem9u dGFsCi0JICAgICAgICgrICh3aW5kb3ctcGl4ZWwtbGVmdCBsZWZ0KSAod2luZG93LXBpeGVsLXdp ZHRoIGxlZnQpKQotCSAgICAgKCsgKHdpbmRvdy1waXhlbC10b3AgbGVmdCkgKHdpbmRvdy1waXhl bC1oZWlnaHQgbGVmdCkpKSkpKSkKKyAgICAgICAgKHNldHEgbWF4LWRlbHRhCisgICAgICAgICAg ICAgICh3aW5kb3ctLW1heC1kZWx0YS0xCisgICAgICAgICAgICAgICByaWdodCAwIGhvcml6b250 YWwgaWdub3JlICdiZWZvcmUgbmlsIHBpeGVsd2lzZSkpCisgICAgICAgIChzZXRxIG1pbi1kZWx0 YQorICAgICAgICAgICAgICAod2luZG93LS1taW4tZGVsdGEtMQorICAgICAgICAgICAgICAgbGVm dCBkZWx0YSBob3Jpem9udGFsIGlnbm9yZSAnYWZ0ZXIgbmlsIHBpeGVsd2lzZSkpCisgICAgICAg ICh3aGVuIChvciAoPCBtYXgtZGVsdGEgKC0gZGVsdGEpKSAoPiBtaW4tZGVsdGEgZGVsdGEpKQor ICAgICAgICAgIDs7IFdlIGNhbid0IGdldCB0aGUgd2hvbGUgREVMVEEgLSBtb3ZlIGFzIGZhciBh cyBwb3NzaWJsZS4KKyAgICAgICAgICAoc2V0cSBkZWx0YSAobWF4ICgtIG1heC1kZWx0YSkgbWlu LWRlbHRhKSkpCisgICAgICAgICh1bmxlc3MgKHplcm9wIGRlbHRhKQorICAgICAgICAgIDs7IFN0 YXJ0IHJlc2l6aW5nLgorICAgICAgICAgICh3aW5kb3ctLXJlc2l6ZS1yZXNldCBmcmFtZSBob3Jp em9udGFsKQorICAgICAgICAgIDs7IFRyeSB0byBlbmxhcmdlIFJJR0hULgorICAgICAgICAgIChz ZXRxIHRoaXMtZGVsdGEKKyAgICAgICAgICAgICAgICAod2luZG93LS1yZXNpemFibGUKKyAgICAg ICAgICAgICAgICAgcmlnaHQgKC0gZGVsdGEpIGhvcml6b250YWwgaWdub3JlICdiZWZvcmUgbmls IG5pbCBwaXhlbHdpc2UpKQorICAgICAgICAgICh1bmxlc3MgKHplcm9wIHRoaXMtZGVsdGEpCisg ICAgICAgICAgICAod2luZG93LS1yZXNpemUtdGhpcy13aW5kb3cKKyAgICAgICAgICAgICByaWdo dCB0aGlzLWRlbHRhIGhvcml6b250YWwgaWdub3JlIHQgJ2FmdGVyCisgICAgICAgICAgICAgKGlm IGhvcml6b250YWwKKyAgICAgICAgICAgICAgICAgKHdpbmRvdy1waXhlbC1sZWZ0IHJpZ2h0KQor ICAgICAgICAgICAgICAgKHdpbmRvdy1waXhlbC10b3AgcmlnaHQpKSkpCisgICAgICAgICAgOzsg U2hyaW5rIHdpbmRvd3Mgb24gbGVmdCBvZiBSSUdIVC4KKyAgICAgICAgICAod2luZG93LS1yZXNp emUtc2libGluZ3MKKyAgICAgICAgICAgcmlnaHQgKC0gZGVsdGEpIGhvcml6b250YWwgaWdub3Jl ICdiZWZvcmUKKyAgICAgICAgICAgKGlmIGhvcml6b250YWwKKyAgICAgICAgICAgICAgICgrICh3 aW5kb3ctcGl4ZWwtbGVmdCBsZWZ0KSAod2luZG93LXBpeGVsLXdpZHRoIGxlZnQpKQorICAgICAg ICAgICAgICgrICh3aW5kb3ctcGl4ZWwtdG9wIGxlZnQpICh3aW5kb3ctcGl4ZWwtaGVpZ2h0IGxl ZnQpKSkpKSkpCiAgICAgICAodW5sZXNzICh6ZXJvcCBkZWx0YSkKLQk7OyBEb24ndCByZXBvcnQg YW4gZXJyb3IgaW4gdGhlIHN0YW5kYXJkIGNhc2UuCi0JKHdoZW4gKHdpbmRvdy0tcmVzaXplLWFw cGx5LXAgZnJhbWUgaG9yaXpvbnRhbCkKLQkgIChpZiAod2luZG93LXJlc2l6ZS1hcHBseSBmcmFt ZSBob3Jpem9udGFsKQotCSAgICAgICh3aW5kb3ctLXBpeGVsLXRvLXRvdGFsIGZyYW1lIGhvcml6 b250YWwpCi0JICAgIDs7IEJ1dCBkbyByZXBvcnQgYW4gZXJyb3IgaWYgYXBwbHlpbmcgdGhlIGNo YW5nZXMgZmFpbHMuCi0JICAgIChlcnJvciAiRmFpbGVkIGFkanVzdGluZyB3aW5kb3cgJXMiIHdp bmRvdykpKSkpKSkpCisgICAgICAgIDs7IERvbid0IHJlcG9ydCBhbiBlcnJvciBpbiB0aGUgc3Rh bmRhcmQgY2FzZS4KKyAgICAgICAgKHdoZW4gKHdpbmRvdy0tcmVzaXplLWFwcGx5LXAgZnJhbWUg aG9yaXpvbnRhbCkKKyAgICAgICAgICAoaWYgKHdpbmRvdy1yZXNpemUtYXBwbHkgZnJhbWUgaG9y aXpvbnRhbCkKKyAgICAgICAgICAgICAgKHdpbmRvdy0tcGl4ZWwtdG8tdG90YWwgZnJhbWUgaG9y aXpvbnRhbCkKKyAgICAgICAgICAgIDs7IEJ1dCBkbyByZXBvcnQgYW4gZXJyb3IgaWYgYXBwbHlp bmcgdGhlIGNoYW5nZXMgZmFpbHMuCisgICAgICAgICAgICAoZXJyb3IgIkZhaWxlZCBhZGp1c3Rp bmcgd2luZG93ICVzIiB3aW5kb3cpKSkpKSkpKQogCiAoZGVmdW4gZW5sYXJnZS13aW5kb3cgKGRl bHRhICZvcHRpb25hbCBob3Jpem9udGFsKQogICAiTWFrZSB0aGUgc2VsZWN0ZWQgd2luZG93IERF TFRBIGxpbmVzIHRhbGxlci4KQEAgLTM2NTgsMTMgKzM2NTgsMTMgQEAgbmVnYXRpdmUsIHNocmlu ayBzZWxlY3RlZCB3aW5kb3cgYnkgLURFTFRBIGxpbmVzIG9yIGNvbHVtbnMuIgogICAgICAgKHVz ZXItZXJyb3IgIlNlbGVjdGVkIHdpbmRvdyBoYXMgZml4ZWQgc2l6ZSIpKQogICAgICAoKHdpbmRv dy1taW5pYnVmZmVyLXApCiAgICAgICAoaWYgaG9yaXpvbnRhbAotCSAgKHVzZXItZXJyb3IgIkNh bm5vdCByZXNpemUgbWluaWJ1ZmZlciB3aW5kb3cgaG9yaXpvbnRhbGx5IikKLQkod2luZG93LS1y ZXNpemUtbWluaS13aW5kb3cKKyAgICAgICAgICAodXNlci1lcnJvciAiQ2Fubm90IHJlc2l6ZSBt aW5pYnVmZmVyIHdpbmRvdyBob3Jpem9udGFsbHkiKQorICAgICAgICAod2luZG93LS1yZXNpemUt bWluaS13aW5kb3cKICAgICAgICAgIChzZWxlY3RlZC13aW5kb3cpICgqIGRlbHRhIChmcmFtZS1j aGFyLWhlaWdodCkpKSkpCiAgICAgICgoYW5kIChub3QgaG9yaXpvbnRhbCkKLQkgICAod2luZG93 LWZ1bGwtaGVpZ2h0LXApCi0JICAgKGVxICh3aW5kb3ctZnJhbWUgbWluaWJ1ZmZlci13aW5kb3cp IChzZWxlY3RlZC1mcmFtZSkpCi0JICAgKG5vdCByZXNpemUtbWluaS13aW5kb3dzKSkKKyAgICAg ICAgICAgKHdpbmRvdy1mdWxsLWhlaWdodC1wKQorICAgICAgICAgICAoZXEgKHdpbmRvdy1mcmFt ZSBtaW5pYnVmZmVyLXdpbmRvdykgKHNlbGVjdGVkLWZyYW1lKSkKKyAgICAgICAgICAgKG5vdCBy ZXNpemUtbWluaS13aW5kb3dzKSkKICAgICAgIDs7IElmIHRoZSBzZWxlY3RlZCB3aW5kb3cgaXMg ZnVsbCBoZWlnaHQgYW5kIGByZXNpemUtbWluaS13aW5kb3dzJwogICAgICAgOzsgaXMgbmlsLCBy ZXNpemUgdGhlIG1pbmlidWZmZXIgd2luZG93LgogICAgICAgKHdpbmRvdy0tcmVzaXplLW1pbmkt d2luZG93CkBAIC0zNjc0LDE1ICszNjc0LDE1IEBAIG5lZ2F0aXZlLCBzaHJpbmsgc2VsZWN0ZWQg d2luZG93IGJ5IC1ERUxUQSBsaW5lcyBvciBjb2x1bW5zLiIKICAgICAgKCh3aW5kb3ctLXJlc2l6 YWJsZS1wIG5pbCBkZWx0YSBob3Jpem9udGFsICdwcmVzZXJ2ZWQpCiAgICAgICAod2luZG93LXJl c2l6ZSBuaWwgZGVsdGEgaG9yaXpvbnRhbCAncHJlc2VydmVkKSkKICAgICAgKChlcSB0aGlzLWNv bW1hbmQKLQkgIChpZiBob3Jpem9udGFsICdlbmxhcmdlLXdpbmRvdy1ob3Jpem9udGFsbHkgJ2Vu bGFyZ2Utd2luZG93KSkKKyAgICAgICAgICAoaWYgaG9yaXpvbnRhbCAnZW5sYXJnZS13aW5kb3ct aG9yaXpvbnRhbGx5ICdlbmxhcmdlLXdpbmRvdykpCiAgICAgICA7OyBGb3IgYmFja3dhcmQgY29t cGF0aWJpbGl0eSBkb24ndCBzaWduYWwgYW4gZXJyb3IgdW5sZXNzIHRoaXMKICAgICAgIDs7IGNv bW1hbmQgaXMgYGVubGFyZ2Utd2luZG93KC1ob3Jpem9udGFsbHkpJy4KICAgICAgICh1c2VyLWVy cm9yICJDYW5ub3QgZW5sYXJnZSBzZWxlY3RlZCB3aW5kb3ciKSkKICAgICAgKHQKICAgICAgICh3 aW5kb3ctcmVzaXplCiAgICAgICAgbmlsIChpZiAoPiBkZWx0YSAwKQotCSAgICAgICAod2luZG93 LW1heC1kZWx0YSBuaWwgaG9yaXpvbnRhbCkKLQkgICAgICgtICh3aW5kb3ctbWluLWRlbHRhIG5p bCBob3Jpem9udGFsKSkpCisgICAgICAgICAgICAgICAod2luZG93LW1heC1kZWx0YSBuaWwgaG9y aXpvbnRhbCkKKyAgICAgICAgICAgICAoLSAod2luZG93LW1pbi1kZWx0YSBuaWwgaG9yaXpvbnRh bCkpKQogICAgICAgIGhvcml6b250YWwpKSkpKQogCiAoZGVmdW4gc2hyaW5rLXdpbmRvdyAoZGVs dGEgJm9wdGlvbmFsIGhvcml6b250YWwpCkBAIC0zNzAxLDEzICszNzAxLDEzIEBAIG5lZ2F0aXZl LCBlbmxhcmdlIHNlbGVjdGVkIHdpbmRvdyBieSAtREVMVEEgbGluZXMgb3IgY29sdW1ucy4iCiAg ICAgICAodXNlci1lcnJvciAiU2VsZWN0ZWQgd2luZG93IGhhcyBmaXhlZCBzaXplIikpCiAgICAg ICgod2luZG93LW1pbmlidWZmZXItcCkKICAgICAgIChpZiBob3Jpem9udGFsCi0JICAodXNlci1l cnJvciAiQ2Fubm90IHJlc2l6ZSBtaW5pYnVmZmVyIHdpbmRvdyBob3Jpem9udGFsbHkiKQotCSh3 aW5kb3ctLXJlc2l6ZS1taW5pLXdpbmRvdworICAgICAgICAgICh1c2VyLWVycm9yICJDYW5ub3Qg cmVzaXplIG1pbmlidWZmZXIgd2luZG93IGhvcml6b250YWxseSIpCisgICAgICAgICh3aW5kb3ct LXJlc2l6ZS1taW5pLXdpbmRvdwogICAgICAgICAgKHNlbGVjdGVkLXdpbmRvdykgKCogKC0gZGVs dGEpIChmcmFtZS1jaGFyLWhlaWdodCkpKSkpCiAgICAgICgoYW5kIChub3QgaG9yaXpvbnRhbCkK LQkgICAod2luZG93LWZ1bGwtaGVpZ2h0LXApCi0JICAgKGVxICh3aW5kb3ctZnJhbWUgbWluaWJ1 ZmZlci13aW5kb3cpIChzZWxlY3RlZC1mcmFtZSkpCi0JICAgKG5vdCByZXNpemUtbWluaS13aW5k b3dzKSkKKyAgICAgICAgICAgKHdpbmRvdy1mdWxsLWhlaWdodC1wKQorICAgICAgICAgICAoZXEg KHdpbmRvdy1mcmFtZSBtaW5pYnVmZmVyLXdpbmRvdykgKHNlbGVjdGVkLWZyYW1lKSkKKyAgICAg ICAgICAgKG5vdCByZXNpemUtbWluaS13aW5kb3dzKSkKICAgICAgIDs7IElmIHRoZSBzZWxlY3Rl ZCB3aW5kb3cgaXMgZnVsbCBoZWlnaHQgYW5kIGByZXNpemUtbWluaS13aW5kb3dzJwogICAgICAg OzsgaXMgbmlsLCByZXNpemUgdGhlIG1pbmlidWZmZXIgd2luZG93LgogICAgICAgKHdpbmRvdy0t cmVzaXplLW1pbmktd2luZG93CkBAIC0zNzE3LDE1ICszNzE3LDE1IEBAIG5lZ2F0aXZlLCBlbmxh cmdlIHNlbGVjdGVkIHdpbmRvdyBieSAtREVMVEEgbGluZXMgb3IgY29sdW1ucy4iCiAgICAgICgo d2luZG93LS1yZXNpemFibGUtcCBuaWwgKC0gZGVsdGEpIGhvcml6b250YWwgJ3ByZXNlcnZlZCkK ICAgICAgICh3aW5kb3ctcmVzaXplIG5pbCAoLSBkZWx0YSkgaG9yaXpvbnRhbCAncHJlc2VydmVk KSkKICAgICAgKChlcSB0aGlzLWNvbW1hbmQKLQkgIChpZiBob3Jpem9udGFsICdzaHJpbmstd2lu ZG93LWhvcml6b250YWxseSAnc2hyaW5rLXdpbmRvdykpCisgICAgICAgICAgKGlmIGhvcml6b250 YWwgJ3Nocmluay13aW5kb3ctaG9yaXpvbnRhbGx5ICdzaHJpbmstd2luZG93KSkKICAgICAgIDs7 IEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGRvbid0IHNpZ25hbCBhbiBlcnJvciB1bmxlc3Mg dGhpcwogICAgICAgOzsgY29tbWFuZCBpcyBgc2hyaW5rLXdpbmRvdygtaG9yaXpvbnRhbGx5KScu CiAgICAgICAodXNlci1lcnJvciAiQ2Fubm90IHNocmluayBzZWxlY3RlZCB3aW5kb3ciKSkKICAg ICAgKHQKICAgICAgICh3aW5kb3ctcmVzaXplCiAgICAgICAgbmlsIChpZiAoPiBkZWx0YSAwKQot CSAgICAgICAoLSAod2luZG93LW1pbi1kZWx0YSBuaWwgaG9yaXpvbnRhbCkpCi0JICAgICAod2lu ZG93LW1heC1kZWx0YSBuaWwgaG9yaXpvbnRhbCkpCisgICAgICAgICAgICAgICAoLSAod2luZG93 LW1pbi1kZWx0YSBuaWwgaG9yaXpvbnRhbCkpCisgICAgICAgICAgICAgKHdpbmRvdy1tYXgtZGVs dGEgbmlsIGhvcml6b250YWwpKQogICAgICAgIGhvcml6b250YWwpKSkpKQogCiAoZGVmdW4gbWF4 aW1pemUtd2luZG93ICgmb3B0aW9uYWwgd2luZG93KQpAQCAtMzc4OCw1NSArMzc4OCw1NSBAQCB0 aGUgY29vcmRpbmF0ZXMgaW4gcGl4ZWxzIHdoZXJlIHRoZSB2YWx1ZXMgZm9yIFJJR0hUIGFuZCBC T1RUT00KIGFyZSBvbmUgbW9yZSB0aGFuIHRoZSBhY3R1YWwgdmFsdWUgb2YgdGhlc2UgZWRnZXMu ICBOb3RlIHRoYXQgaWYKIEFCU09MVVRFIGlzIG5vbi1uaWwsIFBJWEVMV0lTRSBpcyBpbXBsaWNp dGx5IG5vbi1uaWwgdG9vLiIKICAgKGxldCogKCh3aW5kb3cgKHdpbmRvdy1ub3JtYWxpemUtd2lu ZG93IHdpbmRvdyBib2R5KSkKLQkgKGZyYW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkKLQkgKGJv cmRlci13aWR0aCAoZnJhbWUtaW50ZXJuYWwtYm9yZGVyLXdpZHRoIGZyYW1lKSkKLQkgKGNoYXIt d2lkdGggKGZyYW1lLWNoYXItd2lkdGggZnJhbWUpKQotCSAoY2hhci1oZWlnaHQgKGZyYW1lLWNo YXItaGVpZ2h0IGZyYW1lKSkKLQkgKGxlZnQgKGlmIHBpeGVsd2lzZQotCQkgICAoKyAod2luZG93 LXBpeGVsLWxlZnQgd2luZG93KSBib3JkZXItd2lkdGgpCi0JCSAoKyAod2luZG93LWxlZnQtY29s dW1uIHdpbmRvdykKLQkJICAgICgvIGJvcmRlci13aWR0aCBjaGFyLXdpZHRoKSkpKQotCSAobGVm dC1ib2R5Ci0JICAod2hlbiBib2R5Ci0JICAgICgrICh3aW5kb3ctcGl4ZWwtbGVmdCB3aW5kb3cp IGJvcmRlci13aWR0aAotCSAgICAgICAoaWYgKGVxIChjYXIgKHdpbmRvdy1jdXJyZW50LXNjcm9s bC1iYXJzIHdpbmRvdykpICdsZWZ0KQotCQkgICAod2luZG93LXNjcm9sbC1iYXItd2lkdGggd2lu ZG93KQotCQkgMCkKLQkgICAgICAgKG50aCAwICh3aW5kb3ctZnJpbmdlcyB3aW5kb3cpKQotCSAg ICAgICAoKiAob3IgKG50aCAwICh3aW5kb3ctbWFyZ2lucyB3aW5kb3cpKSAwKSBjaGFyLXdpZHRo KSkpKQotCSAodG9wIChpZiBwaXhlbHdpc2UKLQkJICAoKyAod2luZG93LXBpeGVsLXRvcCB3aW5k b3cpIGJvcmRlci13aWR0aCkKLQkJKCsgKHdpbmRvdy10b3AtbGluZSB3aW5kb3cpCi0JCSAgICgv IGJvcmRlci13aWR0aCBjaGFyLWhlaWdodCkpKSkKLQkgKHRvcC1ib2R5Ci0JICAod2hlbiBib2R5 Ci0JICAgICgrICh3aW5kb3ctcGl4ZWwtdG9wIHdpbmRvdykgYm9yZGVyLXdpZHRoCi0JICAgICAg ICh3aW5kb3ctaGVhZGVyLWxpbmUtaGVpZ2h0IHdpbmRvdykpKSkKLQkgKHJpZ2h0ICgrIGxlZnQg KGlmIHBpeGVsd2lzZQotCQkJICAgICh3aW5kb3ctcGl4ZWwtd2lkdGggd2luZG93KQotCQkJICAo d2luZG93LXRvdGFsLXdpZHRoIHdpbmRvdykpKSkKLQkgKHJpZ2h0LWJvZHkgKGFuZCBib2R5ICgr IGxlZnQtYm9keSAod2luZG93LWJvZHktd2lkdGggd2luZG93IHQpKSkpCi0JIChib3R0b20gKCsg dG9wIChpZiBwaXhlbHdpc2UKLQkJCSAgICAod2luZG93LXBpeGVsLWhlaWdodCB3aW5kb3cpCi0J CQkgICh3aW5kb3ctdG90YWwtaGVpZ2h0IHdpbmRvdykpKSkKLQkgKGJvdHRvbS1ib2R5IChhbmQg Ym9keSAoKyB0b3AtYm9keSAod2luZG93LWJvZHktaGVpZ2h0IHdpbmRvdyB0KSkpKSkKKyAgICAg ICAgIChmcmFtZSAod2luZG93LWZyYW1lIHdpbmRvdykpCisgICAgICAgICAoYm9yZGVyLXdpZHRo IChmcmFtZS1pbnRlcm5hbC1ib3JkZXItd2lkdGggZnJhbWUpKQorICAgICAgICAgKGNoYXItd2lk dGggKGZyYW1lLWNoYXItd2lkdGggZnJhbWUpKQorICAgICAgICAgKGNoYXItaGVpZ2h0IChmcmFt ZS1jaGFyLWhlaWdodCBmcmFtZSkpCisgICAgICAgICAobGVmdCAoaWYgcGl4ZWx3aXNlCisgICAg ICAgICAgICAgICAgICAgKCsgKHdpbmRvdy1waXhlbC1sZWZ0IHdpbmRvdykgYm9yZGVyLXdpZHRo KQorICAgICAgICAgICAgICAgICAoKyAod2luZG93LWxlZnQtY29sdW1uIHdpbmRvdykKKyAgICAg ICAgICAgICAgICAgICAgKC8gYm9yZGVyLXdpZHRoIGNoYXItd2lkdGgpKSkpCisgICAgICAgICAo bGVmdC1ib2R5CisgICAgICAgICAgKHdoZW4gYm9keQorICAgICAgICAgICAgKCsgKHdpbmRvdy1w aXhlbC1sZWZ0IHdpbmRvdykgYm9yZGVyLXdpZHRoCisgICAgICAgICAgICAgICAoaWYgKGVxIChj YXIgKHdpbmRvdy1jdXJyZW50LXNjcm9sbC1iYXJzIHdpbmRvdykpICdsZWZ0KQorICAgICAgICAg ICAgICAgICAgICh3aW5kb3ctc2Nyb2xsLWJhci13aWR0aCB3aW5kb3cpCisgICAgICAgICAgICAg ICAgIDApCisgICAgICAgICAgICAgICAobnRoIDAgKHdpbmRvdy1mcmluZ2VzIHdpbmRvdykpCisg ICAgICAgICAgICAgICAoKiAob3IgKG50aCAwICh3aW5kb3ctbWFyZ2lucyB3aW5kb3cpKSAwKSBj aGFyLXdpZHRoKSkpKQorICAgICAgICAgKHRvcCAoaWYgcGl4ZWx3aXNlCisgICAgICAgICAgICAg ICAgICAoKyAod2luZG93LXBpeGVsLXRvcCB3aW5kb3cpIGJvcmRlci13aWR0aCkKKyAgICAgICAg ICAgICAgICAoKyAod2luZG93LXRvcC1saW5lIHdpbmRvdykKKyAgICAgICAgICAgICAgICAgICAo LyBib3JkZXItd2lkdGggY2hhci1oZWlnaHQpKSkpCisgICAgICAgICAodG9wLWJvZHkKKyAgICAg ICAgICAod2hlbiBib2R5CisgICAgICAgICAgICAoKyAod2luZG93LXBpeGVsLXRvcCB3aW5kb3cp IGJvcmRlci13aWR0aAorICAgICAgICAgICAgICAgKHdpbmRvdy1oZWFkZXItbGluZS1oZWlnaHQg d2luZG93KSkpKQorICAgICAgICAgKHJpZ2h0ICgrIGxlZnQgKGlmIHBpeGVsd2lzZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctcGl4ZWwtd2lkdGggd2luZG93KQorICAgICAg ICAgICAgICAgICAgICAgICAgICAod2luZG93LXRvdGFsLXdpZHRoIHdpbmRvdykpKSkKKyAgICAg ICAgIChyaWdodC1ib2R5IChhbmQgYm9keSAoKyBsZWZ0LWJvZHkgKHdpbmRvdy1ib2R5LXdpZHRo IHdpbmRvdyB0KSkpKQorICAgICAgICAgKGJvdHRvbSAoKyB0b3AgKGlmIHBpeGVsd2lzZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctcGl4ZWwtaGVpZ2h0IHdpbmRvdykKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy10b3RhbC1oZWlnaHQgd2luZG93KSkpKQor ICAgICAgICAgKGJvdHRvbS1ib2R5IChhbmQgYm9keSAoKyB0b3AtYm9keSAod2luZG93LWJvZHkt aGVpZ2h0IHdpbmRvdyB0KSkpKSkKICAgICAoaWYgYWJzb2x1dGUKLQkobGV0KiAoKG5hdGl2ZS1l ZGdlcyAoZnJhbWUtZWRnZXMgZnJhbWUgJ25hdGl2ZS1lZGdlcykpCi0JICAgICAgIChsZWZ0LW9m ZiAobnRoIDAgbmF0aXZlLWVkZ2VzKSkKLQkgICAgICAgKHRvcC1vZmYgKG50aCAxIG5hdGl2ZS1l ZGdlcykpKQotCSAgICAgIChpZiBib2R5Ci0JCSAgKGxpc3QgKCsgbGVmdC1ib2R5IGxlZnQtb2Zm KSAoKyB0b3AtYm9keSB0b3Atb2ZmKQotCQkJKCsgcmlnaHQtYm9keSBsZWZ0LW9mZikgKCsgYm90 dG9tLWJvZHkgdG9wLW9mZikpCi0JCShsaXN0ICgrIGxlZnQgbGVmdC1vZmYpICgrIHRvcCB0b3At b2ZmKQotCQkgICAgICAoKyByaWdodCBsZWZ0LW9mZikgKCsgYm90dG9tIHRvcC1vZmYpKSkpCisg ICAgICAgIChsZXQqICgobmF0aXZlLWVkZ2VzIChmcmFtZS1lZGdlcyBmcmFtZSAnbmF0aXZlLWVk Z2VzKSkKKyAgICAgICAgICAgICAgIChsZWZ0LW9mZiAobnRoIDAgbmF0aXZlLWVkZ2VzKSkKKyAg ICAgICAgICAgICAgICh0b3Atb2ZmIChudGggMSBuYXRpdmUtZWRnZXMpKSkKKyAgICAgICAgICAo aWYgYm9keQorICAgICAgICAgICAgICAobGlzdCAoKyBsZWZ0LWJvZHkgbGVmdC1vZmYpICgrIHRv cC1ib2R5IHRvcC1vZmYpCisgICAgICAgICAgICAgICAgICAgICgrIHJpZ2h0LWJvZHkgbGVmdC1v ZmYpICgrIGJvdHRvbS1ib2R5IHRvcC1vZmYpKQorICAgICAgICAgICAgKGxpc3QgKCsgbGVmdCBs ZWZ0LW9mZikgKCsgdG9wIHRvcC1vZmYpCisgICAgICAgICAgICAgICAgICAoKyByaWdodCBsZWZ0 LW9mZikgKCsgYm90dG9tIHRvcC1vZmYpKSkpCiAgICAgICAoaWYgYm9keQotCSAgKGlmIHBpeGVs d2lzZQotCSAgICAgIChsaXN0IGxlZnQtYm9keSB0b3AtYm9keSByaWdodC1ib2R5IGJvdHRvbS1i b2R5KQotCSAgICAobGlzdCAoLyBsZWZ0LWJvZHkgY2hhci13aWR0aCkgKC8gdG9wLWJvZHkgY2hh ci1oZWlnaHQpCi0JCSAgOzsgUm91bmQgdXAuCi0JCSAgKC8gKCsgcmlnaHQtYm9keSBjaGFyLXdp ZHRoIC0xKSBjaGFyLXdpZHRoKQotCQkgICgvICgrIGJvdHRvbS1ib2R5IGNoYXItaGVpZ2h0IC0x KSBjaGFyLWhlaWdodCkpKQotCShsaXN0IGxlZnQgdG9wIHJpZ2h0IGJvdHRvbSkpKSkpCisgICAg ICAgICAgKGlmIHBpeGVsd2lzZQorICAgICAgICAgICAgICAobGlzdCBsZWZ0LWJvZHkgdG9wLWJv ZHkgcmlnaHQtYm9keSBib3R0b20tYm9keSkKKyAgICAgICAgICAgIChsaXN0ICgvIGxlZnQtYm9k eSBjaGFyLXdpZHRoKSAoLyB0b3AtYm9keSBjaGFyLWhlaWdodCkKKyAgICAgICAgICAgICAgICAg IDs7IFJvdW5kIHVwLgorICAgICAgICAgICAgICAgICAgKC8gKCsgcmlnaHQtYm9keSBjaGFyLXdp ZHRoIC0xKSBjaGFyLXdpZHRoKQorICAgICAgICAgICAgICAgICAgKC8gKCsgYm90dG9tLWJvZHkg Y2hhci1oZWlnaHQgLTEpIGNoYXItaGVpZ2h0KSkpCisgICAgICAgIChsaXN0IGxlZnQgdG9wIHJp Z2h0IGJvdHRvbSkpKSkpCiAKIChkZWZ1biB3aW5kb3ctYm9keS1lZGdlcyAoJm9wdGlvbmFsIHdp bmRvdykKICAgIlJldHVybiBhIGxpc3Qgb2YgdGhlIGVkZ2UgY29vcmRpbmF0ZXMgb2YgV0lORE9X J3MgYm9keS4KQEAgLTM4ODMsMTMgKzM4ODMsMTMgQEAgV0lORE9XLgogV0lORE9XIG11c3QgYmUg YSBsaXZlIHdpbmRvdyBhbmQgZGVmYXVsdHMgdG8gdGhlIHNlbGVjdGVkIHdpbmRvdy4KIFBPU0lU SU9OIGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgd2luZG93LXBvaW50JyBvZiBXSU5ET1cuIgog ICAobGV0KiAoKHdpbmRvdyAod2luZG93LW5vcm1hbGl6ZS13aW5kb3cgd2luZG93IHQpKQotCSAo cG9zLWluLXdpbmRvdwotCSAgKHBvcy12aXNpYmxlLWluLXdpbmRvdy1wCi0JICAgKG9yIHBvc2l0 aW9uICh3aW5kb3ctcG9pbnQgd2luZG93KSkgd2luZG93IHQpKSkKKyAgICAgICAgIChwb3MtaW4t d2luZG93CisgICAgICAgICAgKHBvcy12aXNpYmxlLWluLXdpbmRvdy1wCisgICAgICAgICAgIChv ciBwb3NpdGlvbiAod2luZG93LXBvaW50IHdpbmRvdykpIHdpbmRvdyB0KSkpCiAgICAgKHdoZW4g cG9zLWluLXdpbmRvdwogICAgICAgKGxldCAoKGVkZ2VzICh3aW5kb3ctYWJzb2x1dGUtYm9keS1w aXhlbC1lZGdlcyB3aW5kb3cpKSkKLQkoY29ucyAoKyAobnRoIDAgZWRnZXMpIChudGggMCBwb3Mt aW4td2luZG93KSkKLQkgICAgICAoKyAobnRoIDEgZWRnZXMpIChudGggMSBwb3MtaW4td2luZG93 KSkpKSkpKQorICAgICAgICAoY29ucyAoKyAobnRoIDAgZWRnZXMpIChudGggMCBwb3MtaW4td2lu ZG93KSkKKyAgICAgICAgICAgICAgKCsgKG50aCAxIGVkZ2VzKSAobnRoIDEgcG9zLWluLXdpbmRv dykpKSkpKSkKIAwKIChkZWZ1biBmcmFtZS1yb290LXdpbmRvdy1wICh3aW5kb3cpCiAgICJSZXR1 cm4gdCBpZiBXSU5ET1cgaXMgdGhlIHJvb3Qgd2luZG93IG9mIGl0cyBmcmFtZS4iCkBAIC0zOTA1 LDE2ICszOTA1LDE2IEBAIHJldHVybiB2YWx1ZS4iCiAgIChsZXQgKGxpc3QpCiAgICAgKHdoaWxl IHdpbmRvdwogICAgICAgKHNldHEgbGlzdAotCSAgICAoY29ucwotCSAgICAgKGNvbmQKLQkgICAg ICAoKHdpbmRvdy10b3AtY2hpbGQgd2luZG93KQotCSAgICAgICAoY29ucyB0IChjb25zICh3aW5k b3ctZWRnZXMgd2luZG93KQotCQkJICAgICAod2luZG93LS1zdWJ0cmVlICh3aW5kb3ctdG9wLWNo aWxkIHdpbmRvdykgdCkpKSkKLQkgICAgICAoKHdpbmRvdy1sZWZ0LWNoaWxkIHdpbmRvdykKLQkg ICAgICAgKGNvbnMgbmlsIChjb25zICh3aW5kb3ctZWRnZXMgd2luZG93KQotCQkJICAgICAgICh3 aW5kb3ctLXN1YnRyZWUgKHdpbmRvdy1sZWZ0LWNoaWxkIHdpbmRvdykgdCkpKSkKLQkgICAgICAo dCB3aW5kb3cpKQotCSAgICAgbGlzdCkpCisgICAgICAgICAgICAoY29ucworICAgICAgICAgICAg IChjb25kCisgICAgICAgICAgICAgICgod2luZG93LXRvcC1jaGlsZCB3aW5kb3cpCisgICAgICAg ICAgICAgICAoY29ucyB0IChjb25zICh3aW5kb3ctZWRnZXMgd2luZG93KQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAod2luZG93LS1zdWJ0cmVlICh3aW5kb3ctdG9wLWNoaWxkIHdpbmRv dykgdCkpKSkKKyAgICAgICAgICAgICAgKCh3aW5kb3ctbGVmdC1jaGlsZCB3aW5kb3cpCisgICAg ICAgICAgICAgICAoY29ucyBuaWwgKGNvbnMgKHdpbmRvdy1lZGdlcyB3aW5kb3cpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy0tc3VidHJlZSAod2luZG93LWxlZnQtY2hp bGQgd2luZG93KSB0KSkpKQorICAgICAgICAgICAgICAodCB3aW5kb3cpKQorICAgICAgICAgICAg IGxpc3QpKQogICAgICAgKHNldHEgd2luZG93ICh3aGVuIG5leHQgKHdpbmRvdy1uZXh0LXNpYmxp bmcgd2luZG93KSkpKQogICAgIChucmV2ZXJzZSBsaXN0KSkpCiAKQEAgLTM5NTksNTYgKzM5NTks NTYgQEAgYWx3YXlzIGVmZmVjdGl2ZWx5IG5pbC4iCiAgIChpbnRlcmFjdGl2ZSAicFxuaVxucCIp CiAgIChsZXQqICgod2luZG93IChzZWxlY3RlZC13aW5kb3cpKQogICAgICAgICAgKG9yaWdpbmFs LXdpbmRvdyB3aW5kb3cpCi0JIChmdW5jdGlvbiAoYW5kIChub3QgaWdub3JlLXdpbmRvdy1wYXJh bWV0ZXJzKQotCQkJKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdvdGhlci13aW5kb3cpKSkKLQkg b2xkLXdpbmRvdyBvbGQtY291bnQpCisgICAgICAgICAoZnVuY3Rpb24gKGFuZCAobm90IGlnbm9y ZS13aW5kb3ctcGFyYW1ldGVycykKKyAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctcGFy YW1ldGVyIHdpbmRvdyAnb3RoZXItd2luZG93KSkpCisgICAgICAgICBvbGQtd2luZG93IG9sZC1j b3VudCkKICAgICAoaWYgKGZ1bmN0aW9ucCBmdW5jdGlvbikKLQkoZnVuY2FsbCBmdW5jdGlvbiBj b3VudCBhbGwtZnJhbWVzKQorICAgICAgICAoZnVuY2FsbCBmdW5jdGlvbiBjb3VudCBhbGwtZnJh bWVzKQogICAgICAgOzsgYG5leHQtd2luZG93JyBhbmQgYHByZXZpb3VzLXdpbmRvdycgbWF5IHJl dHVybiBhIHdpbmRvdyB3ZSBhcmUKICAgICAgIDs7IG5vdCBhbGxvd2VkIHRvIHNlbGVjdC4gIEhl bmNlIHdlIG5lZWQgYW4gZXhpdCBzdHJhdGVneSBpbiBjYXNlCiAgICAgICA7OyBhbGwgd2luZG93 cyBhcmUgbm9uLXNlbGVjdGFibGUuCiAgICAgICAoY2F0Y2ggJ2V4aXQKLQkod2hpbGUgKD4gY291 bnQgMCkKLQkgIChzZXRxIHdpbmRvdyAobmV4dC13aW5kb3cgd2luZG93IG5pbCBhbGwtZnJhbWVz KSkKLQkgIChjb25kCi0JICAgKChlcSB3aW5kb3cgb2xkLXdpbmRvdykKLQkgICAgKHdoZW4gKD0g Y291bnQgb2xkLWNvdW50KQotCSAgICAgIDs7IEtlZXAgb3V0IG9mIGluZmluaXRlIGxvb3BzLiAg V2hlbiBDT1VOVCBoYXMgbm90IGNoYW5nZWQKLQkgICAgICA7OyBzaW5jZSB3ZSBsYXN0IGxvb2tl ZCBhdCBgd2luZG93JyB3ZSdyZSBwcm9iYWJseSBpbiBvbmUuCi0JICAgICAgKHRocm93ICdleGl0 IG5pbCkpKQotCSAgICgod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ25vLW90aGVyLXdpbmRvdykK LQkgICAgKHVubGVzcyBvbGQtd2luZG93Ci0JICAgICAgOzsgVGhlIGZpcnN0IG5vbi1zZWxlY3Rh YmxlIHdpbmRvdyBgbmV4dC13aW5kb3cnIGdvdCB1czoKLQkgICAgICA7OyBSZW1lbWJlciBpdCBh bmQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgQ09VTlQuCi0JICAgICAgKHNldHEgb2xkLXdpbmRvdyB3 aW5kb3cpCi0JICAgICAgKHNldHEgb2xkLWNvdW50IGNvdW50KSkpCi0JICAgKHQKLQkgICAgKHNl dHEgY291bnQgKDEtIGNvdW50KSkpKSkKLQkod2hpbGUgKDwgY291bnQgMCkKLQkgIChzZXRxIHdp bmRvdyAocHJldmlvdXMtd2luZG93IHdpbmRvdyBuaWwgYWxsLWZyYW1lcykpCi0JICAoY29uZAot CSAgICgoZXEgd2luZG93IG9sZC13aW5kb3cpCi0JICAgICh3aGVuICg9IGNvdW50IG9sZC1jb3Vu dCkKLQkgICAgICA7OyBLZWVwIG91dCBvZiBpbmZpbml0ZSBsb29wcy4gIFdoZW4gQ09VTlQgaGFz IG5vdCBjaGFuZ2VkCi0JICAgICAgOzsgc2luY2Ugd2UgbGFzdCBsb29rZWQgYXQgYHdpbmRvdycg d2UncmUgcHJvYmFibHkgaW4gb25lLgotCSAgICAgICh0aHJvdyAnZXhpdCBuaWwpKSkKLQkgICAo KHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICduby1vdGhlci13aW5kb3cpCi0JICAgICh1bmxlc3Mg b2xkLXdpbmRvdwotCSAgICAgIDs7IFRoZSBmaXJzdCBub24tc2VsZWN0YWJsZSB3aW5kb3cgYHBy ZXZpb3VzLXdpbmRvdycgZ290Ci0JICAgICAgOzsgdXM6IFJlbWVtYmVyIGl0IGFuZCB0aGUgY3Vy cmVudCB2YWx1ZSBvZiBDT1VOVC4KLQkgICAgICAoc2V0cSBvbGQtd2luZG93IHdpbmRvdykKLQkg ICAgICAoc2V0cSBvbGQtY291bnQgY291bnQpKSkKLQkgICAodAotCSAgICAoc2V0cSBjb3VudCAo MSsgY291bnQpKSkpKQorICAgICAgICAod2hpbGUgKD4gY291bnQgMCkKKyAgICAgICAgICAoc2V0 cSB3aW5kb3cgKG5leHQtd2luZG93IHdpbmRvdyBuaWwgYWxsLWZyYW1lcykpCisgICAgICAgICAg KGNvbmQKKyAgICAgICAgICAgKChlcSB3aW5kb3cgb2xkLXdpbmRvdykKKyAgICAgICAgICAgICh3 aGVuICg9IGNvdW50IG9sZC1jb3VudCkKKyAgICAgICAgICAgICAgOzsgS2VlcCBvdXQgb2YgaW5m aW5pdGUgbG9vcHMuICBXaGVuIENPVU5UIGhhcyBub3QgY2hhbmdlZAorICAgICAgICAgICAgICA7 OyBzaW5jZSB3ZSBsYXN0IGxvb2tlZCBhdCBgd2luZG93JyB3ZSdyZSBwcm9iYWJseSBpbiBvbmUu CisgICAgICAgICAgICAgICh0aHJvdyAnZXhpdCBuaWwpKSkKKyAgICAgICAgICAgKCh3aW5kb3ct cGFyYW1ldGVyIHdpbmRvdyAnbm8tb3RoZXItd2luZG93KQorICAgICAgICAgICAgKHVubGVzcyBv bGQtd2luZG93CisgICAgICAgICAgICAgIDs7IFRoZSBmaXJzdCBub24tc2VsZWN0YWJsZSB3aW5k b3cgYG5leHQtd2luZG93JyBnb3QgdXM6CisgICAgICAgICAgICAgIDs7IFJlbWVtYmVyIGl0IGFu ZCB0aGUgY3VycmVudCB2YWx1ZSBvZiBDT1VOVC4KKyAgICAgICAgICAgICAgKHNldHEgb2xkLXdp bmRvdyB3aW5kb3cpCisgICAgICAgICAgICAgIChzZXRxIG9sZC1jb3VudCBjb3VudCkpKQorICAg ICAgICAgICAodAorICAgICAgICAgICAgKHNldHEgY291bnQgKDEtIGNvdW50KSkpKSkKKyAgICAg ICAgKHdoaWxlICg8IGNvdW50IDApCisgICAgICAgICAgKHNldHEgd2luZG93IChwcmV2aW91cy13 aW5kb3cgd2luZG93IG5pbCBhbGwtZnJhbWVzKSkKKyAgICAgICAgICAoY29uZAorICAgICAgICAg ICAoKGVxIHdpbmRvdyBvbGQtd2luZG93KQorICAgICAgICAgICAgKHdoZW4gKD0gY291bnQgb2xk LWNvdW50KQorICAgICAgICAgICAgICA7OyBLZWVwIG91dCBvZiBpbmZpbml0ZSBsb29wcy4gIFdo ZW4gQ09VTlQgaGFzIG5vdCBjaGFuZ2VkCisgICAgICAgICAgICAgIDs7IHNpbmNlIHdlIGxhc3Qg bG9va2VkIGF0IGB3aW5kb3cnIHdlJ3JlIHByb2JhYmx5IGluIG9uZS4KKyAgICAgICAgICAgICAg KHRocm93ICdleGl0IG5pbCkpKQorICAgICAgICAgICAoKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93 ICduby1vdGhlci13aW5kb3cpCisgICAgICAgICAgICAodW5sZXNzIG9sZC13aW5kb3cKKyAgICAg ICAgICAgICAgOzsgVGhlIGZpcnN0IG5vbi1zZWxlY3RhYmxlIHdpbmRvdyBgcHJldmlvdXMtd2lu ZG93JyBnb3QKKyAgICAgICAgICAgICAgOzsgdXM6IFJlbWVtYmVyIGl0IGFuZCB0aGUgY3VycmVu dCB2YWx1ZSBvZiBDT1VOVC4KKyAgICAgICAgICAgICAgKHNldHEgb2xkLXdpbmRvdyB3aW5kb3cp CisgICAgICAgICAgICAgIChzZXRxIG9sZC1jb3VudCBjb3VudCkpKQorICAgICAgICAgICAodAor ICAgICAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkpKSkKIAogICAgICAgICAod2hlbiAo YW5kIChlcSB3aW5kb3cgb3JpZ2luYWwtd2luZG93KQogICAgICAgICAgICAgICAgICAgIGludGVy YWN0aXZlCiAgICAgICAgICAgICAgICAgICAgKG5vdCAob3IgZXhlY3V0aW5nLWtiZC1tYWNybyBu b25pbnRlcmFjdGl2ZSkpKQogICAgICAgICAgIChtZXNzYWdlICJObyBvdGhlciB3aW5kb3cgdG8g c2VsZWN0IikpCiAKLQkoc2VsZWN0LXdpbmRvdyB3aW5kb3cpCi0JOzsgQWx3YXlzIHJldHVybiBu aWwuCi0JbmlsKSkpKQorICAgICAgICAoc2VsZWN0LXdpbmRvdyB3aW5kb3cpCisgICAgICAgIDs7 IEFsd2F5cyByZXR1cm4gbmlsLgorICAgICAgICBuaWwpKSkpCiAKIChkZWZ1biBvdGhlci13aW5k b3ctcHJlZml4ICgpCiAgICJEaXNwbGF5IHRoZSBidWZmZXIgb2YgdGhlIG5leHQgY29tbWFuZCBp biBhIG5ldyB3aW5kb3cuCkBAIC00MDc5LDkgKzQwNzksOSBAQCBBbnl0aGluZyBlbHNlIG1lYW5z IGNvbnNpZGVyIGFsbCB3aW5kb3dzIG9uIHRoZSBzZWxlY3RlZCBmcmFtZQogYW5kIG5vIG90aGVy cy4iCiAgIChsZXQgKChiYXNlLXdpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkpCiAgICAgKGlmIChh bmQgbm9taW5pIChlcSBiYXNlLXdpbmRvdyAobWluaWJ1ZmZlci13aW5kb3cpKSkKLQkoc2V0cSBi YXNlLXdpbmRvdyAobmV4dC13aW5kb3cgYmFzZS13aW5kb3cpKSkKKyAgICAgICAgKHNldHEgYmFz ZS13aW5kb3cgKG5leHQtd2luZG93IGJhc2Utd2luZG93KSkpCiAgICAgKGVxIGJhc2Utd2luZG93 Ci0JKG5leHQtd2luZG93IGJhc2Utd2luZG93IChpZiBub21pbmkgJ2FyZykgYWxsLWZyYW1lcykp KSkKKyAgICAgICAgKG5leHQtd2luZG93IGJhc2Utd2luZG93IChpZiBub21pbmkgJ2FyZykgYWxs LWZyYW1lcykpKSkKIAwKIDs7OyBEZWxldGluZyB3aW5kb3dzLgogKGRlZnVuIHdpbmRvdy1kZWxl dGFibGUtcCAoJm9wdGlvbmFsIHdpbmRvdykKQEAgLTQwOTMsNyArNDA5Myw3IEBAIGZyYW1lIGNh biBiZSBzYWZlbHkgZGVsZXRlZC4iCiAgIChzZXRxIHdpbmRvdyAod2luZG93LW5vcm1hbGl6ZS13 aW5kb3cgd2luZG93KSkKIAogICAodW5sZXNzIChvciBpZ25vcmUtd2luZG93LXBhcmFtZXRlcnMK LQkgICAgICAoZXEgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdkZWxldGUtd2luZG93KSB0KSkK KyAgICAgICAgICAgICAgKGVxICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAnZGVsZXRlLXdpbmRv dykgdCkpCiAgICAgOzsgSGFuZGxlIGF0b21pY2l0eS4KICAgICAod2hlbiAod2luZG93LXBhcmFt ZXRlciB3aW5kb3cgJ3dpbmRvdy1hdG9tKQogICAgICAgKHNldHEgd2luZG93ICh3aW5kb3ctYXRv bS1yb290IHdpbmRvdykpKSkKQEAgLTQxMDUsMjMgKzQxMDUsMjMgQEAgZnJhbWUgY2FuIGJlIHNh ZmVseSBkZWxldGVkLiIKICAgICAgIDs7IG9uIHRoZSBzYW1lIHRlcm1pbmFsLCBhbmQgaXQgZG9l cyBub3QgY29udGFpbiB0aGUgYWN0aXZlCiAgICAgICA7OyBtaW5pYnVmZmVyLgogICAgICAgKHVu bGVzcyAob3IgKGVxIGZyYW1lIChuZXh0LWZyYW1lIGZyYW1lIDApKQotCQkgIDs7IFdlIGNhbiBk ZWxldGUgb3VyIGZyYW1lIG9ubHkgaWYgbm8gb3RoZXIgZnJhbWUKLQkJICA7OyBjdXJyZW50bHkg dXNlcyBvdXIgbWluaWJ1ZmZlciB3aW5kb3cuCi0JCSAgKGNhdGNoICdvdGhlcgotCQkgICAgKGRv bGlzdCAob3RoZXIgKGZyYW1lLWxpc3QpKQotCQkgICAgICAod2hlbiAoYW5kIChub3QgKGVxIG90 aGVyIGZyYW1lKSkKLQkJCQkgKGVxICh3aW5kb3ctZnJhbWUgKG1pbmlidWZmZXItd2luZG93IG90 aGVyKSkKLQkJCQkgICAgIGZyYW1lKSkKLQkJCSh0aHJvdyAnb3RoZXIgdCkpKSkKLQkJICAobGV0 ICgobWluaWJ1ZiAoYWN0aXZlLW1pbmlidWZmZXItd2luZG93KSkpCi0JCSAgICAoYW5kIG1pbmli dWYgKGVxIGZyYW1lICh3aW5kb3ctZnJhbWUgbWluaWJ1ZikpKSkpCi0JJ2ZyYW1lKSkKKyAgICAg ICAgICAgICAgICAgIDs7IFdlIGNhbiBkZWxldGUgb3VyIGZyYW1lIG9ubHkgaWYgbm8gb3RoZXIg ZnJhbWUKKyAgICAgICAgICAgICAgICAgIDs7IGN1cnJlbnRseSB1c2VzIG91ciBtaW5pYnVmZmVy IHdpbmRvdy4KKyAgICAgICAgICAgICAgICAgIChjYXRjaCAnb3RoZXIKKyAgICAgICAgICAgICAg ICAgICAgKGRvbGlzdCAob3RoZXIgKGZyYW1lLWxpc3QpKQorICAgICAgICAgICAgICAgICAgICAg ICh3aGVuIChhbmQgKG5vdCAoZXEgb3RoZXIgZnJhbWUpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGVxICh3aW5kb3ctZnJhbWUgKG1pbmlidWZmZXItd2luZG93IG90aGVyKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAodGhyb3cgJ290aGVyIHQpKSkpCisgICAgICAgICAgICAgICAgICAobGV0 ICgobWluaWJ1ZiAoYWN0aXZlLW1pbmlidWZmZXItd2luZG93KSkpCisgICAgICAgICAgICAgICAg ICAgIChhbmQgbWluaWJ1ZiAoZXEgZnJhbWUgKHdpbmRvdy1mcmFtZSBtaW5pYnVmKSkpKSkKKyAg ICAgICAgJ2ZyYW1lKSkKICAgICAgKCh3aW5kb3ctbWluaWJ1ZmZlci1wIHdpbmRvdykKICAgICAg IDs7IElmIFdJTkRPVyBpcyB0aGUgbWluaWJ1ZmZlciB3aW5kb3cgb2YgYSBub24tbWluaWJ1ZmZl ci1vbmx5CiAgICAgICA7OyBmcmFtZSwgaXQgY2Fubm90IGJlIGRlbGV0ZWQgc2VwYXJhdGVseS4K ICAgICAgIG5pbCkKICAgICAgKChvciBpZ25vcmUtd2luZG93LXBhcmFtZXRlcnMKLQkgIChub3Qg KGVxIHdpbmRvdyAod2luZG93LW1haW4td2luZG93IGZyYW1lKSkpKQorICAgICAgICAgIChub3Qg KGVxIHdpbmRvdyAod2luZG93LW1haW4td2luZG93IGZyYW1lKSkpKQogICAgICAgOzsgT3RoZXJ3 aXNlLCBXSU5ET1cgY2FuIGJlIGRlbGV0ZWQgdW5sZXNzIGl0IGlzIHRoZSBtYWluIHdpbmRvdwog ICAgICAgOzsgb2YgaXRzIGZyYW1lLgogICAgICAgdCkpKSkKQEAgLTQxMzAsMTEgKzQxMzAsMTEg QEAgZnJhbWUgY2FuIGJlIHNhZmVseSBkZWxldGVkLiIKICAgIlJldHVybiB0IGlmIFdJTkRPVyBp cyBlaXRoZXIgUk9PVCBvciBhIG1lbWJlciBvZiBST09UJ3Mgc3VidHJlZS4iCiAgIChvciAoZXEg d2luZG93IHJvb3QpCiAgICAgICAobGV0ICgocGFyZW50ICh3aW5kb3ctcGFyZW50IHdpbmRvdykp KQotCShjYXRjaCAnZG9uZQotCSAgKHdoaWxlIHBhcmVudAotCSAgICAoaWYgKGVxIHBhcmVudCBy b290KQotCQkodGhyb3cgJ2RvbmUgdCkKLQkgICAgICAoc2V0cSBwYXJlbnQgKHdpbmRvdy1wYXJl bnQgcGFyZW50KSkpKSkpKSkKKyAgICAgICAgKGNhdGNoICdkb25lCisgICAgICAgICAgKHdoaWxl IHBhcmVudAorICAgICAgICAgICAgKGlmIChlcSBwYXJlbnQgcm9vdCkKKyAgICAgICAgICAgICAg ICAodGhyb3cgJ2RvbmUgdCkKKyAgICAgICAgICAgICAgKHNldHEgcGFyZW50ICh3aW5kb3ctcGFy ZW50IHBhcmVudCkpKSkpKSkpCiAKIDs7IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGBkZWxl dGUtd2luZG93JyBhbmQKIDs7IGBkZWxldGUtb3RoZXItd2luZG93cycgd2hlbiBgc3dpdGNoLXRv LWJ1ZmZlci1wcmVzZXJ2ZS13aW5kb3ctcG9pbnQnCkBAIC00MTkzLDkgKzQxOTMsOSBAQCB0aGF0 IGlzIGl0cyBmcmFtZSdzIHJvb3Qgd2luZG93LiIKICAgICAod2luZG93LS1iZWZvcmUtZGVsZXRl LXdpbmRvd3MpKQogICAoc2V0cSB3aW5kb3cgKHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRv dykpCiAgIChsZXQqICgoZnJhbWUgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKQotCSAoZnVuY3Rpb24g KHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdkZWxldGUtd2luZG93KSkKLQkgKHBhcmVudCAod2lu ZG93LXBhcmVudCB3aW5kb3cpKQotCSBhdG9tLXJvb3QpCisgICAgICAgICAoZnVuY3Rpb24gKHdp bmRvdy1wYXJhbWV0ZXIgd2luZG93ICdkZWxldGUtd2luZG93KSkKKyAgICAgICAgIChwYXJlbnQg KHdpbmRvdy1wYXJlbnQgd2luZG93KSkKKyAgICAgICAgIGF0b20tcm9vdCkKICAgICAod2luZG93 LS1jaGVjayBmcmFtZSkKICAgICAoY2F0Y2ggJ2RvbmUKICAgICAgIDs7IEhhbmRsZSB3aW5kb3cg cGFyYW1ldGVycy4KQEAgLTQyMDQsNTggKzQyMDQsNTggQEAgdGhhdCBpcyBpdHMgZnJhbWUncyBy b290IHdpbmRvdy4iCiAgICAgICAgOzsgdXMgc28gb3IgYGRlbGV0ZS13aW5kb3cnIGVxdWFscyB0 LgogICAgICAgICgob3IgaWdub3JlLXdpbmRvdy1wYXJhbWV0ZXJzIChlcSBmdW5jdGlvbiB0KSkp CiAgICAgICAgKChmdW5jdGlvbnAgZnVuY3Rpb24pCi0JOzsgVGhlIGBkZWxldGUtd2luZG93JyBw YXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBmdW5jdGlvbiB0byBjYWxsLgotCTs7IElmIHRoYXQgZnVu Y3Rpb24gaXMgYGlnbm9yZScgbm90aGluZyBpcyBkb25lLiAgSXQncyB1cCB0byB0aGUKLQk7OyBm dW5jdGlvbiBjYWxsZWQgaGVyZSB0byBhdm9pZCBpbmZpbml0ZSByZWN1cnNpb24uCi0JKHRocm93 ICdkb25lIChmdW5jYWxsIGZ1bmN0aW9uIHdpbmRvdykpKQorICAgICAgICA7OyBUaGUgYGRlbGV0 ZS13aW5kb3cnIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGZ1bmN0aW9uIHRvIGNhbGwuCisgICAg ICAgIDs7IElmIHRoYXQgZnVuY3Rpb24gaXMgYGlnbm9yZScgbm90aGluZyBpcyBkb25lLiAgSXQn cyB1cCB0byB0aGUKKyAgICAgICAgOzsgZnVuY3Rpb24gY2FsbGVkIGhlcmUgdG8gYXZvaWQgaW5m aW5pdGUgcmVjdXJzaW9uLgorICAgICAgICAodGhyb3cgJ2RvbmUgKGZ1bmNhbGwgZnVuY3Rpb24g d2luZG93KSkpCiAgICAgICAgKChhbmQgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICd3aW5kb3ct YXRvbSkKLQkgICAgIChzZXRxIGF0b20tcm9vdCAod2luZG93LWF0b20tcm9vdCB3aW5kb3cpKQot CSAgICAgKG5vdCAoZXEgYXRvbS1yb290IHdpbmRvdykpKQotCShpZiAoZXEgYXRvbS1yb290IChm cmFtZS1yb290LXdpbmRvdyBmcmFtZSkpCi0JICAgIChlcnJvciAiUm9vdCBvZiBhdG9taWMgd2lu ZG93IGlzIHJvb3Qgd2luZG93IG9mIGl0cyBmcmFtZSIpCi0JICAodGhyb3cgJ2RvbmUgKGRlbGV0 ZS13aW5kb3cgYXRvbS1yb290KSkpKQorICAgICAgICAgICAgIChzZXRxIGF0b20tcm9vdCAod2lu ZG93LWF0b20tcm9vdCB3aW5kb3cpKQorICAgICAgICAgICAgIChub3QgKGVxIGF0b20tcm9vdCB3 aW5kb3cpKSkKKyAgICAgICAgKGlmIChlcSBhdG9tLXJvb3QgKGZyYW1lLXJvb3Qtd2luZG93IGZy YW1lKSkKKyAgICAgICAgICAgIChlcnJvciAiUm9vdCBvZiBhdG9taWMgd2luZG93IGlzIHJvb3Qg d2luZG93IG9mIGl0cyBmcmFtZSIpCisgICAgICAgICAgKHRocm93ICdkb25lIChkZWxldGUtd2lu ZG93IGF0b20tcm9vdCkpKSkKICAgICAgICAoKG5vdCBwYXJlbnQpCi0JKGVycm9yICJBdHRlbXB0 IHRvIGRlbGV0ZSBtaW5pYnVmZmVyIG9yIHNvbGUgb3JkaW5hcnkgd2luZG93IikpCisgICAgICAg IChlcnJvciAiQXR0ZW1wdCB0byBkZWxldGUgbWluaWJ1ZmZlciBvciBzb2xlIG9yZGluYXJ5IHdp bmRvdyIpKQogICAgICAgICgoZXEgd2luZG93ICh3aW5kb3ctbWFpbi13aW5kb3cgZnJhbWUpKQot CShlcnJvciAiQXR0ZW1wdCB0byBkZWxldGUgbWFpbiB3aW5kb3cgb2YgZnJhbWUgJXMiIGZyYW1l KSkpCisgICAgICAgIChlcnJvciAiQXR0ZW1wdCB0byBkZWxldGUgbWFpbiB3aW5kb3cgb2YgZnJh bWUgJXMiIGZyYW1lKSkpCiAKICAgICAgIChsZXQqICgoaG9yaXpvbnRhbCAod2luZG93LWxlZnQt Y2hpbGQgcGFyZW50KSkKLQkgICAgIChzaXplICh3aW5kb3ctc2l6ZSB3aW5kb3cgaG9yaXpvbnRh bCB0KSkKKyAgICAgICAgICAgICAoc2l6ZSAod2luZG93LXNpemUgd2luZG93IGhvcml6b250YWwg dCkpCiAgICAgICAgICAgICAgKHdpbmRvdy1jb21iaW5hdGlvbi1yZXNpemUKICAgICAgICAgICAg ICAgKG9yIHdpbmRvdy1jb21iaW5hdGlvbi1yZXNpemUKICAgICAgICAgICAgICAgICAgICh3aW5k b3ctcGFyYW1ldGVyIHBhcmVudCAnd2luZG93LXNpZGUpKSkKLQkgICAgIChmcmFtZS1zZWxlY3Rl ZAotCSAgICAgICh3aW5kb3ctLWluLXN1YnRyZWUtcCAoZnJhbWUtc2VsZWN0ZWQtd2luZG93IGZy YW1lKSB3aW5kb3cpKQotCSAgICAgOzsgRW1hY3MgMjMgcHJlZmVyYWJseSBnaXZlcyBXSU5ET1cn cyBzcGFjZSB0byBpdHMgbGVmdAotCSAgICAgOzsgc2libGluZy4KLQkgICAgIChzaWJsaW5nIChv ciAod2luZG93LWxlZnQgd2luZG93KSAod2luZG93LXJpZ2h0IHdpbmRvdykpKSkKLQkod2luZG93 LS1yZXNpemUtcmVzZXQgZnJhbWUgaG9yaXpvbnRhbCkKLQkoY29uZAotCSAoKGFuZCAobm90IChl cSB3aW5kb3ctY29tYmluYXRpb24tcmVzaXplIHQpKQotCSAgICAgICBzaWJsaW5nICh3aW5kb3ct c2l6YWJsZS1wIHNpYmxpbmcgc2l6ZSBob3Jpem9udGFsIG5pbCB0KSkKLQkgIDs7IFJlc2l6ZSBX SU5ET1cncyBzaWJsaW5nLgotCSAgKHdpbmRvdy0tcmVzaXplLXRoaXMtd2luZG93IHNpYmxpbmcg c2l6ZSBob3Jpem9udGFsIG5pbCB0KQotCSAgKHNldC13aW5kb3ctbmV3LW5vcm1hbAotCSAgIHNp YmxpbmcgKCsgKHdpbmRvdy1ub3JtYWwtc2l6ZSBzaWJsaW5nIGhvcml6b250YWwpCi0JCSAgICAg ICh3aW5kb3ctbm9ybWFsLXNpemUgd2luZG93IGhvcml6b250YWwpKSkpCi0JICgod2luZG93LS1y ZXNpemFibGUtcCB3aW5kb3cgKC0gc2l6ZSkgaG9yaXpvbnRhbCBuaWwgbmlsIG5pbCB0IHQpCi0J ICA7OyBDYW4gZG8gd2l0aG91dCByZXNpemluZyBmaXhlZC1zaXplIHdpbmRvd3MuCi0JICAod2lu ZG93LS1yZXNpemUtc2libGluZ3Mgd2luZG93ICgtIHNpemUpIGhvcml6b250YWwpKQotCSAodAot CSAgOzsgQ2FuJ3QgZG8gd2l0aG91dCByZXNpemluZyBmaXhlZC1zaXplIHdpbmRvd3MuCi0JICAo d2luZG93LS1yZXNpemUtc2libGluZ3Mgd2luZG93ICgtIHNpemUpIGhvcml6b250YWwgdCkpKQot CTs7IEFjdHVhbGx5IGRlbGV0ZSBXSU5ET1cuCi0JKGRlbGV0ZS13aW5kb3ctaW50ZXJuYWwgd2lu ZG93KQotCSh3aW5kb3ctLXBpeGVsLXRvLXRvdGFsIGZyYW1lIGhvcml6b250YWwpCi0JKHdoZW4g KGFuZCBmcmFtZS1zZWxlY3RlZAotCQkgICAod2luZG93LXBhcmFtZXRlcgotCQkgICAgKGZyYW1l LXNlbGVjdGVkLXdpbmRvdyBmcmFtZSkgJ25vLW90aGVyLXdpbmRvdykpCi0JICA7OyBgZGVsZXRl LXdpbmRvdy1pbnRlcm5hbCcgaGFzIHNlbGVjdGVkIGEgd2luZG93IHRoYXQgc2hvdWxkCi0JICA7 OyBub3QgYmUgc2VsZWN0ZWQsIGZpeCB0aGlzIGhlcmUuCi0JICAob3RoZXItd2luZG93IC0xIGZy YW1lKSkKLQkod2luZG93LS1jaGVjayBmcmFtZSkKLQk7OyBBbHdheXMgcmV0dXJuIG5pbC4KLQlu aWwpKSkpCisgICAgICAgICAgICAgKGZyYW1lLXNlbGVjdGVkCisgICAgICAgICAgICAgICh3aW5k b3ctLWluLXN1YnRyZWUtcCAoZnJhbWUtc2VsZWN0ZWQtd2luZG93IGZyYW1lKSB3aW5kb3cpKQor ICAgICAgICAgICAgIDs7IEVtYWNzIDIzIHByZWZlcmFibHkgZ2l2ZXMgV0lORE9XJ3Mgc3BhY2Ug dG8gaXRzIGxlZnQKKyAgICAgICAgICAgICA7OyBzaWJsaW5nLgorICAgICAgICAgICAgIChzaWJs aW5nIChvciAod2luZG93LWxlZnQgd2luZG93KSAod2luZG93LXJpZ2h0IHdpbmRvdykpKSkKKyAg ICAgICAgKHdpbmRvdy0tcmVzaXplLXJlc2V0IGZyYW1lIGhvcml6b250YWwpCisgICAgICAgIChj b25kCisgICAgICAgICAoKGFuZCAobm90IChlcSB3aW5kb3ctY29tYmluYXRpb24tcmVzaXplIHQp KQorICAgICAgICAgICAgICAgc2libGluZyAod2luZG93LXNpemFibGUtcCBzaWJsaW5nIHNpemUg aG9yaXpvbnRhbCBuaWwgdCkpCisgICAgICAgICAgOzsgUmVzaXplIFdJTkRPVydzIHNpYmxpbmcu CisgICAgICAgICAgKHdpbmRvdy0tcmVzaXplLXRoaXMtd2luZG93IHNpYmxpbmcgc2l6ZSBob3Jp em9udGFsIG5pbCB0KQorICAgICAgICAgIChzZXQtd2luZG93LW5ldy1ub3JtYWwKKyAgICAgICAg ICAgc2libGluZyAoKyAod2luZG93LW5vcm1hbC1zaXplIHNpYmxpbmcgaG9yaXpvbnRhbCkKKyAg ICAgICAgICAgICAgICAgICAgICAod2luZG93LW5vcm1hbC1zaXplIHdpbmRvdyBob3Jpem9udGFs KSkpKQorICAgICAgICAgKCh3aW5kb3ctLXJlc2l6YWJsZS1wIHdpbmRvdyAoLSBzaXplKSBob3Jp em9udGFsIG5pbCBuaWwgbmlsIHQgdCkKKyAgICAgICAgICA7OyBDYW4gZG8gd2l0aG91dCByZXNp emluZyBmaXhlZC1zaXplIHdpbmRvd3MuCisgICAgICAgICAgKHdpbmRvdy0tcmVzaXplLXNpYmxp bmdzIHdpbmRvdyAoLSBzaXplKSBob3Jpem9udGFsKSkKKyAgICAgICAgICh0CisgICAgICAgICAg OzsgQ2FuJ3QgZG8gd2l0aG91dCByZXNpemluZyBmaXhlZC1zaXplIHdpbmRvd3MuCisgICAgICAg ICAgKHdpbmRvdy0tcmVzaXplLXNpYmxpbmdzIHdpbmRvdyAoLSBzaXplKSBob3Jpem9udGFsIHQp KSkKKyAgICAgICAgOzsgQWN0dWFsbHkgZGVsZXRlIFdJTkRPVy4KKyAgICAgICAgKGRlbGV0ZS13 aW5kb3ctaW50ZXJuYWwgd2luZG93KQorICAgICAgICAod2luZG93LS1waXhlbC10by10b3RhbCBm cmFtZSBob3Jpem9udGFsKQorICAgICAgICAod2hlbiAoYW5kIGZyYW1lLXNlbGVjdGVkCisgICAg ICAgICAgICAgICAgICAgKHdpbmRvdy1wYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgICAgKGZy YW1lLXNlbGVjdGVkLXdpbmRvdyBmcmFtZSkgJ25vLW90aGVyLXdpbmRvdykpCisgICAgICAgICAg OzsgYGRlbGV0ZS13aW5kb3ctaW50ZXJuYWwnIGhhcyBzZWxlY3RlZCBhIHdpbmRvdyB0aGF0IHNo b3VsZAorICAgICAgICAgIDs7IG5vdCBiZSBzZWxlY3RlZCwgZml4IHRoaXMgaGVyZS4KKyAgICAg ICAgICAob3RoZXItd2luZG93IC0xIGZyYW1lKSkKKyAgICAgICAgKHdpbmRvdy0tY2hlY2sgZnJh bWUpCisgICAgICAgIDs7IEFsd2F5cyByZXR1cm4gbmlsLgorICAgICAgICBuaWwpKSkpCiAKIChk ZWZ1biBkZWxldGUtb3RoZXItd2luZG93cyAoJm9wdGlvbmFsIHdpbmRvdyBpbnRlcmFjdGl2ZSkK ICAgIk1ha2UgV0lORE9XIGZpbGwgaXRzIGZyYW1lLgpAQCAtNDI3Nyw4ICs0Mjc3LDggQEAgYW55 IHdpbmRvdyB3aG9zZSBgbm8tZGVsZXRlLW90aGVyLXdpbmRvd3MnIHBhcmFtZXRlciBpcyBub24t bmlsLiIKICAgKGludGVyYWN0aXZlICJpXG5wIikKICAgKHNldHEgd2luZG93ICh3aW5kb3ctbm9y bWFsaXplLXdpbmRvdyB3aW5kb3cpKQogICAobGV0KiAoKGZyYW1lICh3aW5kb3ctZnJhbWUgd2lu ZG93KSkKLQkgKGZ1bmN0aW9uICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAnZGVsZXRlLW90aGVy LXdpbmRvd3MpKQotCSBhdG9tLXJvb3QgbWFpbikKKyAgICAgICAgIChmdW5jdGlvbiAod2luZG93 LXBhcmFtZXRlciB3aW5kb3cgJ2RlbGV0ZS1vdGhlci13aW5kb3dzKSkKKyAgICAgICAgIGF0b20t cm9vdCBtYWluKQogICAgICh3aW5kb3ctLWNoZWNrIGZyYW1lKQogICAgIChjYXRjaCAnZG9uZQog ICAgICAgKGNvbmQKQEAgLTQyODYsMjEgKzQyODYsMjEgQEAgYW55IHdpbmRvdyB3aG9zZSBgbm8t ZGVsZXRlLW90aGVyLXdpbmRvd3MnIHBhcmFtZXRlciBpcyBub24tbmlsLiIKICAgICAgICA7OyBg ZGVsZXRlLW90aGVyLXdpbmRvd3MnIGlzIHQuCiAgICAgICAgKChvciBpZ25vcmUtd2luZG93LXBh cmFtZXRlcnMgKGVxIGZ1bmN0aW9uIHQpKSkKICAgICAgICAoKGZ1bmN0aW9ucCBmdW5jdGlvbikK LQk7OyBUaGUgYGRlbGV0ZS1vdGhlci13aW5kb3dzJyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBm dW5jdGlvbgotCTs7IHRvIGNhbGwuICBJZiB0aGUgZnVuY3Rpb24gaXMgYGlnbm9yZScgbm8gd2lu ZG93cyBhcmUgZGVsZXRlZC4KLQk7OyBJdCdzIHVwIHRvIHRoZSBmdW5jdGlvbiBjYWxsZWQgdG8g YXZvaWQgaW5maW5pdGUgcmVjdXJzaW9uLgotCSh0aHJvdyAnZG9uZSAoZnVuY2FsbCBmdW5jdGlv biB3aW5kb3cpKSkKKyAgICAgICAgOzsgVGhlIGBkZWxldGUtb3RoZXItd2luZG93cycgcGFyYW1l dGVyIHNwZWNpZmllcyB0aGUgZnVuY3Rpb24KKyAgICAgICAgOzsgdG8gY2FsbC4gIElmIHRoZSBm dW5jdGlvbiBpcyBgaWdub3JlJyBubyB3aW5kb3dzIGFyZSBkZWxldGVkLgorICAgICAgICA7OyBJ dCdzIHVwIHRvIHRoZSBmdW5jdGlvbiBjYWxsZWQgdG8gYXZvaWQgaW5maW5pdGUgcmVjdXJzaW9u LgorICAgICAgICAodGhyb3cgJ2RvbmUgKGZ1bmNhbGwgZnVuY3Rpb24gd2luZG93KSkpCiAgICAg ICAgKChhbmQgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICd3aW5kb3ctYXRvbSkKLQkgICAgIChz ZXRxIGF0b20tcm9vdCAod2luZG93LWF0b20tcm9vdCB3aW5kb3cpKQotCSAgICAgKG5vdCAoZXEg YXRvbS1yb290IHdpbmRvdykpKQotCShpZiAoZXEgYXRvbS1yb290IChmcmFtZS1yb290LXdpbmRv dyBmcmFtZSkpCi0JICAgIChlcnJvciAiUm9vdCBvZiBhdG9taWMgd2luZG93IGlzIHJvb3Qgd2lu ZG93IG9mIGl0cyBmcmFtZSIpCi0JICAodGhyb3cgJ2RvbmUgKGRlbGV0ZS1vdGhlci13aW5kb3dz IGF0b20tcm9vdCkpKSkKKyAgICAgICAgICAgICAoc2V0cSBhdG9tLXJvb3QgKHdpbmRvdy1hdG9t LXJvb3Qgd2luZG93KSkKKyAgICAgICAgICAgICAobm90IChlcSBhdG9tLXJvb3Qgd2luZG93KSkp CisgICAgICAgIChpZiAoZXEgYXRvbS1yb290IChmcmFtZS1yb290LXdpbmRvdyBmcmFtZSkpCisg ICAgICAgICAgICAoZXJyb3IgIlJvb3Qgb2YgYXRvbWljIHdpbmRvdyBpcyByb290IHdpbmRvdyBv ZiBpdHMgZnJhbWUiKQorICAgICAgICAgICh0aHJvdyAnZG9uZSAoZGVsZXRlLW90aGVyLXdpbmRv d3MgYXRvbS1yb290KSkpKQogICAgICAgICgod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRv dy1zaWRlKQotCShlcnJvciAiQ2Fubm90IG1ha2Ugc2lkZSB3aW5kb3cgdGhlIG9ubHkgd2luZG93 IikpCisgICAgICAgIChlcnJvciAiQ2Fubm90IG1ha2Ugc2lkZSB3aW5kb3cgdGhlIG9ubHkgd2lu ZG93IikpCiAgICAgICAgKChhbmQgKHdpbmRvdy1taW5pYnVmZmVyLXAgd2luZG93KQotCSAgICAg KG5vdCAoZXEgd2luZG93IChmcmFtZS1yb290LXdpbmRvdyB3aW5kb3cpKSkpCi0JKGVycm9yICJD YW4ndCBleHBhbmQgbWluaWJ1ZmZlciB0byBmdWxsIGZyYW1lIikpKQorICAgICAgICAgICAgIChu b3QgKGVxIHdpbmRvdyAoZnJhbWUtcm9vdC13aW5kb3cgd2luZG93KSkpKQorICAgICAgICAoZXJy b3IgIkNhbid0IGV4cGFuZCBtaW5pYnVmZmVyIHRvIGZ1bGwgZnJhbWUiKSkpCiAKICAgICAgIChj b25kCiAgICAgICAgKChvciBpZ25vcmUtd2luZG93LXBhcmFtZXRlcnMKQEAgLTQzNDMsOCArNDM0 Myw4IEBAIGFueSB3aW5kb3cgd2hvc2UgYG5vLWRlbGV0ZS1vdGhlci13aW5kb3dzJyBwYXJhbWV0 ZXIgaXMgbm9uLW5pbC4iCiAgICAgICAgICAgKHdoZW4gKGFuZCBpbnRlcmFjdGl2ZQogICAgICAg ICAgICAgICAgICAgICAgKG5vdCAob3IgZXhlY3V0aW5nLWtiZC1tYWNybyBub25pbnRlcmFjdGl2 ZSkpKQogICAgICAgICAgICAgKG1lc3NhZ2UgIk5vIG90aGVyIHdpbmRvd3MgdG8gZGVsZXRlIikp Ci0JKGRlbGV0ZS1vdGhlci13aW5kb3dzLWludGVybmFsIHdpbmRvdyBtYWluKQotCSh3aW5kb3ct LWNoZWNrIGZyYW1lKSkKKyAgICAgICAgKGRlbGV0ZS1vdGhlci13aW5kb3dzLWludGVybmFsIHdp bmRvdyBtYWluKQorICAgICAgICAod2luZG93LS1jaGVjayBmcmFtZSkpCiAgICAgICA7OyBBbHdh eXMgcmV0dXJuIG5pbC4KICAgICAgIG5pbCkpKQogCkBAIC00Mzk4LDggKzQzOTgsOCBAQCBUaGlz IG1heSBiZSBhIHVzZWZ1bCBhbHRlcm5hdGl2ZSBiaW5kaW5nIGZvciBcXFtkZWxldGUtb3RoZXIt d2luZG93c10KICAgIlJlY29yZCBXSU5ET1cncyBidWZmZXIuCiBXSU5ET1cgbXVzdCBiZSBhIGxp dmUgd2luZG93IGFuZCBkZWZhdWx0cyB0byB0aGUgc2VsZWN0ZWQgb25lLiIKICAgKGxldCogKCh3 aW5kb3cgKHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdyB0KSkKLQkgKGJ1ZmZlciAod2lu ZG93LWJ1ZmZlciB3aW5kb3cpKQotCSAoZW50cnkgKGFzc3EgYnVmZmVyICh3aW5kb3ctcHJldi1i dWZmZXJzIHdpbmRvdykpKSkKKyAgICAgICAgIChidWZmZXIgKHdpbmRvdy1idWZmZXIgd2luZG93 KSkKKyAgICAgICAgIChlbnRyeSAoYXNzcSBidWZmZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2lu ZG93KSkpKQogICAgIDs7IFJlc2V0IFdJTkRPVydzIG5leHQgYnVmZmVycy4gIElmIG5lZWRlZCwg dGhleSBhcmUgcmVzdXJyZWN0ZWQgYnkKICAgICA7OyBgc3dpdGNoLXRvLXByZXYtYnVmZmVyJyBh bmQgYHN3aXRjaC10by1uZXh0LWJ1ZmZlcicuCiAgICAgKHNldC13aW5kb3ctbmV4dC1idWZmZXJz IHdpbmRvdyBuaWwpCkBAIC00NDEzLDIyICs0NDEzLDIyIEBAIFdJTkRPVyBtdXN0IGJlIGEgbGl2 ZSB3aW5kb3cgYW5kIGRlZmF1bHRzIHRvIHRoZSBzZWxlY3RlZCBvbmUuIgogICAgICh1bmxlc3Mg KGVxIChhcmVmIChidWZmZXItbmFtZSBidWZmZXIpIDApID9ccykKICAgICAgIDs7IEFkZCBhbiBl bnRyeSBmb3IgYnVmZmVyIHRvIFdJTkRPVydzIHByZXZpb3VzIGJ1ZmZlcnMuCiAgICAgICAod2l0 aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIKLQkobGV0ICgoc3RhcnQgKHdpbmRvdy1zdGFydCB3aW5k b3cpKQotCSAgICAgIChwb2ludCAod2luZG93LXBvaW50IHdpbmRvdykpKQotCSAgKHNldHEgZW50 cnkKLQkJKGNvbnMgYnVmZmVyCi0JCSAgICAgIChpZiBlbnRyeQotCQkJICA7OyBXZSBoYXZlIGFu IGVudHJ5LCB1cGRhdGUgbWFya2VyIHBvc2l0aW9ucy4KLQkJCSAgKGxpc3QgKHNldC1tYXJrZXIg KG50aCAxIGVudHJ5KSBzdGFydCkKLQkJCQkoc2V0LW1hcmtlciAobnRoIDIgZW50cnkpIHBvaW50 KSkKLQkJCTs7IE1ha2UgbmV3IG1hcmtlcnMuCi0JCQkobGlzdCAoY29weS1tYXJrZXIgc3RhcnQp Ci0JCQkgICAgICAoY29weS1tYXJrZXIKLQkJCSAgICAgICA7OyBQcmVzZXJ2ZSB3aW5kb3ctcG9p bnQtaW5zZXJ0aW9uLXR5cGUKLQkJCSAgICAgICA7OyAoQnVnIzEyODU1KS4KLQkJCSAgICAgICBw b2ludCB3aW5kb3ctcG9pbnQtaW5zZXJ0aW9uLXR5cGUpKSkpKQotCSAgKHNldC13aW5kb3ctcHJl di1idWZmZXJzCi0JICAgd2luZG93IChjb25zIGVudHJ5ICh3aW5kb3ctcHJldi1idWZmZXJzIHdp bmRvdykpKSkpCisgICAgICAgIChsZXQgKChzdGFydCAod2luZG93LXN0YXJ0IHdpbmRvdykpCisg ICAgICAgICAgICAgIChwb2ludCAod2luZG93LXBvaW50IHdpbmRvdykpKQorICAgICAgICAgIChz ZXRxIGVudHJ5CisgICAgICAgICAgICAgICAgKGNvbnMgYnVmZmVyCisgICAgICAgICAgICAgICAg ICAgICAgKGlmIGVudHJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IFdlIGhhdmUgYW4g ZW50cnksIHVwZGF0ZSBtYXJrZXIgcG9zaXRpb25zLgorICAgICAgICAgICAgICAgICAgICAgICAg ICAobGlzdCAoc2V0LW1hcmtlciAobnRoIDEgZW50cnkpIHN0YXJ0KQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc2V0LW1hcmtlciAobnRoIDIgZW50cnkpIHBvaW50KSkKKyAgICAg ICAgICAgICAgICAgICAgICAgIDs7IE1ha2UgbmV3IG1hcmtlcnMuCisgICAgICAgICAgICAgICAg ICAgICAgICAobGlzdCAoY29weS1tYXJrZXIgc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoY29weS1tYXJrZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBQ cmVzZXJ2ZSB3aW5kb3ctcG9pbnQtaW5zZXJ0aW9uLXR5cGUKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7OyAoQnVnIzEyODU1KS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwb2ludCB3aW5kb3ctcG9pbnQtaW5zZXJ0aW9uLXR5cGUpKSkpKQorICAgICAgICAgIChzZXQt d2luZG93LXByZXYtYnVmZmVycworICAgICAgICAgICB3aW5kb3cgKGNvbnMgZW50cnkgKHdpbmRv dy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpKSkKIAogICAgICAgKHJ1bi1ob29rcyAnYnVmZmVyLWxp c3QtdXBkYXRlLWhvb2spKSkpCiAKQEAgLTQ0MzgsNyArNDQzOCw3IEBAIFdJTkRPVyBtdXN0IGJl IGEgbGl2ZSB3aW5kb3cgYW5kIGRlZmF1bHRzIHRvIHRoZSBzZWxlY3RlZCBvbmUuCiBCVUZGRVIg bXVzdCBiZSBhIGxpdmUgYnVmZmVyIGFuZCBkZWZhdWx0cyB0byB0aGUgYnVmZmVyIG9mCiBXSU5E T1cuIgogICAobGV0KiAoKHdpbmRvdyAod2luZG93LW5vcm1hbGl6ZS13aW5kb3cgd2luZG93IHQp KQotCSAoYnVmZmVyIChvciBidWZmZXIgKHdpbmRvdy1idWZmZXIgd2luZG93KSkpKQorICAgICAg ICAgKGJ1ZmZlciAob3IgYnVmZmVyICh3aW5kb3ctYnVmZmVyIHdpbmRvdykpKSkKICAgICAoc2V0 LXdpbmRvdy1wcmV2LWJ1ZmZlcnMKICAgICAgd2luZG93IChhc3NxLWRlbGV0ZS1hbGwgYnVmZmVy ICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpKQogICAgIChzZXQtd2luZG93LW5leHQtYnVm ZmVycwpAQCAtNDQ1NCw3ICs0NDU0LDcgQEAgcG9pbnQgdG8gUE9JTlQuICBJZiBXSU5ET1cgaXMg c2VsZWN0ZWQgdGhpcyBhbHNvIHNldHMgQlVGRkVSJ3MKIGJlZm9yZSB3YXMgY3VycmVudCB0aGlz IGFsc28gbWFrZXMgQlVGRkVSIHRoZSBjdXJyZW50IGJ1ZmZlci4iCiAgIChzZXRxIHdpbmRvdyAo d2luZG93LW5vcm1hbGl6ZS13aW5kb3cgd2luZG93IHQpKQogICAobGV0ICgoc2VsZWN0ZWQgKGVx IHdpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkpCi0JKGN1cnJlbnQgKGVxICh3aW5kb3ctYnVmZmVy IHdpbmRvdykgKGN1cnJlbnQtYnVmZmVyKSkpKQorICAgICAgICAoY3VycmVudCAoZXEgKHdpbmRv dy1idWZmZXIgd2luZG93KSAoY3VycmVudC1idWZmZXIpKSkpCiAgICAgKHNldC13aW5kb3ctYnVm ZmVyIHdpbmRvdyBidWZmZXIpCiAgICAgKHdoZW4gKGFuZCBzZWxlY3RlZCBjdXJyZW50KQogICAg ICAgKHNldC1idWZmZXIgYnVmZmVyKSkKQEAgLTQ1MTksOSArNDUxOSw5IEBAIHRoaXMgb3B0aW9u LCBmb3IgZXhhbXBsZSwgd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBidWZmZXIgbGVmdC4iCiAgIDp0 eXBlCiAgICcoY2hvaWNlIChjb25zdCA6dGFnICJOZXZlciIgbmlsKQogICAgICAgICAgICAoY29u c3QgOnRhZyAiVGhpcyBmcmFtZSIgdGhpcykKLQkgICAoY29uc3QgOnRhZyAiVmlzaWJsZSBmcmFt ZXMiIHZpc2libGUpCi0JICAgKGNvbnN0IDp0YWcgIlZpc2libGUgYW5kIGljb25pZmllZCBmcmFt ZXMiIDApCi0JICAgKGNvbnN0IDp0YWcgIkFueSBmcmFtZSIgdCkKKyAgICAgICAgICAgKGNvbnN0 IDp0YWcgIlZpc2libGUgZnJhbWVzIiB2aXNpYmxlKQorICAgICAgICAgICAoY29uc3QgOnRhZyAi VmlzaWJsZSBhbmQgaWNvbmlmaWVkIGZyYW1lcyIgMCkKKyAgICAgICAgICAgKGNvbnN0IDp0YWcg IkFueSBmcmFtZSIgdCkKICAgICAgICAgICAgKGZ1bmN0aW9uIDp0YWcgIkZ1bmN0aW9uIikpCiAg IDp2ZXJzaW9uICIyNy4xIgogICA6Z3JvdXAgJ3dpbmRvd3MpCkBAIC00NTYxLDExICs0NTYxLDEx IEBAIGJ1ZmZlcnMuCiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBgcHJldi1idWZmZXInLiIK ICAgKGludGVyYWN0aXZlKQogICAobGV0KiAoKHdpbmRvdyAod2luZG93LW5vcm1hbGl6ZS13aW5k b3cgd2luZG93IHQpKQotCSAoZnJhbWUgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKQorICAgICAgICAg KGZyYW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkKICAgICAgICAgICh3aW5kb3ctc2lkZSAod2lu ZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1zaWRlKSkKLQkgKG9sZC1idWZmZXIgKHdpbmRv dy1idWZmZXIgd2luZG93KSkKLQkgOzsgU2F2ZSB0aGlzIHNpbmNlIGl0J3MgZGVzdHJveWVkIGJ5 IGBzZXQtd2luZG93LWJ1ZmZlcicuCi0JIChuZXh0LWJ1ZmZlcnMgKHdpbmRvdy1uZXh0LWJ1ZmZl cnMgd2luZG93KSkKKyAgICAgICAgIChvbGQtYnVmZmVyICh3aW5kb3ctYnVmZmVyIHdpbmRvdykp CisgICAgICAgICA7OyBTYXZlIHRoaXMgc2luY2UgaXQncyBkZXN0cm95ZWQgYnkgYHNldC13aW5k b3ctYnVmZmVyJy4KKyAgICAgICAgIChuZXh0LWJ1ZmZlcnMgKHdpbmRvdy1uZXh0LWJ1ZmZlcnMg d2luZG93KSkKICAgICAgICAgIChwcmVkIChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ2J1ZmZlci1w cmVkaWNhdGUpKQogICAgICAgICAgKHNraXAKICAgICAgICAgICAoY29uZApAQCAtNDU3OSw3ICs0 NTc5LDcgQEAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgYHByZXYtYnVmZmVyJy4iCiAgICAg KHdoZW4gKHdpbmRvdy1taW5pYnVmZmVyLXAgd2luZG93KQogICAgICAgOzsgRG9uJ3Qgc3dpdGNo IGluIG1pbmlidWZmZXIgd2luZG93LgogICAgICAgKHVubGVzcyAoc2V0cSB3aW5kb3cgKG1pbmli dWZmZXItc2VsZWN0ZWQtd2luZG93KSkKLQkoZXJyb3IgIldpbmRvdyAlcyBpcyBhIG1pbmlidWZm ZXIgd2luZG93IiB3aW5kb3cpKSkKKyAgICAgICAgKGVycm9yICJXaW5kb3cgJXMgaXMgYSBtaW5p YnVmZmVyIHdpbmRvdyIgd2luZG93KSkpCiAKICAgICAodW5sZXNzIChtZW1xICh3aW5kb3ctZGVk aWNhdGVkLXAgd2luZG93KSAnKG5pbCBzaWRlKSkKICAgICAgIDs7IERvbid0IHN3aXRjaCBpbiBk ZWRpY2F0ZWQgd2luZG93LgpAQCAtNDU4OSwyMCArNDU4OSwyMCBAQCBUaGlzIGZ1bmN0aW9uIGlz IGNhbGxlZCBieSBgcHJldi1idWZmZXInLiIKICAgICAgIDs7IFNjYW4gV0lORE9XJ3MgcHJldmlv dXMgYnVmZmVycyBmaXJzdCwgc2tpcHBpbmcgZW50cmllcyBvZiBuZXh0CiAgICAgICA7OyBidWZm ZXJzLgogICAgICAgKGRvbGlzdCAoZW50cnkgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkK LQkod2hlbiAoYW5kIChzZXRxIG5ldy1idWZmZXIgKGNhciBlbnRyeSkpCi0JCSAgIChvciAoYnVm ZmVyLWxpdmUtcCBuZXctYnVmZmVyKQotCQkgICAgICAgKG5vdCAoc2V0cSBraWxsZWQtYnVmZmVy cwotCQkJCSAgKGNvbnMgbmV3LWJ1ZmZlciBraWxsZWQtYnVmZmVycykpKSkKLQkJICAgKG5vdCAo ZXEgbmV3LWJ1ZmZlciBvbGQtYnVmZmVyKSkKKyAgICAgICAgKHdoZW4gKGFuZCAoc2V0cSBuZXct YnVmZmVyIChjYXIgZW50cnkpKQorICAgICAgICAgICAgICAgICAgIChvciAoYnVmZmVyLWxpdmUt cCBuZXctYnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAgICAobm90IChzZXRxIGtpbGxlZC1i dWZmZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMgbmV3LWJ1ZmZl ciBraWxsZWQtYnVmZmVycykpKSkKKyAgICAgICAgICAgICAgICAgICAobm90IChlcSBuZXctYnVm ZmVyIG9sZC1idWZmZXIpKQogICAgICAgICAgICAgICAgICAgIChvciAobnVsbCBwcmVkKSAoZnVu Y2FsbCBwcmVkIG5ldy1idWZmZXIpKQotCQkgICA7OyBXaGVuIEJVUlktT1ItS0lMTCBpcyBuaWws IGF2b2lkIHN3aXRjaGluZyB0byBhCi0JCSAgIDs7IGJ1ZmZlciBpbiBXSU5ET1cncyBuZXh0IGJ1 ZmZlcnMgbGlzdC4KLQkJICAgKG9yIGJ1cnktb3Ita2lsbCAobm90IChtZW1xIG5ldy1idWZmZXIg bmV4dC1idWZmZXJzKSkpKQorICAgICAgICAgICAgICAgICAgIDs7IFdoZW4gQlVSWS1PUi1LSUxM IGlzIG5pbCwgYXZvaWQgc3dpdGNoaW5nIHRvIGEKKyAgICAgICAgICAgICAgICAgICA7OyBidWZm ZXIgaW4gV0lORE9XJ3MgbmV4dCBidWZmZXJzIGxpc3QuCisgICAgICAgICAgICAgICAgICAgKG9y IGJ1cnktb3Ita2lsbCAobm90IChtZW1xIG5ldy1idWZmZXIgbmV4dC1idWZmZXJzKSkpKQogICAg ICAgICAgIChpZiAoc3dpdGNoLXRvLXByZXYtYnVmZmVyLXNraXAtcCBza2lwIHdpbmRvdyBuZXct YnVmZmVyIGJ1cnktb3Ita2lsbCkKLQkgICAgICAoc2V0cSBza2lwcGVkIG5ldy1idWZmZXIpCi0J ICAgIChzZXQtd2luZG93LWJ1ZmZlci1zdGFydC1hbmQtcG9pbnQKLQkgICAgIHdpbmRvdyBuZXct YnVmZmVyIChudGggMSBlbnRyeSkgKG50aCAyIGVudHJ5KSkKLQkgICAgKHRocm93ICdmb3VuZCB0 KSkpKQorICAgICAgICAgICAgICAoc2V0cSBza2lwcGVkIG5ldy1idWZmZXIpCisgICAgICAgICAg ICAoc2V0LXdpbmRvdy1idWZmZXItc3RhcnQtYW5kLXBvaW50CisgICAgICAgICAgICAgd2luZG93 IG5ldy1idWZmZXIgKG50aCAxIGVudHJ5KSAobnRoIDIgZW50cnkpKQorICAgICAgICAgICAgKHRo cm93ICdmb3VuZCB0KSkpKQogICAgICAgOzsgU2NhbiByZXZlcnRlZCBidWZmZXIgbGlzdCBvZiBX SU5ET1cncyBmcmFtZSBuZXh0LCBza2lwcGluZwogICAgICAgOzsgZW50cmllcyBvZiBuZXh0IGJ1 ZmZlcnMuICBOb3RlIHRoYXQgd2hlbiB3ZSBidXJ5IG9yIGtpbGwgYQogICAgICAgOzsgYnVmZmVy IHdlIGRvbid0IHJldmVyc2UgdGhlIGdsb2JhbCBidWZmZXIgbGlzdCB0byBhdm9pZCBzaG93aW5n CkBAIC00NjIzLDUwICs0NjIzLDUwIEBAIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGBwcmV2 LWJ1ZmZlcicuIgogICAgICAgICAgICAgICAgICAgICAgKG5vdCAoYnVmZmVyLWxvY2FsLXZhbHVl ICd3aW5kb3ctLXNpZGVzLXNob3duIGJ1ZmZlcikpCiAgICAgICAgICAgICAgICAgICAgICAob3Ig YnVyeS1vci1raWxsIChub3QgKG1lbXEgYnVmZmVyIG5leHQtYnVmZmVycykpKSkKICAgICAgICAg ICAgIChpZiAoc3dpdGNoLXRvLXByZXYtYnVmZmVyLXNraXAtcCBza2lwIHdpbmRvdyBidWZmZXIg YnVyeS1vci1raWxsKQotCSAgICAgICAgKHNldHEgc2tpcHBlZCAob3Igc2tpcHBlZCBidWZmZXIp KQorICAgICAgICAgICAgICAgIChzZXRxIHNraXBwZWQgKG9yIHNraXBwZWQgYnVmZmVyKSkKICAg ICAgICAgICAgICAgKHNldHEgbmV3LWJ1ZmZlciBidWZmZXIpCiAgICAgICAgICAgICAgIChzZXQt d2luZG93LWJ1ZmZlci1zdGFydC1hbmQtcG9pbnQgd2luZG93IG5ldy1idWZmZXIpCiAgICAgICAg ICAgICAgICh0aHJvdyAnZm91bmQgdCkpKSkpCiAKICAgICAgICh1bmxlc3MgYnVyeS1vci1raWxs Ci0JOzsgU2NhbiByZXZlcnRlZCBuZXh0IGJ1ZmZlcnMgbGFzdCAobXVzdCBub3QgdXNlIG5yZXZl cnNlCi0JOzsgaGVyZSEpLgotCShkb2xpc3QgKGJ1ZmZlciAocmV2ZXJzZSBuZXh0LWJ1ZmZlcnMp KQotCSAgOzsgQWN0dWFsbHksIGJ1ZmZlciBfbXVzdF8gYmUgbGl2ZSBoZXJlIHNpbmNlIG90aGVy d2lzZSBpdAotCSAgOzsgd291bGQgaGF2ZSBiZWVuIGNhdWdodCBpbiB0aGUgc2NhbiBvZiBwcmV2 aW91cyBidWZmZXJzLgotCSAgKHdoZW4gKGFuZCAob3IgKGJ1ZmZlci1saXZlLXAgYnVmZmVyKQot CQkJIChub3QgKHNldHEga2lsbGVkLWJ1ZmZlcnMKLQkJCQkgICAgKGNvbnMgYnVmZmVyIGtpbGxl ZC1idWZmZXJzKSkpKQotCQkgICAgIChub3QgKGVxIGJ1ZmZlciBvbGQtYnVmZmVyKSkKKyAgICAg ICAgOzsgU2NhbiByZXZlcnRlZCBuZXh0IGJ1ZmZlcnMgbGFzdCAobXVzdCBub3QgdXNlIG5yZXZl cnNlCisgICAgICAgIDs7IGhlcmUhKS4KKyAgICAgICAgKGRvbGlzdCAoYnVmZmVyIChyZXZlcnNl IG5leHQtYnVmZmVycykpCisgICAgICAgICAgOzsgQWN0dWFsbHksIGJ1ZmZlciBfbXVzdF8gYmUg bGl2ZSBoZXJlIHNpbmNlIG90aGVyd2lzZSBpdAorICAgICAgICAgIDs7IHdvdWxkIGhhdmUgYmVl biBjYXVnaHQgaW4gdGhlIHNjYW4gb2YgcHJldmlvdXMgYnVmZmVycy4KKyAgICAgICAgICAod2hl biAoYW5kIChvciAoYnVmZmVyLWxpdmUtcCBidWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAg ICAgKG5vdCAoc2V0cSBraWxsZWQtYnVmZmVycworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnMgYnVmZmVyIGtpbGxlZC1idWZmZXJzKSkpKQorICAgICAgICAgICAgICAg ICAgICAgKG5vdCAoZXEgYnVmZmVyIG9sZC1idWZmZXIpKQogICAgICAgICAgICAgICAgICAgICAg KG9yIChudWxsIHByZWQpIChmdW5jYWxsIHByZWQgYnVmZmVyKSkKLQkJICAgICAoc2V0cSBlbnRy eSAoYXNzcSBidWZmZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpKQorICAgICAgICAg ICAgICAgICAgICAgKHNldHEgZW50cnkgKGFzc3EgYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJz IHdpbmRvdykpKSkKICAgICAgICAgICAgIChpZiAoc3dpdGNoLXRvLXByZXYtYnVmZmVyLXNraXAt cCBza2lwIHdpbmRvdyBidWZmZXIgYnVyeS1vci1raWxsKQotCSAgICAgICAgKHNldHEgc2tpcHBl ZCAob3Igc2tpcHBlZCBidWZmZXIpKQotCSAgICAgIChzZXRxIG5ldy1idWZmZXIgYnVmZmVyKQot CSAgICAgIChzZXQtd2luZG93LWJ1ZmZlci1zdGFydC1hbmQtcG9pbnQKLQkgICAgICAgd2luZG93 IG5ldy1idWZmZXIgKG50aCAxIGVudHJ5KSAobnRoIDIgZW50cnkpKQotCSAgICAgICh0aHJvdyAn Zm91bmQgdCkpKSkpCisgICAgICAgICAgICAgICAgKHNldHEgc2tpcHBlZCAob3Igc2tpcHBlZCBi dWZmZXIpKQorICAgICAgICAgICAgICAoc2V0cSBuZXctYnVmZmVyIGJ1ZmZlcikKKyAgICAgICAg ICAgICAgKHNldC13aW5kb3ctYnVmZmVyLXN0YXJ0LWFuZC1wb2ludAorICAgICAgICAgICAgICAg d2luZG93IG5ldy1idWZmZXIgKG50aCAxIGVudHJ5KSAobnRoIDIgZW50cnkpKQorICAgICAgICAg ICAgICAodGhyb3cgJ2ZvdW5kIHQpKSkpKQogCiAgICAgICAod2hlbiBza2lwcGVkCiAgICAgICAg IDs7IFNob3cgZmlyc3Qgc2tpcHBlZCBidWZmZXIuCi0JKHNldHEgbmV3LWJ1ZmZlciBza2lwcGVk KQotCShzZXQtd2luZG93LWJ1ZmZlci1zdGFydC1hbmQtcG9pbnQgd2luZG93IG5ldy1idWZmZXIp KSkKKyAgICAgICAgKHNldHEgbmV3LWJ1ZmZlciBza2lwcGVkKQorICAgICAgICAoc2V0LXdpbmRv dy1idWZmZXItc3RhcnQtYW5kLXBvaW50IHdpbmRvdyBuZXctYnVmZmVyKSkpCiAKICAgICAoaWYg YnVyeS1vci1raWxsCi0JKGxldCAoKGVudHJ5IChhbmQgKGVxIGJ1cnktb3Ita2lsbCAnYXBwZW5k KQotCQkJICAoYXNzcSBvbGQtYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpKSkp Ci0JICA7OyBSZW1vdmUgYG9sZC1idWZmZXInIGZyb20gV0lORE9XJ3MgcHJldmlvdXMgYW5kIChy ZXN0b3JlZCBsaXN0Ci0JICA7OyBvZikgbmV4dCBidWZmZXJzLgotCSAgKHNldC13aW5kb3ctcHJl di1idWZmZXJzCi0JICAgd2luZG93IChhc3NxLWRlbGV0ZS1hbGwgb2xkLWJ1ZmZlciAod2luZG93 LXByZXYtYnVmZmVycyB3aW5kb3cpKSkKLQkgIChzZXQtd2luZG93LW5leHQtYnVmZmVycyB3aW5k b3cgKGRlbHEgb2xkLWJ1ZmZlciBuZXh0LWJ1ZmZlcnMpKQotCSAgKHdoZW4gZW50cnkKLQkgICAg OzsgQXBwZW5kIG9sZC1idWZmZXIncyBlbnRyeSB0byBsaXN0IG9mIFdJTkRPVydzIHByZXZpb3Vz Ci0JICAgIDs7IGJ1ZmZlcnMgc28gaXQncyBsZXNzIGxpa2VseSB0byBnZXQgc3dpdGNoZWQgdG8g c29vbiBidXQKLQkgICAgOzsgYGRpc3BsYXktYnVmZmVyLWluLXByZXZpb3VzLXdpbmRvdycgY2Fu IG5ldmVydGhlbGVzcyBmaW5kCi0JICAgIDs7IGl0LgotCSAgICAoc2V0LXdpbmRvdy1wcmV2LWJ1 ZmZlcnMKLQkgICAgIHdpbmRvdyAoYXBwZW5kICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykg KGxpc3QgZW50cnkpKSkpKQorICAgICAgICAobGV0ICgoZW50cnkgKGFuZCAoZXEgYnVyeS1vci1r aWxsICdhcHBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhc3NxIG9sZC1idWZmZXIg KHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpKSkKKyAgICAgICAgICA7OyBSZW1vdmUgYG9s ZC1idWZmZXInIGZyb20gV0lORE9XJ3MgcHJldmlvdXMgYW5kIChyZXN0b3JlZCBsaXN0CisgICAg ICAgICAgOzsgb2YpIG5leHQgYnVmZmVycy4KKyAgICAgICAgICAoc2V0LXdpbmRvdy1wcmV2LWJ1 ZmZlcnMKKyAgICAgICAgICAgd2luZG93IChhc3NxLWRlbGV0ZS1hbGwgb2xkLWJ1ZmZlciAod2lu ZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKSkKKyAgICAgICAgICAoc2V0LXdpbmRvdy1uZXh0LWJ1 ZmZlcnMgd2luZG93IChkZWxxIG9sZC1idWZmZXIgbmV4dC1idWZmZXJzKSkKKyAgICAgICAgICAo d2hlbiBlbnRyeQorICAgICAgICAgICAgOzsgQXBwZW5kIG9sZC1idWZmZXIncyBlbnRyeSB0byBs aXN0IG9mIFdJTkRPVydzIHByZXZpb3VzCisgICAgICAgICAgICA7OyBidWZmZXJzIHNvIGl0J3Mg bGVzcyBsaWtlbHkgdG8gZ2V0IHN3aXRjaGVkIHRvIHNvb24gYnV0CisgICAgICAgICAgICA7OyBg ZGlzcGxheS1idWZmZXItaW4tcHJldmlvdXMtd2luZG93JyBjYW4gbmV2ZXJ0aGVsZXNzIGZpbmQK KyAgICAgICAgICAgIDs7IGl0LgorICAgICAgICAgICAgKHNldC13aW5kb3ctcHJldi1idWZmZXJz CisgICAgICAgICAgICAgd2luZG93IChhcHBlbmQgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93 KSAobGlzdCBlbnRyeSkpKSkpCiAgICAgICA7OyBNb3ZlIGBvbGQtYnVmZmVyJyB0byBoZWFkIG9m IFdJTkRPVydzIHJlc3RvcmVkIGxpc3Qgb2YgbmV4dAogICAgICAgOzsgYnVmZmVycy4KICAgICAg IChzZXQtd2luZG93LW5leHQtYnVmZmVycwpAQCAtNDY3NSwxMCArNDY3NSwxMCBAQCBUaGlzIGZ1 bmN0aW9uIGlzIGNhbGxlZCBieSBgcHJldi1idWZmZXInLiIKICAgICA7OyBSZW1vdmUga2lsbGVk IGJ1ZmZlcnMgZnJvbSBXSU5ET1cncyBwcmV2aW91cyBhbmQgbmV4dCBidWZmZXJzLgogICAgICh3 aGVuIGtpbGxlZC1idWZmZXJzCiAgICAgICAoZG9saXN0IChidWZmZXIga2lsbGVkLWJ1ZmZlcnMp Ci0JKHNldC13aW5kb3ctcHJldi1idWZmZXJzCi0JIHdpbmRvdyAoYXNzcS1kZWxldGUtYWxsIGJ1 ZmZlciAod2luZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKSkKLQkoc2V0LXdpbmRvdy1uZXh0LWJ1 ZmZlcnMKLQkgd2luZG93IChkZWxxIGJ1ZmZlciAod2luZG93LW5leHQtYnVmZmVycyB3aW5kb3cp KSkpKQorICAgICAgICAoc2V0LXdpbmRvdy1wcmV2LWJ1ZmZlcnMKKyAgICAgICAgIHdpbmRvdyAo YXNzcS1kZWxldGUtYWxsIGJ1ZmZlciAod2luZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKSkKKyAg ICAgICAgKHNldC13aW5kb3ctbmV4dC1idWZmZXJzCisgICAgICAgICB3aW5kb3cgKGRlbHEgYnVm ZmVyICh3aW5kb3ctbmV4dC1idWZmZXJzIHdpbmRvdykpKSkpCiAKICAgICA7OyBSZXR1cm4gbmV3 LWJ1ZmZlci4KICAgICBuZXctYnVmZmVyKSkKQEAgLTQ2OTgsMTAgKzQ2OTgsMTAgQEAgYnVmZmVy cy4KIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGBuZXh0LWJ1ZmZlcicuIgogICAoaW50ZXJh Y3RpdmUpCiAgIChsZXQqICgod2luZG93ICh3aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5kb3cg dCkpCi0JIChmcmFtZSAod2luZG93LWZyYW1lIHdpbmRvdykpCisgICAgICAgICAoZnJhbWUgKHdp bmRvdy1mcmFtZSB3aW5kb3cpKQogICAgICAgICAgKHdpbmRvdy1zaWRlICh3aW5kb3ctcGFyYW1l dGVyIHdpbmRvdyAnd2luZG93LXNpZGUpKQotCSAob2xkLWJ1ZmZlciAod2luZG93LWJ1ZmZlciB3 aW5kb3cpKQotCSAobmV4dC1idWZmZXJzICh3aW5kb3ctbmV4dC1idWZmZXJzIHdpbmRvdykpCisg ICAgICAgICAob2xkLWJ1ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cpKQorICAgICAgICAgKG5l eHQtYnVmZmVycyAod2luZG93LW5leHQtYnVmZmVycyB3aW5kb3cpKQogICAgICAgICAgKHByZWQg KGZyYW1lLXBhcmFtZXRlciBmcmFtZSAnYnVmZmVyLXByZWRpY2F0ZSkpCiAgICAgICAgICAoc2tp cAogICAgICAgICAgIChjb25kCkBAIC00NzExLDExICs0NzExLDExIEBAIFRoaXMgZnVuY3Rpb24g aXMgY2FsbGVkIGJ5IGBuZXh0LWJ1ZmZlcicuIgogICAgICAgICAgICAoKG9yIHN3aXRjaC10by1w cmV2LWJ1ZmZlci1za2lwCiAgICAgICAgICAgICAgICAgKG5vdCBzd2l0Y2gtdG8tdmlzaWJsZS1i dWZmZXIpKQogICAgICAgICAgICAgZnJhbWUpKSkKLQkgbmV3LWJ1ZmZlciBlbnRyeSBraWxsZWQt YnVmZmVycyBza2lwcGVkKQorICAgICAgICAgbmV3LWJ1ZmZlciBlbnRyeSBraWxsZWQtYnVmZmVy cyBza2lwcGVkKQogICAgICh3aGVuICh3aW5kb3ctbWluaWJ1ZmZlci1wIHdpbmRvdykKICAgICAg IDs7IERvbid0IHN3aXRjaCBpbiBtaW5pYnVmZmVyIHdpbmRvdy4KICAgICAgICh1bmxlc3MgKHNl dHEgd2luZG93IChtaW5pYnVmZmVyLXNlbGVjdGVkLXdpbmRvdykpCi0JKGVycm9yICJXaW5kb3cg JXMgaXMgYSBtaW5pYnVmZmVyIHdpbmRvdyIgd2luZG93KSkpCisgICAgICAgIChlcnJvciAiV2lu ZG93ICVzIGlzIGEgbWluaWJ1ZmZlciB3aW5kb3ciIHdpbmRvdykpKQogCiAgICAgKHVubGVzcyAo bWVtcSAod2luZG93LWRlZGljYXRlZC1wIHdpbmRvdykgJyhuaWwgc2lkZSkpCiAgICAgICA7OyBE b24ndCBzd2l0Y2ggaW4gZGVkaWNhdGVkIHdpbmRvdy4KQEAgLTQ3MjQsMTggKzQ3MjQsMTggQEAg VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgYG5leHQtYnVmZmVyJy4iCiAgICAgKGNhdGNoICdm b3VuZAogICAgICAgOzsgU2NhbiBXSU5ET1cncyBuZXh0IGJ1ZmZlcnMgZmlyc3QuCiAgICAgICAo ZG9saXN0IChidWZmZXIgbmV4dC1idWZmZXJzKQotCSh3aGVuIChhbmQgKG9yIChidWZmZXItbGl2 ZS1wIGJ1ZmZlcikKLQkJICAgICAgIChub3QgKHNldHEga2lsbGVkLWJ1ZmZlcnMKLQkJCQkgIChj b25zIGJ1ZmZlciBraWxsZWQtYnVmZmVycykpKSkKLQkJICAgKG5vdCAoZXEgYnVmZmVyIG9sZC1i dWZmZXIpKQorICAgICAgICAod2hlbiAoYW5kIChvciAoYnVmZmVyLWxpdmUtcCBidWZmZXIpCisg ICAgICAgICAgICAgICAgICAgICAgIChub3QgKHNldHEga2lsbGVkLWJ1ZmZlcnMKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyBidWZmZXIga2lsbGVkLWJ1ZmZlcnMpKSkp CisgICAgICAgICAgICAgICAgICAgKG5vdCAoZXEgYnVmZmVyIG9sZC1idWZmZXIpKQogICAgICAg ICAgICAgICAgICAgIChvciAobnVsbCBwcmVkKSAoZnVuY2FsbCBwcmVkIGJ1ZmZlcikpCi0JCSAg IChzZXRxIGVudHJ5IChhc3NxIGJ1ZmZlciAod2luZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKSkp CisgICAgICAgICAgICAgICAgICAgKHNldHEgZW50cnkgKGFzc3EgYnVmZmVyICh3aW5kb3ctcHJl di1idWZmZXJzIHdpbmRvdykpKSkKICAgICAgICAgICAoaWYgKHN3aXRjaC10by1wcmV2LWJ1ZmZl ci1za2lwLXAgc2tpcCB3aW5kb3cgYnVmZmVyKQotCSAgICAgIChzZXRxIHNraXBwZWQgYnVmZmVy KQotCSAgICAoc2V0cSBuZXctYnVmZmVyIGJ1ZmZlcikKLQkgICAgKHNldC13aW5kb3ctYnVmZmVy LXN0YXJ0LWFuZC1wb2ludAotCSAgICAgd2luZG93IG5ldy1idWZmZXIgKG50aCAxIGVudHJ5KSAo bnRoIDIgZW50cnkpKQotCSAgICAodGhyb3cgJ2ZvdW5kIHQpKSkpCisgICAgICAgICAgICAgIChz ZXRxIHNraXBwZWQgYnVmZmVyKQorICAgICAgICAgICAgKHNldHEgbmV3LWJ1ZmZlciBidWZmZXIp CisgICAgICAgICAgICAoc2V0LXdpbmRvdy1idWZmZXItc3RhcnQtYW5kLXBvaW50CisgICAgICAg ICAgICAgd2luZG93IG5ldy1idWZmZXIgKG50aCAxIGVudHJ5KSAobnRoIDIgZW50cnkpKQorICAg ICAgICAgICAgKHRocm93ICdmb3VuZCB0KSkpKQogICAgICAgOzsgU2NhbiB0aGUgYnVmZmVyIGxp c3Qgb2YgV0lORE9XJ3MgZnJhbWUgbmV4dCwgc2tpcHBpbmcgcHJldmlvdXMKICAgICAgIDs7IGJ1 ZmZlcnMgZW50cmllcy4gIFNraXAgdGhpcyBzdGVwIGZvciBzaWRlIHdpbmRvd3MuCiAgICAgICAo dW5sZXNzIHdpbmRvdy1zaWRlCkBAIC00NzQ5LDI5ICs0NzQ5LDI5IEBAIFRoaXMgZnVuY3Rpb24g aXMgY2FsbGVkIGJ5IGBuZXh0LWJ1ZmZlcicuIgogICAgICAgICAgICAgICAgICAgICAgKG5vdCAo YnVmZmVyLWxvY2FsLXZhbHVlICd3aW5kb3ctLXNpZGVzLXNob3duIGJ1ZmZlcikpCiAgICAgICAg ICAgICAgICAgICAgICAobm90IChhc3NxIGJ1ZmZlciAod2luZG93LXByZXYtYnVmZmVycyB3aW5k b3cpKSkpCiAgICAgICAgICAgICAoaWYgKHN3aXRjaC10by1wcmV2LWJ1ZmZlci1za2lwLXAgc2tp cCB3aW5kb3cgYnVmZmVyKQotCSAgICAgICAgKHNldHEgc2tpcHBlZCAob3Igc2tpcHBlZCBidWZm ZXIpKQorICAgICAgICAgICAgICAgIChzZXRxIHNraXBwZWQgKG9yIHNraXBwZWQgYnVmZmVyKSkK ICAgICAgICAgICAgICAgKHNldHEgbmV3LWJ1ZmZlciBidWZmZXIpCiAgICAgICAgICAgICAgIChz ZXQtd2luZG93LWJ1ZmZlci1zdGFydC1hbmQtcG9pbnQgd2luZG93IG5ldy1idWZmZXIpCiAgICAg ICAgICAgICAgICh0aHJvdyAnZm91bmQgdCkpKSkpCiAgICAgICA7OyBTY2FuIFdJTkRPVydzIHJl dmVydGVkIHByZXZpb3VzIGJ1ZmZlcnMgbGFzdCAobXVzdCBub3QgdXNlCiAgICAgICA7OyBucmV2 ZXJzZSBoZXJlISkKICAgICAgIChkb2xpc3QgKGVudHJ5IChyZXZlcnNlICh3aW5kb3ctcHJldi1i dWZmZXJzIHdpbmRvdykpKQotCSh3aGVuIChhbmQgKHNldHEgbmV3LWJ1ZmZlciAoY2FyIGVudHJ5 KSkKLQkJICAgKG9yIChidWZmZXItbGl2ZS1wIG5ldy1idWZmZXIpCi0JCSAgICAgICAobm90IChz ZXRxIGtpbGxlZC1idWZmZXJzCi0JCQkJICAoY29ucyBuZXctYnVmZmVyIGtpbGxlZC1idWZmZXJz KSkpKQotCQkgICAobm90IChlcSBuZXctYnVmZmVyIG9sZC1idWZmZXIpKQorICAgICAgICAod2hl biAoYW5kIChzZXRxIG5ldy1idWZmZXIgKGNhciBlbnRyeSkpCisgICAgICAgICAgICAgICAgICAg KG9yIChidWZmZXItbGl2ZS1wIG5ldy1idWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAgIChu b3QgKHNldHEga2lsbGVkLWJ1ZmZlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY29ucyBuZXctYnVmZmVyIGtpbGxlZC1idWZmZXJzKSkpKQorICAgICAgICAgICAgICAgICAg IChub3QgKGVxIG5ldy1idWZmZXIgb2xkLWJ1ZmZlcikpCiAgICAgICAgICAgICAgICAgICAgKG9y IChudWxsIHByZWQpIChmdW5jYWxsIHByZWQgbmV3LWJ1ZmZlcikpKQogICAgICAgICAgIChpZiAo c3dpdGNoLXRvLXByZXYtYnVmZmVyLXNraXAtcCBza2lwIHdpbmRvdyBuZXctYnVmZmVyKQotCSAg ICAgIChzZXRxIHNraXBwZWQgKG9yIHNraXBwZWQgbmV3LWJ1ZmZlcikpCi0JICAgIChzZXQtd2lu ZG93LWJ1ZmZlci1zdGFydC1hbmQtcG9pbnQKLQkgICAgIHdpbmRvdyBuZXctYnVmZmVyIChudGgg MSBlbnRyeSkgKG50aCAyIGVudHJ5KSkKLQkgICAgKHRocm93ICdmb3VuZCB0KSkpKQorICAgICAg ICAgICAgICAoc2V0cSBza2lwcGVkIChvciBza2lwcGVkIG5ldy1idWZmZXIpKQorICAgICAgICAg ICAgKHNldC13aW5kb3ctYnVmZmVyLXN0YXJ0LWFuZC1wb2ludAorICAgICAgICAgICAgIHdpbmRv dyBuZXctYnVmZmVyIChudGggMSBlbnRyeSkgKG50aCAyIGVudHJ5KSkKKyAgICAgICAgICAgICh0 aHJvdyAnZm91bmQgdCkpKSkKIAogICAgICAgKHdoZW4gc2tpcHBlZAogICAgICAgICA7OyBTaG93 IGZpcnN0IHNraXBwZWQgYnVmZmVyLgotCShzZXRxIG5ldy1idWZmZXIgc2tpcHBlZCkKLQkoc2V0 LXdpbmRvdy1idWZmZXItc3RhcnQtYW5kLXBvaW50IHdpbmRvdyBuZXctYnVmZmVyKSkpCisgICAg ICAgIChzZXRxIG5ldy1idWZmZXIgc2tpcHBlZCkKKyAgICAgICAgKHNldC13aW5kb3ctYnVmZmVy LXN0YXJ0LWFuZC1wb2ludCB3aW5kb3cgbmV3LWJ1ZmZlcikpKQogCiAgICAgOzsgUmVtb3ZlIGBu ZXctYnVmZmVyJyBmcm9tIGFuZCByZXN0b3JlIFdJTkRPVydzIG5leHQgYnVmZmVycy4KICAgICAo c2V0LXdpbmRvdy1uZXh0LWJ1ZmZlcnMgd2luZG93IChkZWxxIG5ldy1idWZmZXIgbmV4dC1idWZm ZXJzKSkKQEAgLTQ3NzksMTAgKzQ3NzksMTAgQEAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg YG5leHQtYnVmZmVyJy4iCiAgICAgOzsgUmVtb3ZlIGtpbGxlZCBidWZmZXJzIGZyb20gV0lORE9X J3MgcHJldmlvdXMgYW5kIG5leHQgYnVmZmVycy4KICAgICAod2hlbiBraWxsZWQtYnVmZmVycwog ICAgICAgKGRvbGlzdCAoYnVmZmVyIGtpbGxlZC1idWZmZXJzKQotCShzZXQtd2luZG93LXByZXYt YnVmZmVycwotCSB3aW5kb3cgKGFzc3EtZGVsZXRlLWFsbCBidWZmZXIgKHdpbmRvdy1wcmV2LWJ1 ZmZlcnMgd2luZG93KSkpCi0JKHNldC13aW5kb3ctbmV4dC1idWZmZXJzCi0JIHdpbmRvdyAoZGVs cSBidWZmZXIgKHdpbmRvdy1uZXh0LWJ1ZmZlcnMgd2luZG93KSkpKSkKKyAgICAgICAgKHNldC13 aW5kb3ctcHJldi1idWZmZXJzCisgICAgICAgICB3aW5kb3cgKGFzc3EtZGVsZXRlLWFsbCBidWZm ZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpCisgICAgICAgIChzZXQtd2luZG93LW5l eHQtYnVmZmVycworICAgICAgICAgd2luZG93IChkZWxxIGJ1ZmZlciAod2luZG93LW5leHQtYnVm ZmVycyB3aW5kb3cpKSkpKQogCiAgICAgOzsgUmV0dXJuIG5ldy1idWZmZXIuCiAgICAgbmV3LWJ1 ZmZlcikpCkBAIC00Nzk5LDE2ICs0Nzk5LDE2IEBAIElmIEJVRkZFUiBpcyBub24tbmlsLCBpZ25v cmUgb2NjdXJyZW5jZXMgb2YgdGhhdCBidWZmZXIgaW4gTElTVC4iCiAgIDs7IFRoaXMgbG9naWMg aXMgbW9yZSBvciBsZXNzIGNvcGllZCBmcm9tIG90aGVyLWJ1ZmZlci4KICAgKHNldHEgZnJhbWUg KG9yIGZyYW1lIChzZWxlY3RlZC1mcmFtZSkpKQogICAobGV0ICgocHJlZCAoZnJhbWUtcGFyYW1l dGVyIGZyYW1lICdidWZmZXItcHJlZGljYXRlKSkKLQlmb3VuZCBidWYpCisgICAgICAgIGZvdW5k IGJ1ZikKICAgICAod2hpbGUgKGFuZCAobm90IGZvdW5kKSBsaXN0KQogICAgICAgKHNldHEgYnVm IChjYXIgbGlzdCkpCiAgICAgICAoaWYgKGFuZCAobm90IChlcSBidWZmZXIgYnVmKSkKLQkgICAg ICAgKGJ1ZmZlci1saXZlLXAgYnVmKQotCSAgICAgICAob3IgKG51bGwgcHJlZCkgKGZ1bmNhbGwg cHJlZCBidWYpKQotCSAgICAgICAobm90IChlcSAoYXJlZiAoYnVmZmVyLW5hbWUgYnVmKSAwKSA/ XHMpKQotCSAgICAgICAob3IgdmlzaWJsZS1vayAobnVsbCAoZ2V0LWJ1ZmZlci13aW5kb3cgYnVm ICd2aXNpYmxlKSkpKQotCSAgKHNldHEgZm91bmQgYnVmKQotCShzZXRxIGxpc3QgKGNkciBsaXN0 KSkpKQorICAgICAgICAgICAgICAgKGJ1ZmZlci1saXZlLXAgYnVmKQorICAgICAgICAgICAgICAg KG9yIChudWxsIHByZWQpIChmdW5jYWxsIHByZWQgYnVmKSkKKyAgICAgICAgICAgICAgIChub3Qg KGVxIChhcmVmIChidWZmZXItbmFtZSBidWYpIDApID9ccykpCisgICAgICAgICAgICAgICAob3Ig dmlzaWJsZS1vayAobnVsbCAoZ2V0LWJ1ZmZlci13aW5kb3cgYnVmICd2aXNpYmxlKSkpKQorICAg ICAgICAgIChzZXRxIGZvdW5kIGJ1ZikKKyAgICAgICAgKHNldHEgbGlzdCAoY2RyIGxpc3QpKSkp CiAgICAgKGNhciBsaXN0KSkpCiAKIChkZWZ1biBsYXN0LWJ1ZmZlciAoJm9wdGlvbmFsIGJ1ZmZl ciB2aXNpYmxlLW9rIGZyYW1lKQpAQCAtNDgyMSwxMSArNDgyMSwxMSBAQCBzZWxlY3RlZCBmcmFt ZSdzIGJ1ZmZlciBsaXN0LiAgSWYgbm8gc3VjaCBidWZmZXIgZXhpc3RzLCByZXR1cm4KIHRoZSBi dWZmZXIgYCpzY3JhdGNoKicsIGNyZWF0aW5nIGl0IGlmIG5lY2Vzc2FyeS4iCiAgIChzZXRxIGZy YW1lIChvciBmcmFtZSAoc2VsZWN0ZWQtZnJhbWUpKSkKICAgKG9yIChnZXQtbmV4dC12YWxpZC1i dWZmZXIgKG5yZXZlcnNlIChidWZmZXItbGlzdCBmcmFtZSkpCi0gCQkJICAgICBidWZmZXIgdmlz aWJsZS1vayBmcmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIHZpc2li bGUtb2sgZnJhbWUpCiAgICAgICAoZ2V0LWJ1ZmZlciAiKnNjcmF0Y2gqIikKICAgICAgIChsZXQg KChzY3JhdGNoIChnZXQtYnVmZmVyLWNyZWF0ZSAiKnNjcmF0Y2gqIikpKQotCShzZXQtYnVmZmVy LW1ham9yLW1vZGUgc2NyYXRjaCkKLQlzY3JhdGNoKSkpCisgICAgICAgIChzZXQtYnVmZmVyLW1h am9yLW1vZGUgc2NyYXRjaCkKKyAgICAgICAgc2NyYXRjaCkpKQogCiAoZGVmY3VzdG9tIGZyYW1l LWF1dG8taGlkZS1mdW5jdGlvbiAjJ2ljb25pZnktZnJhbWUKICAgIkZ1bmN0aW9uIGNhbGxlZCB0 byBhdXRvbWF0aWNhbGx5IGhpZGUgZnJhbWVzLgpAQCAtNDg1NCwxOCArNDg1NCwxOCBAQCBpZiBX SU5ET1cgZ2V0cyBkZWxldGVkIG9yIGl0cyBmcmFtZSBpcyBhdXRvLWhpZGRlbi4iCiAgICAgKGxl dCAoKGRlbGV0YWJsZSAod2luZG93LWRlbGV0YWJsZS1wIHdpbmRvdykpKQogICAgICAgKGNvbmQK ICAgICAgICAoKGVxIGRlbGV0YWJsZSAnZnJhbWUpCi0JKGxldCAoKGZyYW1lICh3aW5kb3ctZnJh bWUgd2luZG93KSkpCi0JICAoY29uZAotCSAgIChraWxsCi0JICAgIChkZWxldGUtZnJhbWUgZnJh bWUpKQorICAgICAgICAobGV0ICgoZnJhbWUgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkKKyAgICAg ICAgICAoY29uZAorICAgICAgICAgICAoa2lsbAorICAgICAgICAgICAgKGRlbGV0ZS1mcmFtZSBm cmFtZSkpCiAgICAgICAgICAgICgoZnVuY3Rpb25wIChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ2F1 dG8taGlkZS1mdW5jdGlvbikpCiAgICAgICAgICAgICAoZnVuY2FsbCAoZnJhbWUtcGFyYW1ldGVy IGZyYW1lICdhdXRvLWhpZGUtZnVuY3Rpb24pKSkKICAgICAgICAgICAgKChmdW5jdGlvbnAgZnJh bWUtYXV0by1oaWRlLWZ1bmN0aW9uKQotCSAgICAoZnVuY2FsbCBmcmFtZS1hdXRvLWhpZGUtZnVu Y3Rpb24gZnJhbWUpKSkpCi0JJ2ZyYW1lKQorICAgICAgICAgICAgKGZ1bmNhbGwgZnJhbWUtYXV0 by1oaWRlLWZ1bmN0aW9uIGZyYW1lKSkpKQorICAgICAgICAnZnJhbWUpCiAgICAgICAgKGRlbGV0 YWJsZQotCShkZWxldGUtd2luZG93IHdpbmRvdykKLQl0KSkpKSkKKyAgICAgICAgKGRlbGV0ZS13 aW5kb3cgd2luZG93KQorICAgICAgICB0KSkpKSkKIAogKGRlZnVuIGJ1cnktYnVmZmVyICgmb3B0 aW9uYWwgYnVmZmVyLW9yLW5hbWUpCiAgICJQdXQgQlVGRkVSLU9SLU5BTUUgYXQgdGhlIGVuZCBv ZiB0aGUgbGlzdCBvZiBhbGwgYnVmZmVycy4KQEAgLTQ5ODIsMjUgKzQ5ODIsMjUgQEAgdGhhdCBk b2VzIG5vdCBzaG93IHRoYXQgYnVmZmVyLCByZW1vdmUgdGhlIGJ1ZmZlciBmcm9tIHRoYXQKIHdp bmRvdydzIGxpc3RzIG9mIHByZXZpb3VzIGFuZCBuZXh0IGJ1ZmZlcnMuIgogICAoaW50ZXJhY3Rp dmUgImJEZWxldGUgd2luZG93cyBvbiAoYnVmZmVyKTpcblAiKQogICAobGV0ICgoYnVmZmVyICh3 aW5kb3ctbm9ybWFsaXplLWJ1ZmZlciBidWZmZXItb3ItbmFtZSkpCi0JOzsgSGFuZGxlIHRoZSAi aW52ZXJ0ZWQiIG1lYW5pbmcgb2YgdGhlIEZSQU1FIGFyZ3VtZW50IHdydCBvdGhlcgotCTs7IGB3 aW5kb3ctbGlzdC0xJyBiYXNlZCBmdW5jdGlvbi4KLQkoYWxsLWZyYW1lcyAoY29uZCAoKG5vdCBm cmFtZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZyYW1lKSkpKQorICAgICAgICA7OyBIYW5k bGUgdGhlICJpbnZlcnRlZCIgbWVhbmluZyBvZiB0aGUgRlJBTUUgYXJndW1lbnQgd3J0IG90aGVy CisgICAgICAgIDs7IGB3aW5kb3ctbGlzdC0xJyBiYXNlZCBmdW5jdGlvbi4KKyAgICAgICAgKGFs bC1mcmFtZXMgKGNvbmQgKChub3QgZnJhbWUpIHQpICgoZXEgZnJhbWUgdCkgbmlsKSAodCBmcmFt ZSkpKSkKICAgICAoZG9saXN0ICh3aW5kb3cgKHdpbmRvdy1saXN0LTEgbmlsIG5pbCBhbGwtZnJh bWVzKSkKICAgICAgIChpZiAoZXEgKHdpbmRvdy1idWZmZXIgd2luZG93KSBidWZmZXIpCi0JICAo bGV0ICgoZGVsZXRhYmxlICh3aW5kb3ctZGVsZXRhYmxlLXAgd2luZG93KSkpCi0JICAgIChjb25k Ci0JICAgICAoKGFuZCAoZXEgZGVsZXRhYmxlICdmcmFtZSkgKHdpbmRvdy1kZWRpY2F0ZWQtcCB3 aW5kb3cpKQotCSAgICAgIDs7IERlbGV0ZSBmcmFtZSBpZiBhbmQgb25seSBpZiB3aW5kb3cgaXMg ZGVkaWNhdGVkLgotCSAgICAgIChkZWxldGUtZnJhbWUgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkK LQkgICAgICgoZXEgZGVsZXRhYmxlIHQpCi0JICAgICAgOzsgRGVsZXRlIHdpbmRvdy4KLQkgICAg ICAoZGVsZXRlLXdpbmRvdyB3aW5kb3cpKQotCSAgICAgKHQKLQkgICAgICA7OyBJbiB3aW5kb3cg c3dpdGNoIHRvIHByZXZpb3VzIGJ1ZmZlci4KLQkgICAgICAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQt cCB3aW5kb3cgbmlsKQotCSAgICAgIChzd2l0Y2gtdG8tcHJldi1idWZmZXIgd2luZG93ICdidXJ5 KSkpKQotCTs7IElmIGEgd2luZG93IGRvZXNuJ3Qgc2hvdyBCVUZGRVIsIHVucmVjb3JkIEJVRkZF UiBpbiBpdC4KLQkodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5kb3cgYnVmZmVyKSkpKSkKKyAg ICAgICAgICAobGV0ICgoZGVsZXRhYmxlICh3aW5kb3ctZGVsZXRhYmxlLXAgd2luZG93KSkpCisg ICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICgoYW5kIChlcSBkZWxldGFibGUgJ2ZyYW1l KSAod2luZG93LWRlZGljYXRlZC1wIHdpbmRvdykpCisgICAgICAgICAgICAgIDs7IERlbGV0ZSBm cmFtZSBpZiBhbmQgb25seSBpZiB3aW5kb3cgaXMgZGVkaWNhdGVkLgorICAgICAgICAgICAgICAo ZGVsZXRlLWZyYW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkpCisgICAgICAgICAgICAgKChlcSBk ZWxldGFibGUgdCkKKyAgICAgICAgICAgICAgOzsgRGVsZXRlIHdpbmRvdy4KKyAgICAgICAgICAg ICAgKGRlbGV0ZS13aW5kb3cgd2luZG93KSkKKyAgICAgICAgICAgICAodAorICAgICAgICAgICAg ICA7OyBJbiB3aW5kb3cgc3dpdGNoIHRvIHByZXZpb3VzIGJ1ZmZlci4KKyAgICAgICAgICAgICAg KHNldC13aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93IG5pbCkKKyAgICAgICAgICAgICAgKHN3aXRj aC10by1wcmV2LWJ1ZmZlciB3aW5kb3cgJ2J1cnkpKSkpCisgICAgICAgIDs7IElmIGEgd2luZG93 IGRvZXNuJ3Qgc2hvdyBCVUZGRVIsIHVucmVjb3JkIEJVRkZFUiBpbiBpdC4KKyAgICAgICAgKHVu cmVjb3JkLXdpbmRvdy1idWZmZXIgd2luZG93IGJ1ZmZlcikpKSkpCiAKIChkZWZ1biByZXBsYWNl LWJ1ZmZlci1pbi13aW5kb3dzICgmb3B0aW9uYWwgYnVmZmVyLW9yLW5hbWUpCiAgICJSZXBsYWNl IEJVRkZFUi1PUi1OQU1FIHdpdGggc29tZSBvdGhlciBidWZmZXIgaW4gYWxsIHdpbmRvd3Mgc2hv d2luZyBpdC4KQEAgLTUwMTksMTIgKzUwMTksMTIgQEAgYWxsIHdpbmRvdy1sb2NhbCBidWZmZXIg bGlzdHMuIgogICAobGV0ICgoYnVmZmVyICh3aW5kb3ctbm9ybWFsaXplLWJ1ZmZlciBidWZmZXIt b3ItbmFtZSkpKQogICAgIChkb2xpc3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgbmlsIHQp KQogICAgICAgKGlmIChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKLQkgICh1bmxl c3MgKHdpbmRvdy0tZGVsZXRlIHdpbmRvdyB0IHQpCi0JICAgIDs7IFN3aXRjaCB0byBhbm90aGVy IGJ1ZmZlciBpbiB3aW5kb3cuCi0JICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyBu aWwpCi0JICAgIChzd2l0Y2gtdG8tcHJldi1idWZmZXIgd2luZG93ICdraWxsKSkKLQk7OyBVbnJl Y29yZCBCVUZGRVIgaW4gV0lORE9XLgotCSh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRvdyBi dWZmZXIpKSkpKQorICAgICAgICAgICh1bmxlc3MgKHdpbmRvdy0tZGVsZXRlIHdpbmRvdyB0IHQp CisgICAgICAgICAgICA7OyBTd2l0Y2ggdG8gYW5vdGhlciBidWZmZXIgaW4gd2luZG93LgorICAg ICAgICAgICAgKHNldC13aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93IG5pbCkKKyAgICAgICAgICAg IChzd2l0Y2gtdG8tcHJldi1idWZmZXIgd2luZG93ICdraWxsKSkKKyAgICAgICAgOzsgVW5yZWNv cmQgQlVGRkVSIGluIFdJTkRPVy4KKyAgICAgICAgKHVucmVjb3JkLXdpbmRvdy1idWZmZXIgd2lu ZG93IGJ1ZmZlcikpKSkpCiAKIChkZWZjdXN0b20gcXVpdC13aW5kb3ctaG9vayBuaWwKICAgIkhv b2sgcnVuIGJlZm9yZSBwZXJmb3JtaW5nIGFueSBvdGhlciBhY3Rpb25zIGluIHRoZSBgcXVpdC13 aW5kb3cnIGNvbW1hbmQuIgpAQCAtNTA2NSw3OSArNTA2NSw3OSBAQCBuaWwgbWVhbnMgdG8gbm90 IGhhbmRsZSB0aGUgYnVmZmVyIGluIGEgcGFydGljdWxhciB3YXkuICBUaGlzCiBga2lsbCcgbWVh bnMgdG8ga2lsbCBXSU5ET1cncyBidWZmZXIuIgogICAoc2V0cSB3aW5kb3cgKHdpbmRvdy1ub3Jt YWxpemUtd2luZG93IHdpbmRvdyB0KSkKICAgKGxldCogKChidWZmZXIgKHdpbmRvdy1idWZmZXIg d2luZG93KSkKLQkgKHF1aXQtcmVzdG9yZSAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQt cmVzdG9yZSkpCi0JIChwcmV2LWJ1ZmZlcgotCSAgKGxldCogKChwcmV2LWJ1ZmZlcnMgKHdpbmRv dy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkKLQkJIChwcmV2LWJ1ZmZlciAoY2FhciBwcmV2LWJ1ZmZl cnMpKSkKLQkgICAgKGFuZCAob3IgKG5vdCAoZXEgcHJldi1idWZmZXIgYnVmZmVyKSkKLQkJICAg ICAoYW5kIChjZHIgcHJldi1idWZmZXJzKQotCQkJICAobm90IChlcSAoc2V0cSBwcmV2LWJ1ZmZl ciAoY2FkciBwcmV2LWJ1ZmZlcnMpKQotCQkJCSAgIGJ1ZmZlcikpKSkKLQkJIHByZXYtYnVmZmVy KSkpCi0JIHF1YWQgZW50cnkpCisgICAgICAgICAocXVpdC1yZXN0b3JlICh3aW5kb3ctcGFyYW1l dGVyIHdpbmRvdyAncXVpdC1yZXN0b3JlKSkKKyAgICAgICAgIChwcmV2LWJ1ZmZlcgorICAgICAg ICAgIChsZXQqICgocHJldi1idWZmZXJzICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpCisg ICAgICAgICAgICAgICAgIChwcmV2LWJ1ZmZlciAoY2FhciBwcmV2LWJ1ZmZlcnMpKSkKKyAgICAg ICAgICAgIChhbmQgKG9yIChub3QgKGVxIHByZXYtYnVmZmVyIGJ1ZmZlcikpCisgICAgICAgICAg ICAgICAgICAgICAoYW5kIChjZHIgcHJldi1idWZmZXJzKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAobm90IChlcSAoc2V0cSBwcmV2LWJ1ZmZlciAoY2FkciBwcmV2LWJ1ZmZlcnMpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIpKSkpCisgICAgICAgICAgICAg ICAgIHByZXYtYnVmZmVyKSkpCisgICAgICAgICBxdWFkIGVudHJ5KQogICAgIChjb25kCiAgICAg ICgoYW5kIChub3QgcHJldi1idWZmZXIpCi0JICAgKGVxIChudGggMSBxdWl0LXJlc3RvcmUpICd0 YWIpCi0JICAgKGVxIChudGggMyBxdWl0LXJlc3RvcmUpIGJ1ZmZlcikpCisgICAgICAgICAgIChl cSAobnRoIDEgcXVpdC1yZXN0b3JlKSAndGFiKQorICAgICAgICAgICAoZXEgKG50aCAzIHF1aXQt cmVzdG9yZSkgYnVmZmVyKSkKICAgICAgICh0YWItYmFyLWNsb3NlLXRhYikKICAgICAgIDs7IElm IHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHdpbmRvdyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0IGl0 LgogICAgICAgKHdoZW4gKHdpbmRvdy1saXZlLXAgKG50aCAyIHF1aXQtcmVzdG9yZSkpCi0JKHNl bGVjdC13aW5kb3cgKG50aCAyIHF1aXQtcmVzdG9yZSkpKSkKKyAgICAgICAgKHNlbGVjdC13aW5k b3cgKG50aCAyIHF1aXQtcmVzdG9yZSkpKSkKICAgICAgKChhbmQgKG5vdCBwcmV2LWJ1ZmZlcikK LQkgICAob3IgKGVxIChudGggMSBxdWl0LXJlc3RvcmUpICdmcmFtZSkKLQkgICAgICAgKGFuZCAo ZXEgKG50aCAxIHF1aXQtcmVzdG9yZSkgJ3dpbmRvdykKLQkJICAgIDs7IElmIHRoZSB3aW5kb3cg aGFzIGJlZW4gY3JlYXRlZCBvbiBhbiBleGlzdGluZwotCQkgICAgOzsgZnJhbWUgYW5kIGVuZGVk IHVwIGFzIHRoZSBzb2xlIHdpbmRvdyBvbiB0aGF0Ci0JCSAgICA7OyBmcmFtZSwgZG8gbm90IGRl bGV0ZSBpdCAoQnVnIzEyNzY0KS4KLQkJICAgIChub3QgKGVxIHdpbmRvdyAoZnJhbWUtcm9vdC13 aW5kb3cgd2luZG93KSkpKSkKLQkgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKQot CSAgIDs7IERlbGV0ZSBXSU5ET1cgaWYgcG9zc2libGUuCi0JICAgKHdpbmRvdy0tZGVsZXRlIHdp bmRvdyBuaWwgKGVxIGJ1cnktb3Ita2lsbCAna2lsbCkpKQorICAgICAgICAgICAob3IgKGVxIChu dGggMSBxdWl0LXJlc3RvcmUpICdmcmFtZSkKKyAgICAgICAgICAgICAgIChhbmQgKGVxIChudGgg MSBxdWl0LXJlc3RvcmUpICd3aW5kb3cpCisgICAgICAgICAgICAgICAgICAgIDs7IElmIHRoZSB3 aW5kb3cgaGFzIGJlZW4gY3JlYXRlZCBvbiBhbiBleGlzdGluZworICAgICAgICAgICAgICAgICAg ICA7OyBmcmFtZSBhbmQgZW5kZWQgdXAgYXMgdGhlIHNvbGUgd2luZG93IG9uIHRoYXQKKyAgICAg ICAgICAgICAgICAgICAgOzsgZnJhbWUsIGRvIG5vdCBkZWxldGUgaXQgKEJ1ZyMxMjc2NCkuCisg ICAgICAgICAgICAgICAgICAgIChub3QgKGVxIHdpbmRvdyAoZnJhbWUtcm9vdC13aW5kb3cgd2lu ZG93KSkpKSkKKyAgICAgICAgICAgKGVxIChudGggMyBxdWl0LXJlc3RvcmUpIGJ1ZmZlcikKKyAg ICAgICAgICAgOzsgRGVsZXRlIFdJTkRPVyBpZiBwb3NzaWJsZS4KKyAgICAgICAgICAgKHdpbmRv dy0tZGVsZXRlIHdpbmRvdyBuaWwgKGVxIGJ1cnktb3Ita2lsbCAna2lsbCkpKQogICAgICAgOzsg SWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgd2luZG93IGlzIHN0aWxsIGFsaXZlLCBzZWxlY3Qg aXQuCiAgICAgICAod2hlbiAod2luZG93LWxpdmUtcCAobnRoIDIgcXVpdC1yZXN0b3JlKSkKLQko c2VsZWN0LXdpbmRvdyAobnRoIDIgcXVpdC1yZXN0b3JlKSkpKQorICAgICAgICAoc2VsZWN0LXdp bmRvdyAobnRoIDIgcXVpdC1yZXN0b3JlKSkpKQogICAgICAoKGFuZCAobGlzdHAgKHNldHEgcXVh ZCAobnRoIDEgcXVpdC1yZXN0b3JlKSkpCi0JICAgKGJ1ZmZlci1saXZlLXAgKGNhciBxdWFkKSkK LQkgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkKKyAgICAgICAgICAgKGJ1ZmZl ci1saXZlLXAgKGNhciBxdWFkKSkKKyAgICAgICAgICAgKGVxIChudGggMyBxdWl0LXJlc3RvcmUp IGJ1ZmZlcikpCiAgICAgICA7OyBTaG93IGFub3RoZXIgYnVmZmVyIHN0b3JlZCBpbiBxdWl0LXJl c3RvcmUgcGFyYW1ldGVyLgogICAgICAgKHdoZW4gKGFuZCAoaW50ZWdlcnAgKG50aCAzIHF1YWQp KQotCQkgKGlmICh3aW5kb3ctY29tYmluZWQtcCB3aW5kb3cpCisgICAgICAgICAgICAgICAgIChp ZiAod2luZG93LWNvbWJpbmVkLXAgd2luZG93KQogICAgICAgICAgICAgICAgICAgICAgKC89IChu dGggMyBxdWFkKSAod2luZG93LXRvdGFsLWhlaWdodCB3aW5kb3cpKQogICAgICAgICAgICAgICAg ICAgICgvPSAobnRoIDMgcXVhZCkgKHdpbmRvdy10b3RhbC13aWR0aCB3aW5kb3cpKSkpCi0JOzsg VHJ5IHRvIHJlc2l6ZSBXSU5ET1cgdG8gaXRzIG9sZCBoZWlnaHQgYnV0IGRvbid0IHNpZ25hbCBh bgotCTs7IGVycm9yLgotCShjb25kaXRpb24tY2FzZSBuaWwKLQkgICAgKHdpbmRvdy1yZXNpemUK KyAgICAgICAgOzsgVHJ5IHRvIHJlc2l6ZSBXSU5ET1cgdG8gaXRzIG9sZCBoZWlnaHQgYnV0IGRv bid0IHNpZ25hbCBhbgorICAgICAgICA7OyBlcnJvci4KKyAgICAgICAgKGNvbmRpdGlvbi1jYXNl IG5pbAorICAgICAgICAgICAgKHdpbmRvdy1yZXNpemUKICAgICAgICAgICAgICB3aW5kb3cKICAg ICAgICAgICAgICAoLSAobnRoIDMgcXVhZCkgKGlmICh3aW5kb3ctY29tYmluZWQtcCB3aW5kb3cp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LXRvdGFsLWhlaWdodCB3 aW5kb3cpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy10b3RhbC13aWR0 aCB3aW5kb3cpKSkKICAgICAgICAgICAgICAod2luZG93LWNvbWJpbmVkLXAgd2luZG93IHQpKQot CSAgKGVycm9yIG5pbCkpKQorICAgICAgICAgIChlcnJvciBuaWwpKSkKICAgICAgIChzZXQtd2lu ZG93LWRlZGljYXRlZC1wIHdpbmRvdyBuaWwpCiAgICAgICA7OyBSZXN0b3JlIFdJTkRPVydzIHBy ZXZpb3VzIGJ1ZmZlciwgc3RhcnQgYW5kIHBvaW50IHBvc2l0aW9uLgogICAgICAgKHNldC13aW5k b3ctYnVmZmVyLXN0YXJ0LWFuZC1wb2ludAogICAgICAgIHdpbmRvdyAobnRoIDAgcXVhZCkgKG50 aCAxIHF1YWQpIChudGggMiBxdWFkKSkKICAgICAgIDs7IERlYWwgd2l0aCB0aGUgYnVmZmVyIHdl IGp1c3QgcmVtb3ZlZCBmcm9tIFdJTkRPVy4KICAgICAgIChzZXRxIGVudHJ5IChhbmQgKGVxIGJ1 cnktb3Ita2lsbCAnYXBwZW5kKQotCQkgICAgICAgKGFzc3EgYnVmZmVyICh3aW5kb3ctcHJldi1i dWZmZXJzIHdpbmRvdykpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGFzc3EgYnVmZmVyICh3 aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpKSkKICAgICAgICh3aGVuIGJ1cnktb3Ita2lsbAot CTs7IFJlbW92ZSBidWZmZXIgZnJvbSBXSU5ET1cncyBwcmV2aW91cyBhbmQgbmV4dCBidWZmZXJz LgotCShzZXQtd2luZG93LXByZXYtYnVmZmVycwotCSB3aW5kb3cgKGFzc3EtZGVsZXRlLWFsbCBi dWZmZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpCi0JKHNldC13aW5kb3ctbmV4dC1i dWZmZXJzCi0JIHdpbmRvdyAoZGVscSBidWZmZXIgKHdpbmRvdy1uZXh0LWJ1ZmZlcnMgd2luZG93 KSkpKQorICAgICAgICA7OyBSZW1vdmUgYnVmZmVyIGZyb20gV0lORE9XJ3MgcHJldmlvdXMgYW5k IG5leHQgYnVmZmVycy4KKyAgICAgICAgKHNldC13aW5kb3ctcHJldi1idWZmZXJzCisgICAgICAg ICB3aW5kb3cgKGFzc3EtZGVsZXRlLWFsbCBidWZmZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2lu ZG93KSkpCisgICAgICAgIChzZXQtd2luZG93LW5leHQtYnVmZmVycworICAgICAgICAgd2luZG93 IChkZWxxIGJ1ZmZlciAod2luZG93LW5leHQtYnVmZmVycyB3aW5kb3cpKSkpCiAgICAgICAod2hl biBlbnRyeQotCTs7IEFwcGVuZCBvbGQgYnVmZmVyJ3MgZW50cnkgdG8gbGlzdCBvZiBXSU5ET1cn cyBwcmV2aW91cwotCTs7IGJ1ZmZlcnMgc28gaXQncyBsZXNzIGxpa2VseSB0byBnZXQgc3dpdGNo ZWQgdG8gc29vbiBidXQKLQk7OyBgZGlzcGxheS1idWZmZXItaW4tcHJldmlvdXMtd2luZG93JyBj YW4gbmV2ZXJ0aGVsZXNzIGZpbmQgaXQuCi0JKHNldC13aW5kb3ctcHJldi1idWZmZXJzCi0JIHdp bmRvdyAoYXBwZW5kICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykgKGxpc3QgZW50cnkpKSkp CisgICAgICAgIDs7IEFwcGVuZCBvbGQgYnVmZmVyJ3MgZW50cnkgdG8gbGlzdCBvZiBXSU5ET1cn cyBwcmV2aW91cworICAgICAgICA7OyBidWZmZXJzIHNvIGl0J3MgbGVzcyBsaWtlbHkgdG8gZ2V0 IHN3aXRjaGVkIHRvIHNvb24gYnV0CisgICAgICAgIDs7IGBkaXNwbGF5LWJ1ZmZlci1pbi1wcmV2 aW91cy13aW5kb3cnIGNhbiBuZXZlcnRoZWxlc3MgZmluZCBpdC4KKyAgICAgICAgKHNldC13aW5k b3ctcHJldi1idWZmZXJzCisgICAgICAgICB3aW5kb3cgKGFwcGVuZCAod2luZG93LXByZXYtYnVm ZmVycyB3aW5kb3cpIChsaXN0IGVudHJ5KSkpKQogICAgICAgOzsgUmVzZXQgdGhlIHF1aXQtcmVz dG9yZSBwYXJhbWV0ZXIuCiAgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0 LXJlc3RvcmUgbmlsKQogICAgICAgOzsgU2VsZWN0IG9sZCB3aW5kb3cuCiAgICAgICAod2hlbiAo d2luZG93LWxpdmUtcCAobnRoIDIgcXVpdC1yZXN0b3JlKSkKLQkoc2VsZWN0LXdpbmRvdyAobnRo IDIgcXVpdC1yZXN0b3JlKSkpKQorICAgICAgICAoc2VsZWN0LXdpbmRvdyAobnRoIDIgcXVpdC1y ZXN0b3JlKSkpKQogICAgICAodAogICAgICAgOzsgU2hvdyBzb21lIG90aGVyIGJ1ZmZlciBpbiBX SU5ET1cgYW5kIHJlc2V0IHRoZSBxdWl0LXJlc3RvcmUKICAgICAgIDs7IHBhcmFtZXRlci4KQEAg LTUxODUsMTQgKzUxODUsMTQgQEAgVGhpcyBmdW5jdGlvbiBjYWxscyBgcXVpdC13aW5kb3cnIG9u IGFsbCBjYW5kaWRhdGUgd2luZG93cwogc2hvd2luZyBCVUZGRVItT1ItTkFNRS4iCiAgIChpbnRl cmFjdGl2ZSAiYlF1aXQgd2luZG93cyBvbiAoYnVmZmVyKTpcblAiKQogICAobGV0ICgoYnVmZmVy ICh3aW5kb3ctbm9ybWFsaXplLWJ1ZmZlciBidWZmZXItb3ItbmFtZSkpCi0JOzsgSGFuZGxlIHRo ZSAiaW52ZXJ0ZWQiIG1lYW5pbmcgb2YgdGhlIEZSQU1FIGFyZ3VtZW50IHdydCBvdGhlcgotCTs7 IGB3aW5kb3ctbGlzdC0xJyBiYXNlZCBmdW5jdGlvbi4KLQkoYWxsLWZyYW1lcyAoY29uZCAoKG5v dCBmcmFtZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZyYW1lKSkpKQorICAgICAgICA7OyBI YW5kbGUgdGhlICJpbnZlcnRlZCIgbWVhbmluZyBvZiB0aGUgRlJBTUUgYXJndW1lbnQgd3J0IG90 aGVyCisgICAgICAgIDs7IGB3aW5kb3ctbGlzdC0xJyBiYXNlZCBmdW5jdGlvbi4KKyAgICAgICAg KGFsbC1mcmFtZXMgKGNvbmQgKChub3QgZnJhbWUpIHQpICgoZXEgZnJhbWUgdCkgbmlsKSAodCBm cmFtZSkpKSkKICAgICAoZG9saXN0ICh3aW5kb3cgKHdpbmRvdy1saXN0LTEgbmlsIG5pbCBhbGwt ZnJhbWVzKSkKICAgICAgIChpZiAoZXEgKHdpbmRvdy1idWZmZXIgd2luZG93KSBidWZmZXIpCi0J ICAocXVpdC13aW5kb3cga2lsbCB3aW5kb3cpCi0JOzsgSWYgYSB3aW5kb3cgZG9lc24ndCBzaG93 IEJVRkZFUiwgdW5yZWNvcmQgQlVGRkVSIGluIGl0LgotCSh1bnJlY29yZC13aW5kb3ctYnVmZmVy IHdpbmRvdyBidWZmZXIpKSkpKQorICAgICAgICAgIChxdWl0LXdpbmRvdyBraWxsIHdpbmRvdykK KyAgICAgICAgOzsgSWYgYSB3aW5kb3cgZG9lc24ndCBzaG93IEJVRkZFUiwgdW5yZWNvcmQgQlVG RkVSIGluIGl0LgorICAgICAgICAodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5kb3cgYnVmZmVy KSkpKSkKIAwKIChkZWZ1biB3aW5kb3ctLWNvbWJpbmF0aW9uLXJlc2l6YWJsZSAocGFyZW50ICZv cHRpb25hbCBob3Jpem9udGFsKQogICAiUmV0dXJuIG51bWJlciBvZiBwaXhlbHMgcmVjb3ZlcmFi bGUgZnJvbSBoZWlnaHQgb2Ygd2luZG93IFBBUkVOVC4KQEAgLTUyMDMsMTIgKzUyMDMsMTIgQEAg YnkgdGhlaXIgbnVtYmVyIHBsdXMgMS4gIElmIEhPUklaT05UQUwgaXMgbm9uLW5pbCwgcmV0dXJu IHRoZSBzdW0KIG9mIHRoZSBwaXhlbCB3aWR0aHMgb2YgYWxsIG5vbi1maXhlZCB3aWR0aCBjaGls ZCB3aW5kb3dzIG9mCiBQQVJFTlQgZGl2aWRlZCBieSB0aGVpciBudW1iZXIgcGx1cyAxLiIKICAg KGxldCAoKHNpYmxpbmcgKHdpbmRvdy1jaGlsZCBwYXJlbnQpKQotCShudW1iZXIgMCkKLQkoc2l6 ZSAwKSkKKyAgICAgICAgKG51bWJlciAwKQorICAgICAgICAoc2l6ZSAwKSkKICAgICAod2hpbGUg c2libGluZwogICAgICAgKHVubGVzcyAod2luZG93LXNpemUtZml4ZWQtcCBzaWJsaW5nIGhvcml6 b250YWwpCi0JKHNldHEgbnVtYmVyICgxKyBudW1iZXIpKQotCShzZXRxIHNpemUgKCsgKHdpbmRv dy1zaXplIHNpYmxpbmcgaG9yaXpvbnRhbCB0KSBzaXplKSkpCisgICAgICAgIChzZXRxIG51bWJl ciAoMSsgbnVtYmVyKSkKKyAgICAgICAgKHNldHEgc2l6ZSAoKyAod2luZG93LXNpemUgc2libGlu ZyBob3Jpem9udGFsIHQpIHNpemUpKSkKICAgICAgIChzZXRxIHNpYmxpbmcgKHdpbmRvdy1uZXh0 LXNpYmxpbmcgc2libGluZykpKQogICAgICgvIHNpemUgKDErIG51bWJlcikpKSkKIApAQCAtNTI2 MiwyOCArNTI2MiwyOCBAQCBuZXcgd2luZG93IGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUgd2luZG93 IHNlbGVjdGVkIG9uIFdJTkRPVydzCiBmcmFtZS4gIFRoZSBzZWxlY3RlZCB3aW5kb3cgaXMgbm90 IGNoYW5nZWQgYnkgdGhpcyBmdW5jdGlvbi4iCiAgIChzZXRxIHdpbmRvdyAod2luZG93LW5vcm1h bGl6ZS13aW5kb3cgd2luZG93KSkKICAgKGxldCogKChzaWRlIChjb25kCi0JCSgobm90IHNpZGUp ICdiZWxvdykKKyAgICAgICAgICAgICAgICAoKG5vdCBzaWRlKSAnYmVsb3cpCiAgICAgICAgICAg ICAgICAgKChlcSBzaWRlICd1cCkgJ2Fib3ZlKQogICAgICAgICAgICAgICAgICgoZXEgc2lkZSAn ZG93bikgJ2JlbG93KQotCQkoKG1lbXEgc2lkZSAnKGJlbG93IGFib3ZlIHJpZ2h0IGxlZnQpKSBz aWRlKQotCQkodCAncmlnaHQpKSkKLQkgKGhvcml6b250YWwgKG5vdCAobWVtcSBzaWRlICcoYmVs b3cgYWJvdmUpKSkpCi0JIChmcmFtZSAod2luZG93LWZyYW1lIHdpbmRvdykpCi0JIChwYXJlbnQg KHdpbmRvdy1wYXJlbnQgd2luZG93KSkKLQkgKGZ1bmN0aW9uICh3aW5kb3ctcGFyYW1ldGVyIHdp bmRvdyAnc3BsaXQtd2luZG93KSkKLQkgKHdpbmRvdy1zaWRlICh3aW5kb3ctcGFyYW1ldGVyIHdp bmRvdyAnd2luZG93LXNpZGUpKQotCSA7OyBSZWJpbmQgdGhlIGZvbGxvd2luZyB0d28gdmFyaWFi bGVzIHNpbmNlIGluIHNvbWUgY2FzZXMgd2UKLQkgOzsgaGF2ZSB0byBvdmVycmlkZSB0aGVpciB2 YWx1ZS4KLQkgKHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCB3aW5kb3ctY29tYmluYXRpb24tbGlt aXQpCi0JICh3aW5kb3ctY29tYmluYXRpb24tcmVzaXplIHdpbmRvdy1jb21iaW5hdGlvbi1yZXNp emUpCi0JIChjaGFyLXNpemUgKGZyYW1lLWNoYXItc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCkpCi0J IChwaXhlbC1zaXplCi0JICAod2hlbiAobnVtYmVycCBzaXplKQotCSAgICAod2luZG93LS1zaXpl LXRvLXBpeGVsIHdpbmRvdyBzaXplIGhvcml6b250YWwgcGl4ZWx3aXNlIHQpKSkKLQkgKGRpdmlk ZXItd2lkdGggKGlmIGhvcml6b250YWwKLQkJCSAgICAoZnJhbWUtcmlnaHQtZGl2aWRlci13aWR0 aCBmcmFtZSkKLQkJCSAgKGZyYW1lLWJvdHRvbS1kaXZpZGVyLXdpZHRoIGZyYW1lKSkpCi0JIGF0 b20tcm9vdCBpZ25vcmUpCisgICAgICAgICAgICAgICAgKChtZW1xIHNpZGUgJyhiZWxvdyBhYm92 ZSByaWdodCBsZWZ0KSkgc2lkZSkKKyAgICAgICAgICAgICAgICAodCAncmlnaHQpKSkKKyAgICAg ICAgIChob3Jpem9udGFsIChub3QgKG1lbXEgc2lkZSAnKGJlbG93IGFib3ZlKSkpKQorICAgICAg ICAgKGZyYW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkKKyAgICAgICAgIChwYXJlbnQgKHdpbmRv dy1wYXJlbnQgd2luZG93KSkKKyAgICAgICAgIChmdW5jdGlvbiAod2luZG93LXBhcmFtZXRlciB3 aW5kb3cgJ3NwbGl0LXdpbmRvdykpCisgICAgICAgICAod2luZG93LXNpZGUgKHdpbmRvdy1wYXJh bWV0ZXIgd2luZG93ICd3aW5kb3ctc2lkZSkpCisgICAgICAgICA7OyBSZWJpbmQgdGhlIGZvbGxv d2luZyB0d28gdmFyaWFibGVzIHNpbmNlIGluIHNvbWUgY2FzZXMgd2UKKyAgICAgICAgIDs7IGhh dmUgdG8gb3ZlcnJpZGUgdGhlaXIgdmFsdWUuCisgICAgICAgICAod2luZG93LWNvbWJpbmF0aW9u LWxpbWl0IHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCkKKyAgICAgICAgICh3aW5kb3ctY29tYmlu YXRpb24tcmVzaXplIHdpbmRvdy1jb21iaW5hdGlvbi1yZXNpemUpCisgICAgICAgICAoY2hhci1z aXplIChmcmFtZS1jaGFyLXNpemUgd2luZG93IGhvcml6b250YWwpKQorICAgICAgICAgKHBpeGVs LXNpemUKKyAgICAgICAgICAod2hlbiAobnVtYmVycCBzaXplKQorICAgICAgICAgICAgKHdpbmRv dy0tc2l6ZS10by1waXhlbCB3aW5kb3cgc2l6ZSBob3Jpem9udGFsIHBpeGVsd2lzZSB0KSkpCisg ICAgICAgICAoZGl2aWRlci13aWR0aCAoaWYgaG9yaXpvbnRhbAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChmcmFtZS1yaWdodC1kaXZpZGVyLXdpZHRoIGZyYW1lKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAoZnJhbWUtYm90dG9tLWRpdmlkZXItd2lkdGggZnJhbWUpKSkKKyAgICAg ICAgIGF0b20tcm9vdCBpZ25vcmUpCiAgICAgKHdpbmRvdy0tY2hlY2sgZnJhbWUpCiAgICAgKGNh dGNoICdkb25lCiAgICAgICAoY29uZApAQCAtNTI5MSwyMTAgKzUyOTEsMjEwIEBAIGZyYW1lLiAg VGhlIHNlbGVjdGVkIHdpbmRvdyBpcyBub3QgY2hhbmdlZCBieSB0aGlzIGZ1bmN0aW9uLiIKICAg ICAgICA7OyBpcyB0IG9yIHRoZSAnc3BsaXQtd2luZG93JyBwYXJhbWV0ZXIgZXF1YWxzIHQuCiAg ICAgICAgKChvciBpZ25vcmUtd2luZG93LXBhcmFtZXRlcnMgKGVxIGZ1bmN0aW9uIHQpKSkKICAg ICAgICAoKGZ1bmN0aW9ucCBmdW5jdGlvbikKLQk7OyBUaGUgJ3NwbGl0LXdpbmRvdycgcGFyYW1l dGVyIHNwZWNpZmllcyB0aGUgZnVuY3Rpb24gdG8gY2FsbC4KLQk7OyBJZiB0aGF0IGZ1bmN0aW9u IGlzIGBpZ25vcmUnLCBkbyBub3RoaW5nLgotCSh0aHJvdyAnZG9uZSAoZnVuY2FsbCBmdW5jdGlv biB3aW5kb3cgc2l6ZSBzaWRlKSkpCisgICAgICAgIDs7IFRoZSAnc3BsaXQtd2luZG93JyBwYXJh bWV0ZXIgc3BlY2lmaWVzIHRoZSBmdW5jdGlvbiB0byBjYWxsLgorICAgICAgICA7OyBJZiB0aGF0 IGZ1bmN0aW9uIGlzIGBpZ25vcmUnLCBkbyBub3RoaW5nLgorICAgICAgICAodGhyb3cgJ2RvbmUg KGZ1bmNhbGwgZnVuY3Rpb24gd2luZG93IHNpemUgc2lkZSkpKQogICAgICAgIDs7IElmIFdJTkRP VyBpcyBwYXJ0IG9mIGFuIGF0b21pYyB3aW5kb3csIHNwbGl0IHRoZSByb290IHdpbmRvdwogICAg ICAgIDs7IG9mIHRoYXQgYXRvbWljIHdpbmRvdyBpbnN0ZWFkLgogICAgICAgICgoYW5kICh3aW5k b3ctcGFyYW1ldGVyIHdpbmRvdyAnd2luZG93LWF0b20pCi0JICAgICAoc2V0cSBhdG9tLXJvb3Qg KHdpbmRvdy1hdG9tLXJvb3Qgd2luZG93KSkKLQkgICAgIChub3QgKGVxIGF0b20tcm9vdCB3aW5k b3cpKSkKLQkodGhyb3cgJ2RvbmUgKHNwbGl0LXdpbmRvdyBhdG9tLXJvb3Qgc2l6ZSBzaWRlIHBp eGVsd2lzZSkpKQorICAgICAgICAgICAgIChzZXRxIGF0b20tcm9vdCAod2luZG93LWF0b20tcm9v dCB3aW5kb3cpKQorICAgICAgICAgICAgIChub3QgKGVxIGF0b20tcm9vdCB3aW5kb3cpKSkKKyAg ICAgICAgKHRocm93ICdkb25lIChzcGxpdC13aW5kb3cgYXRvbS1yb290IHNpemUgc2lkZSBwaXhl bHdpc2UpKSkKICAgICAgICA7OyBJZiBXSU5ET1cgaXMgYSBzaWRlIHdpbmRvdyBvciBpdHMgZmly c3Qgb3IgbGFzdCBjaGlsZCBpcyBhCiAgICAgICAgOzsgc2lkZSB3aW5kb3csIHRocm93IGFuIGVy cm9yIHVubGVzcyBgd2luZG93LWNvbWJpbmF0aW9uLXJlc2l6ZScKICAgICAgICA7OyBlcXVhbHMg J3NpZGUuCiAgICAgICAgKChhbmQgKG5vdCAoZXEgd2luZG93LWNvbWJpbmF0aW9uLXJlc2l6ZSAn c2lkZSkpCi0JICAgICAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1zaWRlKSkKLQko ZXJyb3IgIkNhbm5vdCBzcGxpdCBzaWRlIHdpbmRvdyBvciBwYXJlbnQgb2Ygc2lkZSB3aW5kb3ci KSkKKyAgICAgICAgICAgICAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1zaWRlKSkK KyAgICAgICAgKGVycm9yICJDYW5ub3Qgc3BsaXQgc2lkZSB3aW5kb3cgb3IgcGFyZW50IG9mIHNp ZGUgd2luZG93IikpCiAgICAgICAgOzsgSWYgYHdpbmRvdy1jb21iaW5hdGlvbi1yZXNpemUnIGlz ICdzaWRlIGFuZCB3aW5kb3cgaGFzIGEgc2lkZQogICAgICAgIDs7IHdpbmRvdyBzaWJsaW5nLCBi aW5kIGB3aW5kb3ctY29tYmluYXRpb24tbGltaXQnIHRvIHQuCiAgICAgICAgKChhbmQgKG5vdCAo ZXEgd2luZG93LWNvbWJpbmF0aW9uLXJlc2l6ZSAnc2lkZSkpCi0JICAgICAob3IgKGFuZCAod2lu ZG93LXByZXYtc2libGluZyB3aW5kb3cpCi0JCSAgICAgICh3aW5kb3ctcGFyYW1ldGVyCi0JCSAg ICAgICAod2luZG93LXByZXYtc2libGluZyB3aW5kb3cpICd3aW5kb3ctc2lkZSkpCi0JCSAoYW5k ICh3aW5kb3ctbmV4dC1zaWJsaW5nIHdpbmRvdykKLQkJICAgICAgKHdpbmRvdy1wYXJhbWV0ZXIK LQkJICAgICAgICh3aW5kb3ctbmV4dC1zaWJsaW5nIHdpbmRvdykgJ3dpbmRvdy1zaWRlKSkpKQot CShzZXRxIHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCB0KSkpCisgICAgICAgICAgICAgKG9yIChh bmQgKHdpbmRvdy1wcmV2LXNpYmxpbmcgd2luZG93KQorICAgICAgICAgICAgICAgICAgICAgICh3 aW5kb3ctcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctcHJldi1zaWJs aW5nIHdpbmRvdykgJ3dpbmRvdy1zaWRlKSkKKyAgICAgICAgICAgICAgICAgKGFuZCAod2luZG93 LW5leHQtc2libGluZyB3aW5kb3cpCisgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1wYXJh bWV0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1uZXh0LXNpYmxpbmcgd2luZG93 KSAnd2luZG93LXNpZGUpKSkpCisgICAgICAgIChzZXRxIHdpbmRvdy1jb21iaW5hdGlvbi1saW1p dCB0KSkpCiAKICAgICAgIDs7IElmIGB3aW5kb3ctY29tYmluYXRpb24tcmVzaXplJyBpcyB0IGFu ZCBTSVpFIGlzIG5vbi1uZWdhdGl2ZSwKICAgICAgIDs7IGJpbmQgYHdpbmRvdy1jb21iaW5hdGlv bi1saW1pdCcgdG8gdC4KICAgICAgICh3aGVuIChhbmQgKGVxIHdpbmRvdy1jb21iaW5hdGlvbi1y ZXNpemUgdCkKLQkJIHBpeGVsLXNpemUgKD4gcGl4ZWwtc2l6ZSAwKSkKLQkoc2V0cSB3aW5kb3ct Y29tYmluYXRpb24tbGltaXQgdCkpCisgICAgICAgICAgICAgICAgIHBpeGVsLXNpemUgKD4gcGl4 ZWwtc2l6ZSAwKSkKKyAgICAgICAgKHNldHEgd2luZG93LWNvbWJpbmF0aW9uLWxpbWl0IHQpKQog CiAgICAgICAobGV0KiAoKHBhcmVudC1waXhlbC1zaXplCi0JICAgICAgOzsgJ3BhcmVudC1waXhl bC1zaXplJyBpcyB0aGUgcGl4ZWwgc2l6ZSBvZiBXSU5ET1cncwotCSAgICAgIDs7IHBhcmVudCwg cHJvdmlkZWQgaXQgaGFzIG9uZS4KLQkgICAgICAod2hlbiBwYXJlbnQgKHdpbmRvdy1zaXplIHBh cmVudCBob3Jpem9udGFsIHQpKSkKLQkgICAgIDs7ICdyZXNpemUnIG5vbi1uaWwgbWVhbnMgd2Ug YXJlIHN1cHBvc2VkIHRvIHJlc2l6ZSBvdGhlcgotCSAgICAgOzsgd2luZG93cyBpbiBXSU5ET1cn cyBjb21iaW5hdGlvbi4KLQkgICAgIChyZXNpemUKLQkgICAgICAoYW5kIHdpbmRvdy1jb21iaW5h dGlvbi1yZXNpemUKLQkJICAgKG9yICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAnd2luZG93LXNp ZGUpCi0JCSAgICAgICAobm90IChlcSB3aW5kb3ctY29tYmluYXRpb24tcmVzaXplICdzaWRlKSkp Ci0JCSAgIChub3QgKGVxIHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCB0KSkKLQkJICAgOzsgUmVz aXplIG1ha2VzIHNlbnNlIGluIGlzby1jb21iaW5hdGlvbnMgb25seS4KLQkJICAgKHdpbmRvdy1j b21iaW5lZC1wIHdpbmRvdyBob3Jpem9udGFsKSkpCi0JICAgICA7OyAnb2xkLXBpeGVsLXNpemUn IGlzIHRoZSBjdXJyZW50IHBpeGVsIHNpemUgb2YgV0lORE9XLgotCSAgICAgKG9sZC1waXhlbC1z aXplICh3aW5kb3ctc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCB0KSkKLQkgICAgIDs7ICduZXctc2l6 ZScgaXMgdGhlIHNwZWNpZmllZCBvciBjYWxjdWxhdGVkIHNpemUgb2YgdGhlCi0JICAgICA7OyBu ZXcgd2luZG93LgotCSAgICAgbmV3LXBpeGVsLXNpemUgbmV3LXBhcmVudCBuZXctbm9ybWFsKQot CShjb25kCi0JICgobm90IHBpeGVsLXNpemUpCi0JICAoc2V0cSBuZXctcGl4ZWwtc2l6ZQotCQko aWYgcmVzaXplCi0JCSAgICA7OyBXaGVuIHJlc2l6aW5nIHRyeSB0byBnaXZlIHRoZSBuZXcgd2lu ZG93IHRoZQotCQkgICAgOzsgYXZlcmFnZSBzaXplIG9mIGEgd2luZG93IGluIGl0cyBjb21iaW5h dGlvbi4KLQkJICAgIChtYXggKG1pbiAoLSBwYXJlbnQtcGl4ZWwtc2l6ZQotCQkJCSAod2luZG93 LW1pbi1zaXplIHBhcmVudCBob3Jpem9udGFsIG5pbCB0KSkKLQkJCSAgICAgICh3aW5kb3ctLWNv bWJpbmF0aW9uLXJlc2l6YWJsZSBwYXJlbnQgaG9yaXpvbnRhbCkpCi0JCQkgKHdpbmRvdy1taW4t cGl4ZWwtc2l6ZSkpCi0JCSAgOzsgRWxzZSB0cnkgdG8gZ2l2ZSB0aGUgbmV3IHdpbmRvdyBoYWxm IHRoZSBzaXplCi0JCSAgOzsgb2YgV0lORE9XIChwbHVzIGFuIGV2ZW50dWFsIG9kZCBwaXhlbCku Ci0JCSAgKC8gb2xkLXBpeGVsLXNpemUgMikpKQotCSAgKHVubGVzcyB3aW5kb3ctcmVzaXplLXBp eGVsd2lzZQotCSAgICA7OyBSb3VuZCB0byBuZWFyZXN0IGNoYXItc2l6ZSBtdWx0aXBsZS4KLQkg ICAgKHNldHEgbmV3LXBpeGVsLXNpemUKLQkJICAoKiBjaGFyLXNpemUgKHJvdW5kIG5ldy1waXhl bC1zaXplIGNoYXItc2l6ZSkpKSkpCi0JICgoPj0gcGl4ZWwtc2l6ZSAwKQotCSAgOzsgU0laRSBu b24tbmVnYXRpdmUgc3BlY2lmaWVzIHRoZSBuZXcgc2l6ZSBvZiBXSU5ET1cuCi0KLQkgIDs7IE5v dGU6IFNwZWNpZnlpbmcgYSBub24tbmVnYXRpdmUgU0laRSBpcyBwcmFjdGljYWxseQotCSAgOzsg YWx3YXlzIGRvbmUgYXMgd29ya2Fyb3VuZCBmb3IgbWFraW5nIHRoZSBuZXcgd2luZG93Ci0JICA7 OyBhcHBlYXIgYWJvdmUgb3Igb24gdGhlIGxlZnQgb2YgdGhlIG5ldyB3aW5kb3cgKHRoZQotCSAg OzsgaXNwZWxsIHdpbmRvdyBpcyBhIHR5cGljYWwgZXhhbXBsZSBvZiB0aGF0KS4gIEluIGFsbAot CSAgOzsgdGhlc2UgY2FzZXMgdGhlIFNJREUgYXJndW1lbnQgc2hvdWxkIGJlIHNldCB0byAnYWJv dmUKLQkgIDs7IG9yICdsZWZ0IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhlICdyZXNpemUgb3B0aW9u LgotCSAgOzsgSGVyZSB3ZSBoYXZlIHRvIG5lc3QgdGhlIHdpbmRvd3MgaW5zdGVhZCwgc2VlIGFi b3ZlLgotCSAgKHNldHEgbmV3LXBpeGVsLXNpemUgKC0gb2xkLXBpeGVsLXNpemUgcGl4ZWwtc2l6 ZSkpKQotCSAodAotCSAgOzsgU0laRSBuZWdhdGl2ZSBzcGVjaWZpZXMgdGhlIHNpemUgb2YgdGhl IG5ldyB3aW5kb3cuCi0JICAoc2V0cSBuZXctcGl4ZWwtc2l6ZSAoLSBwaXhlbC1zaXplKSkpKQot Ci0JOzsgQ2hlY2sgU0laRS4KLQkoY29uZAotCSAoKG5vdCBwaXhlbC1zaXplKQotCSAgKGNvbmQK LQkgICAocmVzaXplCi0JICAgIDs7IFNJWkUgdW5zcGVjaWZpZWQsIHJlc2l6aW5nLgotCSAgICAo dW5sZXNzIChvciAod2luZG93LXNpemFibGUtcAotCQkJIHBhcmVudCAoLSAoKyBuZXctcGl4ZWwt c2l6ZSBkaXZpZGVyLXdpZHRoKSkgaG9yaXpvbnRhbAotCQkJIG5pbCB0KQotCQkJKHdpbmRvdy1z aXphYmxlLXAKLQkJCSBwYXJlbnQgKC0gKCsgbmV3LXBpeGVsLXNpemUgZGl2aWRlci13aWR0aCkp IGhvcml6b250YWwKLQkJCSAoc2V0cSBpZ25vcmUgJ3ByZXNlcnZlZCkgdCkpCi0JICAgICAgKGVy cm9yICJXaW5kb3cgJXMgdG9vIHNtYWxsIGZvciBzcGxpdHRpbmciIHBhcmVudCkpKQotCSAgICgo YW5kICg+ICgrIG5ldy1waXhlbC1zaXplIGRpdmlkZXItd2lkdGgKLQkJICAgICAgICh3aW5kb3ct bWluLXNpemUgd2luZG93IGhvcml6b250YWwgbmlsIHQpKQotCQkgICAgb2xkLXBpeGVsLXNpemUp Ci0JCSAoPiAoKyBuZXctcGl4ZWwtc2l6ZSBkaXZpZGVyLXdpZHRoCi0JCSAgICAgICAod2luZG93 LW1pbi1zaXplCi0JCQl3aW5kb3cgaG9yaXpvbnRhbCAoc2V0cSBpZ25vcmUgJ3ByZXNlcnZlZCkg dCkpCi0JCSAgICBvbGQtcGl4ZWwtc2l6ZSkpCi0JICAgIDs7IFNJWkUgdW5zcGVjaWZpZWQsIG5v IHJlc2l6aW5nLgotCSAgICAoZXJyb3IgIldpbmRvdyAlcyB0b28gc21hbGwgZm9yIHNwbGl0dGlu ZyIgd2luZG93KSkpKQotCSAoKGFuZCAoPj0gcGl4ZWwtc2l6ZSAwKQotCSAgICAgICAob3IgKD49 IHBpeGVsLXNpemUgb2xkLXBpeGVsLXNpemUpCi0JCSAgICg8IG5ldy1waXhlbC1zaXplCi0JCSAg ICAgICh3aW5kb3ctc2FmZS1taW4tcGl4ZWwtc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCkpKSkKLQkg IDs7IFNJWkUgc3BlY2lmaWVkIGFzIG5ldyBzaXplIG9mIG9sZCB3aW5kb3cuICBJZiB0aGUgbmV3 IHNpemUKLQkgIDs7IGlzIGxhcmdlciB0aGFuIHRoZSBvbGQgc2l6ZSBvciB0aGUgc2l6ZSBvZiB0 aGUgbmV3IHdpbmRvdwotCSAgOzsgd291bGQgYmUgbGVzcyB0aGFuIHRoZSBzYWZlIG1pbmltdW0s IHNpZ25hbCBhbiBlcnJvci4KLQkgIChlcnJvciAiV2luZG93ICVzIHRvbyBzbWFsbCBmb3Igc3Bs aXR0aW5nIiB3aW5kb3cpKQotCSAocmVzaXplCi0JICA7OyBTSVpFIHNwZWNpZmllZCwgcmVzaXpp bmcuCi0JICAodW5sZXNzIChvciAod2luZG93LXNpemFibGUtcAotCQkgICAgICAgcGFyZW50ICgt ICgrIG5ldy1waXhlbC1zaXplIGRpdmlkZXItd2lkdGgpKSBob3Jpem9udGFsCi0JCSAgICAgICBu aWwgdCkKLQkJICAgICAgKHdpbmRvdy1zaXphYmxlLXAKLQkJICAgICAgIHBhcmVudCAoLSAoKyBu ZXctcGl4ZWwtc2l6ZSBkaXZpZGVyLXdpZHRoKSkgaG9yaXpvbnRhbAotCQkgICAgICAgKHNldHEg aWdub3JlICdwcmVzZXJ2ZWQpIHQpKQotCSAgICA7OyBJZiB3ZSBjYW5ub3QgcmVzaXplIHRoZSBw YXJlbnQgZ2l2ZSB1cC4KLQkgICAgKGVycm9yICJXaW5kb3cgJXMgdG9vIHNtYWxsIGZvciBzcGxp dHRpbmciIHBhcmVudCkpKQotCSAoKG9yICg8IG5ldy1waXhlbC1zaXplCi0JCSAod2luZG93LXNh ZmUtbWluLXBpeGVsLXNpemUgd2luZG93IGhvcml6b250YWwpKQotCSAgICAgICg8ICgtIG9sZC1w aXhlbC1zaXplIG5ldy1waXhlbC1zaXplKQotCQkgKHdpbmRvdy1zYWZlLW1pbi1waXhlbC1zaXpl IHdpbmRvdyBob3Jpem9udGFsKSkpCi0JICA7OyBTSVpFIHNwZWNpZmljYXRpb24gdmlvbGF0ZXMg bWluaW11bSBzaXplIHJlc3RyaWN0aW9ucy4KLQkgIChlcnJvciAiV2luZG93ICVzIHRvbyBzbWFs bCBmb3Igc3BsaXR0aW5nIiB3aW5kb3cpKSkKLQotCSh3aW5kb3ctLXJlc2l6ZS1yZXNldCBmcmFt ZSBob3Jpem9udGFsKQotCi0JKHNldHEgbmV3LXBhcmVudAotCSAgICAgIDs7IE1ha2UgbmV3LXBh cmVudCBub24tbmlsIGlmIHdlIG5lZWQgYSBuZXcgcGFyZW50IHdpbmRvdzsKLQkgICAgICA7OyBl aXRoZXIgYmVjYXVzZSB3ZSB3YW50IHRvIG5lc3Qgb3IgYmVjYXVzZSBXSU5ET1cgaXMgbm90Ci0J ICAgICAgOzsgaXNvLWNvbWJpbmVkLgotCSAgICAgIChvciAoZXEgd2luZG93LWNvbWJpbmF0aW9u LWxpbWl0IHQpCi0JCSAgKG5vdCAod2luZG93LWNvbWJpbmVkLXAgd2luZG93IGhvcml6b250YWwp KSkpCi0JKHNldHEgbmV3LW5vcm1hbAotCSAgICAgIDs7IE1ha2UgbmV3LW5vcm1hbCB0aGUgbm9y bWFsIHNpemUgb2YgdGhlIG5ldyB3aW5kb3cuCi0JICAgICAgKGNvbmQKLQkgICAgICAgKHBpeGVs LXNpemUgKC8gKGZsb2F0IG5ldy1waXhlbC1zaXplKQotCQkJICAgICAgKGlmIG5ldy1wYXJlbnQg b2xkLXBpeGVsLXNpemUgcGFyZW50LXBpeGVsLXNpemUpKSkKLQkgICAgICAgKG5ldy1wYXJlbnQg MC41KQotCSAgICAgICAocmVzaXplICgvIDEuMCAoMSsgKHdpbmRvdy1jb21iaW5hdGlvbnMgcGFy ZW50IGhvcml6b250YWwgdCkpKSkKLQkgICAgICAgKHQgKC8gKHdpbmRvdy1ub3JtYWwtc2l6ZSB3 aW5kb3cgaG9yaXpvbnRhbCkgMi4wKSkpKQotCi0JKGlmIHJlc2l6ZQotCSAgICA7OyBUcnkgdG8g Z2V0IHNwYWNlIGZyb20gT0xEJ3Mgc2libGluZ3MuICBXZSBjb3VsZCBnbyAidXAiIGFuZAotCSAg ICA7OyB0cnkgZ2V0dGluZyBhZGRpdGlvbmFsIHNwYWNlIGZyb20gc3Vycm91bmRpbmcgd2luZG93 cyBidXQKLQkgICAgOzsgd2Ugd29uJ3QgYmUgYWJsZSB0byByZXR1cm4gc3BhY2UgdG8gdGhvc2Ug d2luZG93cyB3aGVuIHdlCi0JICAgIDs7IGRlbGV0ZSB0aGUgb25lIHdlIGNyZWF0ZSBoZXJlLiAg SGVuY2Ugd2UgZG8gbm90IGdvIHVwLgotCSAgICAocHJvZ24KLQkgICAgICAod2luZG93LS1yZXNp emUtY2hpbGQtd2luZG93cwotCSAgICAgICBwYXJlbnQgKC0gbmV3LXBpeGVsLXNpemUpIGhvcml6 b250YWwgbmlsIGlnbm9yZSkKLQkgICAgICAobGV0KiAoKG5vcm1hbCAoLSAxLjAgbmV3LW5vcm1h bCkpCi0JCSAgICAgKHN1YiAod2luZG93LWNoaWxkIHBhcmVudCkpKQotCQkod2hpbGUgc3ViCi0J CSAgKHNldC13aW5kb3ctbmV3LW5vcm1hbAotCQkgICBzdWIgKCogKHdpbmRvdy1ub3JtYWwtc2l6 ZSBzdWIgaG9yaXpvbnRhbCkgbm9ybWFsKSkKLQkJICAoc2V0cSBzdWIgKHdpbmRvdy1yaWdodCBz dWIpKSkpKQotCSAgOzsgR2V0IGVudGlyZSBzcGFjZSBmcm9tIFdJTkRPVy4KLQkgIChzZXQtd2lu ZG93LW5ldy1waXhlbAotCSAgIHdpbmRvdyAoLSBvbGQtcGl4ZWwtc2l6ZSBuZXctcGl4ZWwtc2l6 ZSkpCi0JICAod2luZG93LS1yZXNpemUtdGhpcy13aW5kb3cKLQkgICB3aW5kb3cgKC0gbmV3LXBp eGVsLXNpemUpIGhvcml6b250YWwgaWdub3JlKQotCSAgKHNldC13aW5kb3ctbmV3LW5vcm1hbAot CSAgIHdpbmRvdyAoLSAoaWYgbmV3LXBhcmVudCAxLjAgKHdpbmRvdy1ub3JtYWwtc2l6ZSB3aW5k b3cgaG9yaXpvbnRhbCkpCi0JCSAgICAgbmV3LW5vcm1hbCkpKQotCi0JKGxldCogKChuZXcgKHNw bGl0LXdpbmRvdy1pbnRlcm5hbCB3aW5kb3cgbmV3LXBpeGVsLXNpemUgc2lkZSBuZXctbm9ybWFs KSkpCi0JICAod2luZG93LS1waXhlbC10by10b3RhbCBmcmFtZSBob3Jpem9udGFsKQotCSAgOzsg QXNzaWduIHdpbmRvdy1zaWRlIHBhcmFtZXRlcnMsIGlmIGFueS4KLQkgIChjb25kCi0JICAgKChl cSB3aW5kb3ctY29tYmluYXRpb24tcmVzaXplICdzaWRlKQotCSAgICAobGV0ICgod2luZG93LXNp ZGUKLQkJICAgKGNvbmQKLQkJICAgICh3aW5kb3ctc2lkZSB3aW5kb3ctc2lkZSkKLQkJICAgICgo ZXEgc2lkZSAnYWJvdmUpICd0b3ApCi0JCSAgICAoKGVxIHNpZGUgJ2JlbG93KSAnYm90dG9tKQot CQkgICAgKHQgc2lkZSkpKSkKLQkgICAgICA7OyBXZSBtYWRlIGEgbmV3IHNpZGUgd2luZG93Lgot CSAgICAgIChzZXQtd2luZG93LXBhcmFtZXRlciBuZXcgJ3dpbmRvdy1zaWRlIHdpbmRvdy1zaWRl KQotCSAgICAgICh3aGVuIChhbmQgbmV3LXBhcmVudCAod2luZG93LXBhcmFtZXRlciB3aW5kb3cg J3dpbmRvdy1zaWRlKSkKLQkJOzsgV2UndmUgYmVlbiBzcGxpdHRpbmcgYSBzaWRlIHJvb3Qgd2lu ZG93LiAgR2l2ZSB0aGUKLQkJOzsgbmV3IHBhcmVudCB0aGUgc2FtZSB3aW5kb3ctc2lkZSBwYXJh bWV0ZXIuCi0JCShzZXQtd2luZG93LXBhcmFtZXRlcgotCQkgKHdpbmRvdy1wYXJlbnQgbmV3KSAn d2luZG93LXNpZGUgd2luZG93LXNpZGUpKSkpCi0JICAgKChlcSB3aW5kb3ctY29tYmluYXRpb24t cmVzaXplICdhdG9tKQotCSAgICA7OyBNYWtlIHN1cmUgYHdpbmRvdy0tY2hlY2stZnJhbWUnIHdv bid0IGRlc3Ryb3kgYW4gZXhpc3RpbmcKLQkgICAgOzsgYXRvbWljIHdpbmRvdyBpbiBjYXNlIHRo ZSBuZXcgd2luZG93IGdldHMgbmVzdGVkIGluc2lkZS4KLQkgICAgKHVubGVzcyAod2luZG93LXBh cmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1hdG9tKQotCSAgICAgIChzZXQtd2luZG93LXBhcmFtZXRl ciB3aW5kb3cgJ3dpbmRvdy1hdG9tIHQpKQotCSAgICAod2hlbiBuZXctcGFyZW50Ci0JICAgICAg KHNldC13aW5kb3ctcGFyYW1ldGVyICh3aW5kb3ctcGFyZW50IG5ldykgJ3dpbmRvdy1hdG9tIHQp KQotCSAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgbmV3ICd3aW5kb3ctYXRvbSB0KSkpCi0KLQkg IDs7IFNhbml0aXplIHNpemVzIHVubGVzcyBTSVpFIHdhcyBzcGVjaWZpZWQuCi0JICAodW5sZXNz IHNpemUKKyAgICAgICAgICAgICAgOzsgJ3BhcmVudC1waXhlbC1zaXplJyBpcyB0aGUgcGl4ZWwg c2l6ZSBvZiBXSU5ET1cncworICAgICAgICAgICAgICA7OyBwYXJlbnQsIHByb3ZpZGVkIGl0IGhh cyBvbmUuCisgICAgICAgICAgICAgICh3aGVuIHBhcmVudCAod2luZG93LXNpemUgcGFyZW50IGhv cml6b250YWwgdCkpKQorICAgICAgICAgICAgIDs7ICdyZXNpemUnIG5vbi1uaWwgbWVhbnMgd2Ug YXJlIHN1cHBvc2VkIHRvIHJlc2l6ZSBvdGhlcgorICAgICAgICAgICAgIDs7IHdpbmRvd3MgaW4g V0lORE9XJ3MgY29tYmluYXRpb24uCisgICAgICAgICAgICAgKHJlc2l6ZQorICAgICAgICAgICAg ICAoYW5kIHdpbmRvdy1jb21iaW5hdGlvbi1yZXNpemUKKyAgICAgICAgICAgICAgICAgICAob3Ig KHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICd3aW5kb3ctc2lkZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgKG5vdCAoZXEgd2luZG93LWNvbWJpbmF0aW9uLXJlc2l6ZSAnc2lkZSkpKQorICAgICAg ICAgICAgICAgICAgIChub3QgKGVxIHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCB0KSkKKyAgICAg ICAgICAgICAgICAgICA7OyBSZXNpemUgbWFrZXMgc2Vuc2UgaW4gaXNvLWNvbWJpbmF0aW9ucyBv bmx5LgorICAgICAgICAgICAgICAgICAgICh3aW5kb3ctY29tYmluZWQtcCB3aW5kb3cgaG9yaXpv bnRhbCkpKQorICAgICAgICAgICAgIDs7ICdvbGQtcGl4ZWwtc2l6ZScgaXMgdGhlIGN1cnJlbnQg cGl4ZWwgc2l6ZSBvZiBXSU5ET1cuCisgICAgICAgICAgICAgKG9sZC1waXhlbC1zaXplICh3aW5k b3ctc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCB0KSkKKyAgICAgICAgICAgICA7OyAnbmV3LXNpemUn IGlzIHRoZSBzcGVjaWZpZWQgb3IgY2FsY3VsYXRlZCBzaXplIG9mIHRoZQorICAgICAgICAgICAg IDs7IG5ldyB3aW5kb3cuCisgICAgICAgICAgICAgbmV3LXBpeGVsLXNpemUgbmV3LXBhcmVudCBu ZXctbm9ybWFsKQorICAgICAgICAoY29uZAorICAgICAgICAgKChub3QgcGl4ZWwtc2l6ZSkKKyAg ICAgICAgICAoc2V0cSBuZXctcGl4ZWwtc2l6ZQorICAgICAgICAgICAgICAgIChpZiByZXNpemUK KyAgICAgICAgICAgICAgICAgICAgOzsgV2hlbiByZXNpemluZyB0cnkgdG8gZ2l2ZSB0aGUgbmV3 IHdpbmRvdyB0aGUKKyAgICAgICAgICAgICAgICAgICAgOzsgYXZlcmFnZSBzaXplIG9mIGEgd2lu ZG93IGluIGl0cyBjb21iaW5hdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgKG1heCAobWluICgt IHBhcmVudC1waXhlbC1zaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2lu ZG93LW1pbi1zaXplIHBhcmVudCBob3Jpem9udGFsIG5pbCB0KSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh3aW5kb3ctLWNvbWJpbmF0aW9uLXJlc2l6YWJsZSBwYXJlbnQgaG9yaXpv bnRhbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1taW4tcGl4ZWwtc2l6ZSkp CisgICAgICAgICAgICAgICAgICA7OyBFbHNlIHRyeSB0byBnaXZlIHRoZSBuZXcgd2luZG93IGhh bGYgdGhlIHNpemUKKyAgICAgICAgICAgICAgICAgIDs7IG9mIFdJTkRPVyAocGx1cyBhbiBldmVu dHVhbCBvZGQgcGl4ZWwpLgorICAgICAgICAgICAgICAgICAgKC8gb2xkLXBpeGVsLXNpemUgMikp KQorICAgICAgICAgICh1bmxlc3Mgd2luZG93LXJlc2l6ZS1waXhlbHdpc2UKKyAgICAgICAgICAg IDs7IFJvdW5kIHRvIG5lYXJlc3QgY2hhci1zaXplIG11bHRpcGxlLgorICAgICAgICAgICAgKHNl dHEgbmV3LXBpeGVsLXNpemUKKyAgICAgICAgICAgICAgICAgICgqIGNoYXItc2l6ZSAocm91bmQg bmV3LXBpeGVsLXNpemUgY2hhci1zaXplKSkpKSkKKyAgICAgICAgICgoPj0gcGl4ZWwtc2l6ZSAw KQorICAgICAgICAgIDs7IFNJWkUgbm9uLW5lZ2F0aXZlIHNwZWNpZmllcyB0aGUgbmV3IHNpemUg b2YgV0lORE9XLgorCisgICAgICAgICAgOzsgTm90ZTogU3BlY2lmeWluZyBhIG5vbi1uZWdhdGl2 ZSBTSVpFIGlzIHByYWN0aWNhbGx5CisgICAgICAgICAgOzsgYWx3YXlzIGRvbmUgYXMgd29ya2Fy b3VuZCBmb3IgbWFraW5nIHRoZSBuZXcgd2luZG93CisgICAgICAgICAgOzsgYXBwZWFyIGFib3Zl IG9yIG9uIHRoZSBsZWZ0IG9mIHRoZSBuZXcgd2luZG93ICh0aGUKKyAgICAgICAgICA7OyBpc3Bl bGwgd2luZG93IGlzIGEgdHlwaWNhbCBleGFtcGxlIG9mIHRoYXQpLiAgSW4gYWxsCisgICAgICAg ICAgOzsgdGhlc2UgY2FzZXMgdGhlIFNJREUgYXJndW1lbnQgc2hvdWxkIGJlIHNldCB0byAnYWJv dmUKKyAgICAgICAgICA7OyBvciAnbGVmdCBpbiBvcmRlciB0byBzdXBwb3J0IHRoZSAncmVzaXpl IG9wdGlvbi4KKyAgICAgICAgICA7OyBIZXJlIHdlIGhhdmUgdG8gbmVzdCB0aGUgd2luZG93cyBp bnN0ZWFkLCBzZWUgYWJvdmUuCisgICAgICAgICAgKHNldHEgbmV3LXBpeGVsLXNpemUgKC0gb2xk LXBpeGVsLXNpemUgcGl4ZWwtc2l6ZSkpKQorICAgICAgICAgKHQKKyAgICAgICAgICA7OyBTSVpF IG5lZ2F0aXZlIHNwZWNpZmllcyB0aGUgc2l6ZSBvZiB0aGUgbmV3IHdpbmRvdy4KKyAgICAgICAg ICAoc2V0cSBuZXctcGl4ZWwtc2l6ZSAoLSBwaXhlbC1zaXplKSkpKQorCisgICAgICAgIDs7IENo ZWNrIFNJWkUuCisgICAgICAgIChjb25kCisgICAgICAgICAoKG5vdCBwaXhlbC1zaXplKQorICAg ICAgICAgIChjb25kCisgICAgICAgICAgIChyZXNpemUKKyAgICAgICAgICAgIDs7IFNJWkUgdW5z cGVjaWZpZWQsIHJlc2l6aW5nLgorICAgICAgICAgICAgKHVubGVzcyAob3IgKHdpbmRvdy1zaXph YmxlLXAKKyAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgKC0gKCsgbmV3LXBpeGVsLXNp emUgZGl2aWRlci13aWR0aCkpIGhvcml6b250YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICBu aWwgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctc2l6YWJsZS1wCisgICAgICAg ICAgICAgICAgICAgICAgICAgcGFyZW50ICgtICgrIG5ldy1waXhlbC1zaXplIGRpdmlkZXItd2lk dGgpKSBob3Jpem9udGFsCisgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgaWdub3JlICdw cmVzZXJ2ZWQpIHQpKQorICAgICAgICAgICAgICAoZXJyb3IgIldpbmRvdyAlcyB0b28gc21hbGwg Zm9yIHNwbGl0dGluZyIgcGFyZW50KSkpCisgICAgICAgICAgICgoYW5kICg+ICgrIG5ldy1waXhl bC1zaXplIGRpdmlkZXItd2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1taW4t c2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCBuaWwgdCkpCisgICAgICAgICAgICAgICAgICAgIG9sZC1w aXhlbC1zaXplKQorICAgICAgICAgICAgICAgICAoPiAoKyBuZXctcGl4ZWwtc2l6ZSBkaXZpZGVy LXdpZHRoCisgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctbWluLXNpemUKKyAgICAgICAg ICAgICAgICAgICAgICAgIHdpbmRvdyBob3Jpem9udGFsIChzZXRxIGlnbm9yZSAncHJlc2VydmVk KSB0KSkKKyAgICAgICAgICAgICAgICAgICAgb2xkLXBpeGVsLXNpemUpKQorICAgICAgICAgICAg OzsgU0laRSB1bnNwZWNpZmllZCwgbm8gcmVzaXppbmcuCisgICAgICAgICAgICAoZXJyb3IgIldp bmRvdyAlcyB0b28gc21hbGwgZm9yIHNwbGl0dGluZyIgd2luZG93KSkpKQorICAgICAgICAgKChh bmQgKD49IHBpeGVsLXNpemUgMCkKKyAgICAgICAgICAgICAgIChvciAoPj0gcGl4ZWwtc2l6ZSBv bGQtcGl4ZWwtc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAoPCBuZXctcGl4ZWwtc2l6ZQorICAg ICAgICAgICAgICAgICAgICAgICh3aW5kb3ctc2FmZS1taW4tcGl4ZWwtc2l6ZSB3aW5kb3cgaG9y aXpvbnRhbCkpKSkKKyAgICAgICAgICA7OyBTSVpFIHNwZWNpZmllZCBhcyBuZXcgc2l6ZSBvZiBv bGQgd2luZG93LiAgSWYgdGhlIG5ldyBzaXplCisgICAgICAgICAgOzsgaXMgbGFyZ2VyIHRoYW4g dGhlIG9sZCBzaXplIG9yIHRoZSBzaXplIG9mIHRoZSBuZXcgd2luZG93CisgICAgICAgICAgOzsg d291bGQgYmUgbGVzcyB0aGFuIHRoZSBzYWZlIG1pbmltdW0sIHNpZ25hbCBhbiBlcnJvci4KKyAg ICAgICAgICAoZXJyb3IgIldpbmRvdyAlcyB0b28gc21hbGwgZm9yIHNwbGl0dGluZyIgd2luZG93 KSkKKyAgICAgICAgIChyZXNpemUKKyAgICAgICAgICA7OyBTSVpFIHNwZWNpZmllZCwgcmVzaXpp bmcuCisgICAgICAgICAgKHVubGVzcyAob3IgKHdpbmRvdy1zaXphYmxlLXAKKyAgICAgICAgICAg ICAgICAgICAgICAgcGFyZW50ICgtICgrIG5ldy1waXhlbC1zaXplIGRpdmlkZXItd2lkdGgpKSBo b3Jpem9udGFsCisgICAgICAgICAgICAgICAgICAgICAgIG5pbCB0KQorICAgICAgICAgICAgICAg ICAgICAgICh3aW5kb3ctc2l6YWJsZS1wCisgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudCAo LSAoKyBuZXctcGl4ZWwtc2l6ZSBkaXZpZGVyLXdpZHRoKSkgaG9yaXpvbnRhbAorICAgICAgICAg ICAgICAgICAgICAgICAoc2V0cSBpZ25vcmUgJ3ByZXNlcnZlZCkgdCkpCisgICAgICAgICAgICA7 OyBJZiB3ZSBjYW5ub3QgcmVzaXplIHRoZSBwYXJlbnQgZ2l2ZSB1cC4KKyAgICAgICAgICAgIChl cnJvciAiV2luZG93ICVzIHRvbyBzbWFsbCBmb3Igc3BsaXR0aW5nIiBwYXJlbnQpKSkKKyAgICAg ICAgICgob3IgKDwgbmV3LXBpeGVsLXNpemUKKyAgICAgICAgICAgICAgICAgKHdpbmRvdy1zYWZl LW1pbi1waXhlbC1zaXplIHdpbmRvdyBob3Jpem9udGFsKSkKKyAgICAgICAgICAgICAgKDwgKC0g b2xkLXBpeGVsLXNpemUgbmV3LXBpeGVsLXNpemUpCisgICAgICAgICAgICAgICAgICh3aW5kb3ct c2FmZS1taW4tcGl4ZWwtc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCkpKQorICAgICAgICAgIDs7IFNJ WkUgc3BlY2lmaWNhdGlvbiB2aW9sYXRlcyBtaW5pbXVtIHNpemUgcmVzdHJpY3Rpb25zLgorICAg ICAgICAgIChlcnJvciAiV2luZG93ICVzIHRvbyBzbWFsbCBmb3Igc3BsaXR0aW5nIiB3aW5kb3cp KSkKKworICAgICAgICAod2luZG93LS1yZXNpemUtcmVzZXQgZnJhbWUgaG9yaXpvbnRhbCkKKwor ICAgICAgICAoc2V0cSBuZXctcGFyZW50CisgICAgICAgICAgICAgIDs7IE1ha2UgbmV3LXBhcmVu dCBub24tbmlsIGlmIHdlIG5lZWQgYSBuZXcgcGFyZW50IHdpbmRvdzsKKyAgICAgICAgICAgICAg OzsgZWl0aGVyIGJlY2F1c2Ugd2Ugd2FudCB0byBuZXN0IG9yIGJlY2F1c2UgV0lORE9XIGlzIG5v dAorICAgICAgICAgICAgICA7OyBpc28tY29tYmluZWQuCisgICAgICAgICAgICAgIChvciAoZXEg d2luZG93LWNvbWJpbmF0aW9uLWxpbWl0IHQpCisgICAgICAgICAgICAgICAgICAobm90ICh3aW5k b3ctY29tYmluZWQtcCB3aW5kb3cgaG9yaXpvbnRhbCkpKSkKKyAgICAgICAgKHNldHEgbmV3LW5v cm1hbAorICAgICAgICAgICAgICA7OyBNYWtlIG5ldy1ub3JtYWwgdGhlIG5vcm1hbCBzaXplIG9m IHRoZSBuZXcgd2luZG93LgorICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgKHBp eGVsLXNpemUgKC8gKGZsb2F0IG5ldy1waXhlbC1zaXplKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGlmIG5ldy1wYXJlbnQgb2xkLXBpeGVsLXNpemUgcGFyZW50LXBpeGVsLXNpemUp KSkKKyAgICAgICAgICAgICAgIChuZXctcGFyZW50IDAuNSkKKyAgICAgICAgICAgICAgIChyZXNp emUgKC8gMS4wICgxKyAod2luZG93LWNvbWJpbmF0aW9ucyBwYXJlbnQgaG9yaXpvbnRhbCB0KSkp KQorICAgICAgICAgICAgICAgKHQgKC8gKHdpbmRvdy1ub3JtYWwtc2l6ZSB3aW5kb3cgaG9yaXpv bnRhbCkgMi4wKSkpKQorCisgICAgICAgIChpZiByZXNpemUKKyAgICAgICAgICAgIDs7IFRyeSB0 byBnZXQgc3BhY2UgZnJvbSBPTEQncyBzaWJsaW5ncy4gIFdlIGNvdWxkIGdvICJ1cCIgYW5kCisg ICAgICAgICAgICA7OyB0cnkgZ2V0dGluZyBhZGRpdGlvbmFsIHNwYWNlIGZyb20gc3Vycm91bmRp bmcgd2luZG93cyBidXQKKyAgICAgICAgICAgIDs7IHdlIHdvbid0IGJlIGFibGUgdG8gcmV0dXJu IHNwYWNlIHRvIHRob3NlIHdpbmRvd3Mgd2hlbiB3ZQorICAgICAgICAgICAgOzsgZGVsZXRlIHRo ZSBvbmUgd2UgY3JlYXRlIGhlcmUuICBIZW5jZSB3ZSBkbyBub3QgZ28gdXAuCisgICAgICAgICAg ICAocHJvZ24KKyAgICAgICAgICAgICAgKHdpbmRvdy0tcmVzaXplLWNoaWxkLXdpbmRvd3MKKyAg ICAgICAgICAgICAgIHBhcmVudCAoLSBuZXctcGl4ZWwtc2l6ZSkgaG9yaXpvbnRhbCBuaWwgaWdu b3JlKQorICAgICAgICAgICAgICAobGV0KiAoKG5vcm1hbCAoLSAxLjAgbmV3LW5vcm1hbCkpCisg ICAgICAgICAgICAgICAgICAgICAoc3ViICh3aW5kb3ctY2hpbGQgcGFyZW50KSkpCisgICAgICAg ICAgICAgICAgKHdoaWxlIHN1YgorICAgICAgICAgICAgICAgICAgKHNldC13aW5kb3ctbmV3LW5v cm1hbAorICAgICAgICAgICAgICAgICAgIHN1YiAoKiAod2luZG93LW5vcm1hbC1zaXplIHN1YiBo b3Jpem9udGFsKSBub3JtYWwpKQorICAgICAgICAgICAgICAgICAgKHNldHEgc3ViICh3aW5kb3ct cmlnaHQgc3ViKSkpKSkKKyAgICAgICAgICA7OyBHZXQgZW50aXJlIHNwYWNlIGZyb20gV0lORE9X LgorICAgICAgICAgIChzZXQtd2luZG93LW5ldy1waXhlbAorICAgICAgICAgICB3aW5kb3cgKC0g b2xkLXBpeGVsLXNpemUgbmV3LXBpeGVsLXNpemUpKQorICAgICAgICAgICh3aW5kb3ctLXJlc2l6 ZS10aGlzLXdpbmRvdworICAgICAgICAgICB3aW5kb3cgKC0gbmV3LXBpeGVsLXNpemUpIGhvcml6 b250YWwgaWdub3JlKQorICAgICAgICAgIChzZXQtd2luZG93LW5ldy1ub3JtYWwKKyAgICAgICAg ICAgd2luZG93ICgtIChpZiBuZXctcGFyZW50IDEuMCAod2luZG93LW5vcm1hbC1zaXplIHdpbmRv dyBob3Jpem9udGFsKSkKKyAgICAgICAgICAgICAgICAgICAgIG5ldy1ub3JtYWwpKSkKKworICAg ICAgICAobGV0KiAoKG5ldyAoc3BsaXQtd2luZG93LWludGVybmFsIHdpbmRvdyBuZXctcGl4ZWwt c2l6ZSBzaWRlIG5ldy1ub3JtYWwpKSkKKyAgICAgICAgICAod2luZG93LS1waXhlbC10by10b3Rh bCBmcmFtZSBob3Jpem9udGFsKQorICAgICAgICAgIDs7IEFzc2lnbiB3aW5kb3ctc2lkZSBwYXJh bWV0ZXJzLCBpZiBhbnkuCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKChlcSB3aW5kb3ct Y29tYmluYXRpb24tcmVzaXplICdzaWRlKQorICAgICAgICAgICAgKGxldCAoKHdpbmRvdy1zaWRl CisgICAgICAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1z aWRlIHdpbmRvdy1zaWRlKQorICAgICAgICAgICAgICAgICAgICAoKGVxIHNpZGUgJ2Fib3ZlKSAn dG9wKQorICAgICAgICAgICAgICAgICAgICAoKGVxIHNpZGUgJ2JlbG93KSAnYm90dG9tKQorICAg ICAgICAgICAgICAgICAgICAodCBzaWRlKSkpKQorICAgICAgICAgICAgICA7OyBXZSBtYWRlIGEg bmV3IHNpZGUgd2luZG93LgorICAgICAgICAgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgbmV3 ICd3aW5kb3ctc2lkZSB3aW5kb3ctc2lkZSkKKyAgICAgICAgICAgICAgKHdoZW4gKGFuZCBuZXct cGFyZW50ICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAnd2luZG93LXNpZGUpKQorICAgICAgICAg ICAgICAgIDs7IFdlJ3ZlIGJlZW4gc3BsaXR0aW5nIGEgc2lkZSByb290IHdpbmRvdy4gIEdpdmUg dGhlCisgICAgICAgICAgICAgICAgOzsgbmV3IHBhcmVudCB0aGUgc2FtZSB3aW5kb3ctc2lkZSBw YXJhbWV0ZXIuCisgICAgICAgICAgICAgICAgKHNldC13aW5kb3ctcGFyYW1ldGVyCisgICAgICAg ICAgICAgICAgICh3aW5kb3ctcGFyZW50IG5ldykgJ3dpbmRvdy1zaWRlIHdpbmRvdy1zaWRlKSkp KQorICAgICAgICAgICAoKGVxIHdpbmRvdy1jb21iaW5hdGlvbi1yZXNpemUgJ2F0b20pCisgICAg ICAgICAgICA7OyBNYWtlIHN1cmUgYHdpbmRvdy0tY2hlY2stZnJhbWUnIHdvbid0IGRlc3Ryb3kg YW4gZXhpc3RpbmcKKyAgICAgICAgICAgIDs7IGF0b21pYyB3aW5kb3cgaW4gY2FzZSB0aGUgbmV3 IHdpbmRvdyBnZXRzIG5lc3RlZCBpbnNpZGUuCisgICAgICAgICAgICAodW5sZXNzICh3aW5kb3ct cGFyYW1ldGVyIHdpbmRvdyAnd2luZG93LWF0b20pCisgICAgICAgICAgICAgIChzZXQtd2luZG93 LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1hdG9tIHQpKQorICAgICAgICAgICAgKHdoZW4gbmV3 LXBhcmVudAorICAgICAgICAgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgKHdpbmRvdy1wYXJl bnQgbmV3KSAnd2luZG93LWF0b20gdCkpCisgICAgICAgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0 ZXIgbmV3ICd3aW5kb3ctYXRvbSB0KSkpCisKKyAgICAgICAgICA7OyBTYW5pdGl6ZSBzaXplcyB1 bmxlc3MgU0laRSB3YXMgc3BlY2lmaWVkLgorICAgICAgICAgICh1bmxlc3Mgc2l6ZQogICAgICAg ICAgICAgKHdpbmRvdy0tc2FuaXRpemUtd2luZG93LXNpemVzIGhvcml6b250YWwpKQogCi0JICAo cnVuLXdpbmRvdy1zY3JvbGwtZnVuY3Rpb25zIG5ldykKLQkgICh3aW5kb3ctLWNoZWNrIGZyYW1l KQotCSAgOzsgQWx3YXlzIHJldHVybiB0aGUgbmV3IHdpbmRvdy4KLQkgIG5ldykpKSkpCisgICAg ICAgICAgKHJ1bi13aW5kb3ctc2Nyb2xsLWZ1bmN0aW9ucyBuZXcpCisgICAgICAgICAgKHdpbmRv dy0tY2hlY2sgZnJhbWUpCisgICAgICAgICAgOzsgQWx3YXlzIHJldHVybiB0aGUgbmV3IHdpbmRv dy4KKyAgICAgICAgICBuZXcpKSkpKQogCiAoZGVmdW4gc3BsaXQtd2luZG93LW5vLWVycm9yICgm b3B0aW9uYWwgd2luZG93IHNpemUgc2lkZSBwaXhlbHdpc2UpCiAgICJNYWtlIGEgbmV3IHdpbmRv dyBhZGphY2VudCB0byBXSU5ET1cuCkBAIC01NTMzLDggKzU1MzMsOCBAQCBPdGhlcndpc2UsIHRo ZSB3aW5kb3cgc3RhcnRzIGFyZSBjaG9zZW4gc28gYXMgdG8gbWluaW1pemUgdGhlCiBhbW91bnQg b2YgcmVkaXNwbGF5OyB0aGlzIGlzIGNvbnZlbmllbnQgb24gc2xvdyB0ZXJtaW5hbHMuIgogICAo aW50ZXJhY3RpdmUgIlAiKQogICAobGV0ICgob2xkLXdpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkK LQkob2xkLXBvaW50ICh3aW5kb3ctcG9pbnQpKQotCShzaXplIChhbmQgc2l6ZSAocHJlZml4LW51 bWVyaWMtdmFsdWUgc2l6ZSkpKQorICAgICAgICAob2xkLXBvaW50ICh3aW5kb3ctcG9pbnQpKQor ICAgICAgICAoc2l6ZSAoYW5kIHNpemUgKHByZWZpeC1udW1lcmljLXZhbHVlIHNpemUpKSkKICAg ICAgICAgbW92ZWQtYnktd2luZG93LWhlaWdodCBtb3ZlZCBuZXctd2luZG93IGJvdHRvbSkKICAg ICAod2hlbiAoYW5kIHNpemUgKDwgc2l6ZSAwKSAoPCAoLSBzaXplKSB3aW5kb3ctbWluLWhlaWdo dCkpCiAgICAgICA7OyBgc3BsaXQtd2luZG93JyB3b3VsZCBub3Qgc2lnbmFsIGFuIGVycm9yIGhl cmUuCkBAIC01NTQyLDMxICs1NTQyLDMxIEBAIGFtb3VudCBvZiByZWRpc3BsYXk7IHRoaXMgaXMg Y29udmVuaWVudCBvbiBzbG93IHRlcm1pbmFscy4iCiAgICAgKHNldHEgbmV3LXdpbmRvdyAoc3Bs aXQtd2luZG93IG5pbCBzaXplKSkKICAgICAodW5sZXNzIHNwbGl0LXdpbmRvdy1rZWVwLXBvaW50 CiAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAod2luZG93LWJ1ZmZlcikKLQk7OyBVc2UgYHNh dmUtZXhjdXJzaW9uJyBhcm91bmQgdmVydGljYWwgbW92ZW1lbnRzIGJlbG93Ci0JOzsgKEJ1ZyMx MDk3MSkuICBOb3RlOiBXaGVuIHRoZSBzZWxlY3RlZCB3aW5kb3cncyBidWZmZXIgaGFzIGEKLQk7 OyBoZWFkZXIgbGluZSwgdXAgdG8gdHdvIGxpbmVzIG9mIHRoZSBidWZmZXIgbWF5IG5vdCBzaG93 IHVwCi0JOzsgaW4gdGhlIHJlc3VsdGluZyBjb25maWd1cmF0aW9uLgotCShzYXZlLWV4Y3Vyc2lv bgotCSAgKGdvdG8tY2hhciAod2luZG93LXN0YXJ0KSkKLQkgIChzZXRxIG1vdmVkICh2ZXJ0aWNh bC1tb3Rpb24gKHdpbmRvdy1oZWlnaHQpKSkKLQkgIChzZXQtd2luZG93LXN0YXJ0IG5ldy13aW5k b3cgKHBvaW50KSkKLQkgICh3aGVuICg+IChwb2ludCkgKHdpbmRvdy1wb2ludCBuZXctd2luZG93 KSkKLQkgICAgKHNldC13aW5kb3ctcG9pbnQgbmV3LXdpbmRvdyAocG9pbnQpKSkKLQkgICh3aGVu ICg9IG1vdmVkICh3aW5kb3ctaGVpZ2h0KSkKLQkgICAgKHNldHEgbW92ZWQtYnktd2luZG93LWhl aWdodCB0KQotCSAgICAodmVydGljYWwtbW90aW9uIC0xKSkKLQkgIChzZXRxIGJvdHRvbSAocG9p bnQpKSkKLQkoYW5kIG1vdmVkLWJ5LXdpbmRvdy1oZWlnaHQKLQkgICAgICg8PSBib3R0b20gKHBv aW50KSkKLQkgICAgIChzZXQtd2luZG93LXBvaW50IG9sZC13aW5kb3cgKDEtIGJvdHRvbSkpKQot CShhbmQgbW92ZWQtYnktd2luZG93LWhlaWdodAotCSAgICAgKDw9ICh3aW5kb3ctc3RhcnQgbmV3 LXdpbmRvdykgb2xkLXBvaW50KQotCSAgICAgKHNldC13aW5kb3ctcG9pbnQgbmV3LXdpbmRvdyBv bGQtcG9pbnQpCi0JICAgICAoc2VsZWN0LXdpbmRvdyBuZXctd2luZG93KSkpKQorICAgICAgICA7 OyBVc2UgYHNhdmUtZXhjdXJzaW9uJyBhcm91bmQgdmVydGljYWwgbW92ZW1lbnRzIGJlbG93Cisg ICAgICAgIDs7IChCdWcjMTA5NzEpLiAgTm90ZTogV2hlbiB0aGUgc2VsZWN0ZWQgd2luZG93J3Mg YnVmZmVyIGhhcyBhCisgICAgICAgIDs7IGhlYWRlciBsaW5lLCB1cCB0byB0d28gbGluZXMgb2Yg dGhlIGJ1ZmZlciBtYXkgbm90IHNob3cgdXAKKyAgICAgICAgOzsgaW4gdGhlIHJlc3VsdGluZyBj b25maWd1cmF0aW9uLgorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAoZ290by1j aGFyICh3aW5kb3ctc3RhcnQpKQorICAgICAgICAgIChzZXRxIG1vdmVkICh2ZXJ0aWNhbC1tb3Rp b24gKHdpbmRvdy1oZWlnaHQpKSkKKyAgICAgICAgICAoc2V0LXdpbmRvdy1zdGFydCBuZXctd2lu ZG93IChwb2ludCkpCisgICAgICAgICAgKHdoZW4gKD4gKHBvaW50KSAod2luZG93LXBvaW50IG5l dy13aW5kb3cpKQorICAgICAgICAgICAgKHNldC13aW5kb3ctcG9pbnQgbmV3LXdpbmRvdyAocG9p bnQpKSkKKyAgICAgICAgICAod2hlbiAoPSBtb3ZlZCAod2luZG93LWhlaWdodCkpCisgICAgICAg ICAgICAoc2V0cSBtb3ZlZC1ieS13aW5kb3ctaGVpZ2h0IHQpCisgICAgICAgICAgICAodmVydGlj YWwtbW90aW9uIC0xKSkKKyAgICAgICAgICAoc2V0cSBib3R0b20gKHBvaW50KSkpCisgICAgICAg IChhbmQgbW92ZWQtYnktd2luZG93LWhlaWdodAorICAgICAgICAgICAgICg8PSBib3R0b20gKHBv aW50KSkKKyAgICAgICAgICAgICAoc2V0LXdpbmRvdy1wb2ludCBvbGQtd2luZG93ICgxLSBib3R0 b20pKSkKKyAgICAgICAgKGFuZCBtb3ZlZC1ieS13aW5kb3ctaGVpZ2h0CisgICAgICAgICAgICAg KDw9ICh3aW5kb3ctc3RhcnQgbmV3LXdpbmRvdykgb2xkLXBvaW50KQorICAgICAgICAgICAgIChz ZXQtd2luZG93LXBvaW50IG5ldy13aW5kb3cgb2xkLXBvaW50KQorICAgICAgICAgICAgIChzZWxl Y3Qtd2luZG93IG5ldy13aW5kb3cpKSkpCiAgICAgOzsgQWx3YXlzIGNvcHkgcXVpdC1yZXN0b3Jl IHBhcmFtZXRlciBpbiBpbnRlcmFjdGl2ZSB1c2UuCiAgICAgKGxldCAoKHF1aXQtcmVzdG9yZSAo d2luZG93LXBhcmFtZXRlciBvbGQtd2luZG93ICdxdWl0LXJlc3RvcmUpKSkKICAgICAgICh3aGVu IHF1aXQtcmVzdG9yZQotCShzZXQtd2luZG93LXBhcmFtZXRlciBuZXctd2luZG93ICdxdWl0LXJl c3RvcmUgcXVpdC1yZXN0b3JlKSkpCisgICAgICAgIChzZXQtd2luZG93LXBhcmFtZXRlciBuZXct d2luZG93ICdxdWl0LXJlc3RvcmUgcXVpdC1yZXN0b3JlKSkpCiAgICAgbmV3LXdpbmRvdykpCiAK IChkZWZhbGlhcyAnc3BsaXQtd2luZG93LXZlcnRpY2FsbHkgJ3NwbGl0LXdpbmRvdy1iZWxvdykK QEAgLTU1ODYsOCArNTU4Niw4IEBAIGJhcnMsIGl0IGluY2x1ZGVzIHRoZSB3aWR0aCBvZiB0aGUg ZGl2aWRlciBjb2x1bW4gdG8gdGhlIHdpbmRvdydzCiByaWdodCwgaWYgYW55LiIKICAgKGludGVy YWN0aXZlICJQIikKICAgKGxldCAoKG9sZC13aW5kb3cgKHNlbGVjdGVkLXdpbmRvdykpCi0JKHNp emUgKGFuZCBzaXplIChwcmVmaXgtbnVtZXJpYy12YWx1ZSBzaXplKSkpCi0JbmV3LXdpbmRvdykK KyAgICAgICAgKHNpemUgKGFuZCBzaXplIChwcmVmaXgtbnVtZXJpYy12YWx1ZSBzaXplKSkpCisg ICAgICAgIG5ldy13aW5kb3cpCiAgICAgKHdoZW4gKGFuZCBzaXplICg8IHNpemUgMCkgKDwgKC0g c2l6ZSkgd2luZG93LW1pbi13aWR0aCkpCiAgICAgICA7OyBgc3BsaXQtd2luZG93JyB3b3VsZCBu b3Qgc2lnbmFsIGFuIGVycm9yIGhlcmUuCiAgICAgICAoZXJyb3IgIlNpemUgb2YgbmV3IHdpbmRv dyB0b28gc21hbGwiKSkKQEAgLTU1OTUsNyArNTU5NSw3IEBAIHJpZ2h0LCBpZiBhbnkuIgogICAg IDs7IEFsd2F5cyBjb3B5IHF1aXQtcmVzdG9yZSBwYXJhbWV0ZXIgaW4gaW50ZXJhY3RpdmUgdXNl LgogICAgIChsZXQgKChxdWl0LXJlc3RvcmUgKHdpbmRvdy1wYXJhbWV0ZXIgb2xkLXdpbmRvdyAn cXVpdC1yZXN0b3JlKSkpCiAgICAgICAod2hlbiBxdWl0LXJlc3RvcmUKLQkoc2V0LXdpbmRvdy1w YXJhbWV0ZXIgbmV3LXdpbmRvdyAncXVpdC1yZXN0b3JlIHF1aXQtcmVzdG9yZSkpKQorICAgICAg ICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgbmV3LXdpbmRvdyAncXVpdC1yZXN0b3JlIHF1aXQtcmVz dG9yZSkpKQogICAgIG5ldy13aW5kb3cpKQogCiAoZGVmYWxpYXMgJ3NwbGl0LXdpbmRvdy1ob3Jp em9udGFsbHkgJ3NwbGl0LXdpbmRvdy1yaWdodCkKQEAgLTU2MTQsMjAgKzU2MTQsMjAgQEAgcmln aHQsIGlmIGFueS4iCiBXSU5ET1cgbXVzdCBiZSBhIHZlcnRpY2FsIGNvbWJpbmF0aW9uIChob3Jp em9udGFsIGlmIEhPUklaT05UQUwKIGlzIG5vbi1uaWwpLiIKICAgKGxldCogKChjaGFyLXNpemUg KGlmIHdpbmRvdy1yZXNpemUtcGl4ZWx3aXNlCi0JCQkxCi0JCSAgICAgIChmcmFtZS1jaGFyLXNp emUgd2luZG93IGhvcml6b250YWwpKSkKLQkgKGZpcnN0ICh3aW5kb3ctY2hpbGQgd2luZG93KSkK LQkgKHN1YiBmaXJzdCkKLQkgKG51bWJlci1vZi1jaGlsZHJlbiAwKQotCSAocGFyZW50LXNpemUg KHdpbmRvdy1uZXctcGl4ZWwgd2luZG93KSkKLQkgKHRvdGFsLXN1bSBwYXJlbnQtc2l6ZSkKLQkg ZmFpbGVkIHNpemUgc3ViLXRvdGFsIHN1Yi1kZWx0YSBzdWItYW1vdW50IHJlc3QpCisgICAgICAg ICAgICAgICAgICAgICAgICAxCisgICAgICAgICAgICAgICAgICAgICAgKGZyYW1lLWNoYXItc2l6 ZSB3aW5kb3cgaG9yaXpvbnRhbCkpKQorICAgICAgICAgKGZpcnN0ICh3aW5kb3ctY2hpbGQgd2lu ZG93KSkKKyAgICAgICAgIChzdWIgZmlyc3QpCisgICAgICAgICAobnVtYmVyLW9mLWNoaWxkcmVu IDApCisgICAgICAgICAocGFyZW50LXNpemUgKHdpbmRvdy1uZXctcGl4ZWwgd2luZG93KSkKKyAg ICAgICAgICh0b3RhbC1zdW0gcGFyZW50LXNpemUpCisgICAgICAgICBmYWlsZWQgc2l6ZSBzdWIt dG90YWwgc3ViLWRlbHRhIHN1Yi1hbW91bnQgcmVzdCkKICAgICAod2hpbGUgc3ViCiAgICAgICAo aWYgKHdpbmRvdy1zaXplLWZpeGVkLXAgc3ViIGhvcml6b250YWwpCiAgICAgICAgICAgKHByb2du CiAgICAgICAgICAgICAoc2V0cSB0b3RhbC1zdW0KLQkgICAgICAgICAgKC0gdG90YWwtc3VtICh3 aW5kb3ctc2l6ZSBzdWIgaG9yaXpvbnRhbCB0KSkpCi0JICAgIChzZXQtd2luZG93LW5ldy1ub3Jt YWwgc3ViICdpZ25vcmUpKQorICAgICAgICAgICAgICAgICAgKC0gdG90YWwtc3VtICh3aW5kb3ct c2l6ZSBzdWIgaG9yaXpvbnRhbCB0KSkpCisgICAgICAgICAgICAoc2V0LXdpbmRvdy1uZXctbm9y bWFsIHN1YiAnaWdub3JlKSkKICAgICAgICAgKHNldHEgbnVtYmVyLW9mLWNoaWxkcmVuICgxKyBu dW1iZXItb2YtY2hpbGRyZW4pKSkKICAgICAgIChzZXRxIHN1YiAod2luZG93LXJpZ2h0IHN1Yikp KQogCkBAIC01NjM3LDIxICs1NjM3LDIxIEBAIGlzIG5vbi1uaWwpLiIKICAgICAgIChzZXRxIGZh aWxlZCBuaWwpCiAgICAgICAoc2V0cSBzdWIgZmlyc3QpCiAgICAgICAod2hpbGUgKGFuZCBzdWIg KG5vdCBmYWlsZWQpKQotCTs7IElnbm9yZSBjaGlsZCB3aW5kb3dzIHRoYXQgc2hvdWxkIGJlIGln bm9yZWQgb3IgYXJlIHN0dWNrLgotCSh1bmxlc3MgKHdpbmRvdy0tcmVzaXplLWNoaWxkLXdpbmRv d3Mtc2tpcC1wIHN1YikKLQkgIChzZXRxIHN1Yi10b3RhbCAod2luZG93LXNpemUgc3ViIGhvcml6 b250YWwgdCkpCi0JICAoc2V0cSBzdWItZGVsdGEgKC0gc2l6ZSBzdWItdG90YWwpKQotCSAgKHNl dHEgc3ViLWFtb3VudAotCQkod2luZG93LXNpemFibGUgc3ViIHN1Yi1kZWx0YSBob3Jpem9udGFs IG5pbCB0KSkKLQkgIDs7IFJlZ2lzdGVyIHRoZSBuZXcgdG90YWwgc2l6ZSBmb3IgdGhpcyBjaGls ZCB3aW5kb3cuCi0JICAoc2V0LXdpbmRvdy1uZXctcGl4ZWwgc3ViICgrIHN1Yi10b3RhbCBzdWIt YW1vdW50KSkKLQkgICh1bmxlc3MgKD0gc3ViLWFtb3VudCBzdWItZGVsdGEpCi0JICAgIChzZXRx IHRvdGFsLXN1bSAoLSB0b3RhbC1zdW0gc3ViLXRvdGFsIHN1Yi1hbW91bnQpKQotCSAgICAoc2V0 cSBudW1iZXItb2YtY2hpbGRyZW4gKDEtIG51bWJlci1vZi1jaGlsZHJlbikpCi0JICAgIDs7IFdl IGZhaWxlZCBhbmQgbmVlZCBhIG5ldyByb3VuZC4KLQkgICAgKHNldHEgZmFpbGVkIHQpCi0JICAg IChzZXQtd2luZG93LW5ldy1ub3JtYWwgc3ViICdza2lwKSkpCi0JKHNldHEgc3ViICh3aW5kb3ct cmlnaHQgc3ViKSkpKQorICAgICAgICA7OyBJZ25vcmUgY2hpbGQgd2luZG93cyB0aGF0IHNob3Vs ZCBiZSBpZ25vcmVkIG9yIGFyZSBzdHVjay4KKyAgICAgICAgKHVubGVzcyAod2luZG93LS1yZXNp emUtY2hpbGQtd2luZG93cy1za2lwLXAgc3ViKQorICAgICAgICAgIChzZXRxIHN1Yi10b3RhbCAo d2luZG93LXNpemUgc3ViIGhvcml6b250YWwgdCkpCisgICAgICAgICAgKHNldHEgc3ViLWRlbHRh ICgtIHNpemUgc3ViLXRvdGFsKSkKKyAgICAgICAgICAoc2V0cSBzdWItYW1vdW50CisgICAgICAg ICAgICAgICAgKHdpbmRvdy1zaXphYmxlIHN1YiBzdWItZGVsdGEgaG9yaXpvbnRhbCBuaWwgdCkp CisgICAgICAgICAgOzsgUmVnaXN0ZXIgdGhlIG5ldyB0b3RhbCBzaXplIGZvciB0aGlzIGNoaWxk IHdpbmRvdy4KKyAgICAgICAgICAoc2V0LXdpbmRvdy1uZXctcGl4ZWwgc3ViICgrIHN1Yi10b3Rh bCBzdWItYW1vdW50KSkKKyAgICAgICAgICAodW5sZXNzICg9IHN1Yi1hbW91bnQgc3ViLWRlbHRh KQorICAgICAgICAgICAgKHNldHEgdG90YWwtc3VtICgtIHRvdGFsLXN1bSBzdWItdG90YWwgc3Vi LWFtb3VudCkpCisgICAgICAgICAgICAoc2V0cSBudW1iZXItb2YtY2hpbGRyZW4gKDEtIG51bWJl ci1vZi1jaGlsZHJlbikpCisgICAgICAgICAgICA7OyBXZSBmYWlsZWQgYW5kIG5lZWQgYSBuZXcg cm91bmQuCisgICAgICAgICAgICAoc2V0cSBmYWlsZWQgdCkKKyAgICAgICAgICAgIChzZXQtd2lu ZG93LW5ldy1ub3JtYWwgc3ViICdza2lwKSkpCisgICAgICAgIChzZXRxIHN1YiAod2luZG93LXJp Z2h0IHN1YikpKSkKIAogICAgICh3aGVuICg+IG51bWJlci1vZi1jaGlsZHJlbiAwKQogICAgICAg KHNldHEgcmVzdCAoJSB0b3RhbC1zdW0gbnVtYmVyLW9mLWNoaWxkcmVuKSkKQEAgLTU2NjAsOCAr NTY2MCw4IEBAIGlzIG5vbi1uaWwpLiIKICAgICAgIChzZXRxIHN1YiBmaXJzdCkKICAgICAgICh3 aGlsZSAoYW5kIHN1YiAoPiByZXN0IDApKQogICAgICAgICAodW5sZXNzICh3aW5kb3ctLXJlc2l6 ZS1jaGlsZC13aW5kb3dzLXNraXAtcCB3aW5kb3cpCi0JICAoc2V0LXdpbmRvdy1uZXctcGl4ZWwg c3ViIChtaW4gcmVzdCBjaGFyLXNpemUpIHQpCi0JICAoc2V0cSByZXN0ICgtIHJlc3QgY2hhci1z aXplKSkpCisgICAgICAgICAgKHNldC13aW5kb3ctbmV3LXBpeGVsIHN1YiAobWluIHJlc3QgY2hh ci1zaXplKSB0KQorICAgICAgICAgIChzZXRxIHJlc3QgKC0gcmVzdCBjaGFyLXNpemUpKSkKICAg ICAgICAgKHNldHEgc3ViICh3aW5kb3ctcmlnaHQgc3ViKSkpKQogCiAgICAgOzsgRml4IHJvdW5k aW5nIGJ5IHRyeWluZyB0byBlbmxhcmdlIHN0dWNrIHdpbmRvd3MgYnkgb25lIGxpbmUKQEAgLTU2 NjksOCArNTY2OSw4IEBAIGlzIG5vbi1uaWwpLiIKICAgICAoc2V0cSBzdWIgZmlyc3QpCiAgICAg KHdoaWxlIChhbmQgc3ViICg+IHJlc3QgMCkpCiAgICAgICAodW5sZXNzIChlcSAod2luZG93LW5l dy1ub3JtYWwgc3ViKSAnaWdub3JlKQotCShzZXQtd2luZG93LW5ldy1waXhlbCBzdWIgKG1pbiBy ZXN0IGNoYXItc2l6ZSkgdCkKLQkoc2V0cSByZXN0ICgtIHJlc3QgY2hhci1zaXplKSkpCisgICAg ICAgIChzZXQtd2luZG93LW5ldy1waXhlbCBzdWIgKG1pbiByZXN0IGNoYXItc2l6ZSkgdCkKKyAg ICAgICAgKHNldHEgcmVzdCAoLSByZXN0IGNoYXItc2l6ZSkpKQogICAgICAgKHNldHEgc3ViICh3 aW5kb3ctcmlnaHQgc3ViKSkpCiAKICAgICAoc2V0cSBzdWIgZmlyc3QpCkBAIC01Njc4LDkgKzU2 NzgsOSBAQCBpcyBub24tbmlsKS4iCiAgICAgICA7OyBSZWNvcmQgbmV3IG5vcm1hbCBzaXplcy4K ICAgICAgIChzZXQtd2luZG93LW5ldy1ub3JtYWwKICAgICAgICBzdWIgKC8gKGlmIChlcSAod2lu ZG93LW5ldy1ub3JtYWwgc3ViKSAnaWdub3JlKQotCQkgICh3aW5kb3ctc2l6ZSBzdWIgaG9yaXpv bnRhbCB0KQotCQkod2luZG93LW5ldy1waXhlbCBzdWIpKQotCSAgICAgIChmbG9hdCBwYXJlbnQt c2l6ZSkpKQorICAgICAgICAgICAgICAgICAgKHdpbmRvdy1zaXplIHN1YiBob3Jpem9udGFsIHQp CisgICAgICAgICAgICAgICAgKHdpbmRvdy1uZXctcGl4ZWwgc3ViKSkKKyAgICAgICAgICAgICAg KGZsb2F0IHBhcmVudC1zaXplKSkpCiAgICAgICA7OyBSZWN1cnNpdmVseSBiYWxhbmNlIGVhY2gg d2luZG93J3MgY2hpbGQgd2luZG93cy4KICAgICAgIChiYWxhbmNlLXdpbmRvd3MtMSBzdWIgaG9y aXpvbnRhbCkKICAgICAgIChzZXRxIHN1YiAod2luZG93LXJpZ2h0IHN1YikpKSkpCkBAIC01Njg5 LDEzICs1Njg5LDEzIEBAIGlzIG5vbi1uaWwpLiIKICAgIlN1YnJvdXRpbmUgb2YgYGJhbGFuY2Ut d2luZG93cycuIgogICAoaWYgKHdpbmRvdy1jaGlsZCB3aW5kb3cpCiAgICAgICAobGV0ICgoc3Vi ICh3aW5kb3ctY2hpbGQgd2luZG93KSkpCi0JKGlmICh3aW5kb3ctY29tYmluZWQtcCBzdWIgaG9y aXpvbnRhbCkKLQkgICAgKGJhbGFuY2Utd2luZG93cy0yIHdpbmRvdyBob3Jpem9udGFsKQotCSAg KGxldCAoKHNpemUgKHdpbmRvdy1uZXctcGl4ZWwgd2luZG93KSkpCi0JICAgICh3aGlsZSBzdWIK LQkgICAgICAoc2V0LXdpbmRvdy1uZXctcGl4ZWwgc3ViIHNpemUpCi0JICAgICAgKGJhbGFuY2Ut d2luZG93cy0xIHN1YiBob3Jpem9udGFsKQotCSAgICAgIChzZXRxIHN1YiAod2luZG93LXJpZ2h0 IHN1YikpKSkpKSkpCisgICAgICAgIChpZiAod2luZG93LWNvbWJpbmVkLXAgc3ViIGhvcml6b250 YWwpCisgICAgICAgICAgICAoYmFsYW5jZS13aW5kb3dzLTIgd2luZG93IGhvcml6b250YWwpCisg ICAgICAgICAgKGxldCAoKHNpemUgKHdpbmRvdy1uZXctcGl4ZWwgd2luZG93KSkpCisgICAgICAg ICAgICAod2hpbGUgc3ViCisgICAgICAgICAgICAgIChzZXQtd2luZG93LW5ldy1waXhlbCBzdWIg c2l6ZSkKKyAgICAgICAgICAgICAgKGJhbGFuY2Utd2luZG93cy0xIHN1YiBob3Jpem9udGFsKQor ICAgICAgICAgICAgICAoc2V0cSBzdWIgKHdpbmRvdy1yaWdodCBzdWIpKSkpKSkpKQogCiAoZGVm dW4gYmFsYW5jZS13aW5kb3dzICgmb3B0aW9uYWwgd2luZG93LW9yLWZyYW1lKQogICAiQmFsYW5j ZSB0aGUgc2l6ZXMgb2Ygd2luZG93cyBvZiBXSU5ET1ctT1ItRlJBTUUuCkBAIC01NzA2LDE2ICs1 NzA2LDE2IEBAIHJlY3Vyc2l2ZWx5IGJhbGFuY2UgdGhlIHNpemVzIG9mIGFsbCBjaGlsZCB3aW5k b3dzIG9mIHRoYXQKIHdpbmRvdy4iCiAgIChpbnRlcmFjdGl2ZSkKICAgKGxldCogKCh3aW5kb3cK LQkgIChjb25kCi0JICAgKChvciAobm90IHdpbmRvdy1vci1mcmFtZSkKLQkJKGZyYW1lLWxpdmUt cCB3aW5kb3ctb3ItZnJhbWUpKQotCSAgICAoZnJhbWUtcm9vdC13aW5kb3cgd2luZG93LW9yLWZy YW1lKSkKLQkgICAoKG9yICh3aW5kb3ctbGl2ZS1wIHdpbmRvdy1vci1mcmFtZSkKLQkJKHdpbmRv dy1jaGlsZCB3aW5kb3ctb3ItZnJhbWUpKQotCSAgICB3aW5kb3ctb3ItZnJhbWUpCi0JICAgKHQK LQkgICAgKGVycm9yICJOb3QgYSB3aW5kb3cgb3IgZnJhbWUgJXMiIHdpbmRvdy1vci1mcmFtZSkp KSkKLQkgKGZyYW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkpCisgICAgICAgICAgKGNvbmQKKyAg ICAgICAgICAgKChvciAobm90IHdpbmRvdy1vci1mcmFtZSkKKyAgICAgICAgICAgICAgICAoZnJh bWUtbGl2ZS1wIHdpbmRvdy1vci1mcmFtZSkpCisgICAgICAgICAgICAoZnJhbWUtcm9vdC13aW5k b3cgd2luZG93LW9yLWZyYW1lKSkKKyAgICAgICAgICAgKChvciAod2luZG93LWxpdmUtcCB3aW5k b3ctb3ItZnJhbWUpCisgICAgICAgICAgICAgICAgKHdpbmRvdy1jaGlsZCB3aW5kb3ctb3ItZnJh bWUpKQorICAgICAgICAgICAgd2luZG93LW9yLWZyYW1lKQorICAgICAgICAgICAodAorICAgICAg ICAgICAgKGVycm9yICJOb3QgYSB3aW5kb3cgb3IgZnJhbWUgJXMiIHdpbmRvdy1vci1mcmFtZSkp KSkKKyAgICAgICAgIChmcmFtZSAod2luZG93LWZyYW1lIHdpbmRvdykpKQogICAgIDs7IEJhbGFu Y2UgdmVydGljYWxseS4KICAgICAod2luZG93LS1yZXNpemUtcmVzZXQgKHdpbmRvdy1mcmFtZSB3 aW5kb3cpKQogICAgIChiYWxhbmNlLXdpbmRvd3MtMSB3aW5kb3cpCkBAIC01NzM2LDggKzU3MzYs OCBAQCBuaWwgKGkuZS4gYW55KSwgYGhlaWdodCcgb3IgYHdpZHRoJy4iCiAgICh3aXRoLWN1cnJl bnQtYnVmZmVyICh3aW5kb3ctYnVmZmVyIHdpbmRvdykKICAgICAoYW5kIHdpbmRvdy1zaXplLWZp eGVkCiAgICAgICAgICAobm90IChhbmQgZGlyZWN0aW9uCi0JCSAgIChtZW1iZXIgKGNvbnMgZGly ZWN0aW9uIHdpbmRvdy1zaXplLWZpeGVkKQotCQkJICAgJygoaGVpZ2h0IC4gd2lkdGgpICh3aWR0 aCAuIGhlaWdodCkpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgKG1lbWJlciAoY29ucyBkaXJl Y3Rpb24gd2luZG93LXNpemUtZml4ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCho ZWlnaHQgLiB3aWR0aCkgKHdpZHRoIC4gaGVpZ2h0KSkpKSkpKSkKIAogOzs7IEEgZGlmZmVyZW50 IHNvbHV0aW9uIHRvIGJhbGFuY2Utd2luZG93cy4KIChkZWZ2YXIgd2luZG93LWFyZWEtZmFjdG9y IDEKQEAgLTU3NTMsMTAgKzU3NTMsMTAgQEAgQXJndW1lbnRzIFdJTkRPVywgREVMVEEgYW5kIEhP UklaT05UQUwgYXJlIHBhc3NlZCBvbiB0byB0aGF0IGZ1bmN0aW9uLiIKICAgKHdoaWxlICg+PSAo YWJzIGRlbHRhKSAxKQogICAgIChjb25kaXRpb24tY2FzZSBuaWwKICAgICAgICAgKHByb2duCi0J ICA7OyBJdCB3YXMgd3JvbmcgdG8gdXNlIGB3aW5kb3ctcmVzaXplJyBoZXJlLiAgU29tZWhvdwot CSAgOzsgYGJhbGFuY2Utd2luZG93cy1hcmVhJyBkZXBlbmRzIG9uIHJlc2l6aW5nIHdpbmRvd3MK LQkgIDs7IGFzeW1tZXRyaWNhbGx5LgotCSAgKGFkanVzdC13aW5kb3ctdHJhaWxpbmctZWRnZSB3 aW5kb3cgZGVsdGEgaG9yaXpvbnRhbCBwaXhlbHdpc2UpCisgICAgICAgICAgOzsgSXQgd2FzIHdy b25nIHRvIHVzZSBgd2luZG93LXJlc2l6ZScgaGVyZS4gIFNvbWVob3cKKyAgICAgICAgICA7OyBg YmFsYW5jZS13aW5kb3dzLWFyZWEnIGRlcGVuZHMgb24gcmVzaXppbmcgd2luZG93cworICAgICAg ICAgIDs7IGFzeW1tZXRyaWNhbGx5LgorICAgICAgICAgIChhZGp1c3Qtd2luZG93LXRyYWlsaW5n LWVkZ2Ugd2luZG93IGRlbHRhIGhvcml6b250YWwgcGl4ZWx3aXNlKQogICAgICAgICAgIChzZXRx IGRlbHRhIDApKQogICAgICAgKGVycm9yCiAgICAgICAgOzsobWVzc2FnZSAiYWRqdXN0OiAlcyIg KGVycm9yLW1lc3NhZ2Utc3RyaW5nIGVycikpCkBAIC01NzczLDggKzU3NzMsOCBAQCBzcGVjaWZp YyBidWZmZXJzLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChub3Qg KHdpbmRvdy1maXhlZC1zaXplLXAgd2luKSkgd2luKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh3aW5kb3ctbGlzdCBuaWwgJ25vbWluaSkpKSkKICAgICAgICAgIChjaGFuZ2Vs b2cgbmlsKQotCSAocGl4ZWx3aXNlIHdpbmRvdy1yZXNpemUtcGl4ZWx3aXNlKQotCSBuZXh0KQor ICAgICAgICAgKHBpeGVsd2lzZSB3aW5kb3ctcmVzaXplLXBpeGVsd2lzZSkKKyAgICAgICAgIG5l eHQpCiAgICAgOzsgUmVzaXppbmcgYSB3aW5kb3cgY2hhbmdlcyB0aGUgc2l6ZSBvZiBzdXJyb3Vu ZGluZyB3aW5kb3dzIGluIGNvbXBsZXgKICAgICA7OyB3YXlzLCBzbyBpdCdzIGRpZmZpY3VsdCB0 byBiYWxhbmNlIHRoZW0gYWxsLiAgVGhlIGludHJvZHVjdGlvbiBvZgogICAgIDs7IGBhZGp1c3Qt d2luZG93LXRyYWlsaW5nLWVkZ2UnIG1hZGUgaXQgYSBiaXQgZWFzaWVyLCBidXQgaXQgaXMgc3Rp bGwKQEAgLTU4MDAsMTEgKzU4MDAsMTEgQEAgc3BlY2lmaWMgYnVmZmVycy4iCiAgICAgICAgIChs ZXQqICgoaG9yaXoKICAgICAgICAgICAgICAgICAoPCAoY2FyICh3aW5kb3ctcGl4ZWwtZWRnZXMg d2luKSkgKGNhciAod2luZG93LXBpeGVsLWVkZ2VzIG5leHQpKSkpCiAgICAgICAgICAgICAgICAo YXJlYWRpZmYgKC8gKC0gKCogKHdpbmRvdy1zaXplIG5leHQgbmlsIHBpeGVsd2lzZSkKLQkJCQkg ICh3aW5kb3ctc2l6ZSBuZXh0IHQgcGl4ZWx3aXNlKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh3aW5kb3ctc2l6ZSBuZXh0IHQgcGl4ZWx3aXNlKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChidWZmZXItbG9jYWwtdmFsdWUgJ3dpbmRvdy1hcmVhLWZhY3Rv cgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHdpbmRvdy1idWZmZXIgbmV4dCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgq ICh3aW5kb3ctc2l6ZSB3aW4gbmlsIHBpeGVsd2lzZSkKLQkJCQkgICh3aW5kb3ctc2l6ZSB3aW4g dCBwaXhlbHdpc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1z aXplIHdpbiB0IHBpeGVsd2lzZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo YnVmZmVyLWxvY2FsLXZhbHVlICd3aW5kb3ctYXJlYS1mYWN0b3IKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctYnVmZmVyIHdpbikp KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF4IChidWZmZXItbG9jYWwtdmFsdWUg J3dpbmRvdy1hcmVhLWZhY3RvcgpAQCAtNTgxMyw5ICs1ODEzLDkgQEAgc3BlY2lmaWMgYnVmZmVy cy4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICh3aW5kb3ctYnVmZmVyIG5leHQpKSkpKQogICAgICAgICAgICAgICAgKGVkZ2VzaXplIChpZiBo b3JpegogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyAod2luZG93LXNpemUgd2luIG5p bCBwaXhlbHdpc2UpCi0JCQkJKHdpbmRvdy1zaXplIG5leHQgbmlsIHBpeGVsd2lzZSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctc2l6ZSBuZXh0IG5pbCBwaXhlbHdp c2UpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCsgKHdpbmRvdy1zaXplIHdpbiB0IHBp eGVsd2lzZSkKLQkJCSAgICAgICh3aW5kb3ctc2l6ZSBuZXh0IHQgcGl4ZWx3aXNlKSkpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1zaXplIG5leHQgdCBwaXhlbHdpc2Up KSkpCiAgICAgICAgICAgICAgICAoZGlmZiAoLyBhcmVhZGlmZiBlZGdlc2l6ZSkpKQogICAgICAg ICAgICh3aGVuICh6ZXJvcCBkaWZmKQogICAgICAgICAgICAgOzsgTWF5YmUgZGlmZiBpcyBhY3R1 YWxseSBjbG9zZXIgdG8gMSB0aGFuIHRvIDAuCkBAIC01ODI4LDkgKzU4MjgsOSBAQCBzcGVjaWZp YyBidWZmZXJzLiIKICAgICAgICAgICAgICAgOzsgTWFrZSBzdXJlIG5lZ2xpZ2libGUgZGlmZmVy ZW5jZXMgZG9uJ3QgYWNjdW11bGF0ZSB0bwogICAgICAgICAgICAgICA7OyBiZWNvbWUgc2lnbmlm aWNhbnQuCiAgICAgICAgICAgICAgIChzZXRxIGNhcnJ5ICgrIGNhcnJ5IGFyZWFkaWZmKSkKLQkg ICAgOzsgVGhpcyB1c2VkIGBhZGp1c3Qtd2luZG93LXRyYWlsaW5nLWVkZ2UnIGJlZm9yZSBhbmQg dXNlcwotCSAgICA7OyBgd2luZG93LXJlc2l6ZScgbm93LiAgRXJyb3Igd3JhcHBpbmcgaXMgc3Rp bGwgbmVlZGVkLgotCSAgICAoYmFsYW5jZS13aW5kb3dzLWFyZWEtYWRqdXN0IHdpbiBkaWZmIGhv cml6IHBpeGVsd2lzZSkKKyAgICAgICAgICAgIDs7IFRoaXMgdXNlZCBgYWRqdXN0LXdpbmRvdy10 cmFpbGluZy1lZGdlJyBiZWZvcmUgYW5kIHVzZXMKKyAgICAgICAgICAgIDs7IGB3aW5kb3ctcmVz aXplJyBub3cuICBFcnJvciB3cmFwcGluZyBpcyBzdGlsbCBuZWVkZWQuCisgICAgICAgICAgICAo YmFsYW5jZS13aW5kb3dzLWFyZWEtYWRqdXN0IHdpbiBkaWZmIGhvcml6IHBpeGVsd2lzZSkKICAg ICAgICAgICAgIDs7IChzaXQtZm9yIDAuNSkKICAgICAgICAgICAgIChsZXQgKChjaGFuZ2UgKGNv bnMgd2luICh3aW5kb3ctcGl4ZWwtZWRnZXMgd2luKSkpKQogICAgICAgICAgICAgICA7OyBJZiB0 aGUgc2FtZSBjaGFuZ2UgaGFzIGJlZW4gc2VlbiBhbHJlYWR5IGZvciB0aGlzIHdpbmRvdywKQEAg LTU4NTAsMjMgKzU4NTAsMjMgQEAgc3BlY2lmaWMgYnVmZmVycy4iCiAoZGVmdW4gd2luZG93LS1z dGF0ZS1nZXQtMSAod2luZG93ICZvcHRpb25hbCB3cml0YWJsZSkKICAgIkhlbHBlciBmdW5jdGlv biBmb3IgYHdpbmRvdy1zdGF0ZS1nZXQnLiIKICAgKGxldCogKCh0eXBlCi0JICAoY29uZAotCSAg ICgod2luZG93LXRvcC1jaGlsZCB3aW5kb3cpICd2YykKLQkgICAoKHdpbmRvdy1sZWZ0LWNoaWxk IHdpbmRvdykgJ2hjKQotCSAgICh0ICdsZWFmKSkpCi0JIChidWZmZXIgKHdpbmRvdy1idWZmZXIg d2luZG93KSkKLQkgKHNlbGVjdGVkIChlcSB3aW5kb3cgKHNlbGVjdGVkLXdpbmRvdykpKQotCSAo bmV4dC1idWZmZXJzICh3aGVuICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKLQkgICAgICAgICAgICAg ICAgIChkZWxxIG5pbCAobWFwY2FyIChsYW1iZGEgKGJ1ZmZlcikKKyAgICAgICAgICAoY29uZAor ICAgICAgICAgICAoKHdpbmRvdy10b3AtY2hpbGQgd2luZG93KSAndmMpCisgICAgICAgICAgICgo d2luZG93LWxlZnQtY2hpbGQgd2luZG93KSAnaGMpCisgICAgICAgICAgICh0ICdsZWFmKSkpCisg ICAgICAgICAoYnVmZmVyICh3aW5kb3ctYnVmZmVyIHdpbmRvdykpCisgICAgICAgICAoc2VsZWN0 ZWQgKGVxIHdpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkpCisgICAgICAgICAobmV4dC1idWZmZXJz ICh3aGVuICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAo ZGVscSBuaWwgKG1hcGNhciAobGFtYmRhIChidWZmZXIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChidWZmZXItbGl2ZS1wIGJ1ZmZlcikgYnVmZmVy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LW5l eHQtYnVmZmVycyB3aW5kb3cpKSkpKQotCSAocHJldi1idWZmZXJzICh3aGVuICh3aW5kb3ctbGl2 ZS1wIHdpbmRvdykKLQkgICAgICAgICAgICAgICAgIChkZWxxIG5pbCAobWFwY2FyIChsYW1iZGEg KGVudHJ5KQorICAgICAgICAgKHByZXYtYnVmZmVycyAod2hlbiAod2luZG93LWxpdmUtcCB3aW5k b3cpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbHEgbmlsIChtYXBjYXIgKGxhbWJkYSAo ZW50cnkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5k IChidWZmZXItbGl2ZS1wIChudGggMCBlbnRyeSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5KSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAod2luZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKSkpKQotCSAo aGVhZAotCSAgYCgsdHlwZQorICAgICAgICAgKGhlYWQKKyAgICAgICAgICBgKCx0eXBlCiAgICAg ICAgICAgICAsQCh1bmxlc3MgKHdpbmRvdy1uZXh0LXNpYmxpbmcgd2luZG93KSAnKChsYXN0IC4g dCkpKQogICAgICAgICAgICAgKHBpeGVsLXdpZHRoIC4gLCh3aW5kb3ctcGl4ZWwtd2lkdGggd2lu ZG93KSkKICAgICAgICAgICAgIChwaXhlbC1oZWlnaHQgLiAsKHdpbmRvdy1waXhlbC1oZWlnaHQg d2luZG93KSkKQEAgLTU4NzcsNDQgKzU4NzcsNDQgQEAgc3BlY2lmaWMgYnVmZmVycy4iCiAgICAg ICAgICAgICAsQCh1bmxlc3MgKHdpbmRvdy1saXZlLXAgd2luZG93KQogICAgICAgICAgICAgICAg IGAoKGNvbWJpbmF0aW9uLWxpbWl0IC4gLCh3aW5kb3ctY29tYmluYXRpb24tbGltaXQgd2luZG93 KSkpKQogICAgICAgICAgICAgLEAobGV0ICgocGFyYW1ldGVycyAod2luZG93LXBhcmFtZXRlcnMg d2luZG93KSkKLQkJICAgIGxpc3QpCi0JCTs7IE1ha2UgY29waWVzIG9mIHRob3NlIHdpbmRvdyBw YXJhbWV0ZXJzIHdob3NlCi0JCTs7IHBlcnNpc3RlbmNlIHByb3BlcnR5IGlzIGB3cml0YWJsZScg aWYgV1JJVEFCTEUgaXMKLQkJOzsgbm9uLW5pbCBhbmQgbm9uLW5pbCBpZiBXUklUQUJMRSBpcyBu aWwuCisgICAgICAgICAgICAgICAgICAgIGxpc3QpCisgICAgICAgICAgICAgICAgOzsgTWFrZSBj b3BpZXMgb2YgdGhvc2Ugd2luZG93IHBhcmFtZXRlcnMgd2hvc2UKKyAgICAgICAgICAgICAgICA7 OyBwZXJzaXN0ZW5jZSBwcm9wZXJ0eSBpcyBgd3JpdGFibGUnIGlmIFdSSVRBQkxFIGlzCisgICAg ICAgICAgICAgICAgOzsgbm9uLW5pbCBhbmQgbm9uLW5pbCBpZiBXUklUQUJMRSBpcyBuaWwuCiAg ICAgICAgICAgICAgICAgKGRvbGlzdCAocGFyIHBhcmFtZXRlcnMpCi0JCSAgKGxldCAoKHBlcnMg KGNkciAoYXNzcSAoY2FyIHBhcikKLQkJCQkJIHdpbmRvdy1wZXJzaXN0ZW50LXBhcmFtZXRlcnMp KSkpCi0JCSAgICAod2hlbiAoYW5kIHBlcnMgKG9yIChub3Qgd3JpdGFibGUpIChlcSBwZXJzICd3 cml0YWJsZSkpKQotCQkgICAgICAoc2V0cSBsaXN0IChjb25zIChjb25zIChjYXIgcGFyKSAoY2Ry IHBhcikpIGxpc3QpKSkpKQotCQk7OyBBZGQgYGNsb25lLW9mJyBwYXJhbWV0ZXIgaWYgbmVjZXNz YXJ5LgotCQkobGV0ICgocGVycyAoY2RyIChhc3NxICdjbG9uZS1vZgotCQkJCSAgICAgICB3aW5k b3ctcGVyc2lzdGVudC1wYXJhbWV0ZXJzKSkpKQotCQkgICh3aGVuIChhbmQgcGVycyAob3IgKG5v dCB3cml0YWJsZSkgKGVxIHBlcnMgJ3dyaXRhYmxlKSkKLQkJCSAgICAgKG5vdCAoYXNzcSAnY2xv bmUtb2YgbGlzdCkpKQotCQkgICAgKHNldHEgbGlzdCAoY29ucyAoY29ucyAnY2xvbmUtb2Ygd2lu ZG93KSBsaXN0KSkpKQorICAgICAgICAgICAgICAgICAgKGxldCAoKHBlcnMgKGNkciAoYXNzcSAo Y2FyIHBhcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93 LXBlcnNpc3RlbnQtcGFyYW1ldGVycykpKSkKKyAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFu ZCBwZXJzIChvciAobm90IHdyaXRhYmxlKSAoZXEgcGVycyAnd3JpdGFibGUpKSkKKyAgICAgICAg ICAgICAgICAgICAgICAoc2V0cSBsaXN0IChjb25zIChjb25zIChjYXIgcGFyKSAoY2RyIHBhcikp IGxpc3QpKSkpKQorICAgICAgICAgICAgICAgIDs7IEFkZCBgY2xvbmUtb2YnIHBhcmFtZXRlciBp ZiBuZWNlc3NhcnkuCisgICAgICAgICAgICAgICAgKGxldCAoKHBlcnMgKGNkciAoYXNzcSAnY2xv bmUtb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy1wZXJz aXN0ZW50LXBhcmFtZXRlcnMpKSkpCisgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIHBlcnMg KG9yIChub3Qgd3JpdGFibGUpIChlcSBwZXJzICd3cml0YWJsZSkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChub3QgKGFzc3EgJ2Nsb25lLW9mIGxpc3QpKSkKKyAgICAgICAgICAgICAg ICAgICAgKHNldHEgbGlzdCAoY29ucyAoY29ucyAnY2xvbmUtb2Ygd2luZG93KSBsaXN0KSkpKQog ICAgICAgICAgICAgICAgICh3aGVuIGxpc3QKICAgICAgICAgICAgICAgICAgIGAoKHBhcmFtZXRl cnMgLiAsbGlzdCkpKSkKICAgICAgICAgICAgICxAKHdoZW4gYnVmZmVyCiAgICAgICAgICAgICAg ICAgOzsgQWxsIGJ1ZmZlciByZWxhdGVkIHRoaW5ncyBnbyBpbiBoZXJlLgotCQkobGV0ICgocG9p bnQgKHdpbmRvdy1wb2ludCB3aW5kb3cpKQotCQkgICAgICAoc3RhcnQgKHdpbmRvdy1zdGFydCB3 aW5kb3cpKSkKLQkJICBgKChidWZmZXIKLQkJICAgICAsKGlmIHdyaXRhYmxlIChidWZmZXItbmFt ZSBidWZmZXIpIGJ1ZmZlcikKLQkJICAgICAoc2VsZWN0ZWQgLiAsc2VsZWN0ZWQpCi0JCSAgICAg KGhzY3JvbGwgLiAsKHdpbmRvdy1oc2Nyb2xsIHdpbmRvdykpCi0JCSAgICAgKGZyaW5nZXMgLiAs KHdpbmRvdy1mcmluZ2VzIHdpbmRvdykpCi0JCSAgICAgKG1hcmdpbnMgLiAsKHdpbmRvdy1tYXJn aW5zIHdpbmRvdykpCi0JCSAgICAgKHNjcm9sbC1iYXJzIC4gLCh3aW5kb3ctc2Nyb2xsLWJhcnMg d2luZG93KSkKLQkJICAgICAodnNjcm9sbCAuICwod2luZG93LXZzY3JvbGwgd2luZG93KSkKLQkJ ICAgICAoZGVkaWNhdGVkIC4gLCh3aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93KSkKLQkJICAgICAo cG9pbnQgLiAsKGlmIHdyaXRhYmxlCisgICAgICAgICAgICAgICAgKGxldCAoKHBvaW50ICh3aW5k b3ctcG9pbnQgd2luZG93KSkKKyAgICAgICAgICAgICAgICAgICAgICAoc3RhcnQgKHdpbmRvdy1z dGFydCB3aW5kb3cpKSkKKyAgICAgICAgICAgICAgICAgIGAoKGJ1ZmZlcgorICAgICAgICAgICAg ICAgICAgICAgLChpZiB3cml0YWJsZSAoYnVmZmVyLW5hbWUgYnVmZmVyKSBidWZmZXIpCisgICAg ICAgICAgICAgICAgICAgICAoc2VsZWN0ZWQgLiAsc2VsZWN0ZWQpCisgICAgICAgICAgICAgICAg ICAgICAoaHNjcm9sbCAuICwod2luZG93LWhzY3JvbGwgd2luZG93KSkKKyAgICAgICAgICAgICAg ICAgICAgIChmcmluZ2VzIC4gLCh3aW5kb3ctZnJpbmdlcyB3aW5kb3cpKQorICAgICAgICAgICAg ICAgICAgICAgKG1hcmdpbnMgLiAsKHdpbmRvdy1tYXJnaW5zIHdpbmRvdykpCisgICAgICAgICAg ICAgICAgICAgICAoc2Nyb2xsLWJhcnMgLiAsKHdpbmRvdy1zY3JvbGwtYmFycyB3aW5kb3cpKQor ICAgICAgICAgICAgICAgICAgICAgKHZzY3JvbGwgLiAsKHdpbmRvdy12c2Nyb2xsIHdpbmRvdykp CisgICAgICAgICAgICAgICAgICAgICAoZGVkaWNhdGVkIC4gLCh3aW5kb3ctZGVkaWNhdGVkLXAg d2luZG93KSkKKyAgICAgICAgICAgICAgICAgICAgIChwb2ludCAuICwoaWYgd3JpdGFibGUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoY29weS1tYXJrZXIgcG9pbnQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItbG9jYWwtdmFsdWUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2luZG93LXBv aW50LWluc2VydGlvbi10eXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnVmZmVyKSkpKSkKLQkJICAgICAoc3RhcnQgLiAsKGlmIHdyaXRhYmxlCisg ICAgICAgICAgICAgICAgICAgICAoc3RhcnQgLiAsKGlmIHdyaXRhYmxlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNvcHktbWFya2VyIHN0YXJ0KSkpKSkpKSkKQEAgLTU5MzMsMTQgKzU5MzMs MTQgQEAgc3BlY2lmaWMgYnVmZmVycy4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobWFya2VyLXBvc2l0aW9uIChudGggMiBlbnRyeSkpKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcmV2LWJ1ZmZlcnMpCiAgICAgICAgICAgICAgICAgICAg ICAgICBwcmV2LWJ1ZmZlcnMpKSkpKSkKLQkgKHRhaWwKLQkgICh3aGVuIChtZW1xIHR5cGUgJyh2 YyBoYykpCi0JICAgIChsZXQgKGxpc3QpCi0JICAgICAgKHNldHEgd2luZG93ICh3aW5kb3ctY2hp bGQgd2luZG93KSkKLQkgICAgICAod2hpbGUgd2luZG93Ci0JCShzZXRxIGxpc3QgKGNvbnMgKHdp bmRvdy0tc3RhdGUtZ2V0LTEgd2luZG93IHdyaXRhYmxlKSBsaXN0KSkKLQkJKHNldHEgd2luZG93 ICh3aW5kb3ctcmlnaHQgd2luZG93KSkpCi0JICAgICAgKG5yZXZlcnNlIGxpc3QpKSkpKQorICAg ICAgICAgKHRhaWwKKyAgICAgICAgICAod2hlbiAobWVtcSB0eXBlICcodmMgaGMpKQorICAgICAg ICAgICAgKGxldCAobGlzdCkKKyAgICAgICAgICAgICAgKHNldHEgd2luZG93ICh3aW5kb3ctY2hp bGQgd2luZG93KSkKKyAgICAgICAgICAgICAgKHdoaWxlIHdpbmRvdworICAgICAgICAgICAgICAg IChzZXRxIGxpc3QgKGNvbnMgKHdpbmRvdy0tc3RhdGUtZ2V0LTEgd2luZG93IHdyaXRhYmxlKSBs aXN0KSkKKyAgICAgICAgICAgICAgICAoc2V0cSB3aW5kb3cgKHdpbmRvdy1yaWdodCB3aW5kb3cp KSkKKyAgICAgICAgICAgICAgKG5yZXZlcnNlIGxpc3QpKSkpKQogICAgIChhcHBlbmQgaGVhZCB0 YWlsKSkpCiAKIChkZWZ1biB3aW5kb3ctc3RhdGUtZ2V0ICgmb3B0aW9uYWwgd2luZG93IHdyaXRh YmxlKQpAQCAtNTk2MSwxMSArNTk2MSwxMSBAQCBUaGUgcmV0dXJuIHZhbHVlIGNhbiBiZSB1c2Vk IGFzIGFyZ3VtZW50IGZvciBgd2luZG93LXN0YXRlLXB1dCcKIHRvIHB1dCB0aGUgc3RhdGUgcmVj b3JkZWQgaGVyZSBpbnRvIGFuIGFyYml0cmFyeSB3aW5kb3cuICBUaGUKIHZhbHVlIGNhbiBiZSBh bHNvIHN0b3JlZCBvbiBkaXNrIGFuZCByZWFkIGJhY2sgaW4gYSBuZXcgc2Vzc2lvbi4iCiAgIChz ZXRxIHdpbmRvdwotCShpZiB3aW5kb3cKLQkgICAgKGlmICh3aW5kb3ctdmFsaWQtcCB3aW5kb3cp Ci0JCXdpbmRvdwotCSAgICAgIChlcnJvciAiJXMgaXMgbm90IGEgbGl2ZSBvciBpbnRlcm5hbCB3 aW5kb3ciIHdpbmRvdykpCi0JICAoZnJhbWUtcm9vdC13aW5kb3cpKSkKKyAgICAgICAgKGlmIHdp bmRvdworICAgICAgICAgICAgKGlmICh3aW5kb3ctdmFsaWQtcCB3aW5kb3cpCisgICAgICAgICAg ICAgICAgd2luZG93CisgICAgICAgICAgICAgIChlcnJvciAiJXMgaXMgbm90IGEgbGl2ZSBvciBp bnRlcm5hbCB3aW5kb3ciIHdpbmRvdykpCisgICAgICAgICAgKGZyYW1lLXJvb3Qtd2luZG93KSkp CiAgIDs7IFRoZSByZXR1cm4gdmFsdWUgaXMgYSBjb25zIHdob3NlIGNhciBzcGVjaWZpZXMgc29t ZSBjb25zdHJhaW50cyBvbgogICA7OyB0aGUgc2l6ZSBvZiBXSU5ET1cuICBUaGUgY2RyIGxpc3Rz IHRoZSBzdGF0ZXMgb2YgdGhlIGNoaWxkIHdpbmRvd3MKICAgOzsgb2YgV0lORE9XLgpAQCAtNjAw MywxNjMgKzYwMDMsMTYzIEBAIHZhbHVlIGNhbiBiZSBhbHNvIHN0b3JlZCBvbiBkaXNrIGFuZCBy ZWFkIGJhY2sgaW4gYSBuZXcgc2Vzc2lvbi4iCiAgICAgICAocHVzaCAoY29ucyB3aW5kb3cgc3Rh dGUpIHdpbmRvdy1zdGF0ZS1wdXQtbGlzdCkpCiAgICAgICgobWVtcSB0eXBlICcodmMgaGMpKQog ICAgICAgKGxldCogKChob3Jpem9udGFsIChlcSB0eXBlICdoYykpCi0JICAgICAodG90YWwgKHdp bmRvdy1zaXplIHdpbmRvdyBob3Jpem9udGFsIHBpeGVsd2lzZSkpCisgICAgICAgICAgICAgKHRv dGFsICh3aW5kb3ctc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCBwaXhlbHdpc2UpKQogICAgICAgICAg ICAgIChmaXJzdCB0KQogICAgICAgICAgICAgICh3aW5kb3ctY29tYmluYXRpb24tbGltaXQgKGNk ciAoYXNzcSAnY29tYmluYXRpb24tbGltaXQgc3RhdGUpKSkKLQkgICAgIHNpemUgbmV3KQotCShk b2xpc3QgKGl0ZW0gc3RhdGUpCi0JICA7OyBGaW5kIHRoZSBuZXh0IGNoaWxkIHdpbmRvdy4gIFdJ TkRPVyBhbHdheXMgcG9pbnRzIHRvIHRoZQotCSAgOzsgcmVhbCB3aW5kb3cgdGhhdCB3ZSB3YW50 IHRvIGZpbGwgd2l0aCB3aGF0IHdlIGZpbmQgaGVyZS4KLQkgICh3aGVuIChtZW1xIChjYXIgaXRl bSkgJyhsZWFmIHZjIGhjKSkKLQkgICAgKGlmIChhc3NxICdsYXN0IGl0ZW0pCi0JCTs7IFRoZSBs YXN0IGNoaWxkIHdpbmRvdy4gIEJlbG93IGB3aW5kb3ctLXN0YXRlLXB1dC0xJwotCQk7OyB3aWxs IHB1dCBpbnRvIGl0IHdoYXRldmVyIElURU0gaGFzIGluIHN0b3JlLgotCQkoc2V0cSBuZXcgbmls KQotCSAgICAgIDs7IE5vdCB0aGUgbGFzdCBjaGlsZCB3aW5kb3csIHByZXBhcmUgZm9yIHNwbGl0 dGluZwotCSAgICAgIDs7IFdJTkRPVy4gIFNJWkUgaXMgdGhlIG5ldyAoYW5kIGZpbmFsKSBzaXpl IG9mIHRoZSBvbGQKLQkgICAgICA7OyB3aW5kb3cuCi0JICAgICAgKHNldHEgc2l6ZQotCQkgICAg KGlmIHRvdGFscwotCQkJOzsgVXNlIHRvdGFsIHNpemUuCi0JCQkoaWYgcGl4ZWx3aXNlCi0JCQkg ICAgKGNkciAoYXNzcSAoaWYgaG9yaXpvbnRhbAotCQkJCQkgICAncGl4ZWwtd2lkdGgKLQkJCQkJ ICdwaXhlbC1oZWlnaHQpCi0JCQkJICAgICAgIGl0ZW0pKQotCQkJICAoY2RyIChhc3NxIChpZiBo b3Jpem9udGFsCi0JCQkJCSAndG90YWwtd2lkdGgKLQkJCQkgICAgICAgJ3RvdGFsLWhlaWdodCkK LQkJCQkgICAgIGl0ZW0pKSkKLQkJICAgICAgOzsgVXNlIG5vcm1hbGl6ZWQgc2l6ZSBhbmQgcm91 bmQuCi0JCSAgICAgIChyb3VuZAotCQkgICAgICAgKCogdG90YWwKLQkJCSAgKGNkciAoYXNzcSAo aWYgaG9yaXpvbnRhbCAnbm9ybWFsLXdpZHRoICdub3JtYWwtaGVpZ2h0KQotCQkJCSAgICAgaXRl bSkpKSkpKQotCi0JICAgICAgOzsgVXNlIHNhZmUgc2l6ZXMsIHdlIHRyeSB0byByZXNpemUgbGF0 ZXIuCi0JICAgICAgKHNldHEgc2l6ZSAobWF4IHNpemUKLQkJCSAgICAgIChpZiBob3Jpem9udGFs Ci0JCQkJICAoKiB3aW5kb3ctc2FmZS1taW4td2lkdGgKLQkJCQkgICAgIChpZiBwaXhlbHdpc2UK LQkJCQkJIChmcmFtZS1jaGFyLXdpZHRoICh3aW5kb3ctZnJhbWUgd2luZG93KSkKLQkJCQkgICAg ICAgMSkpCi0JCQkJKCogd2luZG93LXNhZmUtbWluLWhlaWdodAotCQkJCSAgIChpZiBwaXhlbHdp c2UKLQkJCQkgICAgICAgKGZyYW1lLWNoYXItaGVpZ2h0ICh3aW5kb3ctZnJhbWUgd2luZG93KSkK LQkJCQkgICAgIDEpKSkpKQotCSAgICAgIChpZiAod2luZG93LXNpemFibGUtcCB3aW5kb3cgKC0g c2l6ZSkgaG9yaXpvbnRhbCAnc2FmZSBwaXhlbHdpc2UpCisgICAgICAgICAgICAgc2l6ZSBuZXcp CisgICAgICAgIChkb2xpc3QgKGl0ZW0gc3RhdGUpCisgICAgICAgICAgOzsgRmluZCB0aGUgbmV4 dCBjaGlsZCB3aW5kb3cuICBXSU5ET1cgYWx3YXlzIHBvaW50cyB0byB0aGUKKyAgICAgICAgICA7 OyByZWFsIHdpbmRvdyB0aGF0IHdlIHdhbnQgdG8gZmlsbCB3aXRoIHdoYXQgd2UgZmluZCBoZXJl LgorICAgICAgICAgICh3aGVuIChtZW1xIChjYXIgaXRlbSkgJyhsZWFmIHZjIGhjKSkKKyAgICAg ICAgICAgIChpZiAoYXNzcSAnbGFzdCBpdGVtKQorICAgICAgICAgICAgICAgIDs7IFRoZSBsYXN0 IGNoaWxkIHdpbmRvdy4gIEJlbG93IGB3aW5kb3ctLXN0YXRlLXB1dC0xJworICAgICAgICAgICAg ICAgIDs7IHdpbGwgcHV0IGludG8gaXQgd2hhdGV2ZXIgSVRFTSBoYXMgaW4gc3RvcmUuCisgICAg ICAgICAgICAgICAgKHNldHEgbmV3IG5pbCkKKyAgICAgICAgICAgICAgOzsgTm90IHRoZSBsYXN0 IGNoaWxkIHdpbmRvdywgcHJlcGFyZSBmb3Igc3BsaXR0aW5nCisgICAgICAgICAgICAgIDs7IFdJ TkRPVy4gIFNJWkUgaXMgdGhlIG5ldyAoYW5kIGZpbmFsKSBzaXplIG9mIHRoZSBvbGQKKyAgICAg ICAgICAgICAgOzsgd2luZG93LgorICAgICAgICAgICAgICAoc2V0cSBzaXplCisgICAgICAgICAg ICAgICAgICAgIChpZiB0b3RhbHMKKyAgICAgICAgICAgICAgICAgICAgICAgIDs7IFVzZSB0b3Rh bCBzaXplLgorICAgICAgICAgICAgICAgICAgICAgICAgKGlmIHBpeGVsd2lzZQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChjZHIgKGFzc3EgKGlmIGhvcml6b250YWwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGl4ZWwtd2lkdGgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BpeGVsLWhlaWdodCkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0pKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAoY2RyIChhc3NxIChpZiBob3Jpem9udGFsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICd0b3RhbC13aWR0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3RvdGFsLWhlaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpdGVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgOzsgVXNlIG5vcm1hbGl6ZWQg c2l6ZSBhbmQgcm91bmQuCisgICAgICAgICAgICAgICAgICAgICAgKHJvdW5kCisgICAgICAgICAg ICAgICAgICAgICAgICgqIHRvdGFsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIgKGFz c3EgKGlmIGhvcml6b250YWwgJ25vcm1hbC13aWR0aCAnbm9ybWFsLWhlaWdodCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtKSkpKSkpCisKKyAgICAgICAgICAgICAg OzsgVXNlIHNhZmUgc2l6ZXMsIHdlIHRyeSB0byByZXNpemUgbGF0ZXIuCisgICAgICAgICAgICAg IChzZXRxIHNpemUgKG1heCBzaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg aG9yaXpvbnRhbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIHdpbmRvdy1z YWZlLW1pbi13aWR0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBw aXhlbHdpc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZyYW1l LWNoYXItd2lkdGggKHdpbmRvdy1mcmFtZSB3aW5kb3cpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgq IHdpbmRvdy1zYWZlLW1pbi1oZWlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGlmIHBpeGVsd2lzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGZyYW1lLWNoYXItaGVpZ2h0ICh3aW5kb3ctZnJhbWUgd2luZG93KSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAxKSkpKSkKKyAgICAgICAgICAgICAgKGlmICh3aW5kb3ct c2l6YWJsZS1wIHdpbmRvdyAoLSBzaXplKSBob3Jpem9udGFsICdzYWZlIHBpeGVsd2lzZSkKICAg ICAgICAgICAgICAgICAgIChwcm9nbgogICAgICAgICAgICAgICAgICAgICAoc2V0cSBuZXcgKHNw bGl0LXdpbmRvdy1uby1lcnJvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv dyBzaXplIGhvcml6b250YWwgcGl4ZWx3aXNlKSkKICAgICAgICAgICAgICAgICAgICAgKHNldHEg d2luZG93LWNvbWJpbmF0aW9uLWxpbWl0IG5pbCkpCi0JCTs7IEdpdmUgdXAgaWYgd2UgY2FuJ3Qg cmVzaXplIHdpbmRvdyBkb3duIHRvIHNhZmUgc2l6ZXMuCi0JCShlcnJvciAiQ2Fubm90IHJlc2l6 ZSB3aW5kb3cgJXMiIHdpbmRvdykpCi0KLQkgICAgICAod2hlbiBmaXJzdAotCQkoc2V0cSBmaXJz dCBuaWwpCi0JCTs7IFdoZW4gY3JlYXRpbmcgdGhlIGZpcnN0IGNoaWxkIHdpbmRvdyBhZGQgZm9y IHBhcmVudAotCQk7OyB1bnByb2Nlc3NlZCBlbnRyaWVzIHRvIGB3aW5kb3ctc3RhdGUtcHV0LWxp c3QnLgotCQkoc2V0cSB3aW5kb3ctc3RhdGUtcHV0LWxpc3QKLQkJICAgICAgKGNvbnMgKGNvbnMg KHdpbmRvdy1wYXJlbnQgd2luZG93KSBzdGF0ZSkKLQkJCSAgICB3aW5kb3ctc3RhdGUtcHV0LWxp c3QpKSkpCi0KLQkgICAgOzsgTm93IHByb2Nlc3MgdGhlIGN1cnJlbnQgd2luZG93IChlaXRoZXIg dGhlIG9uZSB3ZSd2ZSBqdXN0Ci0JICAgIDs7IHNwbGl0IG9yIHRoZSBsYXN0IGNoaWxkIG9mIGl0 cyBwYXJlbnQpLgotCSAgICAod2luZG93LS1zdGF0ZS1wdXQtMSBpdGVtIHdpbmRvdyBpZ25vcmUg dG90YWxzKQotCSAgICA7OyBDb250aW51ZSB3aXRoIHRoZSBsYXN0IHdpbmRvdyBzcGxpdCBvZmYu Ci0JICAgIChzZXRxIHdpbmRvdyBuZXcpKSkpKSkpKQorICAgICAgICAgICAgICAgIDs7IEdpdmUg dXAgaWYgd2UgY2FuJ3QgcmVzaXplIHdpbmRvdyBkb3duIHRvIHNhZmUgc2l6ZXMuCisgICAgICAg ICAgICAgICAgKGVycm9yICJDYW5ub3QgcmVzaXplIHdpbmRvdyAlcyIgd2luZG93KSkKKworICAg ICAgICAgICAgICAod2hlbiBmaXJzdAorICAgICAgICAgICAgICAgIChzZXRxIGZpcnN0IG5pbCkK KyAgICAgICAgICAgICAgICA7OyBXaGVuIGNyZWF0aW5nIHRoZSBmaXJzdCBjaGlsZCB3aW5kb3cg YWRkIGZvciBwYXJlbnQKKyAgICAgICAgICAgICAgICA7OyB1bnByb2Nlc3NlZCBlbnRyaWVzIHRv IGB3aW5kb3ctc3RhdGUtcHV0LWxpc3QnLgorICAgICAgICAgICAgICAgIChzZXRxIHdpbmRvdy1z dGF0ZS1wdXQtbGlzdAorICAgICAgICAgICAgICAgICAgICAgIChjb25zIChjb25zICh3aW5kb3ct cGFyZW50IHdpbmRvdykgc3RhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93 LXN0YXRlLXB1dC1saXN0KSkpKQorCisgICAgICAgICAgICA7OyBOb3cgcHJvY2VzcyB0aGUgY3Vy cmVudCB3aW5kb3cgKGVpdGhlciB0aGUgb25lIHdlJ3ZlIGp1c3QKKyAgICAgICAgICAgIDs7IHNw bGl0IG9yIHRoZSBsYXN0IGNoaWxkIG9mIGl0cyBwYXJlbnQpLgorICAgICAgICAgICAgKHdpbmRv dy0tc3RhdGUtcHV0LTEgaXRlbSB3aW5kb3cgaWdub3JlIHRvdGFscykKKyAgICAgICAgICAgIDs7 IENvbnRpbnVlIHdpdGggdGhlIGxhc3Qgd2luZG93IHNwbGl0IG9mZi4KKyAgICAgICAgICAgIChz ZXRxIHdpbmRvdyBuZXcpKSkpKSkpKQogCiAoZGVmdW4gd2luZG93LS1zdGF0ZS1wdXQtMiAoaWdu b3JlIHBpeGVsd2lzZSkKICAgIkhlbHBlciBmdW5jdGlvbiBmb3IgYHdpbmRvdy1zdGF0ZS1wdXQn LiIKICAgKGRvbGlzdCAoaXRlbSB3aW5kb3ctc3RhdGUtcHV0LWxpc3QpCiAgICAgKGxldCAoKHdp bmRvdyAoY2FyIGl0ZW0pKQotCSAgKGNvbWJpbmF0aW9uLWxpbWl0IChjZHIgKGFzc3EgJ2NvbWJp bmF0aW9uLWxpbWl0IGl0ZW0pKSkKLQkgIChwYXJhbWV0ZXJzIChjZHIgKGFzc3EgJ3BhcmFtZXRl cnMgaXRlbSkpKQotCSAgKHN0YXRlIChjZHIgKGFzc3EgJ2J1ZmZlciBpdGVtKSkpCi0JICAobmV4 dC1idWZmZXJzIChjZHIgKGFzc3EgJ25leHQtYnVmZmVycyBpdGVtKSkpCi0JICAocHJldi1idWZm ZXJzIChjZHIgKGFzc3EgJ3ByZXYtYnVmZmVycyBpdGVtKSkpKQorICAgICAgICAgIChjb21iaW5h dGlvbi1saW1pdCAoY2RyIChhc3NxICdjb21iaW5hdGlvbi1saW1pdCBpdGVtKSkpCisgICAgICAg ICAgKHBhcmFtZXRlcnMgKGNkciAoYXNzcSAncGFyYW1ldGVycyBpdGVtKSkpCisgICAgICAgICAg KHN0YXRlIChjZHIgKGFzc3EgJ2J1ZmZlciBpdGVtKSkpCisgICAgICAgICAgKG5leHQtYnVmZmVy cyAoY2RyIChhc3NxICduZXh0LWJ1ZmZlcnMgaXRlbSkpKQorICAgICAgICAgIChwcmV2LWJ1ZmZl cnMgKGNkciAoYXNzcSAncHJldi1idWZmZXJzIGl0ZW0pKSkpCiAgICAgICAod2hlbiBjb21iaW5h dGlvbi1saW1pdAotCShzZXQtd2luZG93LWNvbWJpbmF0aW9uLWxpbWl0IHdpbmRvdyBjb21iaW5h dGlvbi1saW1pdCkpCisgICAgICAgIChzZXQtd2luZG93LWNvbWJpbmF0aW9uLWxpbWl0IHdpbmRv dyBjb21iaW5hdGlvbi1saW1pdCkpCiAgICAgICA7OyBSZXNldCB3aW5kb3cncyBwYXJhbWV0ZXJz IGFuZCBhc3NpZ24gc2F2ZWQgb25lcyAod2UgbWlnaHQgd2FudAogICAgICAgOzsgYSBgcmVtb3Zl LXdpbmRvdy1wYXJhbWV0ZXJzJyBmdW5jdGlvbiBoZXJlKS4KICAgICAgIChkb2xpc3QgKHBhcmFt ZXRlciAod2luZG93LXBhcmFtZXRlcnMgd2luZG93KSkKLQkoc2V0LXdpbmRvdy1wYXJhbWV0ZXIg d2luZG93IChjYXIgcGFyYW1ldGVyKSBuaWwpKQorICAgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0 ZXIgd2luZG93IChjYXIgcGFyYW1ldGVyKSBuaWwpKQogICAgICAgKHdoZW4gcGFyYW1ldGVycwot CShkb2xpc3QgKHBhcmFtZXRlciBwYXJhbWV0ZXJzKQotCSAgKHNldC13aW5kb3ctcGFyYW1ldGVy IHdpbmRvdyAoY2FyIHBhcmFtZXRlcikgKGNkciBwYXJhbWV0ZXIpKSkpCisgICAgICAgIChkb2xp c3QgKHBhcmFtZXRlciBwYXJhbWV0ZXJzKQorICAgICAgICAgIChzZXQtd2luZG93LXBhcmFtZXRl ciB3aW5kb3cgKGNhciBwYXJhbWV0ZXIpIChjZHIgcGFyYW1ldGVyKSkpKQogICAgICAgOzsgUHJv Y2VzcyBidWZmZXIgcmVsYXRlZCBzdGF0ZS4KICAgICAgICh3aGVuIHN0YXRlCi0JKGxldCAoKGJ1 ZmZlciAoZ2V0LWJ1ZmZlciAoY2FyIHN0YXRlKSkpCi0JICAgICAgKHN0YXRlIChjZHIgc3RhdGUp KSkKLQkgIChpZiBidWZmZXIKLQkgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIKLQkJ KHNldC13aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIpCi0JCShzZXQtd2luZG93LWhzY3JvbGwg d2luZG93IChjZHIgKGFzc3EgJ2hzY3JvbGwgc3RhdGUpKSkKLQkJKGFwcGx5ICdzZXQtd2luZG93 LWZyaW5nZXMKLQkJICAgICAgIChjb25zIHdpbmRvdyAoY2RyIChhc3NxICdmcmluZ2VzIHN0YXRl KSkpKQotCQkobGV0ICgobWFyZ2lucyAoY2RyIChhc3NxICdtYXJnaW5zIHN0YXRlKSkpKQotCQkg IChzZXQtd2luZG93LW1hcmdpbnMgd2luZG93IChjYXIgbWFyZ2lucykgKGNkciBtYXJnaW5zKSkp Ci0JCShsZXQgKChzY3JvbGwtYmFycyAoY2RyIChhc3NxICdzY3JvbGwtYmFycyBzdGF0ZSkpKSkK LQkJICAoc2V0LXdpbmRvdy1zY3JvbGwtYmFycwotCQkgICB3aW5kb3cgKGNhciBzY3JvbGwtYmFy cykgKG50aCAyIHNjcm9sbC1iYXJzKQotCQkgICAobnRoIDMgc2Nyb2xsLWJhcnMpIChudGggNSBz Y3JvbGwtYmFycykgKG50aCA2IHNjcm9sbC1iYXJzKSkpCi0JCShzZXQtd2luZG93LXZzY3JvbGwg d2luZG93IChjZHIgKGFzc3EgJ3ZzY3JvbGwgc3RhdGUpKSkKLQkJOzsgQWRqdXN0IHZlcnRpY2Fs bHkuCi0JCShpZiAob3IgKG1lbXEgd2luZG93LXNpemUtZml4ZWQgJyh0IGhlaWdodCkpCisgICAg ICAgIChsZXQgKChidWZmZXIgKGdldC1idWZmZXIgKGNhciBzdGF0ZSkpKQorICAgICAgICAgICAg ICAoc3RhdGUgKGNkciBzdGF0ZSkpKQorICAgICAgICAgIChpZiBidWZmZXIKKyAgICAgICAgICAg ICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCisgICAgICAgICAgICAgICAgKHNldC13aW5k b3ctYnVmZmVyIHdpbmRvdyBidWZmZXIpCisgICAgICAgICAgICAgICAgKHNldC13aW5kb3ctaHNj cm9sbCB3aW5kb3cgKGNkciAoYXNzcSAnaHNjcm9sbCBzdGF0ZSkpKQorICAgICAgICAgICAgICAg IChhcHBseSAnc2V0LXdpbmRvdy1mcmluZ2VzCisgICAgICAgICAgICAgICAgICAgICAgIChjb25z IHdpbmRvdyAoY2RyIChhc3NxICdmcmluZ2VzIHN0YXRlKSkpKQorICAgICAgICAgICAgICAgIChs ZXQgKChtYXJnaW5zIChjZHIgKGFzc3EgJ21hcmdpbnMgc3RhdGUpKSkpCisgICAgICAgICAgICAg ICAgICAoc2V0LXdpbmRvdy1tYXJnaW5zIHdpbmRvdyAoY2FyIG1hcmdpbnMpIChjZHIgbWFyZ2lu cykpKQorICAgICAgICAgICAgICAgIChsZXQgKChzY3JvbGwtYmFycyAoY2RyIChhc3NxICdzY3Jv bGwtYmFycyBzdGF0ZSkpKSkKKyAgICAgICAgICAgICAgICAgIChzZXQtd2luZG93LXNjcm9sbC1i YXJzCisgICAgICAgICAgICAgICAgICAgd2luZG93IChjYXIgc2Nyb2xsLWJhcnMpIChudGggMiBz Y3JvbGwtYmFycykKKyAgICAgICAgICAgICAgICAgICAobnRoIDMgc2Nyb2xsLWJhcnMpIChudGgg NSBzY3JvbGwtYmFycykgKG50aCA2IHNjcm9sbC1iYXJzKSkpCisgICAgICAgICAgICAgICAgKHNl dC13aW5kb3ctdnNjcm9sbCB3aW5kb3cgKGNkciAoYXNzcSAndnNjcm9sbCBzdGF0ZSkpKQorICAg ICAgICAgICAgICAgIDs7IEFkanVzdCB2ZXJ0aWNhbGx5LgorICAgICAgICAgICAgICAgIChpZiAo b3IgKG1lbXEgd2luZG93LXNpemUtZml4ZWQgJyh0IGhlaWdodCkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAod2luZG93LXByZXNlcnZlZC1zaXplIHdpbmRvdykpCi0JCSAgICA7OyBBIGZpeGVk IGhlaWdodCB3aW5kb3csIHRyeSB0byByZXN0b3JlIHRoZQotCQkgICAgOzsgb3JpZ2luYWwgc2l6 ZS4KLQkJICAgIChsZXQgKChkZWx0YQotCQkJICAgKC0gKGNkciAoYXNzcQotCQkJCSAgICAoaWYg cGl4ZWx3aXNlICdwaXhlbC1oZWlnaHQgJ3RvdGFsLWhlaWdodCkKLQkJCQkgICAgaXRlbSkpCi0J CQkgICAgICAod2luZG93LXNpemUgd2luZG93IG5pbCBwaXhlbHdpc2UpKSkKLQkJCSAgd2luZG93 LXNpemUtZml4ZWQpCi0JCSAgICAgICh3aGVuICh3aW5kb3ctLXJlc2l6YWJsZS1wCi0JCQkgICAg IHdpbmRvdyBkZWx0YSBuaWwgbmlsIG5pbCBuaWwgbmlsIHBpeGVsd2lzZSkKLQkJCSh3aW5kb3ct cmVzaXplIHdpbmRvdyBkZWx0YSBuaWwgbmlsIHBpeGVsd2lzZSkpKQotCQkgIDs7IEVsc2UgY2hl Y2sgd2hldGhlciB0aGUgd2luZG93IGlzIG5vdCBoaWdoIGVub3VnaC4KLQkJICAobGV0KiAoKG1p bi1zaXplCi0JCQkgICh3aW5kb3ctbWluLXNpemUgd2luZG93IG5pbCBpZ25vcmUgcGl4ZWx3aXNl KSkKLQkJCSAoZGVsdGEKLQkJCSAgKC0gbWluLXNpemUgKHdpbmRvdy1zaXplIHdpbmRvdyBuaWwg cGl4ZWx3aXNlKSkpKQotCQkgICAgKHdoZW4gKGFuZCAoPiBkZWx0YSAwKQotCQkJICAgICAgICh3 aW5kb3ctLXJlc2l6YWJsZS1wCi0JCQkJd2luZG93IGRlbHRhIG5pbCBpZ25vcmUgbmlsIG5pbCBu aWwgcGl4ZWx3aXNlKSkKLQkJICAgICAgKHdpbmRvdy1yZXNpemUgd2luZG93IGRlbHRhIG5pbCBp Z25vcmUgcGl4ZWx3aXNlKSkpKQotCQk7OyBBZGp1c3QgaG9yaXpvbnRhbGx5LgotCQkoaWYgKG9y IChtZW1xIHdpbmRvdy1zaXplLWZpeGVkICcodCB3aWR0aCkpCisgICAgICAgICAgICAgICAgICAg IDs7IEEgZml4ZWQgaGVpZ2h0IHdpbmRvdywgdHJ5IHRvIHJlc3RvcmUgdGhlCisgICAgICAgICAg ICAgICAgICAgIDs7IG9yaWdpbmFsIHNpemUuCisgICAgICAgICAgICAgICAgICAgIChsZXQgKChk ZWx0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKC0gKGNkciAoYXNzcQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIHBpeGVsd2lzZSAncGl4ZWwtaGVpZ2h0ICd0 b3RhbC1oZWlnaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctc2l6ZSB3aW5kb3cgbmlsIHBp eGVsd2lzZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3ctc2l6ZS1maXhlZCkK KyAgICAgICAgICAgICAgICAgICAgICAod2hlbiAod2luZG93LS1yZXNpemFibGUtcAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cgZGVsdGEgbmlsIG5pbCBuaWwgbmlsIG5pbCBw aXhlbHdpc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LXJlc2l6ZSB3aW5kb3cg ZGVsdGEgbmlsIG5pbCBwaXhlbHdpc2UpKSkKKyAgICAgICAgICAgICAgICAgIDs7IEVsc2UgY2hl Y2sgd2hldGhlciB0aGUgd2luZG93IGlzIG5vdCBoaWdoIGVub3VnaC4KKyAgICAgICAgICAgICAg ICAgIChsZXQqICgobWluLXNpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1t aW4tc2l6ZSB3aW5kb3cgbmlsIGlnbm9yZSBwaXhlbHdpc2UpKQorICAgICAgICAgICAgICAgICAg ICAgICAgIChkZWx0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAoLSBtaW4tc2l6ZSAod2lu ZG93LXNpemUgd2luZG93IG5pbCBwaXhlbHdpc2UpKSkpCisgICAgICAgICAgICAgICAgICAgICh3 aGVuIChhbmQgKD4gZGVsdGEgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2lu ZG93LS1yZXNpemFibGUtcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cg ZGVsdGEgbmlsIGlnbm9yZSBuaWwgbmlsIG5pbCBwaXhlbHdpc2UpKQorICAgICAgICAgICAgICAg ICAgICAgICh3aW5kb3ctcmVzaXplIHdpbmRvdyBkZWx0YSBuaWwgaWdub3JlIHBpeGVsd2lzZSkp KSkKKyAgICAgICAgICAgICAgICA7OyBBZGp1c3QgaG9yaXpvbnRhbGx5LgorICAgICAgICAgICAg ICAgIChpZiAob3IgKG1lbXEgd2luZG93LXNpemUtZml4ZWQgJyh0IHdpZHRoKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICh3aW5kb3ctcHJlc2VydmVkLXNpemUgd2luZG93IHQpKQotCQkgICAg OzsgQSBmaXhlZCB3aWR0aCB3aW5kb3csIHRyeSB0byByZXN0b3JlIHRoZSBvcmlnaW5hbAotCQkg ICAgOzsgc2l6ZS4KLQkJICAgIChsZXQgKChkZWx0YQotCQkJICAgKC0gKGNkciAoYXNzcQotCQkJ CSAgICAoaWYgcGl4ZWx3aXNlICdwaXhlbC13aWR0aCAndG90YWwtd2lkdGgpCi0JCQkJICAgIGl0 ZW0pKQotCQkJICAgICAgKHdpbmRvdy1zaXplIHdpbmRvdyB0IHBpeGVsd2lzZSkpKQotCQkJICB3 aW5kb3ctc2l6ZS1maXhlZCkKLQkJICAgICAgKHdoZW4gKHdpbmRvdy0tcmVzaXphYmxlLXAKLQkJ CSAgICAgd2luZG93IGRlbHRhIHQgbmlsIG5pbCBuaWwgbmlsIHBpeGVsd2lzZSkKLQkJCSh3aW5k b3ctcmVzaXplIHdpbmRvdyBkZWx0YSB0IG5pbCBwaXhlbHdpc2UpKSkKLQkJICA7OyBFbHNlIGNo ZWNrIHdoZXRoZXIgdGhlIHdpbmRvdyBpcyBub3Qgd2lkZSBlbm91Z2guCi0JCSAgKGxldCogKCht aW4tc2l6ZSAod2luZG93LW1pbi1zaXplIHdpbmRvdyB0IGlnbm9yZSBwaXhlbHdpc2UpKQotCQkJ IChkZWx0YSAoLSBtaW4tc2l6ZSAod2luZG93LXNpemUgd2luZG93IHQgcGl4ZWx3aXNlKSkpKQot CQkgICAgKHdoZW4gKGFuZCAoPiBkZWx0YSAwKQotCQkJICAgICAgICh3aW5kb3ctLXJlc2l6YWJs ZS1wCi0JCQkJd2luZG93IGRlbHRhIHQgaWdub3JlIG5pbCBuaWwgbmlsIHBpeGVsd2lzZSkpCi0J CSAgICAgICh3aW5kb3ctcmVzaXplIHdpbmRvdyBkZWx0YSB0IGlnbm9yZSBwaXhlbHdpc2UpKSkp Ci0JCTs7IFNldCBkZWRpY2F0ZWQgc3RhdHVzLgotCQkoc2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3 aW5kb3cgKGNkciAoYXNzcSAnZGVkaWNhdGVkIHN0YXRlKSkpCi0JCTs7IEluc3RhbGwgcG9zaXRp b25zIChtYXliZSB3ZSBzaG91bGQgZG8gdGhpcyBhZnRlciBhbGwKLQkJOzsgd2luZG93cyBoYXZl IGJlZW4gY3JlYXRlZCBhbmQgc2l6ZWQpLgotCQkoaWdub3JlLWVycm9ycworICAgICAgICAgICAg ICAgICAgICA7OyBBIGZpeGVkIHdpZHRoIHdpbmRvdywgdHJ5IHRvIHJlc3RvcmUgdGhlIG9yaWdp bmFsCisgICAgICAgICAgICAgICAgICAgIDs7IHNpemUuCisgICAgICAgICAgICAgICAgICAgIChs ZXQgKChkZWx0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKC0gKGNkciAoYXNzcQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIHBpeGVsd2lzZSAncGl4ZWwtd2lk dGggJ3RvdGFsLXdpZHRoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRl bSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LXNpemUgd2luZG93IHQg cGl4ZWx3aXNlKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy1zaXplLWZpeGVk KQorICAgICAgICAgICAgICAgICAgICAgICh3aGVuICh3aW5kb3ctLXJlc2l6YWJsZS1wCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdyBkZWx0YSB0IG5pbCBuaWwgbmlsIG5pbCBw aXhlbHdpc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LXJlc2l6ZSB3aW5kb3cg ZGVsdGEgdCBuaWwgcGl4ZWx3aXNlKSkpCisgICAgICAgICAgICAgICAgICA7OyBFbHNlIGNoZWNr IHdoZXRoZXIgdGhlIHdpbmRvdyBpcyBub3Qgd2lkZSBlbm91Z2guCisgICAgICAgICAgICAgICAg ICAobGV0KiAoKG1pbi1zaXplICh3aW5kb3ctbWluLXNpemUgd2luZG93IHQgaWdub3JlIHBpeGVs d2lzZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbHRhICgtIG1pbi1zaXplICh3aW5k b3ctc2l6ZSB3aW5kb3cgdCBwaXhlbHdpc2UpKSkpCisgICAgICAgICAgICAgICAgICAgICh3aGVu IChhbmQgKD4gZGVsdGEgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93 LS1yZXNpemFibGUtcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cgZGVs dGEgdCBpZ25vcmUgbmlsIG5pbCBuaWwgcGl4ZWx3aXNlKSkKKyAgICAgICAgICAgICAgICAgICAg ICAod2luZG93LXJlc2l6ZSB3aW5kb3cgZGVsdGEgdCBpZ25vcmUgcGl4ZWx3aXNlKSkpKQorICAg ICAgICAgICAgICAgIDs7IFNldCBkZWRpY2F0ZWQgc3RhdHVzLgorICAgICAgICAgICAgICAgIChz ZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyAoY2RyIChhc3NxICdkZWRpY2F0ZWQgc3RhdGUp KSkKKyAgICAgICAgICAgICAgICA7OyBJbnN0YWxsIHBvc2l0aW9ucyAobWF5YmUgd2Ugc2hvdWxk IGRvIHRoaXMgYWZ0ZXIgYWxsCisgICAgICAgICAgICAgICAgOzsgd2luZG93cyBoYXZlIGJlZW4g Y3JlYXRlZCBhbmQgc2l6ZWQpLgorICAgICAgICAgICAgICAgIChpZ25vcmUtZXJyb3JzCiAgICAg ICAgICAgICAgICAgICA7OyBTZXQgJ25vZm9yY2UgYXJndW1lbnQgdG8gYXZvaWQgdGhhdCB3aW5k b3cgc3RhcnQKICAgICAgICAgICAgICAgICAgIDs7IG92ZXJyaWRlcyB3aW5kb3cgcG9pbnQgc2V0 IGJlbG93IChCdWcjMjQyNDApLgotCQkgIChzZXQtd2luZG93LXN0YXJ0IHdpbmRvdyAoY2RyIChh c3NxICdzdGFydCBzdGF0ZSkpICdub2ZvcmNlKQotCQkgIChzZXQtd2luZG93LXBvaW50IHdpbmRv dyAoY2RyIChhc3NxICdwb2ludCBzdGF0ZSkpKSkKLQkJOzsgU2VsZWN0IHdpbmRvdyBpZiBpdCdz IHRoZSBzZWxlY3RlZCBvbmUuCi0JCSh3aGVuIChjZHIgKGFzc3EgJ3NlbGVjdGVkIHN0YXRlKSkK LQkJICAoc2VsZWN0LXdpbmRvdyB3aW5kb3cpKQorICAgICAgICAgICAgICAgICAgKHNldC13aW5k b3ctc3RhcnQgd2luZG93IChjZHIgKGFzc3EgJ3N0YXJ0IHN0YXRlKSkgJ25vZm9yY2UpCisgICAg ICAgICAgICAgICAgICAoc2V0LXdpbmRvdy1wb2ludCB3aW5kb3cgKGNkciAoYXNzcSAncG9pbnQg c3RhdGUpKSkpCisgICAgICAgICAgICAgICAgOzsgU2VsZWN0IHdpbmRvdyBpZiBpdCdzIHRoZSBz ZWxlY3RlZCBvbmUuCisgICAgICAgICAgICAgICAgKHdoZW4gKGNkciAoYXNzcSAnc2VsZWN0ZWQg c3RhdGUpKQorICAgICAgICAgICAgICAgICAgKHNlbGVjdC13aW5kb3cgd2luZG93KSkKICAgICAg ICAgICAgICAgICAod2hlbiBuZXh0LWJ1ZmZlcnMKICAgICAgICAgICAgICAgICAgIChzZXQtd2lu ZG93LW5leHQtYnVmZmVycwogICAgICAgICAgICAgICAgICAgIHdpbmRvdwpAQCAtNjE4MywxMiAr NjE4MywxMiBAQCB2YWx1ZSBjYW4gYmUgYWxzbyBzdG9yZWQgb24gZGlzayBhbmQgcmVhZCBiYWNr IGluIGEgbmV3IHNlc3Npb24uIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNldC1tYXJrZXIgKG1ha2UtbWFya2VyKSBtMgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVy KSkpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldi1idWZmZXJz KSkpKSkKLQkgICAgOzsgV2UgZG9uJ3Qgd2FudCB0byByYWlzZSBhbiBlcnJvciBpbiBjYXNlIHRo ZSBidWZmZXIgZG9lcwotCSAgICA7OyBub3QgZXhpc3QgYW55bW9yZSwgc28gd2Ugc3dpdGNoIHRv IGEgcHJldmlvdXMgb25lIGFuZAotCSAgICA7OyBzYXZlIHRoZSB3aW5kb3cgd2l0aCB0aGUgaW50 ZW50aW9uIG9mIGRlbGV0aW5nIGl0IGxhdGVyCi0JICAgIDs7IGlmIHBvc3NpYmxlLgotCSAgICAo c3dpdGNoLXRvLXByZXYtYnVmZmVyIHdpbmRvdykKLQkgICAgKHB1c2ggd2luZG93IHdpbmRvdy1z dGF0ZS1wdXQtc3RhbGUtd2luZG93cykpKSkpKSkKKyAgICAgICAgICAgIDs7IFdlIGRvbid0IHdh bnQgdG8gcmFpc2UgYW4gZXJyb3IgaW4gY2FzZSB0aGUgYnVmZmVyIGRvZXMKKyAgICAgICAgICAg IDs7IG5vdCBleGlzdCBhbnltb3JlLCBzbyB3ZSBzd2l0Y2ggdG8gYSBwcmV2aW91cyBvbmUgYW5k CisgICAgICAgICAgICA7OyBzYXZlIHRoZSB3aW5kb3cgd2l0aCB0aGUgaW50ZW50aW9uIG9mIGRl bGV0aW5nIGl0IGxhdGVyCisgICAgICAgICAgICA7OyBpZiBwb3NzaWJsZS4KKyAgICAgICAgICAg IChzd2l0Y2gtdG8tcHJldi1idWZmZXIgd2luZG93KQorICAgICAgICAgICAgKHB1c2ggd2luZG93 IHdpbmRvdy1zdGF0ZS1wdXQtc3RhbGUtd2luZG93cykpKSkpKSkKIAogKGRlZnVuIHdpbmRvdy1z dGF0ZS1wdXQgKHN0YXRlICZvcHRpb25hbCB3aW5kb3cgaWdub3JlKQogICAiUHV0IHdpbmRvdyBz dGF0ZSBTVEFURSBpbnRvIFdJTkRPVy4KQEAgLTYyMjYsNzAgKzYyMjYsNzAgQEAgd2luZG93cyBj YW4gZ2V0IGFzIHNtYWxsIGFzIGB3aW5kb3ctc2FmZS1taW4taGVpZ2h0JyBhbmQKICAgKHNldC13 aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93IG5pbCkKIAogICAobGV0KiAoKGZyYW1lICh3aW5kb3ct ZnJhbWUgd2luZG93KSkKLQkgKGhlYWQgKGNhciBzdGF0ZSkpCi0JIDs7IFdlIGNoZWNrIGhlcmUg KDEpIHdoZXRoZXIgdGhlIHRvdGFsIHNpemVzIG9mIHJvb3Qgd2luZG93IG9mCi0JIDs7IFNUQVRF IGFuZCB0aGF0IG9mIFdJTkRPVyBhcmUgZXF1YWwgc28gd2UgY2FuIGF2b2lkCi0JIDs7IGNhbGN1 bGF0aW5nIG5ldyBzaXplcywgYW5kICgyKSBpZiB3ZSBkbyBoYXZlIHRvIHJlc2l6ZQotCSA7OyB3 aGV0aGVyIHdlIGNhbiBkbyBzbyB3aXRob3V0IHZpb2xhdGluZyBzaXplIHJlc3RyaWN0aW9ucy4K LQkgKHBpeGVsd2lzZSAoYW5kIChjZHIgKGFzc3EgJ3BpeGVsLXdpZHRoIHN0YXRlKSkKLQkJCSAo Y2RyIChhc3NxICdwaXhlbC1oZWlnaHQgc3RhdGUpKSkpCi0JICh0b3RhbHMgKG9yIChhbmQgcGl4 ZWx3aXNlCi0JCQkgICg9ICh3aW5kb3ctcGl4ZWwtd2lkdGggd2luZG93KQotCQkJICAgICAoY2Ry IChhc3NxICdwaXhlbC13aWR0aCBzdGF0ZSkpKQotCQkJICAoPSAod2luZG93LXBpeGVsLWhlaWdo dCB3aW5kb3cpCi0JCQkgICAgIChjZHIgKGFzc3EgJ3BpeGVsLWhlaWdodCBzdGF0ZSkpKSkKLQkJ ICAgICAoYW5kICg9ICh3aW5kb3ctdG90YWwtd2lkdGggd2luZG93KQotCQkJICAgICAoY2RyIChh c3NxICd0b3RhbC13aWR0aCBzdGF0ZSkpKQotCQkJICAoPSAod2luZG93LXRvdGFsLWhlaWdodCB3 aW5kb3cpCi0JCQkgICAgIChjZHIgKGFzc3EgJ3RvdGFsLWhlaWdodCBzdGF0ZSkpKSkpKQotCSAo bWluLWhlaWdodCAoY2RyIChhc3NxCi0JCQkgICAoaWYgcGl4ZWx3aXNlICdtaW4tcGl4ZWwtaGVp Z2h0ICdtaW4taGVpZ2h0KQotCQkJICAgaGVhZCkpKQotCSAobWluLXdpZHRoIChjZHIgKGFzc3EK LQkJCSAgKGlmIHBpeGVsd2lzZSAnbWluLXBpeGVsLXdpZHRoICdtaW4td2VpZ2h0KQotCQkJICBo ZWFkKSkpKQorICAgICAgICAgKGhlYWQgKGNhciBzdGF0ZSkpCisgICAgICAgICA7OyBXZSBjaGVj ayBoZXJlICgxKSB3aGV0aGVyIHRoZSB0b3RhbCBzaXplcyBvZiByb290IHdpbmRvdyBvZgorICAg ICAgICAgOzsgU1RBVEUgYW5kIHRoYXQgb2YgV0lORE9XIGFyZSBlcXVhbCBzbyB3ZSBjYW4gYXZv aWQKKyAgICAgICAgIDs7IGNhbGN1bGF0aW5nIG5ldyBzaXplcywgYW5kICgyKSBpZiB3ZSBkbyBo YXZlIHRvIHJlc2l6ZQorICAgICAgICAgOzsgd2hldGhlciB3ZSBjYW4gZG8gc28gd2l0aG91dCB2 aW9sYXRpbmcgc2l6ZSByZXN0cmljdGlvbnMuCisgICAgICAgICAocGl4ZWx3aXNlIChhbmQgKGNk ciAoYXNzcSAncGl4ZWwtd2lkdGggc3RhdGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChj ZHIgKGFzc3EgJ3BpeGVsLWhlaWdodCBzdGF0ZSkpKSkKKyAgICAgICAgICh0b3RhbHMgKG9yIChh bmQgcGl4ZWx3aXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICg9ICh3aW5kb3ctcGl4ZWwt d2lkdGggd2luZG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIChhc3NxICdw aXhlbC13aWR0aCBzdGF0ZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoPSAod2luZG93 LXBpeGVsLWhlaWdodCB3aW5kb3cpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIg KGFzc3EgJ3BpeGVsLWhlaWdodCBzdGF0ZSkpKSkKKyAgICAgICAgICAgICAgICAgICAgIChhbmQg KD0gKHdpbmRvdy10b3RhbC13aWR0aCB3aW5kb3cpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjZHIgKGFzc3EgJ3RvdGFsLXdpZHRoIHN0YXRlKSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICg9ICh3aW5kb3ctdG90YWwtaGVpZ2h0IHdpbmRvdykKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNkciAoYXNzcSAndG90YWwtaGVpZ2h0IHN0YXRlKSkpKSkpCisgICAgICAg ICAobWluLWhlaWdodCAoY2RyIChhc3NxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg cGl4ZWx3aXNlICdtaW4tcGl4ZWwtaGVpZ2h0ICdtaW4taGVpZ2h0KQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgaGVhZCkpKQorICAgICAgICAgKG1pbi13aWR0aCAoY2RyIChhc3NxCisgICAg ICAgICAgICAgICAgICAgICAgICAgIChpZiBwaXhlbHdpc2UgJ21pbi1waXhlbC13aWR0aCAnbWlu LXdlaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZCkpKSkKICAgICAoaWYgKGFu ZCAobm90IHRvdGFscykKLQkgICAgIChvciAoPiBtaW4taGVpZ2h0ICh3aW5kb3ctc2l6ZSB3aW5k b3cgbmlsIHBpeGVsd2lzZSkpCi0JCSAoPiBtaW4td2lkdGggKHdpbmRvdy1zaXplIHdpbmRvdyB0 IHBpeGVsd2lzZSkpKQotCSAgICAgKG9yIChub3QgaWdub3JlKQotCQkgKGFuZCAoc2V0cSBtaW4t aGVpZ2h0Ci0JCQkgICAgKGNkciAoYXNzcQotCQkJCSAgKGlmIHBpeGVsd2lzZQotCQkJCSAgICAg ICdtaW4tcGl4ZWwtaGVpZ2h0LWlnbm9yZQotCQkJCSAgICAnbWluLWhlaWdodC1pZ25vcmUpCi0J CQkJICBoZWFkKSkpCi0JCSAgICAgIChzZXRxIG1pbi13aWR0aAotCQkJICAgIChjZHIgKGFzc3EK LQkJCQkgIChpZiBwaXhlbHdpc2UKLQkJCQkgICAgICAnbWluLXBpeGVsLXdpZHRoLWlnbm9yZQot CQkJCSAgICAnbWluLXdpZHRoLWlnbm9yZSkKLQkJCQkgIGhlYWQpKSkKLQkJICAgICAgKG9yICg+ IG1pbi1oZWlnaHQKLQkJCSAgICAgKHdpbmRvdy1zaXplIHdpbmRvdyBuaWwgcGl4ZWx3aXNlKSkK LQkJCSAgKD4gbWluLXdpZHRoCi0JCQkgICAgICh3aW5kb3ctc2l6ZSB3aW5kb3cgdCBwaXhlbHdp c2UpKSkKLQkJICAgICAgKG9yIChub3QgKGVxIGlnbm9yZSAnc2FmZSkpCi0JCQkgIChhbmQgKHNl dHEgbWluLWhlaWdodAotCQkJCSAgICAgKGNkciAoYXNzcQotCQkJCQkgICAoaWYgcGl4ZWx3aXNl Ci0JCQkJCSAgICAgICAnbWluLXBpeGVsLWhlaWdodC1zYWZlCi0JCQkJCSAgICAgJ21pbi1oZWln aHQtc2FmZSkKLQkJCQkJICAgaGVhZCkpKQotCQkJICAgICAgIChzZXRxIG1pbi13aWR0aAotCQkJ CSAgICAgKGNkciAoYXNzcQotCQkJCQkgICAoaWYgcGl4ZWx3aXNlCi0JCQkJCSAgICAgICAnbWlu LXBpeGVsLXdpZHRoLXNhZmUKLQkJCQkJICAgICAnbWluLXdpZHRoLXNhZmUpCi0JCQkJCSAgIGhl YWQpKSkKLQkJCSAgICAgICAob3IgKD4gbWluLWhlaWdodAotCQkJCSAgICAgICh3aW5kb3ctc2l6 ZSB3aW5kb3cgbmlsIHBpeGVsd2lzZSkpCi0JCQkJICAgKD4gbWluLXdpZHRoCi0JCQkJICAgICAg KHdpbmRvdy1zaXplIHdpbmRvdyB0IHBpeGVsd2lzZSkpKSkpKSkpCi0JOzsgVGhlIGNoZWNrIGFi b3ZlIG1pZ2h0IG5vdCBjYXRjaCBhbGwgZXJyb3JzIGR1ZSB0byByb3VuZGluZwotCTs7IGlzc3Vl cyAtIHNvIElHTk9SRSBlcXVhbCAnc2FmZSBtaWdodCBub3QgYWx3YXlzIHByb2R1Y2UgdGhlCi0J OzsgbWluaW11bSBwb3NzaWJsZSBzdGF0ZS4gIEJ1dCBzdWNoIGNvbmZpZ3VyYXRpb25zIGhhcmRs eSBtYWtlCi0JOzsgc2Vuc2UgYW55d2F5LgotCShlcnJvciAiV2luZG93ICVzIHRvbyBzbWFsbCB0 byBhY2NvbW1vZGF0ZSBzdGF0ZSIgd2luZG93KQorICAgICAgICAgICAgIChvciAoPiBtaW4taGVp Z2h0ICh3aW5kb3ctc2l6ZSB3aW5kb3cgbmlsIHBpeGVsd2lzZSkpCisgICAgICAgICAgICAgICAg ICg+IG1pbi13aWR0aCAod2luZG93LXNpemUgd2luZG93IHQgcGl4ZWx3aXNlKSkpCisgICAgICAg ICAgICAgKG9yIChub3QgaWdub3JlKQorICAgICAgICAgICAgICAgICAoYW5kIChzZXRxIG1pbi1o ZWlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIChhc3NxCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGlmIHBpeGVsd2lzZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnbWluLXBpeGVsLWhlaWdodC1pZ25vcmUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdtaW4taGVpZ2h0LWlnbm9yZSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBoZWFkKSkpCisgICAgICAgICAgICAgICAgICAgICAgKHNl dHEgbWluLXdpZHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNkciAoYXNzcQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBwaXhlbHdpc2UKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21pbi1waXhlbC13aWR0aC1pZ25vcmUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtaW4td2lkdGgtaWdub3JlKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWQpKSkKKyAgICAgICAgICAgICAgICAgICAg ICAob3IgKD4gbWluLWhlaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93 LXNpemUgd2luZG93IG5pbCBwaXhlbHdpc2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo PiBtaW4td2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1zaXplIHdp bmRvdyB0IHBpeGVsd2lzZSkpKQorICAgICAgICAgICAgICAgICAgICAgIChvciAobm90IChlcSBp Z25vcmUgJ3NhZmUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChzZXRxIG1pbi1o ZWlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIChhc3NxCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIHBpeGVsd2lzZQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWluLXBpeGVs LWhlaWdodC1zYWZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnbWluLWhlaWdodC1zYWZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhlYWQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBtaW4t d2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIChhc3NxCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIHBpeGVsd2lzZQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWluLXBpeGVs LXdpZHRoLXNhZmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdtaW4td2lkdGgtc2FmZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBoZWFkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yICg+IG1pbi1o ZWlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1zaXpl IHdpbmRvdyBuaWwgcGl4ZWx3aXNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKD4gbWluLXdpZHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3 aW5kb3ctc2l6ZSB3aW5kb3cgdCBwaXhlbHdpc2UpKSkpKSkpKQorICAgICAgICA7OyBUaGUgY2hl Y2sgYWJvdmUgbWlnaHQgbm90IGNhdGNoIGFsbCBlcnJvcnMgZHVlIHRvIHJvdW5kaW5nCisgICAg ICAgIDs7IGlzc3VlcyAtIHNvIElHTk9SRSBlcXVhbCAnc2FmZSBtaWdodCBub3QgYWx3YXlzIHBy b2R1Y2UgdGhlCisgICAgICAgIDs7IG1pbmltdW0gcG9zc2libGUgc3RhdGUuICBCdXQgc3VjaCBj b25maWd1cmF0aW9ucyBoYXJkbHkgbWFrZQorICAgICAgICA7OyBzZW5zZSBhbnl3YXkuCisgICAg ICAgIChlcnJvciAiV2luZG93ICVzIHRvbyBzbWFsbCB0byBhY2NvbW1vZGF0ZSBzdGF0ZSIgd2lu ZG93KQogICAgICAgKHNldHEgc3RhdGUgKGNkciBzdGF0ZSkpCiAgICAgICAoc2V0cSB3aW5kb3ct c3RhdGUtcHV0LWxpc3QgbmlsKQogICAgICAgOzsgV29yayBvbiB0aGUgd2luZG93cyBvZiBhIHRl bXBvcmFyeSBidWZmZXIgdG8gbWFrZSBzdXJlIHRoYXQKQEAgLTYyOTcsMTMgKzYyOTcsMTMgQEAg d2luZG93cyBjYW4gZ2V0IGFzIHNtYWxsIGFzIGB3aW5kb3ctc2FmZS1taW4taGVpZ2h0JyBhbmQK ICAgICAgIDs7IGB3aW5kb3ctc2l6ZS1maXhlZCcuICBSZWxlYXNlIHRoYXQgYnVmZmVyIGFmdGVy IHRoZSBidWZmZXJzIG9mCiAgICAgICA7OyBhbGwgbGl2ZSB3aW5kb3dzIGhhdmUgYmVlbiBzZXQg YnkgYHdpbmRvdy0tc3RhdGUtcHV0LTInLgogICAgICAgKHdpdGgtdGVtcC1idWZmZXIKLQkoc2V0 LXdpbmRvdy1idWZmZXIgd2luZG93IChjdXJyZW50LWJ1ZmZlcikpCi0JKHdpbmRvdy0tc3RhdGUt cHV0LTEgc3RhdGUgd2luZG93IG5pbCB0b3RhbHMgcGl4ZWx3aXNlKQotCSh3aW5kb3ctLXN0YXRl LXB1dC0yIGlnbm9yZSBwaXhlbHdpc2UpKQorICAgICAgICAoc2V0LXdpbmRvdy1idWZmZXIgd2lu ZG93IChjdXJyZW50LWJ1ZmZlcikpCisgICAgICAgICh3aW5kb3ctLXN0YXRlLXB1dC0xIHN0YXRl IHdpbmRvdyBuaWwgdG90YWxzIHBpeGVsd2lzZSkKKyAgICAgICAgKHdpbmRvdy0tc3RhdGUtcHV0 LTIgaWdub3JlIHBpeGVsd2lzZSkpCiAgICAgICAod2hpbGUgd2luZG93LXN0YXRlLXB1dC1zdGFs ZS13aW5kb3dzCi0JKGxldCAoKHdpbmRvdyAocG9wIHdpbmRvdy1zdGF0ZS1wdXQtc3RhbGUtd2lu ZG93cykpKQotCSAgKHdoZW4gKGVxICh3aW5kb3ctZGVsZXRhYmxlLXAgd2luZG93KSB0KQotCSAg ICAoZGVsZXRlLXdpbmRvdyB3aW5kb3cpKSkpCisgICAgICAgIChsZXQgKCh3aW5kb3cgKHBvcCB3 aW5kb3ctc3RhdGUtcHV0LXN0YWxlLXdpbmRvd3MpKSkKKyAgICAgICAgICAod2hlbiAoZXEgKHdp bmRvdy1kZWxldGFibGUtcCB3aW5kb3cpIHQpCisgICAgICAgICAgICAoZGVsZXRlLXdpbmRvdyB3 aW5kb3cpKSkpCiAgICAgICAod2luZG93LS1jaGVjayBmcmFtZSkpKSkKIAogKGRlZnVuIHdpbmRv dy1zdGF0ZS1idWZmZXJzIChzdGF0ZSkKQEAgLTY0MDksMzAgKzY0MDksMzAgQEAgZm91cnRoIGVs ZW1lbnQgaXMgQlVGRkVSLiIKICAgKGNvbmQKICAgICgoZXEgdHlwZSAncmV1c2UpCiAgICAgKGlm IChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKLQk7OyBXSU5ET1cgc2hvd3MgQlVG RkVSIGFscmVhZHkuICBVcGRhdGUgV0lORE9XJ3MgcXVpdC1yZXN0b3JlCi0JOzsgcGFyYW1ldGVy LCBpZiBhbnkuCi0JKGxldCAoKHF1aXQtcmVzdG9yZSAod2luZG93LXBhcmFtZXRlciB3aW5kb3cg J3F1aXQtcmVzdG9yZSkpKQotCSAgKHdoZW4gKGNvbnNwIHF1aXQtcmVzdG9yZSkKLQkgICAgKHNl dGNhciBxdWl0LXJlc3RvcmUgJ3NhbWUpCi0JICAgIDs7IFRoZSBzZWxlY3RlZC13aW5kb3cgbWln aHQgaGF2ZSBjaGFuZ2VkIGluCi0JICAgIDs7IGJldHdlZW4gKEJ1ZyMyMDM1MykuCi0JICAgICh1 bmxlc3MgKG9yIChlcSB3aW5kb3cgKHNlbGVjdGVkLXdpbmRvdykpCisgICAgICAgIDs7IFdJTkRP VyBzaG93cyBCVUZGRVIgYWxyZWFkeS4gIFVwZGF0ZSBXSU5ET1cncyBxdWl0LXJlc3RvcmUKKyAg ICAgICAgOzsgcGFyYW1ldGVyLCBpZiBhbnkuCisgICAgICAgIChsZXQgKChxdWl0LXJlc3RvcmUg KHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUpKSkKKyAgICAgICAgICAod2hl biAoY29uc3AgcXVpdC1yZXN0b3JlKQorICAgICAgICAgICAgKHNldGNhciBxdWl0LXJlc3RvcmUg J3NhbWUpCisgICAgICAgICAgICA7OyBUaGUgc2VsZWN0ZWQtd2luZG93IG1pZ2h0IGhhdmUgY2hh bmdlZCBpbgorICAgICAgICAgICAgOzsgYmV0d2VlbiAoQnVnIzIwMzUzKS4KKyAgICAgICAgICAg ICh1bmxlc3MgKG9yIChlcSB3aW5kb3cgKHNlbGVjdGVkLXdpbmRvdykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAoZXEgd2luZG93IChudGggMiBxdWl0LXJlc3RvcmUpKSkKLQkgICAgICAoc2V0 Y2FyIChjZGRyIHF1aXQtcmVzdG9yZSkgKHNlbGVjdGVkLXdpbmRvdykpKSkpCisgICAgICAgICAg ICAgIChzZXRjYXIgKGNkZHIgcXVpdC1yZXN0b3JlKSAoc2VsZWN0ZWQtd2luZG93KSkpKSkKICAg ICAgIDs7IFdJTkRPVyBzaG93cyBhbm90aGVyIGJ1ZmZlci4KICAgICAgICh3aXRoLWN1cnJlbnQt YnVmZmVyICh3aW5kb3ctYnVmZmVyIHdpbmRvdykKLQkoc2V0LXdpbmRvdy1wYXJhbWV0ZXIKLQkg d2luZG93ICdxdWl0LXJlc3RvcmUKLQkgKGxpc3QgJ290aGVyCi0JICAgICAgIDs7IEEgcXVhZHJ1 cGxlIG9mIFdJTkRPVydzIGJ1ZmZlciwgc3RhcnQsIHBvaW50IGFuZCBoZWlnaHQuCi0JICAgICAg IChsaXN0IChjdXJyZW50LWJ1ZmZlcikgKHdpbmRvdy1zdGFydCB3aW5kb3cpCi0JCSAgICAgOzsg UHJlc2VydmUgd2luZG93LXBvaW50LWluc2VydGlvbi10eXBlIChCdWcjMTI4NTUpLgotCQkgICAg IChjb3B5LW1hcmtlcgotCQkgICAgICAod2luZG93LXBvaW50IHdpbmRvdykgd2luZG93LXBvaW50 LWluc2VydGlvbi10eXBlKQotCQkgICAgIChpZiAod2luZG93LWNvbWJpbmVkLXAgd2luZG93KQor ICAgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIKKyAgICAgICAgIHdpbmRvdyAncXVpdC1yZXN0 b3JlCisgICAgICAgICAobGlzdCAnb3RoZXIKKyAgICAgICAgICAgICAgIDs7IEEgcXVhZHJ1cGxl IG9mIFdJTkRPVydzIGJ1ZmZlciwgc3RhcnQsIHBvaW50IGFuZCBoZWlnaHQuCisgICAgICAgICAg ICAgICAobGlzdCAoY3VycmVudC1idWZmZXIpICh3aW5kb3ctc3RhcnQgd2luZG93KQorICAgICAg ICAgICAgICAgICAgICAgOzsgUHJlc2VydmUgd2luZG93LXBvaW50LWluc2VydGlvbi10eXBlIChC dWcjMTI4NTUpLgorICAgICAgICAgICAgICAgICAgICAgKGNvcHktbWFya2VyCisgICAgICAgICAg ICAgICAgICAgICAgKHdpbmRvdy1wb2ludCB3aW5kb3cpIHdpbmRvdy1wb2ludC1pbnNlcnRpb24t dHlwZSkKKyAgICAgICAgICAgICAgICAgICAgIChpZiAod2luZG93LWNvbWJpbmVkLXAgd2luZG93 KQogICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctdG90YWwtaGVpZ2h0IHdpbmRvdykK ICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy10b3RhbC13aWR0aCB3aW5kb3cpKSkKLQkg ICAgICAgKHNlbGVjdGVkLXdpbmRvdykgYnVmZmVyKSkpKSkKKyAgICAgICAgICAgICAgIChzZWxl Y3RlZC13aW5kb3cpIGJ1ZmZlcikpKSkpCiAgICAoKGVxIHR5cGUgJ3dpbmRvdykKICAgICA7OyBX SU5ET1cgaGFzIGJlZW4gY3JlYXRlZCBvbiBhbiBleGlzdGluZyBmcmFtZS4KICAgICAoc2V0LXdp bmRvdy1wYXJhbWV0ZXIKQEAgLTY0NjAsMTIgKzY0NjAsMTIgQEAgVGhlIHNwZWNpZmllZCBmdW5j dGlvbiBzaG91bGQgY2FsbCBgZGlzcGxheS1idWZmZXItcmVjb3JkLXdpbmRvdycKIHdpdGggY29y cmVzcG9uZGluZyBhcmd1bWVudHMgdG8gc2V0IHVwIHRoZSBxdWl0LXJlc3RvcmUgcGFyYW1ldGVy CiBvZiB0aGUgd2luZG93IHVzZWQuIgogICA6dHlwZSAnKGNob2ljZQotCSAgKGNvbnN0IG5pbCkK LQkgIChmdW5jdGlvbiA6dGFnICJmdW5jdGlvbiIpKQorICAgICAgICAgIChjb25zdCBuaWwpCisg ICAgICAgICAgKGZ1bmN0aW9uIDp0YWcgImZ1bmN0aW9uIikpCiAgIDpncm91cCAnd2luZG93cykK IAogKG1ha2Utb2Jzb2xldGUtdmFyaWFibGUgJ2Rpc3BsYXktYnVmZmVyLWZ1bmN0aW9uCi0JCQkn ZGlzcGxheS1idWZmZXItYWxpc3QgIjI0LjMiKQorICAgICAgICAgICAgICAgICAgICAgICAgJ2Rp c3BsYXktYnVmZmVyLWFsaXN0ICIyNC4zIikKIAogOzsgRXZlbnR1YWxseSwgd2Ugd2FudCB0byB0 dXJuIHRoaXMgaW50byBhIGRlZnZhcjsgaW5zdGVhZCBvZgogOzsgY3VzdG9taXppbmcgdGhpcywg dGhlIHVzZXIgc2hvdWxkIHVzZSBhIGBwb3AtdXAtZnJhbWUtcGFyYW1ldGVycycKQEAgLTY0ODEs OCArNjQ4MSw4IEBAIHRoZSBhdXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiBuZXcgZnJhbWVzIHZpYSBg ZGlzcGxheS1idWZmZXInIGFuZAogYWxsIGZ1bmN0aW9ucyBiYXNlZCBvbiBpdC4gIFRoZSBiZWhh dmlvciBvZiBgbWFrZS1mcmFtZScgaXMgbm90CiBhZmZlY3RlZCBieSB0aGlzIHZhcmlhYmxlLiIK ICAgOnR5cGUgJyhyZXBlYXQgKGNvbnMgOmZvcm1hdCAiJXYiCi0JCSAgICAgICAoc3ltYm9sIDp0 YWcgIlBhcmFtZXRlciIpCi0JCSAgICAgICAoc2V4cCA6dGFnICJWYWx1ZSIpKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgKHN5bWJvbCA6dGFnICJQYXJhbWV0ZXIiKQorICAgICAgICAgICAgICAg ICAgICAgICAoc2V4cCA6dGFnICJWYWx1ZSIpKSkKICAgOmdyb3VwICdmcmFtZXMpCiAKIChkZWZj dXN0b20gcG9wLXVwLWZyYW1lLWZ1bmN0aW9uCkBAIC02NTM5LDIzICs2NTM5LDIzIEBAIHRoaXMg b25lLgogCiBTZWUgYWxzbyBgc3BlY2lhbC1kaXNwbGF5LXJlZ2V4cHMnLiIKICAgOnR5cGUgJyhy ZXBlYXQKLQkgIChjaG9pY2UgOnRhZyAiQnVmZmVyIgotCQkgIDp2YWx1ZSAiIgotCQkgIChzdHJp bmcgOmZvcm1hdCAiJXYiKQotCQkgIChjb25zIDp0YWcgIldpdGggcGFyYW1ldGVycyIKLQkJCTpm b3JtYXQgIiV2IgotCQkJOnZhbHVlICgiIiAuIG5pbCkKLQkJCShzdHJpbmcgOmZvcm1hdCAiJXYi KQotCQkJKHJlcGVhdCA6dGFnICJQYXJhbWV0ZXJzIgotCQkJCShjb25zIDpmb3JtYXQgIiV2Igot CQkJCSAgICAgIChzeW1ib2wgOnRhZyAiUGFyYW1ldGVyIikKLQkJCQkgICAgICAoc2V4cCA6dGFn ICJWYWx1ZSIpKSkpCi0JCSAgKGxpc3QgOnRhZyAiV2l0aCBmdW5jdGlvbiIKLQkJCTpmb3JtYXQg IiV2IgotCQkJOnZhbHVlICgiIiAuIG5pbCkKLQkJCShzdHJpbmcgOmZvcm1hdCAiJXYiKQotCQkJ KGZ1bmN0aW9uIDp0YWcgIkZ1bmN0aW9uIikKLQkJCShyZXBlYXQgOnRhZyAiQXJndW1lbnRzIiAo c2V4cCkpKSkpCisgICAgICAgICAgKGNob2ljZSA6dGFnICJCdWZmZXIiCisgICAgICAgICAgICAg ICAgICA6dmFsdWUgIiIKKyAgICAgICAgICAgICAgICAgIChzdHJpbmcgOmZvcm1hdCAiJXYiKQor ICAgICAgICAgICAgICAgICAgKGNvbnMgOnRhZyAiV2l0aCBwYXJhbWV0ZXJzIgorICAgICAgICAg ICAgICAgICAgICAgICAgOmZvcm1hdCAiJXYiCisgICAgICAgICAgICAgICAgICAgICAgICA6dmFs dWUgKCIiIC4gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZyA6Zm9ybWF0ICIl diIpCisgICAgICAgICAgICAgICAgICAgICAgICAocmVwZWF0IDp0YWcgIlBhcmFtZXRlcnMiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIDpmb3JtYXQgIiV2IgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcgIlBhcmFtZXRlciIp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXhwIDp0YWcgIlZhbHVl IikpKSkKKyAgICAgICAgICAgICAgICAgIChsaXN0IDp0YWcgIldpdGggZnVuY3Rpb24iCisgICAg ICAgICAgICAgICAgICAgICAgICA6Zm9ybWF0ICIldiIKKyAgICAgICAgICAgICAgICAgICAgICAg IDp2YWx1ZSAoIiIgLiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nIDpmb3Jt YXQgIiV2IikKKyAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJGdW5jdGlv biIpCisgICAgICAgICAgICAgICAgICAgICAgICAocmVwZWF0IDp0YWcgIkFyZ3VtZW50cyIgKHNl eHApKSkpKQogICA6Z3JvdXAgJ3dpbmRvd3MKICAgOmdyb3VwICdmcmFtZXMpCiAobWFrZS1vYnNv bGV0ZS12YXJpYWJsZSAnc3BlY2lhbC1kaXNwbGF5LWJ1ZmZlci1uYW1lcyAnZGlzcGxheS1idWZm ZXItYWxpc3QgIjI0LjMiKQpAQCAtNjYwNiwyMyArNjYwNiwyMyBAQCB0aGlzIG9uZS4KIAogU2Vl IGFsc28gYHNwZWNpYWwtZGlzcGxheS1idWZmZXItbmFtZXMnLiIKICAgOnR5cGUgJyhyZXBlYXQK LQkgIChjaG9pY2UgOnRhZyAiQnVmZmVyIgotCQkgIDp2YWx1ZSAiIgotCQkgIChyZWdleHAgOmZv cm1hdCAiJXYiKQotCQkgIChjb25zIDp0YWcgIldpdGggcGFyYW1ldGVycyIKLQkJCTpmb3JtYXQg IiV2IgotCQkJOnZhbHVlICgiIiAuIG5pbCkKLQkJCShyZWdleHAgOmZvcm1hdCAiJXYiKQotCQkJ KHJlcGVhdCA6dGFnICJQYXJhbWV0ZXJzIgotCQkJCShjb25zIDpmb3JtYXQgIiV2IgotCQkJCSAg ICAgIChzeW1ib2wgOnRhZyAiUGFyYW1ldGVyIikKLQkJCQkgICAgICAoc2V4cCA6dGFnICJWYWx1 ZSIpKSkpCi0JCSAgKGxpc3QgOnRhZyAiV2l0aCBmdW5jdGlvbiIKLQkJCTpmb3JtYXQgIiV2Igot CQkJOnZhbHVlICgiIiAuIG5pbCkKLQkJCShyZWdleHAgOmZvcm1hdCAiJXYiKQotCQkJKGZ1bmN0 aW9uIDp0YWcgIkZ1bmN0aW9uIikKLQkJCShyZXBlYXQgOnRhZyAiQXJndW1lbnRzIiAoc2V4cCkp KSkpCisgICAgICAgICAgKGNob2ljZSA6dGFnICJCdWZmZXIiCisgICAgICAgICAgICAgICAgICA6 dmFsdWUgIiIKKyAgICAgICAgICAgICAgICAgIChyZWdleHAgOmZvcm1hdCAiJXYiKQorICAgICAg ICAgICAgICAgICAgKGNvbnMgOnRhZyAiV2l0aCBwYXJhbWV0ZXJzIgorICAgICAgICAgICAgICAg ICAgICAgICAgOmZvcm1hdCAiJXYiCisgICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWUgKCIi IC4gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAgKHJlZ2V4cCA6Zm9ybWF0ICIldiIpCisg ICAgICAgICAgICAgICAgICAgICAgICAocmVwZWF0IDp0YWcgIlBhcmFtZXRlcnMiCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIDpmb3JtYXQgIiV2IgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sIDp0YWcgIlBhcmFtZXRlciIpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXhwIDp0YWcgIlZhbHVlIikpKSkK KyAgICAgICAgICAgICAgICAgIChsaXN0IDp0YWcgIldpdGggZnVuY3Rpb24iCisgICAgICAgICAg ICAgICAgICAgICAgICA6Zm9ybWF0ICIldiIKKyAgICAgICAgICAgICAgICAgICAgICAgIDp2YWx1 ZSAoIiIgLiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICAocmVnZXhwIDpmb3JtYXQgIiV2 IikKKyAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJGdW5jdGlvbiIpCisg ICAgICAgICAgICAgICAgICAgICAgICAocmVwZWF0IDp0YWcgIkFyZ3VtZW50cyIgKHNleHApKSkp KQogICA6Z3JvdXAgJ3dpbmRvd3MKICAgOmdyb3VwICdmcmFtZXMpCiAobWFrZS1vYnNvbGV0ZS12 YXJpYWJsZSAnc3BlY2lhbC1kaXNwbGF5LXJlZ2V4cHMgJ2Rpc3BsYXktYnVmZmVyLWFsaXN0ICIy NC4zIikKQEAgLTY2NDMsMTQgKzY2NDMsMTQgQEAgZW50cnkuIgogICAgICAoKHNldHEgdG1wIChh c3NvYyBidWZmZXItbmFtZSBzcGVjaWFsLWRpc3BsYXktYnVmZmVyLW5hbWVzKSkKICAgICAgIChj ZHIgdG1wKSkKICAgICAgKChjYXRjaCAnZm91bmQKLQkoZG9saXN0IChyZWdleHAgc3BlY2lhbC1k aXNwbGF5LXJlZ2V4cHMpCi0JICAoY29uZAotCSAgICgoc3RyaW5ncCByZWdleHApCi0JICAgICh3 aGVuIChzdHJpbmctbWF0Y2gtcCByZWdleHAgYnVmZmVyLW5hbWUpCi0JICAgICAgKHRocm93ICdm b3VuZCB0KSkpCi0JICAgKChhbmQgKGNvbnNwIHJlZ2V4cCkgKHN0cmluZ3AgKGNhciByZWdleHAp KQotCQkgKHN0cmluZy1tYXRjaC1wIChjYXIgcmVnZXhwKSBidWZmZXItbmFtZSkpCi0JICAgICh0 aHJvdyAnZm91bmQgKGNkciByZWdleHApKSkpKSkpKSkpCisgICAgICAgIChkb2xpc3QgKHJlZ2V4 cCBzcGVjaWFsLWRpc3BsYXktcmVnZXhwcykKKyAgICAgICAgICAoY29uZAorICAgICAgICAgICAo KHN0cmluZ3AgcmVnZXhwKQorICAgICAgICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaC1wIHJlZ2V4 cCBidWZmZXItbmFtZSkKKyAgICAgICAgICAgICAgKHRocm93ICdmb3VuZCB0KSkpCisgICAgICAg ICAgICgoYW5kIChjb25zcCByZWdleHApIChzdHJpbmdwIChjYXIgcmVnZXhwKSkKKyAgICAgICAg ICAgICAgICAgKHN0cmluZy1tYXRjaC1wIChjYXIgcmVnZXhwKSBidWZmZXItbmFtZSkpCisgICAg ICAgICAgICAodGhyb3cgJ2ZvdW5kIChjZHIgcmVnZXhwKSkpKSkpKSkpKQogCiAoZGVmY3VzdG9t IHNwZWNpYWwtZGlzcGxheS1mcmFtZS1hbGlzdAogICAnKChoZWlnaHQgLiAxNCkgKHdpZHRoIC4g ODApICh1bnNwbGl0dGFibGUgLiB0KSkKQEAgLTY2NjUsOCArNjY2NSw4IEBAIFRoaXMgdmFyaWFi bGUgY2FuIGJlIHNldCBpbiB5b3VyIGluaXQgZmlsZSwgbGlrZSB0aGlzOgogCiBUaGVzZSBzdXBl cnNlZGUgdGhlIHZhbHVlcyBnaXZlbiBpbiBgZGVmYXVsdC1mcmFtZS1hbGlzdCcuIgogICA6dHlw ZSAnKHJlcGVhdCAoY29ucyA6Zm9ybWF0ICIldiIKLQkJCSAoc3ltYm9sIDp0YWcgIlBhcmFtZXRl ciIpCi0JCQkgKHNleHAgOnRhZyAiVmFsdWUiKSkpCisgICAgICAgICAgICAgICAgICAgICAgIChz eW1ib2wgOnRhZyAiUGFyYW1ldGVyIikKKyAgICAgICAgICAgICAgICAgICAgICAgKHNleHAgOnRh ZyAiVmFsdWUiKSkpCiAgIDpncm91cCAnZnJhbWVzKQogKG1ha2Utb2Jzb2xldGUtdmFyaWFibGUg J3NwZWNpYWwtZGlzcGxheS1mcmFtZS1hbGlzdCAnZGlzcGxheS1idWZmZXItYWxpc3QgIjI0LjMi KQogCkBAIC02NjkyLDMzICs2NjkyLDMzIEBAIHBhc3MgdGhlIGVsZW1lbnRzIG9mIChjZHIgQVJH UykgYXMgdGhlIHJlbWFpbmluZyBhcmd1bWVudHMuIgogICAgICAgKG9yCiAgICAgICAgOzsgSWYg d2UgaGF2ZSBhIHdpbmRvdyBhbHJlYWR5LCBtYWtlIGl0IHZpc2libGUuCiAgICAgICAgKHdoZW4g d2luZG93Ci0JIChsZXQgKChmcmFtZSAod2luZG93LWZyYW1lIHdpbmRvdykpKQotCSAgIChtYWtl LWZyYW1lLXZpc2libGUgZnJhbWUpCi0JICAgKHJhaXNlLWZyYW1lIGZyYW1lKQotCSAgIChkaXNw bGF5LWJ1ZmZlci1yZWNvcmQtd2luZG93ICdyZXVzZSB3aW5kb3cgYnVmZmVyKQotCSAgIHdpbmRv dykpCisgICAgICAgICAobGV0ICgoZnJhbWUgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkKKyAgICAg ICAgICAgKG1ha2UtZnJhbWUtdmlzaWJsZSBmcmFtZSkKKyAgICAgICAgICAgKHJhaXNlLWZyYW1l IGZyYW1lKQorICAgICAgICAgICAoZGlzcGxheS1idWZmZXItcmVjb3JkLXdpbmRvdyAncmV1c2Ug d2luZG93IGJ1ZmZlcikKKyAgICAgICAgICAgd2luZG93KSkKICAgICAgICA7OyBSZXVzZSB0aGUg Y3VycmVudCB3aW5kb3cgaWYgdGhlIHVzZXIgcmVxdWVzdGVkIGl0LgogICAgICAgICh3aGVuIChj ZHIgKGFzc3EgJ3NhbWUtd2luZG93IGFyZ3MpKQotCSAoY29uZGl0aW9uLWNhc2UgbmlsCi0JICAg ICAocHJvZ24gKHN3aXRjaC10by1idWZmZXIgYnVmZmVyIG5pbCB0KSAoc2VsZWN0ZWQtd2luZG93 KSkKLQkgICAoZXJyb3IgbmlsKSkpCisgICAgICAgICAoY29uZGl0aW9uLWNhc2UgbmlsCisgICAg ICAgICAgICAgKHByb2duIChzd2l0Y2gtdG8tYnVmZmVyIGJ1ZmZlciBuaWwgdCkgKHNlbGVjdGVk LXdpbmRvdykpCisgICAgICAgICAgIChlcnJvciBuaWwpKSkKICAgICAgICA7OyBTdGF5IG9uIHRo ZSBzYW1lIGZyYW1lIGlmIHJlcXVlc3RlZC4KICAgICAgICAod2hlbiAob3IgKGNkciAoYXNzcSAn c2FtZS1mcmFtZSBhcmdzKSkgKGNkciAoYXNzcSAnc2FtZS13aW5kb3cgYXJncykpKQotCSAobGV0 KiAoKHBvcC11cC13aW5kb3dzIHQpCi0JCXBvcC11cC1mcmFtZXMKLQkJc3BlY2lhbC1kaXNwbGF5 LWJ1ZmZlci1uYW1lcyBzcGVjaWFsLWRpc3BsYXktcmVnZXhwcykKLQkgICAoZGlzcGxheS1idWZm ZXIgYnVmZmVyKSkpCisgICAgICAgICAobGV0KiAoKHBvcC11cC13aW5kb3dzIHQpCisgICAgICAg ICAgICAgICAgcG9wLXVwLWZyYW1lcworICAgICAgICAgICAgICAgIHNwZWNpYWwtZGlzcGxheS1i dWZmZXItbmFtZXMgc3BlY2lhbC1kaXNwbGF5LXJlZ2V4cHMpCisgICAgICAgICAgIChkaXNwbGF5 LWJ1ZmZlciBidWZmZXIpKSkKICAgICAgICA7OyBJZiBubyB3aW5kb3cgeWV0LCBtYWtlIG9uZSBp biBhIG5ldyBmcmFtZS4KICAgICAgICAobGV0KiAoKGZyYW1lCi0JICAgICAgICh3aXRoLWN1cnJl bnQtYnVmZmVyIGJ1ZmZlcgotCQkgKG1ha2UtZnJhbWUgKGFwcGVuZCBhcmdzIHNwZWNpYWwtZGlz cGxheS1mcmFtZS1hbGlzdCkpKSkKLQkgICAgICAod2luZG93IChmcmFtZS1zZWxlY3RlZC13aW5k b3cgZnJhbWUpKSkKLQkgKGRpc3BsYXktYnVmZmVyLXJlY29yZC13aW5kb3cgJ2ZyYW1lIHdpbmRv dyBidWZmZXIpCi0JICh1bmxlc3MgKGVxIGJ1ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cpKQot CSAgIChzZXQtd2luZG93LWJ1ZmZlciB3aW5kb3cgYnVmZmVyKQotCSAgIChzZXQtd2luZG93LXBy ZXYtYnVmZmVycyB3aW5kb3cgbmlsKSkKLQkgKHNldC13aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93 IHQpCi0JIHdpbmRvdykpKSkpCisgICAgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBi dWZmZXIKKyAgICAgICAgICAgICAgICAgKG1ha2UtZnJhbWUgKGFwcGVuZCBhcmdzIHNwZWNpYWwt ZGlzcGxheS1mcmFtZS1hbGlzdCkpKSkKKyAgICAgICAgICAgICAgKHdpbmRvdyAoZnJhbWUtc2Vs ZWN0ZWQtd2luZG93IGZyYW1lKSkpCisgICAgICAgICAoZGlzcGxheS1idWZmZXItcmVjb3JkLXdp bmRvdyAnZnJhbWUgd2luZG93IGJ1ZmZlcikKKyAgICAgICAgICh1bmxlc3MgKGVxIGJ1ZmZlciAo d2luZG93LWJ1ZmZlciB3aW5kb3cpKQorICAgICAgICAgICAoc2V0LXdpbmRvdy1idWZmZXIgd2lu ZG93IGJ1ZmZlcikKKyAgICAgICAgICAgKHNldC13aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdyBu aWwpKQorICAgICAgICAgKHNldC13aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93IHQpCisgICAgICAg ICB3aW5kb3cpKSkpKQogCiAoZGVmY3VzdG9tIHNwZWNpYWwtZGlzcGxheS1mdW5jdGlvbiAnc3Bl Y2lhbC1kaXNwbGF5LXBvcHVwLWZyYW1lCiAgICJGdW5jdGlvbiB0byBjYWxsIGZvciBkaXNwbGF5 aW5nIHNwZWNpYWwgYnVmZmVycy4KQEAgLTY3NTIsOCArNjc1Miw4IEBAIHRoZSBidWZmZXIgbmFt ZS4gIFRoaXMgaXMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aAogaWdub3JlZC4KIAogU2VlIGFsc28g YHNhbWUtd2luZG93LXJlZ2V4cHMnLiIKLSA6dHlwZSAnKHJlcGVhdCAoc3RyaW5nIDpmb3JtYXQg IiV2IikpCi0gOmdyb3VwICd3aW5kb3dzKQorICA6dHlwZSAnKHJlcGVhdCAoc3RyaW5nIDpmb3Jt YXQgIiV2IikpCisgIDpncm91cCAnd2luZG93cykKIAogKGRlZmN1c3RvbSBzYW1lLXdpbmRvdy1y ZWdleHBzIG5pbAogICAiTGlzdCBvZiByZWdleHBzIHNheWluZyB3aGljaCBidWZmZXJzIHNob3Vs ZCBhcHBlYXIgaW4gdGhlIFwic2FtZVwiIHdpbmRvdy4KQEAgLTY3ODQsMTMgKzY3ODQsMTMgQEAg c2VsZWN0ZWQgcmF0aGVyIHRoYW4gKGFzIHVzdWFsKSBzb21lIG90aGVyIHdpbmRvdy4gIFNlZQog ICAgKChhc3NvYyBidWZmZXItbmFtZSBzYW1lLXdpbmRvdy1idWZmZXItbmFtZXMpKQogICAgKChj YXRjaCAnZm91bmQKICAgICAgIChkb2xpc3QgKHJlZ2V4cCBzYW1lLXdpbmRvdy1yZWdleHBzKQot CTs7IFRoZSBlbGVtZW50cyBvZiBgc2FtZS13aW5kb3ctcmVnZXhwcycgY2FuIGJlIHJlZ2V4cHMK LQk7OyBvciBjb25zIGNlbGxzIHdob3NlIGNhcnMgYXJlIHJlZ2V4cHMuCi0JKHdoZW4gKG9yIChh bmQgKHN0cmluZ3AgcmVnZXhwKQotCQkgICAgICAgKHN0cmluZy1tYXRjaC1wIHJlZ2V4cCBidWZm ZXItbmFtZSkpCi0JCSAgKGFuZCAoY29uc3AgcmVnZXhwKSAoc3RyaW5ncCAoY2FyIHJlZ2V4cCkp Ci0JCSAgICAgICAoc3RyaW5nLW1hdGNoLXAgKGNhciByZWdleHApIGJ1ZmZlci1uYW1lKSkpCi0J ICAodGhyb3cgJ2ZvdW5kIHQpKSkpKSkpCisgICAgICAgIDs7IFRoZSBlbGVtZW50cyBvZiBgc2Ft ZS13aW5kb3ctcmVnZXhwcycgY2FuIGJlIHJlZ2V4cHMKKyAgICAgICAgOzsgb3IgY29ucyBjZWxs cyB3aG9zZSBjYXJzIGFyZSByZWdleHBzLgorICAgICAgICAod2hlbiAob3IgKGFuZCAoc3RyaW5n cCByZWdleHApCisgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2gtcCByZWdleHAg YnVmZmVyLW5hbWUpKQorICAgICAgICAgICAgICAgICAgKGFuZCAoY29uc3AgcmVnZXhwKSAoc3Ry aW5ncCAoY2FyIHJlZ2V4cCkpCisgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2gt cCAoY2FyIHJlZ2V4cCkgYnVmZmVyLW5hbWUpKSkKKyAgICAgICAgICAodGhyb3cgJ2ZvdW5kIHQp KSkpKSkpCiAKIChkZWZjdXN0b20gcG9wLXVwLWZyYW1lcyBuaWwKICAgIldoZXRoZXIgYGRpc3Bs YXktYnVmZmVyJyBzaG91bGQgbWFrZSBhIHNlcGFyYXRlIGZyYW1lLgpAQCAtNjc5OSw5ICs2Nzk5 LDkgQEAgSWYgdGhlIHZhbHVlIGlzIGBncmFwaGljLW9ubHknLCBtYWtlIGEgc2VwYXJhdGUgZnJh bWUKIG9uIGdyYXBoaWMgZGlzcGxheXMgb25seS4KIEFueSBvdGhlciBub24tbmlsIHZhbHVlIG1l YW5zIGFsd2F5cyBtYWtlIGEgc2VwYXJhdGUgZnJhbWUuIgogICA6dHlwZSAnKGNob2ljZQotCSAg KGNvbnN0IDp0YWcgIk5ldmVyIiBuaWwpCi0JICAoY29uc3QgOnRhZyAiT24gZ3JhcGhpYyBkaXNw bGF5cyBvbmx5IiBncmFwaGljLW9ubHkpCi0JICAoY29uc3QgOnRhZyAiQWx3YXlzIiB0KSkKKyAg ICAgICAgICAoY29uc3QgOnRhZyAiTmV2ZXIiIG5pbCkKKyAgICAgICAgICAoY29uc3QgOnRhZyAi T24gZ3JhcGhpYyBkaXNwbGF5cyBvbmx5IiBncmFwaGljLW9ubHkpCisgICAgICAgICAgKGNvbnN0 IDp0YWcgIkFsd2F5cyIgdCkpCiAgIDpncm91cCAnd2luZG93cykKIAogKGRlZmN1c3RvbSBkaXNw bGF5LWJ1ZmZlci1yZXVzZS1mcmFtZXMgbmlsCkBAIC02OTAxLDI4ICs2OTAxLDI4IEBAIGhvbGQ6 CiAgICAgICAgICAgICAgKG5vdCAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1zaWRl KSkpCiAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHdpbmRvdy1idWZmZXIgd2luZG93KQogICAg ICAgKGlmIGhvcml6b250YWwKLQkgIDs7IEEgd2luZG93IGNhbiBiZSBzcGxpdCBob3Jpem9udGFs bHkgd2hlbiBpdHMgd2lkdGggaXMgbm90Ci0JICA7OyBmaXhlZCwgaXQgaXMgYXQgbGVhc3QgYHNw bGl0LXdpZHRoLXRocmVzaG9sZCcgY29sdW1ucyB3aWRlCi0JICA7OyBhbmQgYXQgbGVhc3QgdHdp Y2UgYXMgd2lkZSBhcyBgd2luZG93LW1pbi13aWR0aCcgYW5kIDIgKHRoZQotCSAgOzsgbGF0dGVy IHZhbHVlIGlzIGhhcmRjb2RlZCkuCi0JICAoYW5kIChtZW1xIHdpbmRvdy1zaXplLWZpeGVkICco bmlsIGhlaWdodCkpCi0JICAgICAgIDs7IFRlc3RpbmcgYHdpbmRvdy1mdWxsLXdpZHRoLXAnIGhl cmUgaGFyZGx5IG1ha2VzIGFueQotCSAgICAgICA7OyBzZW5zZSBub3dhZGF5cy4gIFRoaXMgY2Fu IGJlIGRvbmUgbW9yZSBpbnR1aXRpdmVseSBieQotCSAgICAgICA7OyBzZXR0aW5nIHVwIGBzcGxp dC13aWR0aC10aHJlc2hvbGQnIGFwcHJvcHJpYXRlbHkuCi0JICAgICAgIChudW1iZXJwIHNwbGl0 LXdpZHRoLXRocmVzaG9sZCkKLQkgICAgICAgKD49ICh3aW5kb3ctd2lkdGggd2luZG93KQotCQkg ICAobWF4IHNwbGl0LXdpZHRoLXRocmVzaG9sZAotCQkJKCogMiAobWF4IHdpbmRvdy1taW4td2lk dGggMikpKSkpCi0JOzsgQSB3aW5kb3cgY2FuIGJlIHNwbGl0IHZlcnRpY2FsbHkgd2hlbiBpdHMg aGVpZ2h0IGlzIG5vdAotCTs7IGZpeGVkLCBpdCBpcyBhdCBsZWFzdCBgc3BsaXQtaGVpZ2h0LXRo cmVzaG9sZCcgbGluZXMgaGlnaCwKLQk7OyBhbmQgaXQgaXMgYXQgbGVhc3QgdHdpY2UgYXMgaGln aCBhcyBgd2luZG93LW1pbi1oZWlnaHQnIGFuZCAyCi0JOzsgaWYgaXQgaGFzIGEgbW9kZSBsaW5l IG9yIDEuCi0JKGFuZCAobWVtcSB3aW5kb3ctc2l6ZS1maXhlZCAnKG5pbCB3aWR0aCkpCi0JICAg ICAobnVtYmVycCBzcGxpdC1oZWlnaHQtdGhyZXNob2xkKQotCSAgICAgKD49ICh3aW5kb3ctaGVp Z2h0IHdpbmRvdykKLQkJIChtYXggc3BsaXQtaGVpZ2h0LXRocmVzaG9sZAotCQkgICAgICAoKiAy IChtYXggd2luZG93LW1pbi1oZWlnaHQKLQkJCQkoaWYgbW9kZS1saW5lLWZvcm1hdCAyIDEpKSkp KSkpKSkpCisgICAgICAgICAgOzsgQSB3aW5kb3cgY2FuIGJlIHNwbGl0IGhvcml6b250YWxseSB3 aGVuIGl0cyB3aWR0aCBpcyBub3QKKyAgICAgICAgICA7OyBmaXhlZCwgaXQgaXMgYXQgbGVhc3Qg YHNwbGl0LXdpZHRoLXRocmVzaG9sZCcgY29sdW1ucyB3aWRlCisgICAgICAgICAgOzsgYW5kIGF0 IGxlYXN0IHR3aWNlIGFzIHdpZGUgYXMgYHdpbmRvdy1taW4td2lkdGgnIGFuZCAyICh0aGUKKyAg ICAgICAgICA7OyBsYXR0ZXIgdmFsdWUgaXMgaGFyZGNvZGVkKS4KKyAgICAgICAgICAoYW5kICht ZW1xIHdpbmRvdy1zaXplLWZpeGVkICcobmlsIGhlaWdodCkpCisgICAgICAgICAgICAgICA7OyBU ZXN0aW5nIGB3aW5kb3ctZnVsbC13aWR0aC1wJyBoZXJlIGhhcmRseSBtYWtlcyBhbnkKKyAgICAg ICAgICAgICAgIDs7IHNlbnNlIG5vd2FkYXlzLiAgVGhpcyBjYW4gYmUgZG9uZSBtb3JlIGludHVp dGl2ZWx5IGJ5CisgICAgICAgICAgICAgICA7OyBzZXR0aW5nIHVwIGBzcGxpdC13aWR0aC10aHJl c2hvbGQnIGFwcHJvcHJpYXRlbHkuCisgICAgICAgICAgICAgICAobnVtYmVycCBzcGxpdC13aWR0 aC10aHJlc2hvbGQpCisgICAgICAgICAgICAgICAoPj0gKHdpbmRvdy13aWR0aCB3aW5kb3cpCisg ICAgICAgICAgICAgICAgICAgKG1heCBzcGxpdC13aWR0aC10aHJlc2hvbGQKKyAgICAgICAgICAg ICAgICAgICAgICAgICgqIDIgKG1heCB3aW5kb3ctbWluLXdpZHRoIDIpKSkpKQorICAgICAgICA7 OyBBIHdpbmRvdyBjYW4gYmUgc3BsaXQgdmVydGljYWxseSB3aGVuIGl0cyBoZWlnaHQgaXMgbm90 CisgICAgICAgIDs7IGZpeGVkLCBpdCBpcyBhdCBsZWFzdCBgc3BsaXQtaGVpZ2h0LXRocmVzaG9s ZCcgbGluZXMgaGlnaCwKKyAgICAgICAgOzsgYW5kIGl0IGlzIGF0IGxlYXN0IHR3aWNlIGFzIGhp Z2ggYXMgYHdpbmRvdy1taW4taGVpZ2h0JyBhbmQgMgorICAgICAgICA7OyBpZiBpdCBoYXMgYSBt b2RlIGxpbmUgb3IgMS4KKyAgICAgICAgKGFuZCAobWVtcSB3aW5kb3ctc2l6ZS1maXhlZCAnKG5p bCB3aWR0aCkpCisgICAgICAgICAgICAgKG51bWJlcnAgc3BsaXQtaGVpZ2h0LXRocmVzaG9sZCkK KyAgICAgICAgICAgICAoPj0gKHdpbmRvdy1oZWlnaHQgd2luZG93KQorICAgICAgICAgICAgICAg ICAobWF4IHNwbGl0LWhlaWdodC10aHJlc2hvbGQKKyAgICAgICAgICAgICAgICAgICAgICAoKiAy IChtYXggd2luZG93LW1pbi1oZWlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGlmIG1vZGUtbGluZS1mb3JtYXQgMiAxKSkpKSkpKSkpKQogCiAoZGVmdW4gc3BsaXQtd2luZG93 LXNlbnNpYmx5ICgmb3B0aW9uYWwgd2luZG93KQogICAiU3BsaXQgV0lORE9XIGluIGEgd2F5IHN1 aXRhYmxlIGZvciBgZGlzcGxheS1idWZmZXInLgpAQCAtNjk1OCwxNCArNjk1OCwxNCBAQCBrbm93 IGhvdyBgc3BsaXQtd2luZG93LXNlbnNpYmx5JyBkZXRlcm1pbmVzIHdoZXRoZXIgV0lORE9XIGNh biBiZQogc3BsaXQuIgogICAobGV0ICgod2luZG93IChvciB3aW5kb3cgKHNlbGVjdGVkLXdpbmRv dykpKSkKICAgICAob3IgKGFuZCAod2luZG93LXNwbGl0dGFibGUtcCB3aW5kb3cpCi0JICAgICA7 OyBTcGxpdCB3aW5kb3cgdmVydGljYWxseS4KLQkgICAgICh3aXRoLXNlbGVjdGVkLXdpbmRvdyB3 aW5kb3cKLQkgICAgICAgKHNwbGl0LXdpbmRvdy1iZWxvdykpKQotCShhbmQgKHdpbmRvdy1zcGxp dHRhYmxlLXAgd2luZG93IHQpCi0JICAgICA7OyBTcGxpdCB3aW5kb3cgaG9yaXpvbnRhbGx5Lgot CSAgICAgKHdpdGgtc2VsZWN0ZWQtd2luZG93IHdpbmRvdwotCSAgICAgICAoc3BsaXQtd2luZG93 LXJpZ2h0KSkpCi0JKGFuZAorICAgICAgICAgICAgIDs7IFNwbGl0IHdpbmRvdyB2ZXJ0aWNhbGx5 LgorICAgICAgICAgICAgICh3aXRoLXNlbGVjdGVkLXdpbmRvdyB3aW5kb3cKKyAgICAgICAgICAg ICAgIChzcGxpdC13aW5kb3ctYmVsb3cpKSkKKyAgICAgICAgKGFuZCAod2luZG93LXNwbGl0dGFi bGUtcCB3aW5kb3cgdCkKKyAgICAgICAgICAgICA7OyBTcGxpdCB3aW5kb3cgaG9yaXpvbnRhbGx5 LgorICAgICAgICAgICAgICh3aXRoLXNlbGVjdGVkLXdpbmRvdyB3aW5kb3cKKyAgICAgICAgICAg ICAgIChzcGxpdC13aW5kb3ctcmlnaHQpKSkKKyAgICAgICAgKGFuZAogICAgICAgICAgOzsgSWYg V0lORE9XIGlzIHRoZSBvbmx5IHVzYWJsZSB3aW5kb3cgb24gaXRzIGZyYW1lIChpdCBpcwogICAg ICAgICAgOzsgdGhlIG9ubHkgb25lIG9yLCBub3QgYmVpbmcgdGhlIG9ubHkgb25lLCBhbGwgdGhl IG90aGVyCiAgICAgICAgICA7OyBvbmVzIGFyZSBkZWRpY2F0ZWQpIGFuZCBpcyBub3QgdGhlIG1p bmlidWZmZXIgd2luZG93LCB0cnkKQEAgLTY5ODEsMzcgKzY5ODEsMzcgQEAgc3BsaXQuIgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRocm93ICdkb25lIG5pbCkpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSBuaWwgJ25vbWluaSkKICAgICAgICAg ICAgICAgdCkpKQotCSAobm90ICh3aW5kb3ctbWluaWJ1ZmZlci1wIHdpbmRvdykpCi0JIChsZXQg KChzcGxpdC1oZWlnaHQtdGhyZXNob2xkIDApKQotCSAgICh3aGVuICh3aW5kb3ctc3BsaXR0YWJs ZS1wIHdpbmRvdykKLQkgICAgICh3aXRoLXNlbGVjdGVkLXdpbmRvdyB3aW5kb3cKLQkgICAgICAg KHNwbGl0LXdpbmRvdy1iZWxvdykpKSkpKSkpCisgICAgICAgICAobm90ICh3aW5kb3ctbWluaWJ1 ZmZlci1wIHdpbmRvdykpCisgICAgICAgICAobGV0ICgoc3BsaXQtaGVpZ2h0LXRocmVzaG9sZCAw KSkKKyAgICAgICAgICAgKHdoZW4gKHdpbmRvdy1zcGxpdHRhYmxlLXAgd2luZG93KQorICAgICAg ICAgICAgICh3aXRoLXNlbGVjdGVkLXdpbmRvdyB3aW5kb3cKKyAgICAgICAgICAgICAgIChzcGxp dC13aW5kb3ctYmVsb3cpKSkpKSkpKQogCiAoZGVmdW4gd2luZG93LS10cnktdG8tc3BsaXQtd2lu ZG93ICh3aW5kb3cgJm9wdGlvbmFsIGFsaXN0KQogICAiVHJ5IHRvIHNwbGl0IFdJTkRPVy4KIFJl dHVybiB2YWx1ZSByZXR1cm5lZCBieSBgc3BsaXQtd2luZG93LXByZWZlcnJlZC1mdW5jdGlvbicg aWYgaXQKIHJlcHJlc2VudHMgYSBsaXZlIHdpbmRvdywgbmlsIG90aGVyd2lzZS4iCi0gICAgICAo YW5kICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKLQkgICAobm90IChmcmFtZS1wYXJhbWV0ZXIgKHdp bmRvdy1mcmFtZSB3aW5kb3cpICd1bnNwbGl0dGFibGUpKQotCSAgIChsZXQqICgod2luZG93LWNv bWJpbmF0aW9uLWxpbWl0Ci0JCSAgIDs7IFdoZW4gYHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCcg ZXF1YWxzCi0JCSAgIDs7IGBkaXNwbGF5LWJ1ZmZlcicgb3IgZXF1YWxzIGByZXNpemUtd2luZG93 JyBhbmQgYQotCQkgICA7OyBgd2luZG93LWhlaWdodCcgb3IgYHdpbmRvdy13aWR0aCcgYWxpc3Qg ZW50cnkgYXJlCi0JCSAgIDs7IHByZXNlbnQsIGJpbmQgaXQgdG8gdCBzbyByZXNpemluZyBzdGVh bHMgc3BhY2UKLQkJICAgOzsgcHJlZmVyYWJseSBmcm9tIHRoZSB3aW5kb3cgdGhhdCB3YXMgc3Bs aXQuCi0JCSAgIChpZiAob3IgKGVxIHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCAnZGlzcGxheS1i dWZmZXIpCi0JCQkgICAoYW5kIChlcSB3aW5kb3ctY29tYmluYXRpb24tbGltaXQgJ3dpbmRvdy1z aXplKQotCQkJCShvciAoY2RyIChhc3NxICd3aW5kb3ctaGVpZ2h0IGFsaXN0KSkKLQkJCQkgICAg KGNkciAoYXNzcSAnd2luZG93LXdpZHRoIGFsaXN0KSkpKSkKLQkJICAgICAgIHQKLQkJICAgICB3 aW5kb3ctY29tYmluYXRpb24tbGltaXQpKQotCQkgIChuZXctd2luZG93Ci0JCSAgIDs7IFNpbmNl IGBzcGxpdC13aW5kb3ctcHJlZmVycmVkLWZ1bmN0aW9uJyBtaWdodAotCQkgICA7OyB0aHJvdyBh biBlcnJvciB1c2UgYGNvbmRpdGlvbi1jYXNlJy4KLQkJICAgKGNvbmRpdGlvbi1jYXNlIG5pbAot CQkgICAgICAgKGZ1bmNhbGwgc3BsaXQtd2luZG93LXByZWZlcnJlZC1mdW5jdGlvbiB3aW5kb3cp Ci0JCSAgICAgKGVycm9yIG5pbCkpKSkKLQkgICAgIChhbmQgKHdpbmRvdy1saXZlLXAgbmV3LXdp bmRvdykgbmV3LXdpbmRvdykpKSkKKyAgKGFuZCAod2luZG93LWxpdmUtcCB3aW5kb3cpCisgICAg ICAgKG5vdCAoZnJhbWUtcGFyYW1ldGVyICh3aW5kb3ctZnJhbWUgd2luZG93KSAndW5zcGxpdHRh YmxlKSkKKyAgICAgICAobGV0KiAoKHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdAorICAgICAgICAg ICAgICAgOzsgV2hlbiBgd2luZG93LWNvbWJpbmF0aW9uLWxpbWl0JyBlcXVhbHMKKyAgICAgICAg ICAgICAgIDs7IGBkaXNwbGF5LWJ1ZmZlcicgb3IgZXF1YWxzIGByZXNpemUtd2luZG93JyBhbmQg YQorICAgICAgICAgICAgICAgOzsgYHdpbmRvdy1oZWlnaHQnIG9yIGB3aW5kb3ctd2lkdGgnIGFs aXN0IGVudHJ5IGFyZQorICAgICAgICAgICAgICAgOzsgcHJlc2VudCwgYmluZCBpdCB0byB0IHNv IHJlc2l6aW5nIHN0ZWFscyBzcGFjZQorICAgICAgICAgICAgICAgOzsgcHJlZmVyYWJseSBmcm9t IHRoZSB3aW5kb3cgdGhhdCB3YXMgc3BsaXQuCisgICAgICAgICAgICAgICAoaWYgKG9yIChlcSB3 aW5kb3ctY29tYmluYXRpb24tbGltaXQgJ2Rpc3BsYXktYnVmZmVyKQorICAgICAgICAgICAgICAg ICAgICAgICAoYW5kIChlcSB3aW5kb3ctY29tYmluYXRpb24tbGltaXQgJ3dpbmRvdy1zaXplKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciAoY2RyIChhc3NxICd3aW5kb3ctaGVpZ2h0 IGFsaXN0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNkciAoYXNzcSAnd2lu ZG93LXdpZHRoIGFsaXN0KSkpKSkKKyAgICAgICAgICAgICAgICAgICB0CisgICAgICAgICAgICAg ICAgIHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCkpCisgICAgICAgICAgICAgIChuZXctd2luZG93 CisgICAgICAgICAgICAgICA7OyBTaW5jZSBgc3BsaXQtd2luZG93LXByZWZlcnJlZC1mdW5jdGlv bicgbWlnaHQKKyAgICAgICAgICAgICAgIDs7IHRocm93IGFuIGVycm9yIHVzZSBgY29uZGl0aW9u LWNhc2UnLgorICAgICAgICAgICAgICAgKGNvbmRpdGlvbi1jYXNlIG5pbAorICAgICAgICAgICAg ICAgICAgIChmdW5jYWxsIHNwbGl0LXdpbmRvdy1wcmVmZXJyZWQtZnVuY3Rpb24gd2luZG93KQor ICAgICAgICAgICAgICAgICAoZXJyb3IgbmlsKSkpKQorICAgICAgICAgKGFuZCAod2luZG93LWxp dmUtcCBuZXctd2luZG93KSBuZXctd2luZG93KSkpKQogCiAoZGVmdW4gd2luZG93LS1mcmFtZS11 c2FibGUtcCAoZnJhbWUpCiAgICJSZXR1cm4gRlJBTUUgaWYgaXQgY2FuIGJlIHVzZWQgdG8gZGlz cGxheSBhIGJ1ZmZlci4iCkBAIC03MDI5LDcgKzcwMjksNyBAQCByZXByZXNlbnRzIGEgbGl2ZSB3 aW5kb3csIG5pbCBvdGhlcndpc2UuIgogICAgICAgICAgICAgICAgICAgICAgICA7OyB3aGVuIGRp c3BsYXlpbmcgc2FtZS1mcmFtZSB3aW5kb3dzLgogICAgICAgICAgICAgICAgICAgICAgICBuaWwg OyAoZXEgdCAod2luZG93LWRlZGljYXRlZC1wIHdpbmRvdykpCiAgICAgICAgICAgICAgICAgICAg ICAgICkpCi0JZnJhbWUpKSkpCisgICAgICAgIGZyYW1lKSkpKQogCiAoZGVmdmFyYWxpYXMgJ2V2 ZW4td2luZG93LWhlaWdodHMgJ2V2ZW4td2luZG93LXNpemVzKQogKGRlZmN1c3RvbSBldmVuLXdp bmRvdy1zaXplcyB0CkBAIC03MDM5LDEwICs3MDM5LDEwIEBAIGFsb25lLiAgU3BlY2lhbCB2YWx1 ZXMgYXJlIGBoZWlnaHQtb25seScgdG8gZXZlbiBoZWlnaHRzIG9ubHkgYW5kCiBgd2lkdGgtb25s eScgdG8gZXZlbiB3aWR0aHMgb25seS4gIEFueSBvdGhlciB2YWx1ZSBtZWFucyB0byBldmVuCiBh bnkgb2YgdGhlbS4iCiAgIDp0eXBlICcoY2hvaWNlCi0JICAoY29uc3QgOnRhZyAiTmV2ZXIiIG5p bCkKLQkgIChjb25zdCA6dGFnICJTaWRlLWJ5LXNpZGUgd2luZG93cyBvbmx5IiB3aWR0aC1vbmx5 KQotCSAgKGNvbnN0IDp0YWcgIldpbmRvd3MgYWJvdmUgb3IgYmVsb3cgb25seSIgaGVpZ2h0LW9u bHkpCi0JICAoY29uc3QgOnRhZyAiQWx3YXlzIiB0KSkKKyAgICAgICAgICAoY29uc3QgOnRhZyAi TmV2ZXIiIG5pbCkKKyAgICAgICAgICAoY29uc3QgOnRhZyAiU2lkZS1ieS1zaWRlIHdpbmRvd3Mg b25seSIgd2lkdGgtb25seSkKKyAgICAgICAgICAoY29uc3QgOnRhZyAiV2luZG93cyBhYm92ZSBv ciBiZWxvdyBvbmx5IiBoZWlnaHQtb25seSkKKyAgICAgICAgICAoY29uc3QgOnRhZyAiQWx3YXlz IiB0KSkKICAgOnZlcnNpb24gIjI1LjEiCiAgIDpncm91cCAnd2luZG93cykKIApAQCAtNzEyMyw3 NiArNzEyMyw3NiBAQCBSZXR1cm4gV0lORE9XIGlmIEJVRkZFUiBhbmQgV0lORE9XIGFyZSBsaXZl LiIKICAgICAgICAgKGZ1bmNhbGwgKGNkciAoYXNzcSAnYm9keS1mdW5jdGlvbiBhbGlzdCkpIHdp bmRvdykpKQogCiAgICAgKGxldCAoKHF1aXQtcmVzdG9yZSAod2luZG93LXBhcmFtZXRlciB3aW5k b3cgJ3F1aXQtcmVzdG9yZSkpCi0JICAoaGVpZ2h0IChjZHIgKGFzc3EgJ3dpbmRvdy1oZWlnaHQg YWxpc3QpKSkKLQkgICh3aWR0aCAoY2RyIChhc3NxICd3aW5kb3ctd2lkdGggYWxpc3QpKSkKLQkg IChzaXplIChjZHIgKGFzc3EgJ3dpbmRvdy1zaXplIGFsaXN0KSkpCi0JICAocHJlc2VydmUtc2l6 ZSAoY2RyIChhc3NxICdwcmVzZXJ2ZS1zaXplIGFsaXN0KSkpKQorICAgICAgICAgIChoZWlnaHQg KGNkciAoYXNzcSAnd2luZG93LWhlaWdodCBhbGlzdCkpKQorICAgICAgICAgICh3aWR0aCAoY2Ry IChhc3NxICd3aW5kb3ctd2lkdGggYWxpc3QpKSkKKyAgICAgICAgICAoc2l6ZSAoY2RyIChhc3Nx ICd3aW5kb3ctc2l6ZSBhbGlzdCkpKQorICAgICAgICAgIChwcmVzZXJ2ZS1zaXplIChjZHIgKGFz c3EgJ3ByZXNlcnZlLXNpemUgYWxpc3QpKSkpCiAgICAgICAoY29uZAogICAgICAgICgob3IgKGVx IHR5cGUgJ2ZyYW1lKQotCSAgICAoYW5kIChlcSAoY2FyIHF1aXQtcmVzdG9yZSkgJ3NhbWUpCi0J CSAoZXEgKG50aCAxIHF1aXQtcmVzdG9yZSkgJ2ZyYW1lKSkpCi0JOzsgQSB3aW5kb3cgdGhhdCBu ZXZlciBzaG93ZWQgYW5vdGhlciBidWZmZXIgYnV0IEJVRkZFUiBldmVyCisgICAgICAgICAgICAo YW5kIChlcSAoY2FyIHF1aXQtcmVzdG9yZSkgJ3NhbWUpCisgICAgICAgICAgICAgICAgIChlcSAo bnRoIDEgcXVpdC1yZXN0b3JlKSAnZnJhbWUpKSkKKyAgICAgICAgOzsgQSB3aW5kb3cgdGhhdCBu ZXZlciBzaG93ZWQgYW5vdGhlciBidWZmZXIgYnV0IEJVRkZFUiBldmVyCiAgICAgICAgIDs7IHNp bmNlIGl0IHdhcyBjcmVhdGVkIG9uIGEgbmV3IGZyYW1lLgogICAgICAgICA7OwogICAgICAgICA7 OyBBZGp1c3Qgc2l6ZSBvZiBmcmFtZSBpZiBhc2tlZCBmb3IuICBXZSBwcm9iYWJseSBzaG91bGQg ZG8KICAgICAgICAgOzsgdGhhdCBvbmx5IGZvciBhIHNpbmdsZSB3aW5kb3cgZnJhbWUuCi0JKGNv bmQKLQkgKChub3Qgc2l6ZSkpCi0JICgoY29uc3Agc2l6ZSkKLQkgIChsZXQgKCh3aWR0aCAoY2Fy IHNpemUpKQotCQkoaGVpZ2h0IChjZHIgc2l6ZSkpCi0JCShmcmFtZSAod2luZG93LWZyYW1lIHdp bmRvdykpKQotCSAgICAod2hlbiAoYW5kIChudW1iZXJwIHdpZHRoKSAobnVtYmVycCBoZWlnaHQp KQotCSAgICAgIChzZXQtZnJhbWUtaGVpZ2h0Ci0JICAgICAgIGZyYW1lICgrIChmcmFtZS1oZWln aHQgZnJhbWUpCi0JCQkoLSBoZWlnaHQgKHdpbmRvdy10b3RhbC1oZWlnaHQgd2luZG93KSkpKQot CSAgICAgIChzZXQtZnJhbWUtd2lkdGgKLQkgICAgICAgZnJhbWUgKCsgKGZyYW1lLXdpZHRoIGZy YW1lKQotCQkJKC0gd2lkdGggKHdpbmRvdy10b3RhbC13aWR0aCB3aW5kb3cpKSkpKSkpCi0JICgo ZnVuY3Rpb25wIHNpemUpCi0JICAoaWdub3JlLWVycm9ycyAoZnVuY2FsbCBzaXplIHdpbmRvdykp KSkpCisgICAgICAgIChjb25kCisgICAgICAgICAoKG5vdCBzaXplKSkKKyAgICAgICAgICgoY29u c3Agc2l6ZSkKKyAgICAgICAgICAobGV0ICgod2lkdGggKGNhciBzaXplKSkKKyAgICAgICAgICAg ICAgICAoaGVpZ2h0IChjZHIgc2l6ZSkpCisgICAgICAgICAgICAgICAgKGZyYW1lICh3aW5kb3ct ZnJhbWUgd2luZG93KSkpCisgICAgICAgICAgICAod2hlbiAoYW5kIChudW1iZXJwIHdpZHRoKSAo bnVtYmVycCBoZWlnaHQpKQorICAgICAgICAgICAgICAoc2V0LWZyYW1lLWhlaWdodAorICAgICAg ICAgICAgICAgZnJhbWUgKCsgKGZyYW1lLWhlaWdodCBmcmFtZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICgtIGhlaWdodCAod2luZG93LXRvdGFsLWhlaWdodCB3aW5kb3cpKSkpCisgICAgICAg ICAgICAgIChzZXQtZnJhbWUtd2lkdGgKKyAgICAgICAgICAgICAgIGZyYW1lICgrIChmcmFtZS13 aWR0aCBmcmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICgtIHdpZHRoICh3aW5kb3ctdG90 YWwtd2lkdGggd2luZG93KSkpKSkpKQorICAgICAgICAgKChmdW5jdGlvbnAgc2l6ZSkKKyAgICAg ICAgICAoaWdub3JlLWVycm9ycyAoZnVuY2FsbCBzaXplIHdpbmRvdykpKSkpCiAgICAgICAgKChv ciAoZXEgdHlwZSAnd2luZG93KQotCSAgICAoYW5kIChlcSAoY2FyIHF1aXQtcmVzdG9yZSkgJ3Nh bWUpCi0JCSAoZXEgKG50aCAxIHF1aXQtcmVzdG9yZSkgJ3dpbmRvdykpKQotCTs7IEEgd2luZG93 IHRoYXQgbmV2ZXIgc2hvd2VkIGFub3RoZXIgYnVmZmVyIGJ1dCBCVUZGRVIgZXZlcgorICAgICAg ICAgICAgKGFuZCAoZXEgKGNhciBxdWl0LXJlc3RvcmUpICdzYW1lKQorICAgICAgICAgICAgICAg ICAoZXEgKG50aCAxIHF1aXQtcmVzdG9yZSkgJ3dpbmRvdykpKQorICAgICAgICA7OyBBIHdpbmRv dyB0aGF0IG5ldmVyIHNob3dlZCBhbm90aGVyIGJ1ZmZlciBidXQgQlVGRkVSIGV2ZXIKICAgICAg ICAgOzsgc2luY2UgaXQgd2FzIGNyZWF0ZWQgb24gYW4gZXhpc3RpbmcgZnJhbWUuCiAgICAgICAg IDs7CiAgICAgICAgIDs7IEFkanVzdCB3aWR0aCBhbmQvb3IgaGVpZ2h0IG9mIHdpbmRvdyBpZiBh c2tlZCBmb3IuCi0JKGNvbmQKLQkgKChub3QgaGVpZ2h0KSkKLQkgKChudW1iZXJwIGhlaWdodCkK LQkgIChsZXQqICgobmV3LWhlaWdodAotCQkgIChpZiAoaW50ZWdlcnAgaGVpZ2h0KQotCQkgICAg ICBoZWlnaHQKLQkJICAgIChyb3VuZAotCQkgICAgICgqICh3aW5kb3ctdG90YWwtaGVpZ2h0IChm cmFtZS1yb290LXdpbmRvdyB3aW5kb3cpKQotCQkJaGVpZ2h0KSkpKQotCQkgKGRlbHRhICgtIG5l dy1oZWlnaHQgKHdpbmRvdy10b3RhbC1oZWlnaHQgd2luZG93KSkpKQotCSAgICAod2hlbiAoYW5k ICh3aW5kb3ctLXJlc2l6YWJsZS1wIHdpbmRvdyBkZWx0YSBuaWwgJ3NhZmUpCi0JCSAgICAgICAo d2luZG93LWNvbWJpbmVkLXAgd2luZG93KSkKLQkgICAgICAod2luZG93LXJlc2l6ZSB3aW5kb3cg ZGVsdGEgbmlsICdzYWZlKSkpKQotCSAoKGZ1bmN0aW9ucCBoZWlnaHQpCi0JICAoaWdub3JlLWVy cm9ycyAoZnVuY2FsbCBoZWlnaHQgd2luZG93KSkpKQotCTs7IEFkanVzdCB3aWR0aCBvZiB3aW5k b3cgaWYgYXNrZWQgZm9yLgotCShjb25kCi0JICgobm90IHdpZHRoKSkKLQkgKChudW1iZXJwIHdp ZHRoKQotCSAgKGxldCogKChuZXctd2lkdGgKLQkJICAoaWYgKGludGVnZXJwIHdpZHRoKQotCQkg ICAgICB3aWR0aAotCQkgICAgKHJvdW5kCi0JCSAgICAgKCogKHdpbmRvdy10b3RhbC13aWR0aCAo ZnJhbWUtcm9vdC13aW5kb3cgd2luZG93KSkKLQkJCXdpZHRoKSkpKQotCQkgKGRlbHRhICgtIG5l dy13aWR0aCAod2luZG93LXRvdGFsLXdpZHRoIHdpbmRvdykpKSkKLQkgICAgKHdoZW4gKGFuZCAo d2luZG93LS1yZXNpemFibGUtcCB3aW5kb3cgZGVsdGEgdCAnc2FmZSkKLQkJICAgICAgICh3aW5k b3ctY29tYmluZWQtcCB3aW5kb3cgdCkpCi0JICAgICAgKHdpbmRvdy1yZXNpemUgd2luZG93IGRl bHRhIHQgJ3NhZmUpKSkpCi0JICgoZnVuY3Rpb25wIHdpZHRoKQotCSAgKGlnbm9yZS1lcnJvcnMg KGZ1bmNhbGwgd2lkdGggd2luZG93KSkpKQotCTs7IFByZXNlcnZlIHdpbmRvdyBzaXplIGlmIGFz a2VkIGZvci4KLQkod2hlbiAoY29uc3AgcHJlc2VydmUtc2l6ZSkKLQkgICh3aW5kb3ctcHJlc2Vy dmUtc2l6ZSB3aW5kb3cgdCAoY2FyIHByZXNlcnZlLXNpemUpKQotCSAgKHdpbmRvdy1wcmVzZXJ2 ZS1zaXplIHdpbmRvdyBuaWwgKGNkciBwcmVzZXJ2ZS1zaXplKSkpKSkKKyAgICAgICAgKGNvbmQK KyAgICAgICAgICgobm90IGhlaWdodCkpCisgICAgICAgICAoKG51bWJlcnAgaGVpZ2h0KQorICAg ICAgICAgIChsZXQqICgobmV3LWhlaWdodAorICAgICAgICAgICAgICAgICAgKGlmIChpbnRlZ2Vy cCBoZWlnaHQpCisgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0CisgICAgICAgICAgICAgICAg ICAgIChyb3VuZAorICAgICAgICAgICAgICAgICAgICAgKCogKHdpbmRvdy10b3RhbC1oZWlnaHQg KGZyYW1lLXJvb3Qtd2luZG93IHdpbmRvdykpCisgICAgICAgICAgICAgICAgICAgICAgICBoZWln aHQpKSkpCisgICAgICAgICAgICAgICAgIChkZWx0YSAoLSBuZXctaGVpZ2h0ICh3aW5kb3ctdG90 YWwtaGVpZ2h0IHdpbmRvdykpKSkKKyAgICAgICAgICAgICh3aGVuIChhbmQgKHdpbmRvdy0tcmVz aXphYmxlLXAgd2luZG93IGRlbHRhIG5pbCAnc2FmZSkKKyAgICAgICAgICAgICAgICAgICAgICAg KHdpbmRvdy1jb21iaW5lZC1wIHdpbmRvdykpCisgICAgICAgICAgICAgICh3aW5kb3ctcmVzaXpl IHdpbmRvdyBkZWx0YSBuaWwgJ3NhZmUpKSkpCisgICAgICAgICAoKGZ1bmN0aW9ucCBoZWlnaHQp CisgICAgICAgICAgKGlnbm9yZS1lcnJvcnMgKGZ1bmNhbGwgaGVpZ2h0IHdpbmRvdykpKSkKKyAg ICAgICAgOzsgQWRqdXN0IHdpZHRoIG9mIHdpbmRvdyBpZiBhc2tlZCBmb3IuCisgICAgICAgIChj b25kCisgICAgICAgICAoKG5vdCB3aWR0aCkpCisgICAgICAgICAoKG51bWJlcnAgd2lkdGgpCisg ICAgICAgICAgKGxldCogKChuZXctd2lkdGgKKyAgICAgICAgICAgICAgICAgIChpZiAoaW50ZWdl cnAgd2lkdGgpCisgICAgICAgICAgICAgICAgICAgICAgd2lkdGgKKyAgICAgICAgICAgICAgICAg ICAgKHJvdW5kCisgICAgICAgICAgICAgICAgICAgICAoKiAod2luZG93LXRvdGFsLXdpZHRoIChm cmFtZS1yb290LXdpbmRvdyB3aW5kb3cpKQorICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgp KSkpCisgICAgICAgICAgICAgICAgIChkZWx0YSAoLSBuZXctd2lkdGggKHdpbmRvdy10b3RhbC13 aWR0aCB3aW5kb3cpKSkpCisgICAgICAgICAgICAod2hlbiAoYW5kICh3aW5kb3ctLXJlc2l6YWJs ZS1wIHdpbmRvdyBkZWx0YSB0ICdzYWZlKQorICAgICAgICAgICAgICAgICAgICAgICAod2luZG93 LWNvbWJpbmVkLXAgd2luZG93IHQpKQorICAgICAgICAgICAgICAod2luZG93LXJlc2l6ZSB3aW5k b3cgZGVsdGEgdCAnc2FmZSkpKSkKKyAgICAgICAgICgoZnVuY3Rpb25wIHdpZHRoKQorICAgICAg ICAgIChpZ25vcmUtZXJyb3JzIChmdW5jYWxsIHdpZHRoIHdpbmRvdykpKSkKKyAgICAgICAgOzsg UHJlc2VydmUgd2luZG93IHNpemUgaWYgYXNrZWQgZm9yLgorICAgICAgICAod2hlbiAoY29uc3Ag cHJlc2VydmUtc2l6ZSkKKyAgICAgICAgICAod2luZG93LXByZXNlcnZlLXNpemUgd2luZG93IHQg KGNhciBwcmVzZXJ2ZS1zaXplKSkKKyAgICAgICAgICAod2luZG93LXByZXNlcnZlLXNpemUgd2lu ZG93IG5pbCAoY2RyIHByZXNlcnZlLXNpemUpKSkpKQogICAgICAgOzsgQXNzaWduIGFueSB3aW5k b3cgcGFyYW1ldGVycyBzcGVjaWZpZWQuCiAgICAgICAobGV0ICgocGFyYW1ldGVycyAoY2RyIChh c3NxICd3aW5kb3ctcGFyYW1ldGVycyBhbGlzdCkpKSkKICAgICAgICAgKGRvbGlzdCAocGFyYW1l dGVyIHBhcmFtZXRlcnMpCkBAIC03MjA2LDExICs3MjA2LDExIEBAIFJldHVybiBXSU5ET1cgaWYg QlVGRkVSIGFuZCBXSU5ET1cgYXJlIGxpdmUuIgogICAgICAgICAgICAgICA7OyBEb24ndCByYWlz ZSBmcmFtZXMgdGhhdCBzaG91bGQgbm90IGdldCBmb2N1cy4KICAgICAgICAgICAgICAgKGZyYW1l LXBhcmFtZXRlciBmcmFtZSAnbm8tYWNjZXB0LWZvY3VzKQogICAgICAgICAgICAgICA7OyBBc3N1 bWUgdGhlIHNlbGVjdGVkIGZyYW1lIGlzIGFscmVhZHkgdmlzaWJsZSBlbm91Z2guCi0JICAgICAg KGVxIGZyYW1lIChzZWxlY3RlZC1mcmFtZSkpCi0JICAgICAgOzsgQXNzdW1lIHRoZSBmcmFtZSBm cm9tIHdoaWNoIHdlIGludm9rZWQgdGhlCi0JICAgICAgOzsgbWluaWJ1ZmZlciBpcyB2aXNpYmxl LgotCSAgICAgIChhbmQgKG1pbmlidWZmZXItd2luZG93LWFjdGl2ZS1wIChzZWxlY3RlZC13aW5k b3cpKQotCQkgICAoZXEgZnJhbWUgKHdpbmRvdy1mcmFtZSAobWluaWJ1ZmZlci1zZWxlY3RlZC13 aW5kb3cpKSkpKQorICAgICAgICAgICAgICAoZXEgZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkKKyAg ICAgICAgICAgICAgOzsgQXNzdW1lIHRoZSBmcmFtZSBmcm9tIHdoaWNoIHdlIGludm9rZWQgdGhl CisgICAgICAgICAgICAgIDs7IG1pbmlidWZmZXIgaXMgdmlzaWJsZS4KKyAgICAgICAgICAgICAg KGFuZCAobWluaWJ1ZmZlci13aW5kb3ctYWN0aXZlLXAgKHNlbGVjdGVkLXdpbmRvdykpCisgICAg ICAgICAgICAgICAgICAgKGVxIGZyYW1lICh3aW5kb3ctZnJhbWUgKG1pbmlidWZmZXItc2VsZWN0 ZWQtd2luZG93KSkpKSkKICAgICAocmFpc2UtZnJhbWUgZnJhbWUpKSkKIAogOzsgRklYTUU6IE5v dCBpbXBsZW1lbnRlZC4KQEAgLTcyMjYsMzAgKzcyMjYsMzAgQEAgVGhlIGFjdHVhbCBub24tbmls IHZhbHVlIG9mIHRoaXMgdmFyaWFibGUgd2lsbCBiZSBjb3BpZWQgdG8gdGhlCiAKIChkZWZjb25z dCBkaXNwbGF5LWJ1ZmZlci0tYWN0aW9uLWZ1bmN0aW9uLWN1c3RvbS10eXBlCiAgICcoY2hvaWNl IDp0YWcgIkZ1bmN0aW9uIgotCSAgIChjb25zdCA6dGFnICItLSIgaWdub3JlKSA7IGRlZmF1bHQg Zm9yIGluc2VydGlvbgotCSAgIChjb25zdCBkaXNwbGF5LWJ1ZmZlci1yZXVzZS13aW5kb3cpCi0J ICAgKGNvbnN0IGRpc3BsYXktYnVmZmVyLXBvcC11cC13aW5kb3cpCi0JICAgKGNvbnN0IGRpc3Bs YXktYnVmZmVyLXNhbWUtd2luZG93KQotCSAgIChjb25zdCBkaXNwbGF5LWJ1ZmZlci1wb3AtdXAt ZnJhbWUpCi0JICAgKGNvbnN0IGRpc3BsYXktYnVmZmVyLWluLWNoaWxkLWZyYW1lKQotCSAgIChj b25zdCBkaXNwbGF5LWJ1ZmZlci1iZWxvdy1zZWxlY3RlZCkKLQkgICAoY29uc3QgZGlzcGxheS1i dWZmZXItYXQtYm90dG9tKQotCSAgIChjb25zdCBkaXNwbGF5LWJ1ZmZlci1pbi1wcmV2aW91cy13 aW5kb3cpCi0JICAgKGNvbnN0IGRpc3BsYXktYnVmZmVyLXVzZS1zb21lLXdpbmRvdykKLQkgICAo Y29uc3QgZGlzcGxheS1idWZmZXItdXNlLXNvbWUtZnJhbWUpCi0JICAgKGZ1bmN0aW9uIDp0YWcg Ik90aGVyIGZ1bmN0aW9uIikpCisgICAgICAgICAgIChjb25zdCA6dGFnICItLSIgaWdub3JlKSA7 IGRlZmF1bHQgZm9yIGluc2VydGlvbgorICAgICAgICAgICAoY29uc3QgZGlzcGxheS1idWZmZXIt cmV1c2Utd2luZG93KQorICAgICAgICAgICAoY29uc3QgZGlzcGxheS1idWZmZXItcG9wLXVwLXdp bmRvdykKKyAgICAgICAgICAgKGNvbnN0IGRpc3BsYXktYnVmZmVyLXNhbWUtd2luZG93KQorICAg ICAgICAgICAoY29uc3QgZGlzcGxheS1idWZmZXItcG9wLXVwLWZyYW1lKQorICAgICAgICAgICAo Y29uc3QgZGlzcGxheS1idWZmZXItaW4tY2hpbGQtZnJhbWUpCisgICAgICAgICAgIChjb25zdCBk aXNwbGF5LWJ1ZmZlci1iZWxvdy1zZWxlY3RlZCkKKyAgICAgICAgICAgKGNvbnN0IGRpc3BsYXkt YnVmZmVyLWF0LWJvdHRvbSkKKyAgICAgICAgICAgKGNvbnN0IGRpc3BsYXktYnVmZmVyLWluLXBy ZXZpb3VzLXdpbmRvdykKKyAgICAgICAgICAgKGNvbnN0IGRpc3BsYXktYnVmZmVyLXVzZS1zb21l LXdpbmRvdykKKyAgICAgICAgICAgKGNvbnN0IGRpc3BsYXktYnVmZmVyLXVzZS1zb21lLWZyYW1l KQorICAgICAgICAgICAoZnVuY3Rpb24gOnRhZyAiT3RoZXIgZnVuY3Rpb24iKSkKICAgIkN1c3Rv bSB0eXBlIGZvciBgZGlzcGxheS1idWZmZXInIGFjdGlvbiBmdW5jdGlvbnMuIikKIAogKGRlZmNv bnN0IGRpc3BsYXktYnVmZmVyLS1hY3Rpb24tY3VzdG9tLXR5cGUKICAgYChjb25zIDp0YWcgIkFj dGlvbiIKLQkgKGNob2ljZSA6dGFnICJBY3Rpb24gZnVuY3Rpb25zIgotCQkgLGRpc3BsYXktYnVm ZmVyLS1hY3Rpb24tZnVuY3Rpb24tY3VzdG9tLXR5cGUKLQkJIChyZXBlYXQKLQkJICA6dGFnICJM aXN0IG9mIGZ1bmN0aW9ucyIKLQkJICAsZGlzcGxheS1idWZmZXItLWFjdGlvbi1mdW5jdGlvbi1j dXN0b20tdHlwZSkpCi0JIChhbGlzdCA6dGFnICJBY3Rpb24gYXJndW1lbnRzIgotCQk6a2V5LXR5 cGUgc3ltYm9sCi0JCTp2YWx1ZS10eXBlIChzZXhwIDp0YWcgIlZhbHVlIikpKQorICAgICAgICAg KGNob2ljZSA6dGFnICJBY3Rpb24gZnVuY3Rpb25zIgorICAgICAgICAgICAgICAgICAsZGlzcGxh eS1idWZmZXItLWFjdGlvbi1mdW5jdGlvbi1jdXN0b20tdHlwZQorICAgICAgICAgICAgICAgICAo cmVwZWF0CisgICAgICAgICAgICAgICAgICA6dGFnICJMaXN0IG9mIGZ1bmN0aW9ucyIKKyAgICAg ICAgICAgICAgICAgICxkaXNwbGF5LWJ1ZmZlci0tYWN0aW9uLWZ1bmN0aW9uLWN1c3RvbS10eXBl KSkKKyAgICAgICAgIChhbGlzdCA6dGFnICJBY3Rpb24gYXJndW1lbnRzIgorICAgICAgICAgICAg ICAgIDprZXktdHlwZSBzeW1ib2wKKyAgICAgICAgICAgICAgICA6dmFsdWUtdHlwZSAoc2V4cCA6 dGFnICJWYWx1ZSIpKSkKICAgIkN1c3RvbSB0eXBlIGZvciBgZGlzcGxheS1idWZmZXInIGFjdGlv bnMuIikKIAogKGRlZnZhciBkaXNwbGF5LWJ1ZmZlci1vdmVycmlkaW5nLWFjdGlvbiAnKG5pbCAu IG5pbCkKQEAgLTcyOTQsMTAgKzcyOTQsMTAgQEAgbWF0Y2hpbmcgcmVndWxhciBleHByZXNzaW9u IG9yIHRoZSBmdW5jdGlvbiBzcGVjaWZpZWQgYnkgYQogY29uZGl0aW9uIHJldHVybnMgbm9uLW5p bC4gIEluIGFueSBvZiB0aGVzZSBjYXNlcywgaXQgYWRkcyB0aGUKIGFzc29jaWF0ZWQgYWN0aW9u IHRvIHRoZSBsaXN0IG9mIGFjdGlvbnMgaXQgd2lsbCB0cnkuIgogICA6dHlwZSBgKGFsaXN0IDpr ZXktdHlwZQotCQkoY2hvaWNlIDp0YWcgIkNvbmRpdGlvbiIKLQkJCXJlZ2V4cAotCQkJKGZ1bmN0 aW9uIDp0YWcgIk1hdGNoZXIgZnVuY3Rpb24iKSkKLQkJOnZhbHVlLXR5cGUgLGRpc3BsYXktYnVm ZmVyLS1hY3Rpb24tY3VzdG9tLXR5cGUpCisgICAgICAgICAgICAgICAgKGNob2ljZSA6dGFnICJD b25kaXRpb24iCisgICAgICAgICAgICAgICAgICAgICAgICByZWdleHAKKyAgICAgICAgICAgICAg ICAgICAgICAgIChmdW5jdGlvbiA6dGFnICJNYXRjaGVyIGZ1bmN0aW9uIikpCisgICAgICAgICAg ICAgICAgOnZhbHVlLXR5cGUgLGRpc3BsYXktYnVmZmVyLS1hY3Rpb24tY3VzdG9tLXR5cGUpCiAg IDpyaXNreSB0CiAgIDp2ZXJzaW9uICIyNC4xIgogICA6Z3JvdXAgJ3dpbmRvd3MpCkBAIC03MzQ1 LDExICs3MzQ1LDExIEBAIGFjdGlvbiBhcmd1bWVudCBwYXNzZWQgdG8gYGRpc3BsYXktYnVmZmVy Jy4iCiAgIChjYXRjaCAnbWF0Y2gKICAgICAoZG9saXN0IChlbnRyeSBhbGlzdCkKICAgICAgIChs ZXQgKChrZXkgKGNhciBlbnRyeSkpKQotCSh3aGVuIChvciAoYW5kIChzdHJpbmdwIGtleSkKLQkJ ICAgICAgIChzdHJpbmctbWF0Y2gtcCBrZXkgYnVmZmVyLW5hbWUpKQotCQkgIChhbmQgKGZ1bmN0 aW9ucCBrZXkpCi0JCSAgICAgICAoZnVuY2FsbCBrZXkgYnVmZmVyLW5hbWUgYWN0aW9uKSkpCi0J ICAodGhyb3cgJ21hdGNoIChjZHIgZW50cnkpKSkpKSkpCisgICAgICAgICh3aGVuIChvciAoYW5k IChzdHJpbmdwIGtleSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wIGtl eSBidWZmZXItbmFtZSkpCisgICAgICAgICAgICAgICAgICAoYW5kIChmdW5jdGlvbnAga2V5KQor ICAgICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBrZXkgYnVmZmVyLW5hbWUgYWN0aW9uKSkp CisgICAgICAgICAgKHRocm93ICdtYXRjaCAoY2RyIGVudHJ5KSkpKSkpKQogCiAoZGVmdmFyIGRp c3BsYXktYnVmZmVyLS1zYW1lLXdpbmRvdy1hY3Rpb24KICAgJyhkaXNwbGF5LWJ1ZmZlci1zYW1l LXdpbmRvdwpAQCAtNzQ3MCw0OCArNzQ3MCw0OCBAQCBUaGUgb3B0aW9uYWwgdGhpcmQgYXJndW1l bnQgRlJBTUUsIGlmIG5vbi1uaWwsIGFjdHMgbGlrZSBhCiBcKHJldXNhYmxlLWZyYW1lcyAuIEZS QU1FKSBlbnRyeSBhcHBlbmRlZCB0byB0aGUgYWN0aW9uIGFsaXN0CiBzcGVjaWZpZWQgYnkgdGhl IEFDVElPTiBhcmd1bWVudC4iCiAgIChpbnRlcmFjdGl2ZSAobGlzdCAocmVhZC1idWZmZXIgIkRp c3BsYXkgYnVmZmVyOiAiIChvdGhlci1idWZmZXIpKQotCQkgICAgIChpZiBjdXJyZW50LXByZWZp eC1hcmcgdCkpKQorICAgICAgICAgICAgICAgICAgICAgKGlmIGN1cnJlbnQtcHJlZml4LWFyZyB0 KSkpCiAgIChsZXQgKChidWZmZXIgKGlmIChidWZmZXJwIGJ1ZmZlci1vci1uYW1lKQotCQkgICAg YnVmZmVyLW9yLW5hbWUKLQkJICAoZ2V0LWJ1ZmZlciBidWZmZXItb3ItbmFtZSkpKQotCTs7IE1h a2Ugc3VyZSB0aGF0IHdoZW4gd2Ugc3BsaXQgd2luZG93cyB0aGUgb2xkIHdpbmRvdyBrZWVwcwot CTs7IHBvaW50LCBidWcjMTQ4MjkuCi0JKHNwbGl0LXdpbmRvdy1rZWVwLXBvaW50IHQpCi0JOzsg SGFuZGxlIHRoZSBvbGQgZm9ybSBvZiB0aGUgZmlyc3QgYXJndW1lbnQuCi0JKGluaGliaXQtc2Ft ZS13aW5kb3cgKGFuZCBhY3Rpb24gKG5vdCAobGlzdHAgYWN0aW9uKSkpKSkKKyAgICAgICAgICAg ICAgICAgICAgYnVmZmVyLW9yLW5hbWUKKyAgICAgICAgICAgICAgICAgIChnZXQtYnVmZmVyIGJ1 ZmZlci1vci1uYW1lKSkpCisgICAgICAgIDs7IE1ha2Ugc3VyZSB0aGF0IHdoZW4gd2Ugc3BsaXQg d2luZG93cyB0aGUgb2xkIHdpbmRvdyBrZWVwcworICAgICAgICA7OyBwb2ludCwgYnVnIzE0ODI5 LgorICAgICAgICAoc3BsaXQtd2luZG93LWtlZXAtcG9pbnQgdCkKKyAgICAgICAgOzsgSGFuZGxl IHRoZSBvbGQgZm9ybSBvZiB0aGUgZmlyc3QgYXJndW1lbnQuCisgICAgICAgIChpbmhpYml0LXNh bWUtd2luZG93IChhbmQgYWN0aW9uIChub3QgKGxpc3RwIGFjdGlvbikpKSkpCiAgICAgKHVubGVz cyAobGlzdHAgYWN0aW9uKSAoc2V0cSBhY3Rpb24gbmlsKSkKICAgICAoaWYgZGlzcGxheS1idWZm ZXItZnVuY3Rpb24KLQk7OyBJZiBgZGlzcGxheS1idWZmZXItZnVuY3Rpb24nIGlzIGRlZmluZWQs IGxldCBpdCBkbyB0aGUgam9iLgotCShmdW5jYWxsIGRpc3BsYXktYnVmZmVyLWZ1bmN0aW9uIGJ1 ZmZlciBpbmhpYml0LXNhbWUtd2luZG93KQorICAgICAgICA7OyBJZiBgZGlzcGxheS1idWZmZXIt ZnVuY3Rpb24nIGlzIGRlZmluZWQsIGxldCBpdCBkbyB0aGUgam9iLgorICAgICAgICAoZnVuY2Fs bCBkaXNwbGF5LWJ1ZmZlci1mdW5jdGlvbiBidWZmZXIgaW5oaWJpdC1zYW1lLXdpbmRvdykKICAg ICAgIDs7IE90aGVyd2lzZSwgdXNlIHRoZSBkZWZpbmVkIGFjdGlvbnMuCiAgICAgICAobGV0KiAo KHVzZXItYWN0aW9uCi0JICAgICAgKGRpc3BsYXktYnVmZmVyLWFzc3EtcmVnZXhwCi0JICAgICAg IChidWZmZXItbmFtZSBidWZmZXIpIGRpc3BsYXktYnVmZmVyLWFsaXN0IGFjdGlvbikpCisgICAg ICAgICAgICAgIChkaXNwbGF5LWJ1ZmZlci1hc3NxLXJlZ2V4cAorICAgICAgICAgICAgICAgKGJ1 ZmZlci1uYW1lIGJ1ZmZlcikgZGlzcGxheS1idWZmZXItYWxpc3QgYWN0aW9uKSkKICAgICAgICAg ICAgICAoc3BlY2lhbC1hY3Rpb24gKGRpc3BsYXktYnVmZmVyLS1zcGVjaWFsLWFjdGlvbiBidWZm ZXIpKQotCSAgICAgOzsgRXh0cmEgYWN0aW9ucyBmcm9tIHRoZSBhcmd1bWVudHMgdG8gdGhpcyBm dW5jdGlvbjoKLQkgICAgIChleHRyYS1hY3Rpb24KLQkgICAgICAoY29ucyBuaWwgKGFwcGVuZCAo aWYgaW5oaWJpdC1zYW1lLXdpbmRvdwotCQkJCSAgICAnKChpbmhpYml0LXNhbWUtd2luZG93IC4g dCkpKQotCQkJCShpZiBmcmFtZQotCQkJCSAgICBgKChyZXVzYWJsZS1mcmFtZXMgLiAsZnJhbWUp KSkpKSkKLQkgICAgIDs7IENvbnN0cnVjdCBhY3Rpb24gZnVuY3Rpb24gbGlzdCBhbmQgYWN0aW9u IGFsaXN0LgotCSAgICAgKGFjdGlvbnMgKGxpc3QgZGlzcGxheS1idWZmZXItb3ZlcnJpZGluZy1h Y3Rpb24KLQkJCSAgICB1c2VyLWFjdGlvbiBzcGVjaWFsLWFjdGlvbiBhY3Rpb24gZXh0cmEtYWN0 aW9uCi0JCQkgICAgZGlzcGxheS1idWZmZXItYmFzZS1hY3Rpb24KLQkJCSAgICBkaXNwbGF5LWJ1 ZmZlci1mYWxsYmFjay1hY3Rpb24pKQotCSAgICAgKGZ1bmN0aW9ucyAoYXBwbHkgJ2FwcGVuZAot CQkJICAgICAgIChtYXBjYXIgKGxhbWJkYSAoeCkKLQkJCQkJIChzZXRxIHggKGNhciB4KSkKLQkJ CQkJIChpZiAoZnVuY3Rpb25wIHgpIChsaXN0IHgpIHgpKQotCQkJCSAgICAgICBhY3Rpb25zKSkp Ci0JICAgICAoYWxpc3QgKGFwcGx5ICdhcHBlbmQgKG1hcGNhciAnY2RyIGFjdGlvbnMpKSkKLQkg ICAgIHdpbmRvdykKLQkodW5sZXNzIChidWZmZXItbGl2ZS1wIGJ1ZmZlcikKLQkgIChlcnJvciAi SW52YWxpZCBidWZmZXIiKSkKLQkod2hpbGUgKGFuZCBmdW5jdGlvbnMgKG5vdCB3aW5kb3cpKQot CSAgKHNldHEgd2luZG93IChmdW5jYWxsIChjYXIgZnVuY3Rpb25zKSBidWZmZXIgYWxpc3QpCi0J ICAJZnVuY3Rpb25zIChjZHIgZnVuY3Rpb25zKSkpCi0JKGFuZCAod2luZG93cCB3aW5kb3cpIHdp bmRvdykpKSkpCisgICAgICAgICAgICAgOzsgRXh0cmEgYWN0aW9ucyBmcm9tIHRoZSBhcmd1bWVu dHMgdG8gdGhpcyBmdW5jdGlvbjoKKyAgICAgICAgICAgICAoZXh0cmEtYWN0aW9uCisgICAgICAg ICAgICAgIChjb25zIG5pbCAoYXBwZW5kIChpZiBpbmhpYml0LXNhbWUtd2luZG93CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChpbmhpYml0LXNhbWUtd2luZG93IC4gdCkp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgZnJhbWUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGAoKHJldXNhYmxlLWZyYW1lcyAuICxmcmFtZSkpKSkp KQorICAgICAgICAgICAgIDs7IENvbnN0cnVjdCBhY3Rpb24gZnVuY3Rpb24gbGlzdCBhbmQgYWN0 aW9uIGFsaXN0LgorICAgICAgICAgICAgIChhY3Rpb25zIChsaXN0IGRpc3BsYXktYnVmZmVyLW92 ZXJyaWRpbmctYWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlci1hY3Rpb24g c3BlY2lhbC1hY3Rpb24gYWN0aW9uIGV4dHJhLWFjdGlvbgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRpc3BsYXktYnVmZmVyLWJhc2UtYWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGlzcGxheS1idWZmZXItZmFsbGJhY2stYWN0aW9uKSkKKyAgICAgICAgICAgICAoZnVu Y3Rpb25zIChhcHBseSAnYXBwZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h cGNhciAobGFtYmRhICh4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc2V0cSB4IChjYXIgeCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChpZiAoZnVuY3Rpb25wIHgpIChsaXN0IHgpIHgpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWN0aW9ucykpKQorICAgICAgICAgICAgIChhbGlzdCAoYXBwbHkg J2FwcGVuZCAobWFwY2FyICdjZHIgYWN0aW9ucykpKQorICAgICAgICAgICAgIHdpbmRvdykKKyAg ICAgICAgKHVubGVzcyAoYnVmZmVyLWxpdmUtcCBidWZmZXIpCisgICAgICAgICAgKGVycm9yICJJ bnZhbGlkIGJ1ZmZlciIpKQorICAgICAgICAod2hpbGUgKGFuZCBmdW5jdGlvbnMgKG5vdCB3aW5k b3cpKQorICAgICAgICAgIChzZXRxIHdpbmRvdyAoZnVuY2FsbCAoY2FyIGZ1bmN0aW9ucykgYnVm ZmVyIGFsaXN0KQorICAgICAgICAgICAgICAgIGZ1bmN0aW9ucyAoY2RyIGZ1bmN0aW9ucykpKQor ICAgICAgICAoYW5kICh3aW5kb3dwIHdpbmRvdykgd2luZG93KSkpKSkKIAogKGRlZnVuIGRpc3Bs YXktYnVmZmVyLW90aGVyLWZyYW1lIChidWZmZXIpCiAgICJEaXNwbGF5IGJ1ZmZlciBCVUZGRVIg cHJlZmVyYWJseSBpbiBhbm90aGVyIGZyYW1lLgpAQCAtNzU3OSw4ICs3NTc5LDggQEAgbm9kZSBg KGVsaXNwKSBCdWZmZXIgRGlzcGxheSBBY3Rpb24gRnVuY3Rpb25zJy4gIEl0IHNob3VsZCBiZQog Y2FsbGVkIG9ubHkgYnkgYGRpc3BsYXktYnVmZmVyJyBvciBhIGZ1bmN0aW9uIGRpcmVjdGx5IG9y CiBpbmRpcmVjdGx5IGNhbGxlZCBieSB0aGUgbGF0dGVyLiIKICAgKHVubGVzcyAob3IgKGNkciAo YXNzcSAnaW5oaWJpdC1zYW1lLXdpbmRvdyBhbGlzdCkpCi0JICAgICAgKHdpbmRvdy1taW5pYnVm ZmVyLXApCi0JICAgICAgKHdpbmRvdy1kZWRpY2F0ZWQtcCkpCisgICAgICAgICAgICAgICh3aW5k b3ctbWluaWJ1ZmZlci1wKQorICAgICAgICAgICAgICAod2luZG93LWRlZGljYXRlZC1wKSkKICAg ICAod2luZG93LS1kaXNwbGF5LWJ1ZmZlciBidWZmZXIgKHNlbGVjdGVkLXdpbmRvdykgJ3JldXNl IGFsaXN0KSkpCiAKIChkZWZ1biBkaXNwbGF5LWJ1ZmZlci0tbWF5YmUtc2FtZS13aW5kb3cgKGJ1 ZmZlciBhbGlzdCkKQEAgLTc2MjksMTYgKzc2MjksMTYgQEAgbm9kZSBgKGVsaXNwKSBCdWZmZXIg RGlzcGxheSBBY3Rpb24gRnVuY3Rpb25zJy4gIEl0IHNob3VsZCBiZQogY2FsbGVkIG9ubHkgYnkg YGRpc3BsYXktYnVmZmVyJyBvciBhIGZ1bmN0aW9uIGRpcmVjdGx5IG9yCiBpbmRpcmVjdGx5IGNh bGxlZCBieSB0aGUgbGF0dGVyLiIKICAgKGxldCogKChhbGlzdC1lbnRyeSAoYXNzcSAncmV1c2Fi bGUtZnJhbWVzIGFsaXN0KSkKLQkgKGZyYW1lcyAoY29uZCAoYWxpc3QtZW50cnkgKGNkciBhbGlz dC1lbnRyeSkpCi0JCSAgICAgICAoKGlmIChlcSBwb3AtdXAtZnJhbWVzICdncmFwaGljLW9ubHkp Ci0JCQkgICAgKGRpc3BsYXktZ3JhcGhpYy1wKQotCQkJICBwb3AtdXAtZnJhbWVzKQotCQkJMCkK LQkJICAgICAgIChkaXNwbGF5LWJ1ZmZlci1yZXVzZS1mcmFtZXMgMCkKLQkJICAgICAgICh0IChs YXN0LW5vbm1pbmlidWZmZXItZnJhbWUpKSkpCi0JICh3aW5kb3cgKGlmIChhbmQgKGVxIGJ1ZmZl ciAod2luZG93LWJ1ZmZlcikpCi0JCQkgIChub3QgKGNkciAoYXNzcSAnaW5oaWJpdC1zYW1lLXdp bmRvdyBhbGlzdCkpKSkKLQkJICAgICAoc2VsZWN0ZWQtd2luZG93KQorICAgICAgICAgKGZyYW1l cyAoY29uZCAoYWxpc3QtZW50cnkgKGNkciBhbGlzdC1lbnRyeSkpCisgICAgICAgICAgICAgICAg ICAgICAgICgoaWYgKGVxIHBvcC11cC1mcmFtZXMgJ2dyYXBoaWMtb25seSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoZGlzcGxheS1ncmFwaGljLXApCisgICAgICAgICAgICAgICAgICAg ICAgICAgIHBvcC11cC1mcmFtZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAwKQorICAgICAg ICAgICAgICAgICAgICAgICAoZGlzcGxheS1idWZmZXItcmV1c2UtZnJhbWVzIDApCisgICAgICAg ICAgICAgICAgICAgICAgICh0IChsYXN0LW5vbm1pbmlidWZmZXItZnJhbWUpKSkpCisgICAgICAg ICAod2luZG93IChpZiAoYW5kIChlcSBidWZmZXIgKHdpbmRvdy1idWZmZXIpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAobm90IChjZHIgKGFzc3EgJ2luaGliaXQtc2FtZS13aW5kb3cgYWxp c3QpKSkpCisgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWQtd2luZG93KQogICAgICAgICAg ICAgICAgICAgIDs7IFByZWZlcmFibHkgdXNlIGEgd2luZG93IG9uIHRoZSBzZWxlY3RlZCBmcmFt ZSwKICAgICAgICAgICAgICAgICAgICA7OyBpZiBzdWNoIGEgd2luZG93IGV4aXN0cyAoQnVnIzM2 NjgwKS4KICAgICAgICAgICAgICAgICAgICAobGV0KiAoKHdpbmRvd3MgKGRlbHEgKHNlbGVjdGVk LXdpbmRvdykKQEAgLTc2NTYsOCArNzY1Niw4IEBAIGluZGlyZWN0bHkgY2FsbGVkIGJ5IHRoZSBs YXR0ZXIuIgogICAgICAgICAgICAgICAgICAgICAgICh0IGZpcnN0KSkpKSkpCiAgICAgKHdoZW4g KHdpbmRvdy1saXZlLXAgd2luZG93KQogICAgICAgKHByb2cxICh3aW5kb3ctLWRpc3BsYXktYnVm ZmVyIGJ1ZmZlciB3aW5kb3cgJ3JldXNlIGFsaXN0KQotCSh1bmxlc3MgKGNkciAoYXNzcSAnaW5o aWJpdC1zd2l0Y2gtZnJhbWUgYWxpc3QpKQotCSAgKHdpbmRvdy0tbWF5YmUtcmFpc2UtZnJhbWUg KHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkpKSkpCisgICAgICAgICh1bmxlc3MgKGNkciAoYXNzcSAn aW5oaWJpdC1zd2l0Y2gtZnJhbWUgYWxpc3QpKQorICAgICAgICAgICh3aW5kb3ctLW1heWJlLXJh aXNlLWZyYW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkpKSkpKQogCiAoZGVmdW4gZGlzcGxheS1i dWZmZXItcmV1c2UtbW9kZS13aW5kb3cgKGJ1ZmZlciBhbGlzdCkKICAgIlJldHVybiBhIHdpbmRv dyBiYXNlZCBvbiB0aGUgbW9kZSBvZiB0aGUgYnVmZmVyIGl0IGRpc3BsYXlzLgpAQCAtNzY4NSwx NSArNzY4NSwxNSBAQCBjYWxsZWQgb25seSBieSBgZGlzcGxheS1idWZmZXInIG9yIGEgZnVuY3Rp b24gZGlyZWN0bHkgb3IKIGluZGlyZWN0bHkgY2FsbGVkIGJ5IHRoZSBsYXR0ZXIuIgogICAobGV0 KiAoKGFsaXN0LWVudHJ5IChhc3NxICdyZXVzYWJsZS1mcmFtZXMgYWxpc3QpKQogICAgICAgICAg KGFsaXN0LW1vZGUtZW50cnkgKGFzc3EgJ21vZGUgYWxpc3QpKQotCSAoZnJhbWVzIChjb25kIChh bGlzdC1lbnRyeSAoY2RyIGFsaXN0LWVudHJ5KSkKLQkJICAgICAgICgoaWYgKGVxIHBvcC11cC1m cmFtZXMgJ2dyYXBoaWMtb25seSkKLQkJCSAgICAoZGlzcGxheS1ncmFwaGljLXApCi0JCQkgIHBv cC11cC1mcmFtZXMpCi0JCQkwKQotCQkgICAgICAgKGRpc3BsYXktYnVmZmVyLXJldXNlLWZyYW1l cyAwKQotCQkgICAgICAgKHQgKGxhc3Qtbm9ubWluaWJ1ZmZlci1mcmFtZSkpKSkKKyAgICAgICAg IChmcmFtZXMgKGNvbmQgKGFsaXN0LWVudHJ5IChjZHIgYWxpc3QtZW50cnkpKQorICAgICAgICAg ICAgICAgICAgICAgICAoKGlmIChlcSBwb3AtdXAtZnJhbWVzICdncmFwaGljLW9ubHkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXktZ3JhcGhpYy1wKQorICAgICAgICAgICAg ICAgICAgICAgICAgICBwb3AtdXAtZnJhbWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgMCkK KyAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXktYnVmZmVyLXJldXNlLWZyYW1lcyAwKQor ICAgICAgICAgICAgICAgICAgICAgICAodCAobGFzdC1ub25taW5pYnVmZmVyLWZyYW1lKSkpKQog ICAgICAgICAgKGluaGliaXQtc2FtZS13aW5kb3ctcCAoY2RyIChhc3NxICdpbmhpYml0LXNhbWUt d2luZG93IGFsaXN0KSkpCi0JICh3aW5kb3dzICh3aW5kb3ctbGlzdC0xIG5pbCAnbm9taW5pIGZy YW1lcykpCisgICAgICAgICAod2luZG93cyAod2luZG93LWxpc3QtMSBuaWwgJ25vbWluaSBmcmFt ZXMpKQogICAgICAgICAgKGJ1ZmZlci1tb2RlICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlciBt YWpvci1tb2RlKSkKICAgICAgICAgIChhbGxvd2VkLW1vZGVzIChpZiBhbGlzdC1tb2RlLWVudHJ5 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNkciBhbGlzdC1tb2RlLWVudHJ5KQpAQCAt Nzc0MSw3ICs3NzQxLDcgQEAgU2VlIGBkaXNwbGF5LWJ1ZmZlcicgZm9yIHRoZSBmb3JtYXQgb2Yg ZGlzcGxheSBhY3Rpb25zLiIKICAgICAgICA7OyBgc3BlY2lhbC1kaXNwbGF5LXAnIHJldHVybnMg ZWl0aGVyIHQgb3IgYSBsaXN0IG9mIGZyYW1lCiAgICAgICAgOzsgcGFyYW1ldGVycyB0byBwYXNz IHRvIGBzcGVjaWFsLWRpc3BsYXktZnVuY3Rpb24nLgogICAgICAgIChsZXQgKChwYXJzIChzcGVj aWFsLWRpc3BsYXktcCAoYnVmZmVyLW5hbWUgYnVmZmVyKSkpKQotCSAod2hlbiBwYXJzCisgICAg ICAgICAod2hlbiBwYXJzCiAgICAgICAgICAgIChsaXN0IChsaXN0ICMnZGlzcGxheS1idWZmZXIt cmV1c2Utd2luZG93CiAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGJ1ZmZlciBfYWxp c3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgc3BlY2lhbC1kaXNwbGF5LWZ1 bmN0aW9uCkBAIC03NzY1LDE4ICs3NzY1LDE4IEBAIG5vZGUgYChlbGlzcCkgQnVmZmVyIERpc3Bs YXkgQWN0aW9uIEZ1bmN0aW9ucycuICBJdCBzaG91bGQgYmUKIGNhbGxlZCBvbmx5IGJ5IGBkaXNw bGF5LWJ1ZmZlcicgb3IgYSBmdW5jdGlvbiBkaXJlY3RseSBvcgogaW5kaXJlY3RseSBjYWxsZWQg YnkgdGhlIGxhdHRlci4iCiAgIChsZXQqICgocGFyYW1zIChjZHIgKGFzc3EgJ3BvcC11cC1mcmFt ZS1wYXJhbWV0ZXJzIGFsaXN0KSkpCi0JIChwb3AtdXAtZnJhbWUtYWxpc3QgKGFwcGVuZCBwYXJh bXMgcG9wLXVwLWZyYW1lLWFsaXN0KSkKLQkgKGZ1biBwb3AtdXAtZnJhbWUtZnVuY3Rpb24pCi0J IGZyYW1lIHdpbmRvdykKKyAgICAgICAgIChwb3AtdXAtZnJhbWUtYWxpc3QgKGFwcGVuZCBwYXJh bXMgcG9wLXVwLWZyYW1lLWFsaXN0KSkKKyAgICAgICAgIChmdW4gcG9wLXVwLWZyYW1lLWZ1bmN0 aW9uKQorICAgICAgICAgZnJhbWUgd2luZG93KQogICAgICh3aGVuIChhbmQgZnVuCi0JICAgICAg IDs7IE1ha2UgQlVGRkVSIGN1cnJlbnQgc28gYG1ha2UtZnJhbWUnIHdpbGwgdXNlIGl0IGFzIHRo ZQotCSAgICAgICA7OyBuZXcgZnJhbWUncyBidWZmZXIgKEJ1ZyMxNTEzMykuCi0JICAgICAgICh3 aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgotCQkgKHNldHEgZnJhbWUgKGZ1bmNhbGwgZnVuKSkp Ci0JICAgICAgIChzZXRxIHdpbmRvdyAoZnJhbWUtc2VsZWN0ZWQtd2luZG93IGZyYW1lKSkpCisg ICAgICAgICAgICAgICA7OyBNYWtlIEJVRkZFUiBjdXJyZW50IHNvIGBtYWtlLWZyYW1lJyB3aWxs IHVzZSBpdCBhcyB0aGUKKyAgICAgICAgICAgICAgIDs7IG5ldyBmcmFtZSdzIGJ1ZmZlciAoQnVn IzE1MTMzKS4KKyAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgorICAg ICAgICAgICAgICAgICAoc2V0cSBmcmFtZSAoZnVuY2FsbCBmdW4pKSkKKyAgICAgICAgICAgICAg IChzZXRxIHdpbmRvdyAoZnJhbWUtc2VsZWN0ZWQtd2luZG93IGZyYW1lKSkpCiAgICAgICAocHJv ZzEgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIHdpbmRvdyAnZnJhbWUgYWxpc3QpCi0J KHVubGVzcyAoY2RyIChhc3NxICdpbmhpYml0LXN3aXRjaC1mcmFtZSBhbGlzdCkpCi0JICAod2lu ZG93LS1tYXliZS1yYWlzZS1mcmFtZSBmcmFtZSkpKSkpKQorICAgICAgICAodW5sZXNzIChjZHIg KGFzc3EgJ2luaGliaXQtc3dpdGNoLWZyYW1lIGFsaXN0KSkKKyAgICAgICAgICAod2luZG93LS1t YXliZS1yYWlzZS1mcmFtZSBmcmFtZSkpKSkpKQogCiAoZGVmdW4gZGlzcGxheS1idWZmZXItcG9w LXVwLXdpbmRvdyAoYnVmZmVyIGFsaXN0KQogICAiRGlzcGxheSBCVUZGRVIgYnkgcG9wcGluZyB1 cCBhIG5ldyB3aW5kb3cuCkBAIC03Nzk3LDI0ICs3Nzk3LDI0IEBAIG5vZGUgYChlbGlzcCkgQnVm ZmVyIERpc3BsYXkgQWN0aW9uIEZ1bmN0aW9ucycuICBJdCBzaG91bGQgYmUKIGNhbGxlZCBvbmx5 IGJ5IGBkaXNwbGF5LWJ1ZmZlcicgb3IgYSBmdW5jdGlvbiBkaXJlY3RseSBvcgogaW5kaXJlY3Rs eSBjYWxsZWQgYnkgdGhlIGxhdHRlci4iCiAgIChsZXQgKChmcmFtZSAob3IgKHdpbmRvdy0tZnJh bWUtdXNhYmxlLXAgKHNlbGVjdGVkLWZyYW1lKSkKLQkJICAgKHdpbmRvdy0tZnJhbWUtdXNhYmxl LXAgKGxhc3Qtbm9ubWluaWJ1ZmZlci1mcmFtZSkpKSkKLQl3aW5kb3cpCisgICAgICAgICAgICAg ICAgICAgKHdpbmRvdy0tZnJhbWUtdXNhYmxlLXAgKGxhc3Qtbm9ubWluaWJ1ZmZlci1mcmFtZSkp KSkKKyAgICAgICAgd2luZG93KQogICAgICh3aGVuIChhbmQgKG9yIChub3QgKGZyYW1lLXBhcmFt ZXRlciBmcmFtZSAndW5zcGxpdHRhYmxlKSkKLQkJICAgOzsgSWYgdGhlIHNlbGVjdGVkIGZyYW1l IGNhbm5vdCBiZSBzcGxpdCwgbG9vayBhdAotCQkgICA7OyBgbGFzdC1ub25taW5pYnVmZmVyLWZy YW1lJy4KLQkJICAgKGFuZCAoZXEgZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkKLQkJCShzZXRxIGZy YW1lIChsYXN0LW5vbm1pbmlidWZmZXItZnJhbWUpKQotCQkJKHdpbmRvdy0tZnJhbWUtdXNhYmxl LXAgZnJhbWUpCi0JCQkobm90IChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ3Vuc3BsaXR0YWJsZSkp KSkKLQkgICAgICAgOzsgQXR0ZW1wdCB0byBzcGxpdCBsYXJnZXN0IG9yIGxlYXN0IHJlY2VudGx5 IHVzZWQgd2luZG93LgotCSAgICAgICAoc2V0cSB3aW5kb3cgKG9yICh3aW5kb3ctLXRyeS10by1z cGxpdC13aW5kb3cKLQkJCQkgKGdldC1sYXJnZXN0LXdpbmRvdyBmcmFtZSB0KSBhbGlzdCkKLQkJ CQkod2luZG93LS10cnktdG8tc3BsaXQtd2luZG93Ci0JCQkJIChnZXQtbHJ1LXdpbmRvdyBmcmFt ZSB0KSBhbGlzdCkpKSkKKyAgICAgICAgICAgICAgICAgICA7OyBJZiB0aGUgc2VsZWN0ZWQgZnJh bWUgY2Fubm90IGJlIHNwbGl0LCBsb29rIGF0CisgICAgICAgICAgICAgICAgICAgOzsgYGxhc3Qt bm9ubWluaWJ1ZmZlci1mcmFtZScuCisgICAgICAgICAgICAgICAgICAgKGFuZCAoZXEgZnJhbWUg KHNlbGVjdGVkLWZyYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGZyYW1lIChs YXN0LW5vbm1pbmlidWZmZXItZnJhbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRv dy0tZnJhbWUtdXNhYmxlLXAgZnJhbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAobm90IChm cmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ3Vuc3BsaXR0YWJsZSkpKSkKKyAgICAgICAgICAgICAgIDs7 IEF0dGVtcHQgdG8gc3BsaXQgbGFyZ2VzdCBvciBsZWFzdCByZWNlbnRseSB1c2VkIHdpbmRvdy4K KyAgICAgICAgICAgICAgIChzZXRxIHdpbmRvdyAob3IgKHdpbmRvdy0tdHJ5LXRvLXNwbGl0LXdp bmRvdworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldC1sYXJnZXN0LXdpbmRv dyBmcmFtZSB0KSBhbGlzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRv dy0tdHJ5LXRvLXNwbGl0LXdpbmRvdworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGdldC1scnUtd2luZG93IGZyYW1lIHQpIGFsaXN0KSkpKQogCiAgICAgICAocHJvZzEgKHdpbmRv dy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIHdpbmRvdyAnd2luZG93IGFsaXN0KQotCSh1bmxlc3Mg KGNkciAoYXNzcSAnaW5oaWJpdC1zd2l0Y2gtZnJhbWUgYWxpc3QpKQotCSAgKHdpbmRvdy0tbWF5 YmUtcmFpc2UtZnJhbWUgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkpKSkpCisgICAgICAgICh1bmxl c3MgKGNkciAoYXNzcSAnaW5oaWJpdC1zd2l0Y2gtZnJhbWUgYWxpc3QpKQorICAgICAgICAgICh3 aW5kb3ctLW1heWJlLXJhaXNlLWZyYW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkpKSkpKQogCiAo ZGVmdW4gZGlzcGxheS1idWZmZXItLW1heWJlLXBvcC11cC1mcmFtZS1vci13aW5kb3cgKGJ1ZmZl ciBhbGlzdCkKICAgIlRyeSBkaXNwbGF5aW5nIEJVRkZFUiBiYXNlZCBvbiBgcG9wLXVwLWZyYW1l cycgb3IgYHBvcC11cC13aW5kb3dzJy4KQEAgLTc4MzgsOCArNzgzOCw4IEBAIEFMSVNUIGlzIGFu IGFzc29jaWF0aW9uIGxpc3Qgb2YgYWN0aW9uIHN5bWJvbHMgYW5kIHZhbHVlcy4gIFNlZQogSW5m byBub2RlIGAoZWxpc3ApIEJ1ZmZlciBEaXNwbGF5IEFjdGlvbiBBbGlzdHMnIGZvciBkZXRhaWxz IG9mCiBzdWNoIGFsaXN0cy4iCiAgIChhbmQgKGlmIChlcSBwb3AtdXAtZnJhbWVzICdncmFwaGlj LW9ubHkpCi0JICAgKGRpc3BsYXktZ3JhcGhpYy1wKQotCSBwb3AtdXAtZnJhbWVzKQorICAgICAg ICAgICAoZGlzcGxheS1ncmFwaGljLXApCisgICAgICAgICBwb3AtdXAtZnJhbWVzKQogICAgICAg IChkaXNwbGF5LWJ1ZmZlci1wb3AtdXAtZnJhbWUgYnVmZmVyIGFsaXN0KSkpCiAKIChkZWZ1biBk aXNwbGF5LWJ1ZmZlci0tbWF5YmUtcG9wLXVwLXdpbmRvdyAoYnVmZmVyIGFsaXN0KQpAQCAtNzg3 Myw3ICs3ODczLDcgQEAgaW5kaXJlY3RseSBjYWxsZWQgYnkgdGhlIGxhdHRlci4iCiAgICAgICAg ICAgKGFwcGVuZAogICAgICAgICAgICAoY2RyIChhc3NxICdjaGlsZC1mcmFtZS1wYXJhbWV0ZXJz IGFsaXN0KSkKICAgICAgICAgICAgYCgocGFyZW50LWZyYW1lIC4gLChzZWxlY3RlZC1mcmFtZSkp KSkpCi0JIChwYXJlbnQgKG9yIChhc3NxICdwYXJlbnQtZnJhbWUgcGFyYW1ldGVycykKKyAgICAg ICAgIChwYXJlbnQgKG9yIChhc3NxICdwYXJlbnQtZnJhbWUgcGFyYW1ldGVycykKICAgICAgICAg ICAgICAgICAgICAgIChzZWxlY3RlZC1mcmFtZSkpKQogICAgICAgICAgKHNoYXJlIChhc3NxICdz aGFyZS1jaGlsZC1mcmFtZSBwYXJhbWV0ZXJzKSkKICAgICAgICAgIHNoYXJlMSBmcmFtZSB3aW5k b3cgdHlwZSkKQEAgLTc4OTgsNyArNzg5OCw3IEBAIGluZGlyZWN0bHkgY2FsbGVkIGJ5IHRoZSBs YXR0ZXIuIgogCiAgICAgKHByb2cxICh3aW5kb3ctLWRpc3BsYXktYnVmZmVyIGJ1ZmZlciB3aW5k b3cgdHlwZSBhbGlzdCkKICAgICAgICh1bmxlc3MgKGNkciAoYXNzcSAnaW5oaWJpdC1zd2l0Y2gt ZnJhbWUgYWxpc3QpKQotCSh3aW5kb3ctLW1heWJlLXJhaXNlLWZyYW1lIGZyYW1lKSkpKSkKKyAg ICAgICAgKHdpbmRvdy0tbWF5YmUtcmFpc2UtZnJhbWUgZnJhbWUpKSkpKQogCiAoZGVmdW4gd2lu ZG93cy1zaGFyaW5nLWVkZ2UgKCZvcHRpb25hbCB3aW5kb3cgZWRnZSB3aXRoaW4pCiAgICJSZXR1 cm4gbGlzdCBvZiBsaXZlIHdpbmRvd3Mgc2hhcmluZyB0aGUgc2FtZSBlZGdlIHdpdGggV0lORE9X LgpAQCAtNzkxOSwyOCArNzkxOSwyOCBAQCBlZGdlIG9mIGFueSB3aW5kb3cgcmV0dXJuZWQuIgog ICAod2hlbiAoYW5kIHdpdGhpbiAod2luZG93LWxpdmUtcCB3aW5kb3cpKQogICAgIChlcnJvciAi Q2Fubm90IHNoYXJlIGVkZ2UgZnJvbSB3aXRoaW4gbGl2ZSB3aW5kb3cgJXMiIHdpbmRvdykpCiAg IChsZXQgKCh3aW5kb3ctZWRnZXMgKHdpbmRvdy1lZGdlcyB3aW5kb3cgbmlsIG5pbCB0KSkKLQko aG9yaXpvbnRhbCAobWVtcSBlZGdlICcobGVmdCByaWdodCkpKQotCShuIChwY2FzZSBlZGdlCi0J ICAgICAoJ2xlZnQgMCkgKCdhYm92ZSAxKSAoJ3JpZ2h0IDIpICgnYmVsb3cgMykpKSkKKyAgICAg ICAgKGhvcml6b250YWwgKG1lbXEgZWRnZSAnKGxlZnQgcmlnaHQpKSkKKyAgICAgICAgKG4gKHBj YXNlIGVkZ2UKKyAgICAgICAgICAgICAoJ2xlZnQgMCkgKCdhYm92ZSAxKSAoJ3JpZ2h0IDIpICgn YmVsb3cgMykpKSkKICAgICAodW5sZXNzIChudW1iZXJwIG4pCiAgICAgICAoZXJyb3IgIkludmFs aWQgRURHRSAlcyIgZWRnZSkpCiAgICAgKGxldCAoKG8gKG1vZCAoKyAyIG4pIDQpKQotCSAgKHAg KGlmIGhvcml6b250YWwgMSAwKSkKLQkgIChxIChpZiBob3Jpem9udGFsIDMgMikpCi0JICB3aW5k b3dzKQorICAgICAgICAgIChwIChpZiBob3Jpem9udGFsIDEgMCkpCisgICAgICAgICAgKHEgKGlm IGhvcml6b250YWwgMyAyKSkKKyAgICAgICAgICB3aW5kb3dzKQogICAgICAgKHdhbGstd2luZG93 LXRyZWUKICAgICAgICAobGFtYmRhIChvdGhlcikKLQkgKGxldCAoKG90aGVyLWVkZ2VzICh3aW5k b3ctZWRnZXMgb3RoZXIgbmlsIG5pbCB0KSkpCi0JICAgKHdoZW4gKGFuZCAobm90IChlcSB3aW5k b3cgb3RoZXIpKQotCQkgICAgICAoPSAobnRoIG4gd2luZG93LWVkZ2VzKQotCQkJIChudGggKGlm IHdpdGhpbiBuIG8pIG90aGVyLWVkZ2VzKSkKLQkJICAgICAgKGNvbmQKLQkJICAgICAgICgoPSAo bnRoIHAgd2luZG93LWVkZ2VzKSAobnRoIHAgb3RoZXItZWRnZXMpKSkKLQkJICAgICAgICgoPCAo bnRoIHAgd2luZG93LWVkZ2VzKSAobnRoIHAgb3RoZXItZWRnZXMpKQotCQkJKDwgKG50aCBwIG90 aGVyLWVkZ2VzKSAobnRoIHEgd2luZG93LWVkZ2VzKSkpCi0JCSAgICAgICAodAotCQkJKDwgKG50 aCBwIHdpbmRvdy1lZGdlcykgKG50aCBxIG90aGVyLWVkZ2VzKSkpKSkKLQkgICAgIChzZXRxIHdp bmRvd3MgKGNvbnMgb3RoZXIgd2luZG93cykpKSkpCisgICAgICAgICAobGV0ICgob3RoZXItZWRn ZXMgKHdpbmRvdy1lZGdlcyBvdGhlciBuaWwgbmlsIHQpKSkKKyAgICAgICAgICAgKHdoZW4gKGFu ZCAobm90IChlcSB3aW5kb3cgb3RoZXIpKQorICAgICAgICAgICAgICAgICAgICAgICg9IChudGgg biB3aW5kb3ctZWRnZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgKG50aCAoaWYgd2l0aGlu IG4gbykgb3RoZXItZWRnZXMpKQorICAgICAgICAgICAgICAgICAgICAgIChjb25kCisgICAgICAg ICAgICAgICAgICAgICAgICgoPSAobnRoIHAgd2luZG93LWVkZ2VzKSAobnRoIHAgb3RoZXItZWRn ZXMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKCg8IChudGggcCB3aW5kb3ctZWRnZXMpIChu dGggcCBvdGhlci1lZGdlcykpCisgICAgICAgICAgICAgICAgICAgICAgICAoPCAobnRoIHAgb3Ro ZXItZWRnZXMpIChudGggcSB3aW5kb3ctZWRnZXMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAg KHQKKyAgICAgICAgICAgICAgICAgICAgICAgICg8IChudGggcCB3aW5kb3ctZWRnZXMpIChudGgg cSBvdGhlci1lZGdlcykpKSkpCisgICAgICAgICAgICAgKHNldHEgd2luZG93cyAoY29ucyBvdGhl ciB3aW5kb3dzKSkpKSkKICAgICAgICAod2luZG93LWZyYW1lIHdpbmRvdykgbmlsICdub21pbmkp CiAgICAgICAocmV2ZXJzZSB3aW5kb3dzKSkpKQogCkBAIC03OTUwLDE5ICs3OTUwLDE5IEBAIERJ UkVDVElPTiBpcyBwYXNzZWQgYXMgU0lERSBhcmd1bWVudCB0byBgc3BsaXQtd2luZG93LW5vLWVy cm9yJy4KIEFMSVNUIGlzIGEgYnVmZmVyIGRpc3BsYXkgYWxpc3QuIgogICAoYW5kIChub3QgKGZy YW1lLXBhcmFtZXRlciAod2luZG93LWZyYW1lIHdpbmRvdykgJ3Vuc3BsaXR0YWJsZSkpCiAgICAg ICAgKGxldCogKCh3aW5kb3ctY29tYmluYXRpb24tbGltaXQKLQkgICAgICAgOzsgV2hlbiBgd2lu ZG93LWNvbWJpbmF0aW9uLWxpbWl0JyBlcXVhbHMKLQkgICAgICAgOzsgYGRpc3BsYXktYnVmZmVy JyBvciBlcXVhbHMgYHJlc2l6ZS13aW5kb3cnIGFuZCBhCi0JICAgICAgIDs7IGB3aW5kb3ctaGVp Z2h0JyBvciBgd2luZG93LXdpZHRoJyBhbGlzdCBlbnRyeSBhcmUKLQkgICAgICAgOzsgcHJlc2Vu dCwgYmluZCBpdCB0byB0IHNvIHJlc2l6aW5nIHN0ZWFscyBzcGFjZQotCSAgICAgICA7OyBwcmVm ZXJhYmx5IGZyb20gdGhlIHdpbmRvdyB0aGF0IHdhcyBzcGxpdC4KLQkgICAgICAgKGlmIChvciAo ZXEgd2luZG93LWNvbWJpbmF0aW9uLWxpbWl0ICdkaXNwbGF5LWJ1ZmZlcikKLQkJICAgICAgIChh bmQgKGVxIHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCAnd2luZG93LXNpemUpCi0JCQkgICAgKG9y IChjZHIgKGFzc3EgJ3dpbmRvdy1oZWlnaHQgYWxpc3QpKQotCQkJCShjZHIgKGFzc3EgJ3dpbmRv dy13aWR0aCBhbGlzdCkpKSkpCi0JCSAgIHQKLQkJIHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCkp Ci0JICAgICAgKG5ldy13aW5kb3cgKHNwbGl0LXdpbmRvdy1uby1lcnJvciB3aW5kb3cgbmlsIGRp cmVjdGlvbikpKQotCSAoYW5kICh3aW5kb3ctbGl2ZS1wIG5ldy13aW5kb3cpIG5ldy13aW5kb3cp KSkpCisgICAgICAgICAgICAgICA7OyBXaGVuIGB3aW5kb3ctY29tYmluYXRpb24tbGltaXQnIGVx dWFscworICAgICAgICAgICAgICAgOzsgYGRpc3BsYXktYnVmZmVyJyBvciBlcXVhbHMgYHJlc2l6 ZS13aW5kb3cnIGFuZCBhCisgICAgICAgICAgICAgICA7OyBgd2luZG93LWhlaWdodCcgb3IgYHdp bmRvdy13aWR0aCcgYWxpc3QgZW50cnkgYXJlCisgICAgICAgICAgICAgICA7OyBwcmVzZW50LCBi aW5kIGl0IHRvIHQgc28gcmVzaXppbmcgc3RlYWxzIHNwYWNlCisgICAgICAgICAgICAgICA7OyBw cmVmZXJhYmx5IGZyb20gdGhlIHdpbmRvdyB0aGF0IHdhcyBzcGxpdC4KKyAgICAgICAgICAgICAg IChpZiAob3IgKGVxIHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCAnZGlzcGxheS1idWZmZXIpCisg ICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGVxIHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCAn d2luZG93LXNpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIChjZHIgKGFzc3Eg J3dpbmRvdy1oZWlnaHQgYWxpc3QpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y2RyIChhc3NxICd3aW5kb3ctd2lkdGggYWxpc3QpKSkpKQorICAgICAgICAgICAgICAgICAgIHQK KyAgICAgICAgICAgICAgICAgd2luZG93LWNvbWJpbmF0aW9uLWxpbWl0KSkKKyAgICAgICAgICAg ICAgKG5ldy13aW5kb3cgKHNwbGl0LXdpbmRvdy1uby1lcnJvciB3aW5kb3cgbmlsIGRpcmVjdGlv bikpKQorICAgICAgICAgKGFuZCAod2luZG93LWxpdmUtcCBuZXctd2luZG93KSBuZXctd2luZG93 KSkpKQogCiAoZGVmdW4gZGlzcGxheS1idWZmZXItaW4tZGlyZWN0aW9uIChidWZmZXIgYWxpc3Qp CiAgICJUcnkgdG8gZGlzcGxheSBCVUZGRVIgaW4gYSBkaXJlY3Rpb24gc3BlY2lmaWVkIGJ5IEFM SVNULgpAQCAtNzk5OSw1OSArNzk5OSw1OSBAQCBpbmRpcmVjdGx5IGNhbGxlZCBieSB0aGUgbGF0 dGVyLiIKICAgKGxldCAoKGRpcmVjdGlvbiAoY2RyIChhc3NxICdkaXJlY3Rpb24gYWxpc3QpKSkp CiAgICAgKHdoZW4gZGlyZWN0aW9uCiAgICAgICAobGV0ICgod2luZG93IChjZHIgKGFzc3EgJ3dp bmRvdyBhbGlzdCkpKQotCSAgICB3aXRoaW4gd2luZG93cyBvdGhlci13aW5kb3ctc2hvd3MtYnVm ZmVyIG90aGVyLXdpbmRvdykKLQk7OyBTYW5pdGl6ZSBXSU5ET1cuCi0JKGNvbmQKLQkgKChvciAo ZXEgd2luZG93ICdtYWluKQorICAgICAgICAgICAgd2l0aGluIHdpbmRvd3Mgb3RoZXItd2luZG93 LXNob3dzLWJ1ZmZlciBvdGhlci13aW5kb3cpCisgICAgICAgIDs7IFNhbml0aXplIFdJTkRPVy4K KyAgICAgICAgKGNvbmQKKyAgICAgICAgICgob3IgKGVxIHdpbmRvdyAnbWFpbikKICAgICAgICAg ICAgICAgKG1lbXEgZGlyZWN0aW9uICcodG9wIGJvdHRvbSBsZWZ0bW9zdCByaWdodG1vc3QpKSkK LQkgIChzZXRxIHdpbmRvdyAod2luZG93LW1haW4td2luZG93KSkpCi0JICgoZXEgd2luZG93ICdy b290KQotCSAgKHNldHEgd2luZG93IChmcmFtZS1yb290LXdpbmRvdykpKQotCSAoKHdpbmRvdy12 YWxpZC1wIHdpbmRvdykpCi0JICh0Ci0JICAoc2V0cSB3aW5kb3cgKHNlbGVjdGVkLXdpbmRvdykp KSkKLQkoc2V0cSB3aXRoaW4gKG5vdCAod2luZG93LWxpdmUtcCB3aW5kb3cpKSkKLQk7OyBTYW5p dGl6ZSBESVJFQ1RJT04KLQkoY29uZAotCSAoKG1lbXEgZGlyZWN0aW9uICcobGVmdCBhYm92ZSBy aWdodCBiZWxvdykpKQotCSAoKGVxIGRpcmVjdGlvbiAnbGVmdG1vc3QpCi0JICAoc2V0cSBkaXJl Y3Rpb24gJ2xlZnQpKQotCSAoKG1lbXEgZGlyZWN0aW9uICcodG9wIHVwKSkKLQkgIChzZXRxIGRp cmVjdGlvbiAnYWJvdmUpKQotCSAoKGVxIGRpcmVjdGlvbiAncmlnaHRtb3N0KQotCSAgKHNldHEg ZGlyZWN0aW9uICdyaWdodCkpCi0JICgobWVtcSBkaXJlY3Rpb24gJyhib3R0b20gZG93bikpCi0J ICAoc2V0cSBkaXJlY3Rpb24gJ2JlbG93KSkKLQkgKHQKLQkgIChzZXRxIGRpcmVjdGlvbiAnYmVs b3cpKSkKLQotCShzZXRxIGFsaXN0Ci0JICAgICAgKGFwcGVuZCBhbGlzdAotCQkgICAgICBgKCwo aWYgdGVtcC1idWZmZXItcmVzaXplLW1vZGUKLQkJICAgICAgICAgICAgICcod2luZG93LWhlaWdo dCAuIHJlc2l6ZS10ZW1wLWJ1ZmZlci13aW5kb3cpCi0JICAgICAgICAgICAgICAgICAgICcod2lu ZG93LWhlaWdodCAuIGZpdC13aW5kb3ctdG8tYnVmZmVyKSkKLQkgICAgICAgICAgICAgICAgLCh3 aGVuIHRlbXAtYnVmZmVyLXJlc2l6ZS1tb2RlCi0JICAgICAgICAgICAgICAgICAgICcocHJlc2Vy dmUtc2l6ZSAuIChuaWwgLiB0KSkpKSkpCi0KLQkoc2V0cSB3aW5kb3dzICh3aW5kb3dzLXNoYXJp bmctZWRnZSB3aW5kb3cgZGlyZWN0aW9uIHdpdGhpbikpCi0JKGRvbGlzdCAob3RoZXIgd2luZG93 cykKLQkgIChjb25kCi0JICAgKChhbmQgKG5vdCBvdGhlci13aW5kb3ctc2hvd3MtYnVmZmVyKQot CQkgKGVxIGJ1ZmZlciAod2luZG93LWJ1ZmZlciBvdGhlcikpKQotCSAgICAoc2V0cSBvdGhlci13 aW5kb3ctc2hvd3MtYnVmZmVyIHQpCi0JICAgIChzZXRxIG90aGVyLXdpbmRvdyBvdGhlcikpCi0J ICAgKChub3Qgb3RoZXItd2luZG93KQotCSAgICAoc2V0cSBvdGhlci13aW5kb3cgb3RoZXIpKSkp Ci0JKG9yIChhbmQgb3RoZXItd2luZG93LXNob3dzLWJ1ZmZlcgotCQkgKHdpbmRvdy0tZGlzcGxh eS1idWZmZXIgYnVmZmVyIG90aGVyLXdpbmRvdyAncmV1c2UgYWxpc3QpKQotCSAgICAoYW5kIChz ZXRxIG90aGVyLXdpbmRvdwotCQkgICAgICAgKHdpbmRvdy0tdHJ5LXRvLXNwbGl0LXdpbmRvdy1p bi1kaXJlY3Rpb24KLQkJCXdpbmRvdyBkaXJlY3Rpb24gYWxpc3QpKQotCQkgKHdpbmRvdy0tZGlz cGxheS1idWZmZXIgYnVmZmVyIG90aGVyLXdpbmRvdyAnd2luZG93IGFsaXN0KSkKLQkgICAgKGFu ZCAoc2V0cSB3aW5kb3cgb3RoZXItd2luZG93KQotCQkgKG5vdCAod2luZG93LWRlZGljYXRlZC1w IG90aGVyLXdpbmRvdykpCi0JCSAobm90ICh3aW5kb3ctbWluaWJ1ZmZlci1wIG90aGVyLXdpbmRv dykpCi0JCSAod2luZG93LS1kaXNwbGF5LWJ1ZmZlciBidWZmZXIgb3RoZXItd2luZG93ICdyZXVz ZSBhbGlzdCkpKSkpKSkKKyAgICAgICAgICAoc2V0cSB3aW5kb3cgKHdpbmRvdy1tYWluLXdpbmRv dykpKQorICAgICAgICAgKChlcSB3aW5kb3cgJ3Jvb3QpCisgICAgICAgICAgKHNldHEgd2luZG93 IChmcmFtZS1yb290LXdpbmRvdykpKQorICAgICAgICAgKCh3aW5kb3ctdmFsaWQtcCB3aW5kb3cp KQorICAgICAgICAgKHQKKyAgICAgICAgICAoc2V0cSB3aW5kb3cgKHNlbGVjdGVkLXdpbmRvdykp KSkKKyAgICAgICAgKHNldHEgd2l0aGluIChub3QgKHdpbmRvdy1saXZlLXAgd2luZG93KSkpCisg ICAgICAgIDs7IFNhbml0aXplIERJUkVDVElPTgorICAgICAgICAoY29uZAorICAgICAgICAgKCht ZW1xIGRpcmVjdGlvbiAnKGxlZnQgYWJvdmUgcmlnaHQgYmVsb3cpKSkKKyAgICAgICAgICgoZXEg ZGlyZWN0aW9uICdsZWZ0bW9zdCkKKyAgICAgICAgICAoc2V0cSBkaXJlY3Rpb24gJ2xlZnQpKQor ICAgICAgICAgKChtZW1xIGRpcmVjdGlvbiAnKHRvcCB1cCkpCisgICAgICAgICAgKHNldHEgZGly ZWN0aW9uICdhYm92ZSkpCisgICAgICAgICAoKGVxIGRpcmVjdGlvbiAncmlnaHRtb3N0KQorICAg ICAgICAgIChzZXRxIGRpcmVjdGlvbiAncmlnaHQpKQorICAgICAgICAgKChtZW1xIGRpcmVjdGlv biAnKGJvdHRvbSBkb3duKSkKKyAgICAgICAgICAoc2V0cSBkaXJlY3Rpb24gJ2JlbG93KSkKKyAg ICAgICAgICh0CisgICAgICAgICAgKHNldHEgZGlyZWN0aW9uICdiZWxvdykpKQorCisgICAgICAg IChzZXRxIGFsaXN0CisgICAgICAgICAgICAgIChhcHBlbmQgYWxpc3QKKyAgICAgICAgICAgICAg ICAgICAgICBgKCwoaWYgdGVtcC1idWZmZXItcmVzaXplLW1vZGUKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJyh3aW5kb3ctaGVpZ2h0IC4gcmVzaXplLXRlbXAtYnVmZmVyLXdpbmRvdykK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICcod2luZG93LWhlaWdodCAuIGZpdC13aW5kb3ct dG8tYnVmZmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICwod2hlbiB0ZW1wLWJ1ZmZlci1y ZXNpemUtbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhwcmVzZXJ2ZS1zaXplIC4g KG5pbCAuIHQpKSkpKSkKKworICAgICAgICAoc2V0cSB3aW5kb3dzICh3aW5kb3dzLXNoYXJpbmct ZWRnZSB3aW5kb3cgZGlyZWN0aW9uIHdpdGhpbikpCisgICAgICAgIChkb2xpc3QgKG90aGVyIHdp bmRvd3MpCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKChhbmQgKG5vdCBvdGhlci13aW5k b3ctc2hvd3MtYnVmZmVyKQorICAgICAgICAgICAgICAgICAoZXEgYnVmZmVyICh3aW5kb3ctYnVm ZmVyIG90aGVyKSkpCisgICAgICAgICAgICAoc2V0cSBvdGhlci13aW5kb3ctc2hvd3MtYnVmZmVy IHQpCisgICAgICAgICAgICAoc2V0cSBvdGhlci13aW5kb3cgb3RoZXIpKQorICAgICAgICAgICAo KG5vdCBvdGhlci13aW5kb3cpCisgICAgICAgICAgICAoc2V0cSBvdGhlci13aW5kb3cgb3RoZXIp KSkpCisgICAgICAgIChvciAoYW5kIG90aGVyLXdpbmRvdy1zaG93cy1idWZmZXIKKyAgICAgICAg ICAgICAgICAgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIG90aGVyLXdpbmRvdyAncmV1 c2UgYWxpc3QpKQorICAgICAgICAgICAgKGFuZCAoc2V0cSBvdGhlci13aW5kb3cKKyAgICAgICAg ICAgICAgICAgICAgICAgKHdpbmRvdy0tdHJ5LXRvLXNwbGl0LXdpbmRvdy1pbi1kaXJlY3Rpb24K KyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdyBkaXJlY3Rpb24gYWxpc3QpKQorICAgICAg ICAgICAgICAgICAod2luZG93LS1kaXNwbGF5LWJ1ZmZlciBidWZmZXIgb3RoZXItd2luZG93ICd3 aW5kb3cgYWxpc3QpKQorICAgICAgICAgICAgKGFuZCAoc2V0cSB3aW5kb3cgb3RoZXItd2luZG93 KQorICAgICAgICAgICAgICAgICAobm90ICh3aW5kb3ctZGVkaWNhdGVkLXAgb3RoZXItd2luZG93 KSkKKyAgICAgICAgICAgICAgICAgKG5vdCAod2luZG93LW1pbmlidWZmZXItcCBvdGhlci13aW5k b3cpKQorICAgICAgICAgICAgICAgICAod2luZG93LS1kaXNwbGF5LWJ1ZmZlciBidWZmZXIgb3Ro ZXItd2luZG93ICdyZXVzZSBhbGlzdCkpKSkpKSkKIAogOzsgVGhpcyBzaG91bGQgYmUgcmV3cml0 dGVuIGFzCiA7OyAoZGlzcGxheS1idWZmZXItaW4tZGlyZWN0aW9uIGJ1ZmZlciAoY29ucyAnKGRp cmVjdGlvbiAuIGJlbG93KSBhbGlzdCkpCkBAIC04MDc4LDQyICs4MDc4LDQyIEBAIG5vZGUgYChl bGlzcCkgQnVmZmVyIERpc3BsYXkgQWN0aW9uIEZ1bmN0aW9ucycuICBJdCBzaG91bGQgYmUKIGNh bGxlZCBvbmx5IGJ5IGBkaXNwbGF5LWJ1ZmZlcicgb3IgYSBmdW5jdGlvbiBkaXJlY3RseSBvcgog aW5kaXJlY3RseSBjYWxsZWQgYnkgdGhlIGxhdHRlci4iCiAgIChsZXQgKChtaW4taGVpZ2h0IChj ZHIgKGFzc3EgJ3dpbmRvdy1taW4taGVpZ2h0IGFsaXN0KSkpCi0Jd2luZG93KQorICAgICAgICB3 aW5kb3cpCiAgICAgKG9yIChhbmQgKHNldHEgd2luZG93ICh3aW5kb3ctaW4tZGlyZWN0aW9uICdi ZWxvdykpCiAgICAgICAgICAgICAgKGVxIGJ1ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cpKQot CSAgICAgKG9yIChub3QgKG51bWJlcnAgbWluLWhlaWdodCkpCi0JCSAoPj0gKHdpbmRvdy1oZWln aHQgd2luZG93KSBtaW4taGVpZ2h0KQotCQkgOzsgJ3dpbmRvdy0tZGlzcGxheS1idWZmZXInIGNh biByZXNpemUgdGhpcyB3aW5kb3cgaWYKLQkJIDs7IGFuZCBvbmx5IGlmIGl0IGhhcyBhICdxdWl0 LXJlc3RvcmUnIHBhcmFtZXRlcgotCQkgOzsgY2VydGlmeWluZyB0aGF0IGl0IGFsd2F5cyBzaG93 ZWQgQlVGRkVSIGJlZm9yZS4KLQkJIChsZXQgKChoZWlnaHQgKHdpbmRvdy1oZWlnaHQgd2luZG93 KSkKLQkJICAgICAgIChxdWl0LXJlc3RvcmUgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0 LXJlc3RvcmUpKSkKLQkJICAgKGFuZCBxdWl0LXJlc3RvcmUKLQkJCShlcSAobnRoIDEgcXVpdC1y ZXN0b3JlKSAnd2luZG93KQotCQkJKHdpbmRvdy1yZXNpemFibGUtcCB3aW5kb3cgKC0gbWluLWhl aWdodCBoZWlnaHQpKSkpKQotCSAgICAgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIHdp bmRvdyAncmV1c2UgYWxpc3QpKQotCShhbmQgKG5vdCAoZnJhbWUtcGFyYW1ldGVyIG5pbCAndW5z cGxpdHRhYmxlKSkKICAgICAgICAgICAgICAob3IgKG5vdCAobnVtYmVycCBtaW4taGVpZ2h0KSkK LQkJICh3aW5kb3ctc2l6YWJsZS1wIG5pbCAoLSBtaW4taGVpZ2h0KSkpCisgICAgICAgICAgICAg ICAgICg+PSAod2luZG93LWhlaWdodCB3aW5kb3cpIG1pbi1oZWlnaHQpCisgICAgICAgICAgICAg ICAgIDs7ICd3aW5kb3ctLWRpc3BsYXktYnVmZmVyJyBjYW4gcmVzaXplIHRoaXMgd2luZG93IGlm CisgICAgICAgICAgICAgICAgIDs7IGFuZCBvbmx5IGlmIGl0IGhhcyBhICdxdWl0LXJlc3RvcmUn IHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICA7OyBjZXJ0aWZ5aW5nIHRoYXQgaXQgYWx3YXlz IHNob3dlZCBCVUZGRVIgYmVmb3JlLgorICAgICAgICAgICAgICAgICAobGV0ICgoaGVpZ2h0ICh3 aW5kb3ctaGVpZ2h0IHdpbmRvdykpCisgICAgICAgICAgICAgICAgICAgICAgIChxdWl0LXJlc3Rv cmUgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUpKSkKKyAgICAgICAgICAg ICAgICAgICAoYW5kIHF1aXQtcmVzdG9yZQorICAgICAgICAgICAgICAgICAgICAgICAgKGVxIChu dGggMSBxdWl0LXJlc3RvcmUpICd3aW5kb3cpCisgICAgICAgICAgICAgICAgICAgICAgICAod2lu ZG93LXJlc2l6YWJsZS1wIHdpbmRvdyAoLSBtaW4taGVpZ2h0IGhlaWdodCkpKSkpCisgICAgICAg ICAgICAgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIHdpbmRvdyAncmV1c2UgYWxpc3Qp KQorICAgICAgICAoYW5kIChub3QgKGZyYW1lLXBhcmFtZXRlciBuaWwgJ3Vuc3BsaXR0YWJsZSkp CisgICAgICAgICAgICAgKG9yIChub3QgKG51bWJlcnAgbWluLWhlaWdodCkpCisgICAgICAgICAg ICAgICAgICh3aW5kb3ctc2l6YWJsZS1wIG5pbCAoLSBtaW4taGVpZ2h0KSkpCiAgICAgICAgICAg ICAgKGxldCAoKHNwbGl0LWhlaWdodC10aHJlc2hvbGQgMCkKLQkJICAgc3BsaXQtd2lkdGgtdGhy ZXNob2xkKQorICAgICAgICAgICAgICAgICAgIHNwbGl0LXdpZHRoLXRocmVzaG9sZCkKICAgICAg ICAgICAgICAgIChzZXRxIHdpbmRvdyAod2luZG93LS10cnktdG8tc3BsaXQtd2luZG93CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZC13aW5kb3cpIGFsaXN0KSkpCiAgICAg ICAgICAgICAgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIHdpbmRvdyAnd2luZG93IGFs aXN0KSkKLQkoYW5kIChzZXRxIHdpbmRvdyAod2luZG93LWluLWRpcmVjdGlvbiAnYmVsb3cpKQor ICAgICAgICAoYW5kIChzZXRxIHdpbmRvdyAod2luZG93LWluLWRpcmVjdGlvbiAnYmVsb3cpKQog ICAgICAgICAgICAgIChub3QgKHdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cpKQotCSAgICAgKG9y IChub3QgKG51bWJlcnAgbWluLWhlaWdodCkpCi0JCSA7OyBBIHdpbmRvdyB0aGF0IHNob3dlZCBh bm90aGVyIGJ1ZmZlciBiZWZvcmUgY2Fubm90Ci0JCSA7OyBiZSByZXNpemVkLgotCQkgKD49ICh3 aW5kb3ctaGVpZ2h0IHdpbmRvdykgbWluLWhlaWdodCkpCi0JICAgICAod2luZG93LS1kaXNwbGF5 LWJ1ZmZlciBidWZmZXIgd2luZG93ICdyZXVzZSBhbGlzdCkpKSkpCisgICAgICAgICAgICAgKG9y IChub3QgKG51bWJlcnAgbWluLWhlaWdodCkpCisgICAgICAgICAgICAgICAgIDs7IEEgd2luZG93 IHRoYXQgc2hvd2VkIGFub3RoZXIgYnVmZmVyIGJlZm9yZSBjYW5ub3QKKyAgICAgICAgICAgICAg ICAgOzsgYmUgcmVzaXplZC4KKyAgICAgICAgICAgICAgICAgKD49ICh3aW5kb3ctaGVpZ2h0IHdp bmRvdykgbWluLWhlaWdodCkpCisgICAgICAgICAgICAgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIg YnVmZmVyIHdpbmRvdyAncmV1c2UgYWxpc3QpKSkpKQogCiAoZGVmdW4gZGlzcGxheS1idWZmZXIt LW1heWJlLWF0LWJvdHRvbSAoYnVmZmVyIGFsaXN0KQogICAobGV0ICgoYWxpc3QgKGFwcGVuZCBh bGlzdCBgKCwoaWYgdGVtcC1idWZmZXItcmVzaXplLW1vZGUKLQkJICAgICAgICAgICAgICAgICAg ICAnKHdpbmRvdy1oZWlnaHQgLiByZXNpemUtdGVtcC1idWZmZXItd2luZG93KQotCSAgICAgICAg ICAgICAgICAgICAgICAgICAgJyh3aW5kb3ctaGVpZ2h0IC4gZml0LXdpbmRvdy10by1idWZmZXIp KQotCSAgICAgICAgICAgICAgICAgICAgICAgLCh3aGVuIHRlbXAtYnVmZmVyLXJlc2l6ZS1tb2Rl Ci0JICAgICAgICAgICAgICAgICAgICAgICAgICAnKHByZXNlcnZlLXNpemUgLiAobmlsIC4gdCkp KSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcod2luZG93LWhlaWdo dCAuIHJlc2l6ZS10ZW1wLWJ1ZmZlci13aW5kb3cpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJyh3aW5kb3ctaGVpZ2h0IC4gZml0LXdpbmRvdy10by1idWZmZXIpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICwod2hlbiB0ZW1wLWJ1ZmZlci1yZXNpemUtbW9kZQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcocHJlc2VydmUtc2l6ZSAuIChuaWwg LiB0KSkpKSkpKQogICAgIChvciAoZGlzcGxheS1idWZmZXItLW1heWJlLXNhbWUtd2luZG93IGJ1 ZmZlciBhbGlzdCkKICAgICAgICAgKGRpc3BsYXktYnVmZmVyLXJldXNlLXdpbmRvdyBidWZmZXIg YWxpc3QpCiAgICAgICAgIChkaXNwbGF5LWJ1ZmZlci0tbWF5YmUtcG9wLXVwLWZyYW1lIGJ1ZmZl ciBhbGlzdCkKQEAgLTgxNDAsMjIgKzgxNDAsMjIgQEAgaW5kaXJlY3RseSBjYWxsZWQgYnkgdGhl IGxhdHRlci4iCiAgICAgKHdhbGstd2luZG93LXRyZWUKICAgICAgKGxhbWJkYSAod2luZG93KQog ICAgICAgIChjb25kCi0JKCh3aW5kb3ctaW4tZGlyZWN0aW9uICdiZWxvdyB3aW5kb3cpKQotCSgo YW5kIChub3QgYm90dG9tLXdpbmRvdy1zaG93cy1idWZmZXIpCi0JICAgICAgKGVxIGJ1ZmZlciAo d2luZG93LWJ1ZmZlciB3aW5kb3cpKSkKLQkgKHNldHEgYm90dG9tLXdpbmRvdy1zaG93cy1idWZm ZXIgdCkKLQkgKHNldHEgYm90dG9tLXdpbmRvdyB3aW5kb3cpKQotCSgobm90IGJvdHRvbS13aW5k b3cpCi0JIChzZXRxIGJvdHRvbS13aW5kb3cgd2luZG93KSkpKQorICAgICAgICAoKHdpbmRvdy1p bi1kaXJlY3Rpb24gJ2JlbG93IHdpbmRvdykpCisgICAgICAgICgoYW5kIChub3QgYm90dG9tLXdp bmRvdy1zaG93cy1idWZmZXIpCisgICAgICAgICAgICAgIChlcSBidWZmZXIgKHdpbmRvdy1idWZm ZXIgd2luZG93KSkpCisgICAgICAgICAoc2V0cSBib3R0b20td2luZG93LXNob3dzLWJ1ZmZlciB0 KQorICAgICAgICAgKHNldHEgYm90dG9tLXdpbmRvdyB3aW5kb3cpKQorICAgICAgICAoKG5vdCBi b3R0b20td2luZG93KQorICAgICAgICAgKHNldHEgYm90dG9tLXdpbmRvdyB3aW5kb3cpKSkpCiAg ICAgIG5pbCBuaWwgJ25vbWluaSkKICAgICAob3IgKGFuZCBib3R0b20td2luZG93LXNob3dzLWJ1 ZmZlcgotCSAgICAgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIGJvdHRvbS13aW5kb3cg J3JldXNlIGFsaXN0KSkKLQkoYW5kIChub3QgKGZyYW1lLXBhcmFtZXRlciBuaWwgJ3Vuc3BsaXR0 YWJsZSkpCi0JICAgICAoc2V0cSB3aW5kb3cgKHNwbGl0LXdpbmRvdy1uby1lcnJvciAod2luZG93 LW1haW4td2luZG93KSkpCi0JICAgICAod2luZG93LS1kaXNwbGF5LWJ1ZmZlciBidWZmZXIgd2lu ZG93ICd3aW5kb3cgYWxpc3QpKQotCShhbmQgKHNldHEgd2luZG93IGJvdHRvbS13aW5kb3cpCi0J ICAgICAobm90ICh3aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93KSkKLQkgICAgICh3aW5kb3ctLWRp c3BsYXktYnVmZmVyIGJ1ZmZlciB3aW5kb3cgJ3JldXNlIGFsaXN0KSkpKSkKKyAgICAgICAgICAg ICAod2luZG93LS1kaXNwbGF5LWJ1ZmZlciBidWZmZXIgYm90dG9tLXdpbmRvdyAncmV1c2UgYWxp c3QpKQorICAgICAgICAoYW5kIChub3QgKGZyYW1lLXBhcmFtZXRlciBuaWwgJ3Vuc3BsaXR0YWJs ZSkpCisgICAgICAgICAgICAgKHNldHEgd2luZG93IChzcGxpdC13aW5kb3ctbm8tZXJyb3IgKHdp bmRvdy1tYWluLXdpbmRvdykpKQorICAgICAgICAgICAgICh3aW5kb3ctLWRpc3BsYXktYnVmZmVy IGJ1ZmZlciB3aW5kb3cgJ3dpbmRvdyBhbGlzdCkpCisgICAgICAgIChhbmQgKHNldHEgd2luZG93 IGJvdHRvbS13aW5kb3cpCisgICAgICAgICAgICAgKG5vdCAod2luZG93LWRlZGljYXRlZC1wIHdp bmRvdykpCisgICAgICAgICAgICAgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIHdpbmRv dyAncmV1c2UgYWxpc3QpKSkpKQogCiAoZGVmdW4gZGlzcGxheS1idWZmZXItaW4tcHJldmlvdXMt d2luZG93IChidWZmZXIgYWxpc3QpCiAgICJEaXNwbGF5IEJVRkZFUiBpbiBhIHdpbmRvdyBwcmV2 aW91c2x5IHNob3dpbmcgaXQuCkBAIC04MTk5LDM3ICs4MTk5LDM3IEBAIG5vZGUgYChlbGlzcCkg QnVmZmVyIERpc3BsYXkgQWN0aW9uIEZ1bmN0aW9ucycuICBJdCBzaG91bGQgYmUKIGNhbGxlZCBv bmx5IGJ5IGBkaXNwbGF5LWJ1ZmZlcicgb3IgYSBmdW5jdGlvbiBkaXJlY3RseSBvcgogaW5kaXJl Y3RseSBjYWxsZWQgYnkgdGhlIGxhdHRlci4iCiAgIChsZXQqICgoYWxpc3QtZW50cnkgKGFzc3Eg J3JldXNhYmxlLWZyYW1lcyBhbGlzdCkpCi0JIChpbmhpYml0LXNhbWUtd2luZG93Ci0JICAoY2Ry IChhc3NxICdpbmhpYml0LXNhbWUtd2luZG93IGFsaXN0KSkpCi0JIChmcmFtZXMgKGNvbmQKLQkJ ICAoYWxpc3QtZW50cnkgKGNkciBhbGlzdC1lbnRyeSkpCi0JCSAgKChpZiAoZXEgcG9wLXVwLWZy YW1lcyAnZ3JhcGhpYy1vbmx5KQotCQkgICAgICAgKGRpc3BsYXktZ3JhcGhpYy1wKQotCQkgICAg IHBvcC11cC1mcmFtZXMpCi0JCSAgIDApCi0JCSAgKGRpc3BsYXktYnVmZmVyLXJldXNlLWZyYW1l cyAwKQotCQkgICh0IChsYXN0LW5vbm1pbmlidWZmZXItZnJhbWUpKSkpCi0JIGJlc3Qtd2luZG93 IHNlY29uZC1iZXN0LXdpbmRvdyB3aW5kb3cpCisgICAgICAgICAoaW5oaWJpdC1zYW1lLXdpbmRv dworICAgICAgICAgIChjZHIgKGFzc3EgJ2luaGliaXQtc2FtZS13aW5kb3cgYWxpc3QpKSkKKyAg ICAgICAgIChmcmFtZXMgKGNvbmQKKyAgICAgICAgICAgICAgICAgIChhbGlzdC1lbnRyeSAoY2Ry IGFsaXN0LWVudHJ5KSkKKyAgICAgICAgICAgICAgICAgICgoaWYgKGVxIHBvcC11cC1mcmFtZXMg J2dyYXBoaWMtb25seSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXktZ3JhcGhpYy1w KQorICAgICAgICAgICAgICAgICAgICAgcG9wLXVwLWZyYW1lcykKKyAgICAgICAgICAgICAgICAg ICAwKQorICAgICAgICAgICAgICAgICAgKGRpc3BsYXktYnVmZmVyLXJldXNlLWZyYW1lcyAwKQor ICAgICAgICAgICAgICAgICAgKHQgKGxhc3Qtbm9ubWluaWJ1ZmZlci1mcmFtZSkpKSkKKyAgICAg ICAgIGJlc3Qtd2luZG93IHNlY29uZC1iZXN0LXdpbmRvdyB3aW5kb3cpCiAgICAgOzsgU2NhbiB3 aW5kb3dzIHdoZXRoZXIgdGhleSBoYXZlIHNob3duIHRoZSBidWZmZXIgcmVjZW50bHkuCiAgICAg KGNhdGNoICdiZXN0CiAgICAgICAoZG9saXN0ICh3aW5kb3cgKHdpbmRvdy1saXN0LTEgKGZyYW1l LWZpcnN0LXdpbmRvdykgJ25vbWluaSBmcmFtZXMpKQotCSh3aGVuIChhbmQgKGFzc3EgYnVmZmVy ICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpCi0JCSAgIChub3QgKHdpbmRvdy1kZWRpY2F0 ZWQtcCB3aW5kb3cpKSkKLQkgIChpZiAoZXEgd2luZG93IChzZWxlY3RlZC13aW5kb3cpKQotCSAg ICAgICh1bmxlc3MgaW5oaWJpdC1zYW1lLXdpbmRvdwotCQkoc2V0cSBzZWNvbmQtYmVzdC13aW5k b3cgd2luZG93KSkKLQkgICAgKHNldHEgYmVzdC13aW5kb3cgd2luZG93KQotCSAgICAodGhyb3cg J2Jlc3QgdCkpKSkpCisgICAgICAgICh3aGVuIChhbmQgKGFzc3EgYnVmZmVyICh3aW5kb3ctcHJl di1idWZmZXJzIHdpbmRvdykpCisgICAgICAgICAgICAgICAgICAgKG5vdCAod2luZG93LWRlZGlj YXRlZC1wIHdpbmRvdykpKQorICAgICAgICAgIChpZiAoZXEgd2luZG93IChzZWxlY3RlZC13aW5k b3cpKQorICAgICAgICAgICAgICAodW5sZXNzIGluaGliaXQtc2FtZS13aW5kb3cKKyAgICAgICAg ICAgICAgICAoc2V0cSBzZWNvbmQtYmVzdC13aW5kb3cgd2luZG93KSkKKyAgICAgICAgICAgIChz ZXRxIGJlc3Qtd2luZG93IHdpbmRvdykKKyAgICAgICAgICAgICh0aHJvdyAnYmVzdCB0KSkpKSkK ICAgICA7OyBXaGVuIEFMSVNUIGhhcyBhIGBwcmV2aW91cy13aW5kb3cnIGVudHJ5LCB0aGF0IGVu dHJ5IG1heSBvdmVycmlkZQogICAgIDs7IGFueXRoaW5nIHdlIGZvdW5kIHNvIGZhci4KICAgICAo d2hlbiAoYW5kIChzZXRxIHdpbmRvdyAoY2RyIChhc3NxICdwcmV2aW91cy13aW5kb3cgYWxpc3Qp KSkKLQkgICAgICAgKHdpbmRvdy1saXZlLXAgd2luZG93KQotCSAgICAgICAob3IgKGVxIGJ1ZmZl ciAod2luZG93LWJ1ZmZlciB3aW5kb3cpKQorICAgICAgICAgICAgICAgKHdpbmRvdy1saXZlLXAg d2luZG93KQorICAgICAgICAgICAgICAgKG9yIChlcSBidWZmZXIgKHdpbmRvdy1idWZmZXIgd2lu ZG93KSkKICAgICAgICAgICAgICAgICAgICAobm90ICh3aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93 KSkpKQogICAgICAgKGlmIChlcSB3aW5kb3cgKHNlbGVjdGVkLXdpbmRvdykpCi0JICAodW5sZXNz IGluaGliaXQtc2FtZS13aW5kb3cKLQkgICAgKHNldHEgc2Vjb25kLWJlc3Qtd2luZG93IHdpbmRv dykpCi0JKHNldHEgYmVzdC13aW5kb3cgd2luZG93KSkpCisgICAgICAgICAgKHVubGVzcyBpbmhp Yml0LXNhbWUtd2luZG93CisgICAgICAgICAgICAoc2V0cSBzZWNvbmQtYmVzdC13aW5kb3cgd2lu ZG93KSkKKyAgICAgICAgKHNldHEgYmVzdC13aW5kb3cgd2luZG93KSkpCiAgICAgOzsgUmV0dXJu IGJlc3Qgb3Igc2Vjb25kIGJlc3Qgd2luZG93IGZvdW5kLgogICAgICh3aGVuIChzZXRxIHdpbmRv dyAob3IgYmVzdC13aW5kb3cgc2Vjb25kLWJlc3Qtd2luZG93KSkKICAgICAgICh3aW5kb3ctLWRp c3BsYXktYnVmZmVyIGJ1ZmZlciB3aW5kb3cgJ3JldXNlIGFsaXN0KSkpKQpAQCAtODI1MiwzOSAr ODI1MiwzOSBAQCBub2RlIGAoZWxpc3ApIEJ1ZmZlciBEaXNwbGF5IEFjdGlvbiBGdW5jdGlvbnMn LiAgSXQgc2hvdWxkIGJlCiBjYWxsZWQgb25seSBieSBgZGlzcGxheS1idWZmZXInIG9yIGEgZnVu Y3Rpb24gZGlyZWN0bHkgb3IKIGluZGlyZWN0bHkgY2FsbGVkIGJ5IHRoZSBsYXR0ZXIuIgogICAo bGV0KiAoKG5vdC10aGlzLXdpbmRvdyAoY2RyIChhc3NxICdpbmhpYml0LXNhbWUtd2luZG93IGFs aXN0KSkpCi0JIChmcmFtZSAob3IgKHdpbmRvdy0tZnJhbWUtdXNhYmxlLXAgKHNlbGVjdGVkLWZy YW1lKSkKLQkJICAgICh3aW5kb3ctLWZyYW1lLXVzYWJsZS1wIChsYXN0LW5vbm1pbmlidWZmZXIt ZnJhbWUpKSkpCi0JICh3aW5kb3cKLQkgIDs7IFJldXNlIGFuIGV4aXN0aW5nIHdpbmRvdy4KLQkg IChvciAoZ2V0LWxydS13aW5kb3cgZnJhbWUgbmlsIG5vdC10aGlzLXdpbmRvdykKLQkgICAgICAo bGV0ICgod2luZG93IChnZXQtYnVmZmVyLXdpbmRvdyBidWZmZXIgJ3Zpc2libGUpKSkKLQkJKHVu bGVzcyAoYW5kIG5vdC10aGlzLXdpbmRvdwotCQkJICAgICAoZXEgd2luZG93IChzZWxlY3RlZC13 aW5kb3cpKSkKLQkJICB3aW5kb3cpKQotCSAgICAgIChnZXQtbGFyZ2VzdC13aW5kb3cgJ3Zpc2li bGUgbmlsIG5vdC10aGlzLXdpbmRvdykKLQkgICAgICAobGV0ICgod2luZG93IChnZXQtYnVmZmVy LXdpbmRvdyBidWZmZXIgMCkpKQotCQkodW5sZXNzIChhbmQgbm90LXRoaXMtd2luZG93Ci0JCQkg ICAgIChlcSB3aW5kb3cgKHNlbGVjdGVkLXdpbmRvdykpKQotCQkgIHdpbmRvdykpCi0JICAgICAg KGdldC1sYXJnZXN0LXdpbmRvdyAwIG5pbCBub3QtdGhpcy13aW5kb3cpKSkKLQkgKHF1aXQtcmVz dG9yZSAoYW5kICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKLQkJCSAgICAod2luZG93LXBhcmFtZXRl ciB3aW5kb3cgJ3F1aXQtcmVzdG9yZSkpKQotCSAocXVhZCAobnRoIDEgcXVpdC1yZXN0b3JlKSkp CisgICAgICAgICAoZnJhbWUgKG9yICh3aW5kb3ctLWZyYW1lLXVzYWJsZS1wIChzZWxlY3RlZC1m cmFtZSkpCisgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctLWZyYW1lLXVzYWJsZS1wIChsYXN0 LW5vbm1pbmlidWZmZXItZnJhbWUpKSkpCisgICAgICAgICAod2luZG93CisgICAgICAgICAgOzsg UmV1c2UgYW4gZXhpc3Rpbmcgd2luZG93LgorICAgICAgICAgIChvciAoZ2V0LWxydS13aW5kb3cg ZnJhbWUgbmlsIG5vdC10aGlzLXdpbmRvdykKKyAgICAgICAgICAgICAgKGxldCAoKHdpbmRvdyAo Z2V0LWJ1ZmZlci13aW5kb3cgYnVmZmVyICd2aXNpYmxlKSkpCisgICAgICAgICAgICAgICAgKHVu bGVzcyAoYW5kIG5vdC10aGlzLXdpbmRvdworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo ZXEgd2luZG93IChzZWxlY3RlZC13aW5kb3cpKSkKKyAgICAgICAgICAgICAgICAgIHdpbmRvdykp CisgICAgICAgICAgICAgIChnZXQtbGFyZ2VzdC13aW5kb3cgJ3Zpc2libGUgbmlsIG5vdC10aGlz LXdpbmRvdykKKyAgICAgICAgICAgICAgKGxldCAoKHdpbmRvdyAoZ2V0LWJ1ZmZlci13aW5kb3cg YnVmZmVyIDApKSkKKyAgICAgICAgICAgICAgICAodW5sZXNzIChhbmQgbm90LXRoaXMtd2luZG93 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSB3aW5kb3cgKHNlbGVjdGVkLXdpbmRv dykpKQorICAgICAgICAgICAgICAgICAgd2luZG93KSkKKyAgICAgICAgICAgICAgKGdldC1sYXJn ZXN0LXdpbmRvdyAwIG5pbCBub3QtdGhpcy13aW5kb3cpKSkKKyAgICAgICAgIChxdWl0LXJlc3Rv cmUgKGFuZCAod2luZG93LWxpdmUtcCB3aW5kb3cpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUpKSkKKyAgICAgICAgIChx dWFkIChudGggMSBxdWl0LXJlc3RvcmUpKSkKICAgICAod2hlbiAod2luZG93LWxpdmUtcCB3aW5k b3cpCiAgICAgICA7OyBJZiB0aGUgd2luZG93IHdhcyB1c2VkIGJ5IGBkaXNwbGF5LWJ1ZmZlcicg YmVmb3JlLCB0cnkgdG8KICAgICAgIDs7IHJlc2l6ZSBpdCB0byBpdHMgb2xkIGhlaWdodCBidXQg ZG9uJ3Qgc2lnbmFsIGFuIGVycm9yLgogICAgICAgKHdoZW4gKGFuZCAobGlzdHAgcXVhZCkKLQkJ IChpbnRlZ2VycCAobnRoIDMgcXVhZCkpCi0JCSAoPiAobnRoIDMgcXVhZCkgKHdpbmRvdy10b3Rh bC1oZWlnaHQgd2luZG93KSkpCi0JKGNvbmRpdGlvbi1jYXNlIG5pbAotCSAgICAod2luZG93LXJl c2l6ZSB3aW5kb3cgKC0gKG50aCAzIHF1YWQpICh3aW5kb3ctdG90YWwtaGVpZ2h0IHdpbmRvdykp KQotCSAgKGVycm9yIG5pbCkpKQorICAgICAgICAgICAgICAgICAoaW50ZWdlcnAgKG50aCAzIHF1 YWQpKQorICAgICAgICAgICAgICAgICAoPiAobnRoIDMgcXVhZCkgKHdpbmRvdy10b3RhbC1oZWln aHQgd2luZG93KSkpCisgICAgICAgIChjb25kaXRpb24tY2FzZSBuaWwKKyAgICAgICAgICAgICh3 aW5kb3ctcmVzaXplIHdpbmRvdyAoLSAobnRoIDMgcXVhZCkgKHdpbmRvdy10b3RhbC1oZWlnaHQg d2luZG93KSkpCisgICAgICAgICAgKGVycm9yIG5pbCkpKQogCiAgICAgICAocHJvZzEKLQkgICh3 aW5kb3ctLWRpc3BsYXktYnVmZmVyIGJ1ZmZlciB3aW5kb3cgJ3JldXNlIGFsaXN0KQotCSh3aW5k b3ctLWV2ZW4td2luZG93LXNpemVzIHdpbmRvdykKLQkodW5sZXNzIChjZHIgKGFzc3EgJ2luaGli aXQtc3dpdGNoLWZyYW1lIGFsaXN0KSkKLQkgICh3aW5kb3ctLW1heWJlLXJhaXNlLWZyYW1lICh3 aW5kb3ctZnJhbWUgd2luZG93KSkpKSkpKQorICAgICAgICAgICh3aW5kb3ctLWRpc3BsYXktYnVm ZmVyIGJ1ZmZlciB3aW5kb3cgJ3JldXNlIGFsaXN0KQorICAgICAgICAod2luZG93LS1ldmVuLXdp bmRvdy1zaXplcyB3aW5kb3cpCisgICAgICAgICh1bmxlc3MgKGNkciAoYXNzcSAnaW5oaWJpdC1z d2l0Y2gtZnJhbWUgYWxpc3QpKQorICAgICAgICAgICh3aW5kb3ctLW1heWJlLXJhaXNlLWZyYW1l ICh3aW5kb3ctZnJhbWUgd2luZG93KSkpKSkpKQogCiAoZGVmdW4gZGlzcGxheS1idWZmZXItbm8t d2luZG93IChfYnVmZmVyIGFsaXN0KQogICAiRGlzcGxheSBCVUZGRVIgaW4gbm8gd2luZG93LgpA QCAtODMyNywxMCArODMyNywxMCBAQCBpbnB1dCBmb2N1cy4KIE9wdGlvbmFsIHRoaXJkIGFyZyBO T1JFQ09SRCBub24tbmlsIG1lYW5zIGRvIG5vdCBwdXQgdGhpcyBidWZmZXIKIGF0IHRoZSBmcm9u dCBvZiB0aGUgbGlzdCBvZiByZWNlbnRseSBzZWxlY3RlZCBvbmVzLiIKICAgKGludGVyYWN0aXZl IChsaXN0IChyZWFkLWJ1ZmZlciAiUG9wIHRvIGJ1ZmZlcjogIiAob3RoZXItYnVmZmVyKSkKLQkJ ICAgICAoaWYgY3VycmVudC1wcmVmaXgtYXJnIHQpKSkKKyAgICAgICAgICAgICAgICAgICAgIChp ZiBjdXJyZW50LXByZWZpeC1hcmcgdCkpKQogICAobGV0KiAoKGJ1ZmZlciAod2luZG93LW5vcm1h bGl6ZS1idWZmZXItdG8tc3dpdGNoLXRvIGJ1ZmZlci1vci1uYW1lKSkKICAgICAgICAgIChvbGQt ZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkKLQkgKHdpbmRvdyAoZGlzcGxheS1idWZmZXIgYnVmZmVy IGFjdGlvbikpKQorICAgICAgICAgKHdpbmRvdyAoZGlzcGxheS1idWZmZXIgYnVmZmVyIGFjdGlv bikpKQogICAgIDs7IERvbid0IGFzc3VtZSB0aGF0IGBkaXNwbGF5LWJ1ZmZlcicgaGFzIHN1cHBs aWVkIHVzIHdpdGggYSB3aW5kb3cKICAgICA7OyAoQnVnIzI0MzMyKS4KICAgICAoaWYgd2luZG93 CkBAIC04Mzk2LDkgKzgzOTYsOSBAQCBleGlzdHMsIHJldHVybiB0aGF0IGJ1ZmZlci4gIElmIG5v IHN1Y2ggYnVmZmVyIGV4aXN0cywgY3JlYXRlIGEKIGJ1ZmZlciB3aXRoIHRoZSBuYW1lIEJVRkZF Ui1PUi1OQU1FIGFuZCByZXR1cm4gdGhhdCBidWZmZXIuIgogICAoaWYgYnVmZmVyLW9yLW5hbWUK ICAgICAgIChvciAoZ2V0LWJ1ZmZlciBidWZmZXItb3ItbmFtZSkKLQkgIChsZXQgKChidWZmZXIg KGdldC1idWZmZXItY3JlYXRlIGJ1ZmZlci1vci1uYW1lKSkpCi0JICAgIChzZXQtYnVmZmVyLW1h am9yLW1vZGUgYnVmZmVyKQotCSAgICBidWZmZXIpKQorICAgICAgICAgIChsZXQgKChidWZmZXIg KGdldC1idWZmZXItY3JlYXRlIGJ1ZmZlci1vci1uYW1lKSkpCisgICAgICAgICAgICAoc2V0LWJ1 ZmZlci1tYWpvci1tb2RlIGJ1ZmZlcikKKyAgICAgICAgICAgIGJ1ZmZlcikpCiAgICAgKG90aGVy LWJ1ZmZlcikpKQogCiAoZGVmY3VzdG9tIHN3aXRjaC10by1idWZmZXItcHJlc2VydmUtd2luZG93 LXBvaW50IHQKQEAgLTg0MTcsOSArODQxNyw5IEBAIHRoZSBzZWxlY3RlZCB3aW5kb3cgb3IgbmV2 ZXIgYXBwZWFyZWQgaW4gaXQgYmVmb3JlLCBvciBpZgogb3Igbm9uLW5pbCBgc3dpdGNoLXRvLWJ1 ZmZlci1vYmV5LWRpc3BsYXktYWN0aW9ucycgZGlzcGxheXMgaXQKIGluIGFub3RoZXIgd2luZG93 LiIKICAgOnR5cGUgJyhjaG9pY2UKLQkgIChjb25zdCA6dGFnICJOZXZlciIgbmlsKQotCSAgKGNv bnN0IDp0YWcgIklmIGFscmVhZHkgZGlzcGxheWVkIGVsc2V3aGVyZSIgYWxyZWFkeS1kaXNwbGF5 ZWQpCi0JICAoY29uc3QgOnRhZyAiQWx3YXlzIiB0KSkKKyAgICAgICAgICAoY29uc3QgOnRhZyAi TmV2ZXIiIG5pbCkKKyAgICAgICAgICAoY29uc3QgOnRhZyAiSWYgYWxyZWFkeSBkaXNwbGF5ZWQg ZWxzZXdoZXJlIiBhbHJlYWR5LWRpc3BsYXllZCkKKyAgICAgICAgICAoY29uc3QgOnRhZyAiQWx3 YXlzIiB0KSkKICAgOmdyb3VwICd3aW5kb3dzCiAgIDp2ZXJzaW9uICIyNi4xIikKIApAQCAtODQ0 MywxMCArODQ0MywxMCBAQCBXaGVuIGNhbGxlZCBub24taW50ZXJhY3RpdmVseSwgYHN3aXRjaC10 by1idWZmZXInIGFsd2F5cyBzaWduYWxzCiBhbiBlcnJvciB3aGVuIHRoZSBzZWxlY3RlZCB3aW5k b3cgaXMgZGVkaWNhdGVkIHRvIGl0cyBidWZmZXIgYW5kCiBGT1JDRS1TQU1FLVdJTkRPVyBpcyBu b24tbmlsLiIKICAgOnR5cGUgJyhjaG9pY2UKLQkgIChjb25zdCA6dGFnICJEaXNhbGxvdyIgbmls KQotCSAgKGNvbnN0IDp0YWcgIlByb21wdCIgcHJvbXB0KQotCSAgKGNvbnN0IDp0YWcgIlBvcCIg cG9wKQotCSAgKGNvbnN0IDp0YWcgIkFsbG93IiB0KSkKKyAgICAgICAgICAoY29uc3QgOnRhZyAi RGlzYWxsb3ciIG5pbCkKKyAgICAgICAgICAoY29uc3QgOnRhZyAiUHJvbXB0IiBwcm9tcHQpCisg ICAgICAgICAgKGNvbnN0IDp0YWcgIlBvcCIgcG9wKQorICAgICAgICAgIChjb25zdCA6dGFnICJB bGxvdyIgdCkpCiAgIDpncm91cCAnd2luZG93cwogICA6dmVyc2lvbiAiMjUuMSIpCiAKQEAgLTg1 NTgsMTcgKzg1NTgsMTcgQEAgUmV0dXJuIHRoZSBidWZmZXIgc3dpdGNoZWQgdG8uIgogCiAgICAg ICAod2hlbiBzZXQtd2luZG93LXN0YXJ0LWFuZC1wb2ludAogICAgICAgICAobGV0KiAoKGVudHJ5 IChhc3NxIGJ1ZmZlciAod2luZG93LXByZXYtYnVmZmVycykpKQotCSAgICAgICAoZGlzcGxheWVk IChhbmQgKGVxIHN3aXRjaC10by1idWZmZXItcHJlc2VydmUtd2luZG93LXBvaW50Ci0JCQkJICAg J2FscmVhZHktZGlzcGxheWVkKQotCQkJICAgICAgIChnZXQtYnVmZmVyLXdpbmRvdyBidWZmZXIg MCkpKSkKLQkgIChzZXQtd2luZG93LWJ1ZmZlciBuaWwgYnVmZmVyKQotCSAgKHdoZW4gKGFuZCBl bnRyeQotCQkgICAgIChvciAoZXEgc3dpdGNoLXRvLWJ1ZmZlci1wcmVzZXJ2ZS13aW5kb3ctcG9p bnQgdCkKLQkJICAgICAgICAgZGlzcGxheWVkKSkKLQkgICAgOzsgVHJ5IHRvIHJlc3RvcmUgc3Rh cnQgYW5kIHBvaW50IG9mIGJ1ZmZlciBpbiB0aGUgc2VsZWN0ZWQKLQkgICAgOzsgd2luZG93IChC dWcjNDA0MSkuCi0JICAgIChzZXQtd2luZG93LXN0YXJ0IChzZWxlY3RlZC13aW5kb3cpIChudGgg MSBlbnRyeSkgdCkKLQkgICAgKHNldC13aW5kb3ctcG9pbnQgbmlsIChudGggMiBlbnRyeSkpKSkp KSkKKyAgICAgICAgICAgICAgIChkaXNwbGF5ZWQgKGFuZCAoZXEgc3dpdGNoLXRvLWJ1ZmZlci1w cmVzZXJ2ZS13aW5kb3ctcG9pbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2FscmVhZHktZGlzcGxheWVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXQt YnVmZmVyLXdpbmRvdyBidWZmZXIgMCkpKSkKKyAgICAgICAgICAoc2V0LXdpbmRvdy1idWZmZXIg bmlsIGJ1ZmZlcikKKyAgICAgICAgICAod2hlbiAoYW5kIGVudHJ5CisgICAgICAgICAgICAgICAg ICAgICAob3IgKGVxIHN3aXRjaC10by1idWZmZXItcHJlc2VydmUtd2luZG93LXBvaW50IHQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheWVkKSkKKyAgICAgICAgICAgIDs7IFRyeSB0 byByZXN0b3JlIHN0YXJ0IGFuZCBwb2ludCBvZiBidWZmZXIgaW4gdGhlIHNlbGVjdGVkCisgICAg ICAgICAgICA7OyB3aW5kb3cgKEJ1ZyM0MDQxKS4KKyAgICAgICAgICAgIChzZXQtd2luZG93LXN0 YXJ0IChzZWxlY3RlZC13aW5kb3cpIChudGggMSBlbnRyeSkgdCkKKyAgICAgICAgICAgIChzZXQt d2luZG93LXBvaW50IG5pbCAobnRoIDIgZW50cnkpKSkpKSkpCiAKICAgICAodW5sZXNzIG5vcmVj b3JkCiAgICAgICAoc2VsZWN0LXdpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkpCkBAIC04NjYyLDEy ICs4NjYyLDEyIEBAIGNvbW1hbmQgZWNobyBrZXlzdHJva2VzIHRoYXQgc2hvdWxkIGRlc2NyaWJl IHRoZSBjdXJyZW50IHByZWZpeCBzdGF0ZS4iCiAgICAgKGZzZXQgY2xlYXJmdW4KICAgICAgICAg ICAobGFtYmRhICgpCiAgICAgICAgICAgICAodW5sZXNzIChvcgotCQkgICAgIDs7IFJlbW92ZSB0 aGUgaG9vayBpbW1lZGlhdGVseQotCQkgICAgIDs7IGFmdGVyIGV4aXRpbmcgdGhlIG1pbmlidWZm ZXIuCi0JCSAgICAgKD4gKG1pbmlidWZmZXItZGVwdGgpIG1pbmlidWZmZXItZGVwdGgpCi0JCSAg ICAgOzsgQnV0IGRvbid0IHJlbW92ZSBpbW1lZGlhdGVseSBhZnRlcgotCQkgICAgIDs7IGFkZGlu ZyB0aGUgaG9vayBieSB0aGUgc2FtZSBjb21tYW5kIGJlbG93LgotCQkgICAgIChlcSB0aGlzLWNv bW1hbmQgY29tbWFuZCkpCisgICAgICAgICAgICAgICAgICAgICA7OyBSZW1vdmUgdGhlIGhvb2sg aW1tZWRpYXRlbHkKKyAgICAgICAgICAgICAgICAgICAgIDs7IGFmdGVyIGV4aXRpbmcgdGhlIG1p bmlidWZmZXIuCisgICAgICAgICAgICAgICAgICAgICAoPiAobWluaWJ1ZmZlci1kZXB0aCkgbWlu aWJ1ZmZlci1kZXB0aCkKKyAgICAgICAgICAgICAgICAgICAgIDs7IEJ1dCBkb24ndCByZW1vdmUg aW1tZWRpYXRlbHkgYWZ0ZXIKKyAgICAgICAgICAgICAgICAgICAgIDs7IGFkZGluZyB0aGUgaG9v ayBieSB0aGUgc2FtZSBjb21tYW5kIGJlbG93LgorICAgICAgICAgICAgICAgICAgICAgKGVxIHRo aXMtY29tbWFuZCBjb21tYW5kKSkKICAgICAgICAgICAgICAgKGZ1bmNhbGwgZXhpdGZ1bikpKSkK ICAgICA7OyBSZXNldCBkaXNwbGF5LWJ1ZmZlci1vdmVycmlkaW5nLWFjdGlvbgogICAgIDs7IGFm dGVyIHRoZSBuZXh0IGNvbW1hbmQgZmluaXNoZXMKQEAgLTg2OTUsNyArODY5NSw3IEBAIHdoZXJl IHNvbWUgZXJyb3IgbWF5IGJlIHByZXNlbnQuIgogICAgICAgOzsgd2luZG93cyBvbmUgbGluZSB0 YWxsLCB3aGljaCBtZWFucyB0aGF0IHRoZXJlJ3Mgbm8gbW9yZSBzcGFjZQogICAgICAgOzsgZm9y IHRoZSBtb2RlIGxpbmUuCiAgICAgICAobGV0ICgod2luZG93LW1pbi1oZWlnaHQgKG1pbiAyIGhl aWdodCkpKQotCSh3aW5kb3ctcmVzaXplIHdpbmRvdyBkZWx0YSkpKSkpCisgICAgICAgICh3aW5k b3ctcmVzaXplIHdpbmRvdyBkZWx0YSkpKSkpCiAKIChkZWZ1biBlbmxhcmdlLXdpbmRvdy1ob3Jp em9udGFsbHkgKGRlbHRhKQogICAiTWFrZSBzZWxlY3RlZCB3aW5kb3cgREVMVEEgY29sdW1ucyB3 aWRlci4KQEAgLTg3NjksMTEgKzg3NjksMTEgQEAgV0lORE9XIG11c3QgYmUgYSBsaXZlIHdpbmRv dyBhbmQgZGVmYXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4iCiAgIChzZXRxIHdpbmRvdyAod2lu ZG93LW5vcm1hbGl6ZS13aW5kb3cgd2luZG93IHQpKQogICAod2l0aC1jdXJyZW50LWJ1ZmZlciAo d2luZG93LWJ1ZmZlciB3aW5kb3cpCiAgICAgKG1heCAxCi0JIChjb3VudC1zY3JlZW4tbGluZXMg KHBvaW50LW1pbikgKHBvaW50LW1heCkKLQkJCSAgICAgOzsgSWYgYnVmZmVyIGVuZHMgd2l0aCBh IG5ld2xpbmUsIGlnbm9yZSBpdCB3aGVuCi0JCQkgICAgIDs7IGNvdW50aW5nIGhlaWdodCB1bmxl c3MgcG9pbnQgaXMgYWZ0ZXIgaXQuCi0JCQkgICAgIChlb2JwKQotCQkJICAgICB3aW5kb3cpKSkp CisgICAgICAgICAoY291bnQtc2NyZWVuLWxpbmVzIChwb2ludC1taW4pIChwb2ludC1tYXgpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IElmIGJ1ZmZlciBlbmRzIHdpdGggYSBuZXds aW5lLCBpZ25vcmUgaXQgd2hlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBjb3Vu dGluZyBoZWlnaHQgdW5sZXNzIHBvaW50IGlzIGFmdGVyIGl0LgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoZW9icCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93KSkp KQogCiAoZGVmdW4gd2luZG93LWRlZmF1bHQtZm9udC1oZWlnaHQgKCZvcHRpb25hbCB3aW5kb3cp CiAgICJSZXR1cm4gaGVpZ2h0IGluIHBpeGVscyBvZiBXSU5ET1cncyBkZWZhdWx0IGZhY2UgZm9u dC4KQEAgLTg3ODIsMTAgKzg3ODIsMTAgQEAgV0lORE9XIG11c3QgYmUgYSBsaXZlIHdpbmRvdyBh bmQgZGVmYXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4KIFRoZSByZXR1cm4gdmFsdWUgYWNjb3Vu dHMgZm9yIGFueSByZW1hcHBpbmcgb2YgdGhlIGRlZmF1bHQgZmFjZQogZm9udCBvbiBXSU5ET1cn cyBmcmFtZS4iCiAgIChsZXQqICgod2luZG93ICh3aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5k b3cgdCkpCi0JIChmcmFtZSAod2luZG93LWZyYW1lIHdpbmRvdykpCi0JIChkZWZhdWx0LWZvbnQg KGZhY2UtZm9udCAnZGVmYXVsdCBmcmFtZSkpKQorICAgICAgICAgKGZyYW1lICh3aW5kb3ctZnJh bWUgd2luZG93KSkKKyAgICAgICAgIChkZWZhdWx0LWZvbnQgKGZhY2UtZm9udCAnZGVmYXVsdCBm cmFtZSkpKQogICAgIChpZiAoYW5kIChkaXNwbGF5LW11bHRpLWZvbnQtcCAoZnJhbWUtcGFyYW1l dGVyIGZyYW1lICdkaXNwbGF5KSkKLQkgICAgIChub3QgKHN0cmluZy1lcXVhbCAoZnJhbWUtcGFy YW1ldGVyIGZyYW1lICdmb250KSBkZWZhdWx0LWZvbnQpKSkKKyAgICAgICAgICAgICAobm90IChz dHJpbmctZXF1YWwgKGZyYW1lLXBhcmFtZXRlciBmcmFtZSAnZm9udCkgZGVmYXVsdC1mb250KSkp CiAgICAgICAgIChhcmVmIChmb250LWluZm8gZGVmYXVsdC1mb250IGZyYW1lKSAzKQogICAgICAg KGZyYW1lLWNoYXItaGVpZ2h0IGZyYW1lKSkpKQogCkBAIC04Nzk3LDE0ICs4Nzk3LDE0IEBAIFRo ZSByZXR1cm4gdmFsdWUgaW5jbHVkZXMgYW55IGxpbmUgc3BhY2luZyBkZWZpbmVkIGZvciBXSU5E T1cncwogYnVmZmVyIG9yIGZyYW1lIGFuZCBhY2NvdW50cyBmb3IgYW55IHJlbWFwcGluZyBvZiB0 aGUgZGVmYXVsdAogZmFjZSBvbiBXSU5ET1cncyBmcmFtZS4iCiAgIChsZXQqICgod2luZG93ICh3 aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5kb3cgdCkpCi0JIChmb250LWhlaWdodCAod2luZG93 LWRlZmF1bHQtZm9udC1oZWlnaHQgd2luZG93KSkKLQkgKGZyYW1lICh3aW5kb3ctZnJhbWUgd2lu ZG93KSkKLQkgKGJ1ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cpKQotCSAoc3BhY2UtaGVpZ2h0 Ci0JICAob3IgKGFuZCAoZGlzcGxheS1ncmFwaGljLXAgZnJhbWUpCi0JCSAgIChvciAoYnVmZmVy LWxvY2FsLXZhbHVlICdsaW5lLXNwYWNpbmcgYnVmZmVyKQotCQkgICAgICAgKGZyYW1lLXBhcmFt ZXRlciBmcmFtZSAnbGluZS1zcGFjaW5nKSkpCi0JICAgICAgMCkpKQorICAgICAgICAgKGZvbnQt aGVpZ2h0ICh3aW5kb3ctZGVmYXVsdC1mb250LWhlaWdodCB3aW5kb3cpKQorICAgICAgICAgKGZy YW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkKKyAgICAgICAgIChidWZmZXIgKHdpbmRvdy1idWZm ZXIgd2luZG93KSkKKyAgICAgICAgIChzcGFjZS1oZWlnaHQKKyAgICAgICAgICAob3IgKGFuZCAo ZGlzcGxheS1ncmFwaGljLXAgZnJhbWUpCisgICAgICAgICAgICAgICAgICAgKG9yIChidWZmZXIt bG9jYWwtdmFsdWUgJ2xpbmUtc3BhY2luZyBidWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAg IChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ2xpbmUtc3BhY2luZykpKQorICAgICAgICAgICAgICAw KSkpCiAgICAgKCsgZm9udC1oZWlnaHQKICAgICAgICAoaWYgKGZsb2F0cCBzcGFjZS1oZWlnaHQp CiAgICAgICAgICAgICh0cnVuY2F0ZSAoKiAoZnJhbWUtY2hhci1oZWlnaHQgZnJhbWUpIHNwYWNl LWhlaWdodCkpCkBAIC04ODQ2LDMwICs4ODQ2LDMwIEBAIGJ5IHRoYXQgZnJhbWUncyBgZml0LWZy YW1lLXRvLWJ1ZmZlci1tYXJnaW5zJyBwYXJhbWV0ZXIsIGlmCiBwcmVzZW50LiAgU2VlIGFsc28g YGZpdC1mcmFtZS10by1idWZmZXItc2l6ZXMnLiIKICAgOnZlcnNpb24gIjI0LjQiCiAgIDp0eXBl ICcobGlzdAotCSAgKGNob2ljZQotCSAgIDp0YWcgIkxlZnQiCi0JICAgOnZhbHVlIG5pbAotCSAg IDpmb3JtYXQgIiVbTGVmdE1hcmdpbiVdICV2ICAiCi0JICAgKGNvbnN0IDp0YWcgIk5vbmUiIDpm b3JtYXQgIiV0IiBuaWwpCi0JICAgKGludGVnZXIgOnRhZyAiUGl4ZWxzIiA6c2l6ZSA1KSkKLQkg IChjaG9pY2UKLQkgICA6dGFnICJUb3AiCi0JICAgOnZhbHVlIG5pbAotCSAgIDpmb3JtYXQgIiVb VG9wTWFyZ2luJV0gJXYgICIKLQkgICAoY29uc3QgOnRhZyAiTm9uZSIgOmZvcm1hdCAiJXQiIG5p bCkKLQkgICAoaW50ZWdlciA6dGFnICJQaXhlbHMiIDpzaXplIDUpKQotCSAgKGNob2ljZQotCSAg IDp0YWcgIlJpZ2h0IgotCSAgIDp2YWx1ZSBuaWwKLQkgICA6Zm9ybWF0ICIlW1JpZ2h0TWFyZ2lu JV0gJXYgICIKLQkgICAoY29uc3QgOnRhZyAiTm9uZSIgOmZvcm1hdCAiJXQiIG5pbCkKLQkgICAo aW50ZWdlciA6dGFnICJQaXhlbHMiIDpzaXplIDUpKQotCSAgKGNob2ljZQotCSAgIDp0YWcgIkJv dHRvbSIKLQkgICA6dmFsdWUgbmlsCi0JICAgOmZvcm1hdCAiJVtCb3R0b21NYXJnaW4lXSAldiAg IgotCSAgIChjb25zdCA6dGFnICJOb25lIiA6Zm9ybWF0ICIldCIgbmlsKQotCSAgIChpbnRlZ2Vy IDp0YWcgIlBpeGVscyIgOnNpemUgNSkpKQorICAgICAgICAgIChjaG9pY2UKKyAgICAgICAgICAg OnRhZyAiTGVmdCIKKyAgICAgICAgICAgOnZhbHVlIG5pbAorICAgICAgICAgICA6Zm9ybWF0ICIl W0xlZnRNYXJnaW4lXSAldiAgIgorICAgICAgICAgICAoY29uc3QgOnRhZyAiTm9uZSIgOmZvcm1h dCAiJXQiIG5pbCkKKyAgICAgICAgICAgKGludGVnZXIgOnRhZyAiUGl4ZWxzIiA6c2l6ZSA1KSkK KyAgICAgICAgICAoY2hvaWNlCisgICAgICAgICAgIDp0YWcgIlRvcCIKKyAgICAgICAgICAgOnZh bHVlIG5pbAorICAgICAgICAgICA6Zm9ybWF0ICIlW1RvcE1hcmdpbiVdICV2ICAiCisgICAgICAg ICAgIChjb25zdCA6dGFnICJOb25lIiA6Zm9ybWF0ICIldCIgbmlsKQorICAgICAgICAgICAoaW50 ZWdlciA6dGFnICJQaXhlbHMiIDpzaXplIDUpKQorICAgICAgICAgIChjaG9pY2UKKyAgICAgICAg ICAgOnRhZyAiUmlnaHQiCisgICAgICAgICAgIDp2YWx1ZSBuaWwKKyAgICAgICAgICAgOmZvcm1h dCAiJVtSaWdodE1hcmdpbiVdICV2ICAiCisgICAgICAgICAgIChjb25zdCA6dGFnICJOb25lIiA6 Zm9ybWF0ICIldCIgbmlsKQorICAgICAgICAgICAoaW50ZWdlciA6dGFnICJQaXhlbHMiIDpzaXpl IDUpKQorICAgICAgICAgIChjaG9pY2UKKyAgICAgICAgICAgOnRhZyAiQm90dG9tIgorICAgICAg ICAgICA6dmFsdWUgbmlsCisgICAgICAgICAgIDpmb3JtYXQgIiVbQm90dG9tTWFyZ2luJV0gJXYg ICIKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIk5vbmUiIDpmb3JtYXQgIiV0IiBuaWwpCisgICAg ICAgICAgIChpbnRlZ2VyIDp0YWcgIlBpeGVscyIgOnNpemUgNSkpKQogICA6Z3JvdXAgJ2hlbHAp CiAKIChkZWZjdXN0b20gZml0LWZyYW1lLXRvLWJ1ZmZlci1zaXplcyAnKG5pbCBuaWwgbmlsIG5p bCkKQEAgLTg4ODYsMzAgKzg4ODYsMzAgQEAgYXBwcm9wcmlhdGUgbWluaW11bSB3aWR0aCB2YWx1 ZSBoZXJlIGNhbiBhdm9pZCBzdWNoIHdyYXBwaW5nLgogU2VlIGFsc28gYGZpdC1mcmFtZS10by1i dWZmZXItbWFyZ2lucycuIgogICA6dmVyc2lvbiAiMjQuNCIKICAgOnR5cGUgJyhsaXN0Ci0JICAo Y2hvaWNlCi0JICAgOnRhZyAiTWF4aW11bSBIZWlnaHQiCi0JICAgOnZhbHVlIG5pbAotCSAgIDpm b3JtYXQgIiVbTWF4SGVpZ2h0JV0gJXYgICIKLQkgICAoY29uc3QgOnRhZyAiTm9uZSIgOmZvcm1h dCAiJXQiIG5pbCkKLQkgICAoaW50ZWdlciA6dGFnICJMaW5lcyIgOnNpemUgNSkpCi0JICAoY2hv aWNlCi0JICAgOnRhZyAiTWluaW11bSBIZWlnaHQiCi0JICAgOnZhbHVlIG5pbAotCSAgIDpmb3Jt YXQgIiVbTWluSGVpZ2h0JV0gJXYgICIKLQkgICAoY29uc3QgOnRhZyAiTm9uZSIgOmZvcm1hdCAi JXQiIG5pbCkKLQkgICAoaW50ZWdlciA6dGFnICJMaW5lcyIgOnNpemUgNSkpCi0JICAoY2hvaWNl Ci0JICAgOnRhZyAiTWF4aW11bSBXaWR0aCIKLQkgICA6dmFsdWUgbmlsCi0JICAgOmZvcm1hdCAi JVtNYXhXaWR0aCVdICV2ICAiCi0JICAgKGNvbnN0IDp0YWcgIk5vbmUiIDpmb3JtYXQgIiV0IiBu aWwpCi0JICAgKGludGVnZXIgOnRhZyAiQ29sdW1ucyIgOnNpemUgNSkpCi0JICAoY2hvaWNlCi0J ICAgOnRhZyAiTWluaW11bSBXaWR0aCIKLQkgICA6dmFsdWUgbmlsCi0JICAgOmZvcm1hdCAiJVtN aW5XaWR0aCVdICV2XG4iCi0JICAgKGNvbnN0IDp0YWcgIk5vbmUiIDpmb3JtYXQgIiV0IiBuaWwp Ci0JICAgKGludGVnZXIgOnRhZyAiQ29sdW1ucyIgOnNpemUgNSkpKQorICAgICAgICAgIChjaG9p Y2UKKyAgICAgICAgICAgOnRhZyAiTWF4aW11bSBIZWlnaHQiCisgICAgICAgICAgIDp2YWx1ZSBu aWwKKyAgICAgICAgICAgOmZvcm1hdCAiJVtNYXhIZWlnaHQlXSAldiAgIgorICAgICAgICAgICAo Y29uc3QgOnRhZyAiTm9uZSIgOmZvcm1hdCAiJXQiIG5pbCkKKyAgICAgICAgICAgKGludGVnZXIg OnRhZyAiTGluZXMiIDpzaXplIDUpKQorICAgICAgICAgIChjaG9pY2UKKyAgICAgICAgICAgOnRh ZyAiTWluaW11bSBIZWlnaHQiCisgICAgICAgICAgIDp2YWx1ZSBuaWwKKyAgICAgICAgICAgOmZv cm1hdCAiJVtNaW5IZWlnaHQlXSAldiAgIgorICAgICAgICAgICAoY29uc3QgOnRhZyAiTm9uZSIg OmZvcm1hdCAiJXQiIG5pbCkKKyAgICAgICAgICAgKGludGVnZXIgOnRhZyAiTGluZXMiIDpzaXpl IDUpKQorICAgICAgICAgIChjaG9pY2UKKyAgICAgICAgICAgOnRhZyAiTWF4aW11bSBXaWR0aCIK KyAgICAgICAgICAgOnZhbHVlIG5pbAorICAgICAgICAgICA6Zm9ybWF0ICIlW01heFdpZHRoJV0g JXYgICIKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIk5vbmUiIDpmb3JtYXQgIiV0IiBuaWwpCisg ICAgICAgICAgIChpbnRlZ2VyIDp0YWcgIkNvbHVtbnMiIDpzaXplIDUpKQorICAgICAgICAgIChj aG9pY2UKKyAgICAgICAgICAgOnRhZyAiTWluaW11bSBXaWR0aCIKKyAgICAgICAgICAgOnZhbHVl IG5pbAorICAgICAgICAgICA6Zm9ybWF0ICIlW01pbldpZHRoJV0gJXZcbiIKKyAgICAgICAgICAg KGNvbnN0IDp0YWcgIk5vbmUiIDpmb3JtYXQgIiV0IiBuaWwpCisgICAgICAgICAgIChpbnRlZ2Vy IDp0YWcgIkNvbHVtbnMiIDpzaXplIDUpKSkKICAgOmdyb3VwICdoZWxwKQogCiAoZGVjbGFyZS1m dW5jdGlvbiB4LWRpc3BsYXktcGl4ZWwtaGVpZ2h0ICJ4Zm5zLmMiICgmb3B0aW9uYWwgdGVybWlu YWwpKQpAQCAtOTE3NiwxMiArOTE3NiwxMiBAQCBhY2Nlc3NpYmxlIHBvc2l0aW9uLiIKICAgKHNl dHEgd2luZG93ICh3aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5kb3cgdCkpCiAgIChpZiAoZXEg d2luZG93IChmcmFtZS1yb290LXdpbmRvdyB3aW5kb3cpKQogICAgICAgKHdoZW4gZml0LWZyYW1l LXRvLWJ1ZmZlcgotCTs7IEZpdCBXSU5ET1cncyBmcmFtZSB0byBidWZmZXIuCi0JKGZpdC1mcmFt ZS10by1idWZmZXIKLQkgKHdpbmRvdy1mcmFtZSB3aW5kb3cpCi0JIG1heC1oZWlnaHQgbWluLWhl aWdodCBtYXgtd2lkdGggbWluLXdpZHRoCi0JIChhbmQgKG1lbXEgZml0LWZyYW1lLXRvLWJ1ZmZl ciAnKHZlcnRpY2FsbHkgaG9yaXpvbnRhbGx5KSkKLQkgICAgICBmaXQtZnJhbWUtdG8tYnVmZmVy KSkpCisgICAgICAgIDs7IEZpdCBXSU5ET1cncyBmcmFtZSB0byBidWZmZXIuCisgICAgICAgIChm aXQtZnJhbWUtdG8tYnVmZmVyCisgICAgICAgICAod2luZG93LWZyYW1lIHdpbmRvdykKKyAgICAg ICAgIG1heC1oZWlnaHQgbWluLWhlaWdodCBtYXgtd2lkdGggbWluLXdpZHRoCisgICAgICAgICAo YW5kIChtZW1xIGZpdC1mcmFtZS10by1idWZmZXIgJyh2ZXJ0aWNhbGx5IGhvcml6b250YWxseSkp CisgICAgICAgICAgICAgIGZpdC1mcmFtZS10by1idWZmZXIpKSkKICAgICAobGV0KiAoKHBpeGVs d2lzZSB3aW5kb3ctcmVzaXplLXBpeGVsd2lzZSkKICAgICAgICAgICAgKGZyYW1lICh3aW5kb3ct ZnJhbWUgd2luZG93KSkKICAgICAgICAgICAgKGNoYXItaGVpZ2h0IChmcmFtZS1jaGFyLWhlaWdo dCBmcmFtZSkpKQpAQCAtOTE4OSwxMTEgKzkxODksMTExIEBAIGFjY2Vzc2libGUgcG9zaXRpb24u IgogICAgICAgIDs7IElmIFdJTkRPVyBpcyB2ZXJ0aWNhbGx5IGNvbWJpbmVkLCB0cnkgdG8gcmVz aXplIGl0CiAgICAgICAgOzsgdmVydGljYWxseS4KICAgICAgICAoKGFuZCAobm90IChlcSBmaXQt d2luZG93LXRvLWJ1ZmZlci1ob3Jpem9udGFsbHkgJ29ubHkpKQotCSAgICAgKG5vdCAod2luZG93 LXNpemUtZml4ZWQtcCB3aW5kb3cgJ3ByZXNlcnZlZCkpCi0JICAgICAod2luZG93LWNvbWJpbmVk LXAgd2luZG93KSkKKyAgICAgICAgICAgICAobm90ICh3aW5kb3ctc2l6ZS1maXhlZC1wIHdpbmRv dyAncHJlc2VydmVkKSkKKyAgICAgICAgICAgICAod2luZG93LWNvbWJpbmVkLXAgd2luZG93KSkK ICAgICAgICAgKGxldCogKChsaW5lLWhlaWdodCAod2luZG93LWRlZmF1bHQtbGluZS1oZWlnaHQg d2luZG93KSkKLQkgICAgICAgKHRvdGFsLWhlaWdodCAod2luZG93LXNpemUgd2luZG93IG5pbCBw aXhlbHdpc2UpKQorICAgICAgICAgICAgICAgKHRvdGFsLWhlaWdodCAod2luZG93LXNpemUgd2lu ZG93IG5pbCBwaXhlbHdpc2UpKQogICAgICAgICAgICAgICAgKG1pbi1oZWlnaHQKLQkgICAgICAg IDs7IFNhbml0aXplIE1JTi1IRUlHSFQuCi0JICAgICAgICAoaWYgKG51bWJlcnAgbWluLWhlaWdo dCkKLQkgICAgICAgICAgICA7OyBDYW4ndCBnZXQgc21hbGxlciB0aGFuIGB3aW5kb3ctc2FmZS1t aW4taGVpZ2h0Jy4KLQkgICAgICAgICAgICAobWF4IChpZiBwaXhlbHdpc2UKLQkJCSAgICAgKCog bGluZS1oZWlnaHQgbWluLWhlaWdodCkKLQkJICAgICAgICAgICBtaW4taGVpZ2h0KQotCQkgICAg ICAgICAoaWYgcGl4ZWx3aXNlCi0JCQkgICAgICh3aW5kb3ctc2FmZS1taW4tcGl4ZWwtaGVpZ2h0 IHdpbmRvdykKLQkJICAgICAgICAgICB3aW5kb3ctc2FmZS1taW4taGVpZ2h0KSkKLQkgICAgICAg ICAgOzsgUHJlc2VydmUgaGVhZGVyIGFuZCBtb2RlIGxpbmUgaWYgcHJlc2VudC4KLQkgICAgICAg ICAgKG1heCAoaWYgcGl4ZWx3aXNlCi0JCSAgICAgICAgICAgKCogbGluZS1oZWlnaHQgd2luZG93 LW1pbi1oZWlnaHQpCi0JCSAgICAgICAgIHdpbmRvdy1taW4taGVpZ2h0KQotCQkgICAgICAgKHdp bmRvdy1taW4tc2l6ZSB3aW5kb3cgbmlsIHdpbmRvdyBwaXhlbHdpc2UpKSkpCi0JICAgICAgICht YXgtaGVpZ2h0Ci0JICAgICAgICA7OyBTYW5pdGl6ZSBNQVgtSEVJR0hULgotCSAgICAgICAgKGlm IChudW1iZXJwIG1heC1oZWlnaHQpCi0JICAgICAgICAgICAgKG1pbgotCQkgICAgICgrIHRvdGFs LWhlaWdodAotCQkgICAgICAgICh3aW5kb3ctbWF4LWRlbHRhCi0JCSAgICAgICAgIHdpbmRvdyBu aWwgd2luZG93IG5pbCB0IG5pbCBwaXhlbHdpc2UpKQotCQkgICAgIChpZiBwaXhlbHdpc2UKLQkJ ICAgICAgICAgKCogbGluZS1oZWlnaHQgbWF4LWhlaWdodCkKLQkJICAgICAgICgvICgqIGxpbmUt aGVpZ2h0IG1heC1oZWlnaHQpIGxpbmUtaGVpZ2h0KSkpCi0JICAgICAgICAgICgrIHRvdGFsLWhl aWdodCAod2luZG93LW1heC1kZWx0YQotCQkJICAgICAgICAgICB3aW5kb3cgbmlsIHdpbmRvdyBu aWwgdCBuaWwgcGl4ZWx3aXNlKSkpKQotCSAgICAgICAoaGVpZ2h0ICgrIChjZHIgKHdpbmRvdy10 ZXh0LXBpeGVsLXNpemUKLQkJCSAgICAgICAgd2luZG93IG5pbCB0IG5pbCAoZnJhbWUtcGl4ZWwt aGVpZ2h0IGZyYW1lKSB0KSkKLQkJICAgICAgICAgICh3aW5kb3ctc2Nyb2xsLWJhci1oZWlnaHQg d2luZG93KQotCQkgICAgICAgICAgKHdpbmRvdy1ib3R0b20tZGl2aWRlci13aWR0aCB3aW5kb3cp KSkpCi0JICA7OyBWZXJ0aWNhbGx5IHdlIGFsd2F5cyB3YW50IHRvIGZpdCB0aGUgZW50aXJlIGJ1 ZmZlci4KLQkgIDs7IFdJTkRPVydTIGhlaWdodCBjYW4ndCBnZXQgbGFyZ2VyIHRoYW4gaXRzIGZy YW1lJ3MgcGl4ZWwKLQkgIDs7IGhlaWdodC4gIEl0cyB3aWR0aCByZW1haW5zIGZpeGVkLgotCSAg OzsgUm91bmQgaGVpZ2h0LgotCSAgKHVubGVzcyBwaXhlbHdpc2UKLQkgICAgKHNldHEgaGVpZ2h0 ICgvICgrIGhlaWdodCBjaGFyLWhlaWdodCAtMSkgY2hhci1oZWlnaHQpKSkKKyAgICAgICAgICAg ICAgICA7OyBTYW5pdGl6ZSBNSU4tSEVJR0hULgorICAgICAgICAgICAgICAgIChpZiAobnVtYmVy cCBtaW4taGVpZ2h0KQorICAgICAgICAgICAgICAgICAgICA7OyBDYW4ndCBnZXQgc21hbGxlciB0 aGFuIGB3aW5kb3ctc2FmZS1taW4taGVpZ2h0Jy4KKyAgICAgICAgICAgICAgICAgICAgKG1heCAo aWYgcGl4ZWx3aXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIGxpbmUtaGVpZ2h0 IG1pbi1oZWlnaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0KQorICAg ICAgICAgICAgICAgICAgICAgICAgIChpZiBwaXhlbHdpc2UKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHdpbmRvdy1zYWZlLW1pbi1waXhlbC1oZWlnaHQgd2luZG93KQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgd2luZG93LXNhZmUtbWluLWhlaWdodCkpCisgICAgICAgICAgICAg ICAgICA7OyBQcmVzZXJ2ZSBoZWFkZXIgYW5kIG1vZGUgbGluZSBpZiBwcmVzZW50LgorICAgICAg ICAgICAgICAgICAgKG1heCAoaWYgcGl4ZWx3aXNlCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAoKiBsaW5lLWhlaWdodCB3aW5kb3ctbWluLWhlaWdodCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICB3aW5kb3ctbWluLWhlaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1t aW4tc2l6ZSB3aW5kb3cgbmlsIHdpbmRvdyBwaXhlbHdpc2UpKSkpCisgICAgICAgICAgICAgICAo bWF4LWhlaWdodAorICAgICAgICAgICAgICAgIDs7IFNhbml0aXplIE1BWC1IRUlHSFQuCisgICAg ICAgICAgICAgICAgKGlmIChudW1iZXJwIG1heC1oZWlnaHQpCisgICAgICAgICAgICAgICAgICAg IChtaW4KKyAgICAgICAgICAgICAgICAgICAgICgrIHRvdGFsLWhlaWdodAorICAgICAgICAgICAg ICAgICAgICAgICAgKHdpbmRvdy1tYXgtZGVsdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICB3 aW5kb3cgbmlsIHdpbmRvdyBuaWwgdCBuaWwgcGl4ZWx3aXNlKSkKKyAgICAgICAgICAgICAgICAg ICAgIChpZiBwaXhlbHdpc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKiBsaW5lLWhlaWdo dCBtYXgtaGVpZ2h0KQorICAgICAgICAgICAgICAgICAgICAgICAoLyAoKiBsaW5lLWhlaWdodCBt YXgtaGVpZ2h0KSBsaW5lLWhlaWdodCkpKQorICAgICAgICAgICAgICAgICAgKCsgdG90YWwtaGVp Z2h0ICh3aW5kb3ctbWF4LWRlbHRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHdpbmRvdyBuaWwgd2luZG93IG5pbCB0IG5pbCBwaXhlbHdpc2UpKSkpCisgICAgICAgICAgICAg ICAoaGVpZ2h0ICgrIChjZHIgKHdpbmRvdy10ZXh0LXBpeGVsLXNpemUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd2luZG93IG5pbCB0IG5pbCAoZnJhbWUtcGl4ZWwtaGVpZ2h0IGZy YW1lKSB0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1zY3JvbGwtYmFyLWhl aWdodCB3aW5kb3cpCisgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctYm90dG9tLWRp dmlkZXItd2lkdGggd2luZG93KSkpKQorICAgICAgICAgIDs7IFZlcnRpY2FsbHkgd2UgYWx3YXlz IHdhbnQgdG8gZml0IHRoZSBlbnRpcmUgYnVmZmVyLgorICAgICAgICAgIDs7IFdJTkRPVydTIGhl aWdodCBjYW4ndCBnZXQgbGFyZ2VyIHRoYW4gaXRzIGZyYW1lJ3MgcGl4ZWwKKyAgICAgICAgICA7 OyBoZWlnaHQuICBJdHMgd2lkdGggcmVtYWlucyBmaXhlZC4KKyAgICAgICAgICA7OyBSb3VuZCBo ZWlnaHQuCisgICAgICAgICAgKHVubGVzcyBwaXhlbHdpc2UKKyAgICAgICAgICAgIChzZXRxIGhl aWdodCAoLyAoKyBoZWlnaHQgY2hhci1oZWlnaHQgLTEpIGNoYXItaGVpZ2h0KSkpCiAgICAgICAg ICAgKHNldHEgaGVpZ2h0IChtYXggbWluLWhlaWdodCAobWluIG1heC1oZWlnaHQgaGVpZ2h0KSkp Ci0JICAodW5sZXNzICg9IGhlaWdodCB0b3RhbC1oZWlnaHQpCi0JICAgICh3aW5kb3ctcHJlc2Vy dmUtc2l6ZSB3aW5kb3cpCi0JICAgICh3aW5kb3ctcmVzaXplLW5vLWVycm9yCi0JICAgICB3aW5k b3cgKC0gaGVpZ2h0IHRvdGFsLWhlaWdodCkgbmlsIHdpbmRvdyBwaXhlbHdpc2UpCi0JICAgICh3 aGVuIHByZXNlcnZlLXNpemUKLQkgICAgICAod2luZG93LXByZXNlcnZlLXNpemUgd2luZG93IG5p bCB0KSkpKSkKKyAgICAgICAgICAodW5sZXNzICg9IGhlaWdodCB0b3RhbC1oZWlnaHQpCisgICAg ICAgICAgICAod2luZG93LXByZXNlcnZlLXNpemUgd2luZG93KQorICAgICAgICAgICAgKHdpbmRv dy1yZXNpemUtbm8tZXJyb3IKKyAgICAgICAgICAgICB3aW5kb3cgKC0gaGVpZ2h0IHRvdGFsLWhl aWdodCkgbmlsIHdpbmRvdyBwaXhlbHdpc2UpCisgICAgICAgICAgICAod2hlbiBwcmVzZXJ2ZS1z aXplCisgICAgICAgICAgICAgICh3aW5kb3ctcHJlc2VydmUtc2l6ZSB3aW5kb3cgbmlsIHQpKSkp KQogICAgICAgIDs7IElmIFdJTkRPVyBpcyBob3Jpem9udGFsbHkgY29tYmluZWQsIHRyeSB0byBy ZXNpemUgaXQKICAgICAgICA7OyBob3Jpem9udGFsbHkuCiAgICAgICAgKChhbmQgZml0LXdpbmRv dy10by1idWZmZXItaG9yaXpvbnRhbGx5Ci0JICAgICAobm90ICh3aW5kb3ctc2l6ZS1maXhlZC1w IHdpbmRvdyB0ICdwcmVzZXJ2ZWQpKQotCSAgICAgKHdpbmRvdy1jb21iaW5lZC1wIHdpbmRvdyB0 KSkKLQkobGV0KiAoKGNoYXItd2lkdGggKGZyYW1lLWNoYXItd2lkdGggZnJhbWUpKQorICAgICAg ICAgICAgIChub3QgKHdpbmRvdy1zaXplLWZpeGVkLXAgd2luZG93IHQgJ3ByZXNlcnZlZCkpCisg ICAgICAgICAgICAgKHdpbmRvdy1jb21iaW5lZC1wIHdpbmRvdyB0KSkKKyAgICAgICAgKGxldCog KChjaGFyLXdpZHRoIChmcmFtZS1jaGFyLXdpZHRoIGZyYW1lKSkKICAgICAgICAgICAgICAgICh0 b3RhbC13aWR0aCAod2luZG93LXNpemUgd2luZG93IHQgcGl4ZWx3aXNlKSkKLQkgICAgICAgKG1p bi13aWR0aAotCQk7OyBTYW5pdGl6ZSBNSU4tV0lEVEguCi0JCShpZiAobnVtYmVycCBtaW4td2lk dGgpCi0JCSAgICA7OyBDYW4ndCBnZXQgc21hbGxlciB0aGFuIGB3aW5kb3ctc2FmZS1taW4td2lk dGgnLgotCQkgICAgKG1heCAoaWYgcGl4ZWx3aXNlCi0JCQkgICAgICgqIGNoYXItd2lkdGggbWlu LXdpZHRoKQotCQkJICAgbWluLXdpZHRoKQotCQkJIChpZiBwaXhlbHdpc2UKLQkJCSAgICAgKHdp bmRvdy1zYWZlLW1pbi1waXhlbC13aWR0aCB3aW5kb3cpCi0JCQkgICB3aW5kb3ctc2FmZS1taW4t d2lkdGgpKQotCQkgIDs7IFByZXNlcnZlIGZyaW5nZXMsIG1hcmdpbnMsIHNjcm9sbGJhcnMgaWYg cHJlc2VudC4KLQkJICAobWF4IChpZiBwaXhlbHdpc2UKLQkJCSAgICgqIGNoYXItd2lkdGggd2lu ZG93LW1pbi13aWR0aCkKLQkJCSB3aW5kb3ctbWluLXdpZHRoKQotCQkgICAgICAgKHdpbmRvdy1t aW4tc2l6ZSB3aW5kb3cgbmlsIHdpbmRvdyBwaXhlbHdpc2UpKSkpCi0JICAgICAgIChtYXgtd2lk dGgKLQkJOzsgU2FuaXRpemUgTUFYLVdJRFRILgotCQkoaWYgKG51bWJlcnAgbWF4LXdpZHRoKQot CQkgICAgKG1pbiAoKyB0b3RhbC13aWR0aAotCQkJICAgICh3aW5kb3ctbWF4LWRlbHRhCi0JCQkg ICAgIHdpbmRvdyB0IHdpbmRvdyBuaWwgdCBuaWwgcGl4ZWx3aXNlKSkKLQkJCSAoaWYgcGl4ZWx3 aXNlCi0JCQkgICAgICgqIGNoYXItd2lkdGggbWF4LXdpZHRoKQotCQkJICAgbWF4LXdpZHRoKSkK LQkJICAoKyB0b3RhbC13aWR0aCAod2luZG93LW1heC1kZWx0YQotCQkJCSAgd2luZG93IHQgd2lu ZG93IG5pbCB0IG5pbCBwaXhlbHdpc2UpKSkpCi0JICAgICAgIDs7IFdoZW4gZml0dGluZyBob3Jp em9udGFsbHksIGFzc3VtZSB0aGF0IFdJTkRPVydzCi0JICAgICAgIDs7IHN0YXJ0IHBvc2l0aW9u IHJlbWFpbnMgdW5hbHRlcmVkLiAgV0lORE9XIGNhbid0IGdldAotCSAgICAgICA7OyB3aWRlciB0 aGFuIGl0cyBmcmFtZSdzIHBpeGVsIHdpZHRoLCBpdHMgaGVpZ2h0Ci0JICAgICAgIDs7IHJlbWFp bnMgdW5hbHRlcmVkLgotCSAgICAgICAod2lkdGggKCsgKGNhciAod2luZG93LXRleHQtcGl4ZWwt c2l6ZQotCQkJICAgICAgIHdpbmRvdyAod2luZG93LXN0YXJ0IHdpbmRvdykgbmlsCi0JCQkgICAg ICAgKGZyYW1lLXBpeGVsLXdpZHRoICh3aW5kb3ctZnJhbWUgd2luZG93KSkKLQkJCSAgICAgICA7 OyBBZGQgb25lIGxpbmUtaGVpZ2h0IHRvIGFzc3VyZSB0aGF0Ci0JCQkgICAgICAgOzsgd2UncmUg b24gdGhlIHNhZmUgc2lkZS4gIFRoaXMKLQkJCSAgICAgICA7OyBvdmVyc2hvb3RzIHdoZW4gdGhl IGZpcnN0IGxpbmUgYmVsb3cKLQkJCSAgICAgICA7OyB0aGUgYm90dG9tIGlzIHdpZGVyIHRoYW4g dGhlIHdpbmRvdy4KLQkJCSAgICAgICAoKiAod2luZG93LWJvZHktaGVpZ2h0IHdpbmRvdyBwaXhl bHdpc2UpCi0JCQkJICAoaWYgcGl4ZWx3aXNlIDEgY2hhci1oZWlnaHQpKSkpCisgICAgICAgICAg ICAgICAobWluLXdpZHRoCisgICAgICAgICAgICAgICAgOzsgU2FuaXRpemUgTUlOLVdJRFRILgor ICAgICAgICAgICAgICAgIChpZiAobnVtYmVycCBtaW4td2lkdGgpCisgICAgICAgICAgICAgICAg ICAgIDs7IENhbid0IGdldCBzbWFsbGVyIHRoYW4gYHdpbmRvdy1zYWZlLW1pbi13aWR0aCcuCisg ICAgICAgICAgICAgICAgICAgIChtYXggKGlmIHBpeGVsd2lzZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoKiBjaGFyLXdpZHRoIG1pbi13aWR0aCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1pbi13aWR0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgcGl4ZWx3aXNl CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctc2FmZS1taW4tcGl4ZWwtd2lk dGggd2luZG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LXNhZmUtbWluLXdp ZHRoKSkKKyAgICAgICAgICAgICAgICAgIDs7IFByZXNlcnZlIGZyaW5nZXMsIG1hcmdpbnMsIHNj cm9sbGJhcnMgaWYgcHJlc2VudC4KKyAgICAgICAgICAgICAgICAgIChtYXggKGlmIHBpeGVsd2lz ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogY2hhci13aWR0aCB3aW5kb3ctbWluLXdp ZHRoKQorICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy1taW4td2lkdGgpCisgICAgICAg ICAgICAgICAgICAgICAgICh3aW5kb3ctbWluLXNpemUgd2luZG93IG5pbCB3aW5kb3cgcGl4ZWx3 aXNlKSkpKQorICAgICAgICAgICAgICAgKG1heC13aWR0aAorICAgICAgICAgICAgICAgIDs7IFNh bml0aXplIE1BWC1XSURUSC4KKyAgICAgICAgICAgICAgICAoaWYgKG51bWJlcnAgbWF4LXdpZHRo KQorICAgICAgICAgICAgICAgICAgICAobWluICgrIHRvdGFsLXdpZHRoCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHdpbmRvdy1tYXgtZGVsdGEKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgd2luZG93IHQgd2luZG93IG5pbCB0IG5pbCBwaXhlbHdpc2UpKQorICAgICAgICAgICAg ICAgICAgICAgICAgIChpZiBwaXhlbHdpc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCogY2hhci13aWR0aCBtYXgtd2lkdGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgt d2lkdGgpKQorICAgICAgICAgICAgICAgICAgKCsgdG90YWwtd2lkdGggKHdpbmRvdy1tYXgtZGVs dGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cgdCB3aW5kb3cgbmls IHQgbmlsIHBpeGVsd2lzZSkpKSkKKyAgICAgICAgICAgICAgIDs7IFdoZW4gZml0dGluZyBob3Jp em9udGFsbHksIGFzc3VtZSB0aGF0IFdJTkRPVydzCisgICAgICAgICAgICAgICA7OyBzdGFydCBw b3NpdGlvbiByZW1haW5zIHVuYWx0ZXJlZC4gIFdJTkRPVyBjYW4ndCBnZXQKKyAgICAgICAgICAg ICAgIDs7IHdpZGVyIHRoYW4gaXRzIGZyYW1lJ3MgcGl4ZWwgd2lkdGgsIGl0cyBoZWlnaHQKKyAg ICAgICAgICAgICAgIDs7IHJlbWFpbnMgdW5hbHRlcmVkLgorICAgICAgICAgICAgICAgKHdpZHRo ICgrIChjYXIgKHdpbmRvdy10ZXh0LXBpeGVsLXNpemUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3aW5kb3cgKHdpbmRvdy1zdGFydCB3aW5kb3cpIG5pbAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChmcmFtZS1waXhlbC13aWR0aCAod2luZG93LWZyYW1lIHdpbmRvdykp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgQWRkIG9uZSBsaW5lLWhlaWdodCB0 byBhc3N1cmUgdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHdlJ3JlIG9u IHRoZSBzYWZlIHNpZGUuICBUaGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg b3ZlcnNob290cyB3aGVuIHRoZSBmaXJzdCBsaW5lIGJlbG93CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOzsgdGhlIGJvdHRvbSBpcyB3aWRlciB0aGFuIHRoZSB3aW5kb3cuCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogKHdpbmRvdy1ib2R5LWhlaWdodCB3aW5kb3cg cGl4ZWx3aXNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBwaXhlbHdp c2UgMSBjaGFyLWhlaWdodCkpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAoLSB0b3RhbC13 aWR0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctYm9keS13aWR0aCB3aW5k b3cgcGl4ZWx3aXNlKSkpKSkKLQkgICh1bmxlc3MgcGl4ZWx3aXNlCi0JICAgIChzZXRxIHdpZHRo ICgvICgrIHdpZHRoIGNoYXItd2lkdGggLTEpIGNoYXItd2lkdGgpKSkKKyAgICAgICAgICAodW5s ZXNzIHBpeGVsd2lzZQorICAgICAgICAgICAgKHNldHEgd2lkdGggKC8gKCsgd2lkdGggY2hhci13 aWR0aCAtMSkgY2hhci13aWR0aCkpKQogICAgICAgICAgIChzZXRxIHdpZHRoIChtYXggbWluLXdp ZHRoIChtaW4gbWF4LXdpZHRoIHdpZHRoKSkpCi0JICAodW5sZXNzICg9IHdpZHRoIHRvdGFsLXdp ZHRoKQotCSAgICAod2luZG93LXByZXNlcnZlLXNpemUgd2luZG93IHQpCi0JICAgICh3aW5kb3ct cmVzaXplLW5vLWVycm9yCisgICAgICAgICAgKHVubGVzcyAoPSB3aWR0aCB0b3RhbC13aWR0aCkK KyAgICAgICAgICAgICh3aW5kb3ctcHJlc2VydmUtc2l6ZSB3aW5kb3cgdCkKKyAgICAgICAgICAg ICh3aW5kb3ctcmVzaXplLW5vLWVycm9yCiAgICAgICAgICAgICAgd2luZG93ICgtIHdpZHRoIHRv dGFsLXdpZHRoKSB0IHdpbmRvdyBwaXhlbHdpc2UpCi0JICAgICh3aGVuIHByZXNlcnZlLXNpemUK LQkgICAgICAod2luZG93LXByZXNlcnZlLXNpemUgd2luZG93IHQgdCkpKSkpKSkpKQorICAgICAg ICAgICAgKHdoZW4gcHJlc2VydmUtc2l6ZQorICAgICAgICAgICAgICAod2luZG93LXByZXNlcnZl LXNpemUgd2luZG93IHQgdCkpKSkpKSkpKQogCiAoZGVmdW4gd2luZG93LXNhZmVseS1zaHJpbmth YmxlLXAgKCZvcHRpb25hbCB3aW5kb3cpCiAgICJSZXR1cm4gdCBpZiBXSU5ET1cgY2FuIGJlIHNo cnVuayB3aXRob3V0IHNocmlua2luZyBvdGhlciB3aW5kb3dzLgpAQCAtOTMwMSw3ICs5MzAxLDcg QEAgV0lORE9XIGRlZmF1bHRzIHRvIHRoZSBzZWxlY3RlZCB3aW5kb3cuIgogICAod2l0aC1zZWxl Y3RlZC13aW5kb3cgKG9yIHdpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkKICAgICAobGV0ICgoZWRn ZXMgKHdpbmRvdy1lZGdlcykpKQogICAgICAgKG9yICg9IChudGggMiBlZGdlcykgKG50aCAyICh3 aW5kb3ctZWRnZXMgKHByZXZpb3VzLXdpbmRvdykpKSkKLQkgICg9IChudGggMCBlZGdlcykgKG50 aCAwICh3aW5kb3ctZWRnZXMgKG5leHQtd2luZG93KSkpKSkpKSkKKyAgICAgICAgICAoPSAobnRo IDAgZWRnZXMpIChudGggMCAod2luZG93LWVkZ2VzIChuZXh0LXdpbmRvdykpKSkpKSkpCiAKIChk ZWZ1biBzaHJpbmstd2luZG93LWlmLWxhcmdlci10aGFuLWJ1ZmZlciAoJm9wdGlvbmFsIHdpbmRv dykKICAgIlNocmluayBoZWlnaHQgb2YgV0lORE9XIGlmIGl0cyBidWZmZXIgZG9lc24ndCBuZWVk IHNvIG1hbnkgbGluZXMuCkBAIC05MzIyLDcgKzkzMjIsNyBAQCBSZXR1cm4gbm9uLW5pbCBpZiB0 aGUgd2luZG93IHdhcyBzaHJ1bmssIG5pbCBvdGhlcndpc2UuIgogICA7OyB2aXNpYmxlIChmb3Ig d2hhdGV2ZXIgcmVhc29uIHRoYXQncyBuZWVkZWQpLiAgVGhlIHJlbWFpbmluZyBpc3N1ZXMKICAg Ozsgc2hvdWxkIGJlIHRha2VuIGNhcmUgb2YgYnkgYGZpdC13aW5kb3ctdG8tYnVmZmVyJy4KICAg KHdoZW4gKGFuZCAod2luZG93LWNvbWJpbmVkLXAgd2luZG93KQotCSAgICAgKHBvcy12aXNpYmxl LWluLXdpbmRvdy1wIChwb2ludC1taW4pIHdpbmRvdykpCisgICAgICAgICAgICAgKHBvcy12aXNp YmxlLWluLXdpbmRvdy1wIChwb2ludC1taW4pIHdpbmRvdykpCiAgICAgKGZpdC13aW5kb3ctdG8t YnVmZmVyIHdpbmRvdyAod2luZG93LXRvdGFsLWhlaWdodCB3aW5kb3cpKSkpCiAKIChkZWZ1biB3 aW5kb3ctbGFyZ2VzdC1lbXB0eS1yZWN0YW5nbGUtLW1heGltdW1zLTEgKHF1YWQgbWF4aW11bXMp CkBAIC05MzM0LDcgKzkzMzQsNyBAQCBSZXR1cm4gbm9uLW5pbCBpZiB0aGUgd2luZG93IHdhcyBz aHJ1bmssIG5pbCBvdGhlcndpc2UuIgogICAgIChjb25zIHF1YWQgbWF4aW11bXMpKQogICAgKHQK ICAgICAoY29ucyAoY2FyIG1heGltdW1zKQotCSAgKHdpbmRvdy1sYXJnZXN0LWVtcHR5LXJlY3Rh bmdsZS0tbWF4aW11bXMtMSBxdWFkIChjZHIgbWF4aW11bXMpKSkpKSkKKyAgICAgICAgICAod2lu ZG93LWxhcmdlc3QtZW1wdHktcmVjdGFuZ2xlLS1tYXhpbXVtcy0xIHF1YWQgKGNkciBtYXhpbXVt cykpKSkpKQogCiAoZGVmdW4gd2luZG93LWxhcmdlc3QtZW1wdHktcmVjdGFuZ2xlLS1tYXhpbXVt cyAocXVhZCBtYXhpbXVtcyBjb3VudCkKICAgIlN1cHBvcnQgZnVuY3Rpb24gZm9yIGB3aW5kb3ct bGFyZ2VzdC1lbXB0eS1yZWN0YW5nbGUnLiIKQEAgLTkzNDcsMjEgKzkzNDcsMjEgQEAgUmV0dXJu IG5vbi1uaWwgaWYgdGhlIHdpbmRvdyB3YXMgc2hydW5rLCBuaWwgb3RoZXJ3aXNlLiIKICAgIlN1 cHBvcnQgZnVuY3Rpb24gZm9yIGB3aW5kb3ctbGFyZ2VzdC1lbXB0eS1yZWN0YW5nbGUnLiIKICAg KHNldHEgbWF4aW11bXMgKHNvcnQgbWF4aW11bXMgKGxhbWJkYSAoeCB5KSAoPiAoY2FyIHgpIChj YXIgeSkpKSkpCiAgIChsZXQgKChuZXctbGVuZ3RoIDApCi0JbmV3LW1heGltdW1zKQorICAgICAg ICBuZXctbWF4aW11bXMpCiAgICAgKHdoaWxlIChhbmQgbWF4aW11bXMgKDwgbmV3LWxlbmd0aCBj b3VudCkpCiAgICAgICAobGV0KiAoKG1heGltdW0gKGNhciBtYXhpbXVtcykpCi0JICAgICAoYXQg KG50aCAyIG1heGltdW0pKQotCSAgICAgKHRvIChudGggMyBtYXhpbXVtKSkpCi0JKGNhdGNoICdk cm9wCi0JICAoZG9saXN0IChuZXctbWF4aW11bSBuZXctbWF4aW11bXMpCi0JICAgIChsZXQgKChu ZXctYXQgKG50aCAyIG5ldy1tYXhpbXVtKSkKLQkJICAobmV3LXRvIChudGggMyBuZXctbWF4aW11 bSkpKQotCSAgICAgICh3aGVuIChpZiAoPCBhdCBuZXctYXQpICg+IHRvIG5ldy1hdCkgKDwgYXQg bmV3LXRvKSkKLQkJOzsgSW50ZXJzZWN0aW9uIC0+IGRyb3AuCi0JCSh0aHJvdyAnZHJvcCBuaWwp KSkpCi0JICAoc2V0cSBuZXctbWF4aW11bXMgKGNvbnMgbWF4aW11bSBuZXctbWF4aW11bXMpKQot CSAgKHNldHEgbmV3LWxlbmd0aCAoMSsgbmV3LWxlbmd0aCkpKQotCShzZXRxIG1heGltdW1zIChj ZHIgbWF4aW11bXMpKSkpCisgICAgICAgICAgICAgKGF0IChudGggMiBtYXhpbXVtKSkKKyAgICAg ICAgICAgICAodG8gKG50aCAzIG1heGltdW0pKSkKKyAgICAgICAgKGNhdGNoICdkcm9wCisgICAg ICAgICAgKGRvbGlzdCAobmV3LW1heGltdW0gbmV3LW1heGltdW1zKQorICAgICAgICAgICAgKGxl dCAoKG5ldy1hdCAobnRoIDIgbmV3LW1heGltdW0pKQorICAgICAgICAgICAgICAgICAgKG5ldy10 byAobnRoIDMgbmV3LW1heGltdW0pKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGlmICg8IGF0IG5l dy1hdCkgKD4gdG8gbmV3LWF0KSAoPCBhdCBuZXctdG8pKQorICAgICAgICAgICAgICAgIDs7IElu dGVyc2VjdGlvbiAtPiBkcm9wLgorICAgICAgICAgICAgICAgICh0aHJvdyAnZHJvcCBuaWwpKSkp CisgICAgICAgICAgKHNldHEgbmV3LW1heGltdW1zIChjb25zIG1heGltdW0gbmV3LW1heGltdW1z KSkKKyAgICAgICAgICAoc2V0cSBuZXctbGVuZ3RoICgxKyBuZXctbGVuZ3RoKSkpCisgICAgICAg IChzZXRxIG1heGltdW1zIChjZHIgbWF4aW11bXMpKSkpCiAKICAgICAobnJldmVyc2UgbmV3LW1h eGltdW1zKSkpCiAKQEAgLTk0MDAsOTAgKzk0MDAsOTAgQEAgYnVmZmVycyBkaXNwbGF5aW5nIHJp Z2h0IHRvIGxlZnQgdGV4dC4iCiAgIDs7IFByb2Nlc3MgbGluZXMgYXMgcmV0dXJuZWQgYnkg4oCY d2luZG93LWxpbmVzLXBpeGVsLWRpbWVuc2lvbnPigJkuCiAgIDs7IFNUQUNLIGlzIGEgc3RhY2sg dGhhdCBjb250YWlucyByb3dzIHRoYXQgaGF2ZSB5ZXQgdG8gYmUgcHJvY2Vzc2VkLgogICAobGV0 KiAoKHdpbmRvdyAod2luZG93LW5vcm1hbGl6ZS13aW5kb3cgd2luZG93IHQpKQotCSAoZGlzam9p bnQgKGFuZCAoY29uc3AgY291bnQpIChjZHIgY291bnQpKSkKLQkgKGNvdW50IChvciAoYW5kIChu dW1iZXJwIGNvdW50KSBjb3VudCkKLQkJICAgIChhbmQgKGNvbnNwIGNvdW50KSAobnVtYmVycCAo Y2FyIGNvdW50KSkgKGNhciBjb3VudCkpKSkKLQkgKHJvd3MgKHdpbmRvdy1saW5lcy1waXhlbC1k aW1lbnNpb25zIHdpbmRvdyBuaWwgbmlsIHQgdCBsZWZ0KSkKLQkgKHJvd3MtYXQgMCkKLQkgKG1h eC1zaXplIDApCi0JIHJvdyBzdGFjayBzdGFjay1hdCBzdGFjay10bwotCSB0b3AgdG9wLXdpZHRo IHRvcC1hdCB0b3AtdG8gdG9wLXNpemUKLQkgbWF4LXdpZHRoIG1heC1hdCBtYXgtdG8gbWF4aW11 bXMpCisgICAgICAgICAoZGlzam9pbnQgKGFuZCAoY29uc3AgY291bnQpIChjZHIgY291bnQpKSkK KyAgICAgICAgIChjb3VudCAob3IgKGFuZCAobnVtYmVycCBjb3VudCkgY291bnQpCisgICAgICAg ICAgICAgICAgICAgIChhbmQgKGNvbnNwIGNvdW50KSAobnVtYmVycCAoY2FyIGNvdW50KSkgKGNh ciBjb3VudCkpKSkKKyAgICAgICAgIChyb3dzICh3aW5kb3ctbGluZXMtcGl4ZWwtZGltZW5zaW9u cyB3aW5kb3cgbmlsIG5pbCB0IHQgbGVmdCkpCisgICAgICAgICAocm93cy1hdCAwKQorICAgICAg ICAgKG1heC1zaXplIDApCisgICAgICAgICByb3cgc3RhY2sgc3RhY2stYXQgc3RhY2stdG8KKyAg ICAgICAgIHRvcCB0b3Atd2lkdGggdG9wLWF0IHRvcC10byB0b3Atc2l6ZQorICAgICAgICAgbWF4 LXdpZHRoIG1heC1hdCBtYXgtdG8gbWF4aW11bXMpCiAgICAgOzsgUk9XUy1BVCBpcyB0aGUgcG9z aXRpb24gd2hlcmUgdGhlIGZpcnN0IGVsZW1lbnQgb2YgUk9XUyBzdGFydHMuCiAgICAgOzsgU1RB Q0stQVQgaXMgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBmaXJzdCBlbGVtZW50IG9mIFNUQUNLIHN0 YXJ0cy4KICAgICAod2hpbGUgcm93cwogICAgICAgKHNldHEgcm93IChjYXIgcm93cykpCiAgICAg ICAoaWYgKG9yIChub3Qgc3RhY2spICg+PSAoY2FyIHJvdykgKGNhYXIgc3RhY2spKSkKLQkgIChw cm9nbgotCSAgICAodW5sZXNzIHN0YWNrCi0JICAgICAgKHNldHEgc3RhY2stYXQgcm93cy1hdCkp Ci0JICAgIChzZXRxIHN0YWNrIChjb25zIHJvdyBzdGFjaykpCi0JICAgIDs7IFNldCBST1dTLUFU IHRvIHdoZXJlIHRoZSBmaXJzdCBlbGVtZW50IG9mIFJPV1MgZW5kcwotCSAgICA7OyB3aGljaCwg YWZ0ZXIgcG9wcGluZyBST1csIG1ha2VzIGl0IHRoZSBzdGFydCBwb3NpdGlvbiBvZgotCSAgICA7 OyB0aGUgbmV4dCBST1cuCi0JICAgIChzZXRxIHJvd3MtYXQgKGNkciByb3cpKQotCSAgICAoc2V0 cSByb3dzIChjZHIgcm93cykpKQotCShzZXRxIHRvcCAoY2FyIHN0YWNrKSkKLQkoc2V0cSBzdGFj ayAoY2RyIHN0YWNrKSkKLQkoc2V0cSB0b3Atd2lkdGggKGNhciB0b3ApKQotCShzZXRxIHRvcC1h dCAoaWYgc3RhY2sgKGNkYXIgc3RhY2spIHN0YWNrLWF0KSkKLQkoc2V0cSB0b3AtdG8gKGNkciB0 b3ApKQotCShzZXRxIHRvcC1zaXplICgqIHRvcC13aWR0aCAoLSB0b3AtdG8gdG9wLWF0KSkpCi0J KHVubGVzcyAob3IgKGFuZCBtaW4td2lkdGggKDwgdG9wLXdpZHRoIG1pbi13aWR0aCkpCi0JCSAg ICAoYW5kIG1pbi1oZWlnaHQgKDwgKC0gdG9wLXRvIHRvcC1hdCkgbWluLWhlaWdodCkpCi0JCSAg ICAoYW5kIHBvc2l0aW9ucwotCQkJIChvciAoPiB0b3AtYXQgKGNhciBwb3NpdGlvbnMpKQotCQkJ ICAgICAoPCB0b3AtdG8gKGNkciBwb3NpdGlvbnMpKSkpKQotCSAgKGlmIGNvdW50Ci0JICAgICAg KGlmIGRpc2pvaW50Ci0JCSAgKHNldHEgbWF4aW11bXMgKGNvbnMgKGxpc3QgdG9wLXNpemUgdG9w LXdpZHRoIHRvcC1hdCB0b3AtdG8pCi0JCQkJICAgICAgIG1heGltdW1zKSkKLQkJKHNldHEgbWF4 aW11bXMgKHdpbmRvdy1sYXJnZXN0LWVtcHR5LXJlY3RhbmdsZS0tbWF4aW11bXMKLQkJCQkobGlz dCB0b3Atc2l6ZSB0b3Atd2lkdGggdG9wLWF0IHRvcC10bykKLQkJCQltYXhpbXVtcyBjb3VudCkp KQotCSAgICAod2hlbiAoPiB0b3Atc2l6ZSBtYXgtc2l6ZSkKLQkgICAgICAoc2V0cSBtYXgtc2l6 ZSB0b3Atc2l6ZSkKLQkgICAgICAoc2V0cSBtYXgtd2lkdGggdG9wLXdpZHRoKQotCSAgICAgIChz ZXRxIG1heC1hdCB0b3AtYXQpCi0JICAgICAgKHNldHEgbWF4LXRvIHRvcC10bykpKSkKLQkoaWYg KGFuZCBzdGFjayAoPiAoY2FhciBzdGFjaykgKGNhciByb3cpKSkKLQkgICAgOzsgSGF2ZSBuZXcg dG9wIGVsZW1lbnQgb2Ygc3RhY2sgaW5jbHVkZSBvbGQgdG9wLgotCSAgICAoc2V0cSBzdGFjayAo Y29ucyAoY29ucyAoY2FhciBzdGFjaykgKGNkciB0b3ApKSAoY2RyIHN0YWNrKSkpCi0JICA7OyBN b3ZlIHJvd3MtYXQgYmFja3dhcmRzIHRvIHRvcC1hdC4KLQkgIChzZXRxIHJvd3MtYXQgdG9wLWF0 KSkpKQorICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgKHVubGVzcyBzdGFjaworICAgICAg ICAgICAgICAoc2V0cSBzdGFjay1hdCByb3dzLWF0KSkKKyAgICAgICAgICAgIChzZXRxIHN0YWNr IChjb25zIHJvdyBzdGFjaykpCisgICAgICAgICAgICA7OyBTZXQgUk9XUy1BVCB0byB3aGVyZSB0 aGUgZmlyc3QgZWxlbWVudCBvZiBST1dTIGVuZHMKKyAgICAgICAgICAgIDs7IHdoaWNoLCBhZnRl ciBwb3BwaW5nIFJPVywgbWFrZXMgaXQgdGhlIHN0YXJ0IHBvc2l0aW9uIG9mCisgICAgICAgICAg ICA7OyB0aGUgbmV4dCBST1cuCisgICAgICAgICAgICAoc2V0cSByb3dzLWF0IChjZHIgcm93KSkK KyAgICAgICAgICAgIChzZXRxIHJvd3MgKGNkciByb3dzKSkpCisgICAgICAgIChzZXRxIHRvcCAo Y2FyIHN0YWNrKSkKKyAgICAgICAgKHNldHEgc3RhY2sgKGNkciBzdGFjaykpCisgICAgICAgIChz ZXRxIHRvcC13aWR0aCAoY2FyIHRvcCkpCisgICAgICAgIChzZXRxIHRvcC1hdCAoaWYgc3RhY2sg KGNkYXIgc3RhY2spIHN0YWNrLWF0KSkKKyAgICAgICAgKHNldHEgdG9wLXRvIChjZHIgdG9wKSkK KyAgICAgICAgKHNldHEgdG9wLXNpemUgKCogdG9wLXdpZHRoICgtIHRvcC10byB0b3AtYXQpKSkK KyAgICAgICAgKHVubGVzcyAob3IgKGFuZCBtaW4td2lkdGggKDwgdG9wLXdpZHRoIG1pbi13aWR0 aCkpCisgICAgICAgICAgICAgICAgICAgIChhbmQgbWluLWhlaWdodCAoPCAoLSB0b3AtdG8gdG9w LWF0KSBtaW4taGVpZ2h0KSkKKyAgICAgICAgICAgICAgICAgICAgKGFuZCBwb3NpdGlvbnMKKyAg ICAgICAgICAgICAgICAgICAgICAgICAob3IgKD4gdG9wLWF0IChjYXIgcG9zaXRpb25zKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDwgdG9wLXRvIChjZHIgcG9zaXRpb25zKSkpKSkK KyAgICAgICAgICAoaWYgY291bnQKKyAgICAgICAgICAgICAgKGlmIGRpc2pvaW50CisgICAgICAg ICAgICAgICAgICAoc2V0cSBtYXhpbXVtcyAoY29ucyAobGlzdCB0b3Atc2l6ZSB0b3Atd2lkdGgg dG9wLWF0IHRvcC10bykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h eGltdW1zKSkKKyAgICAgICAgICAgICAgICAoc2V0cSBtYXhpbXVtcyAod2luZG93LWxhcmdlc3Qt ZW1wdHktcmVjdGFuZ2xlLS1tYXhpbXVtcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGlzdCB0b3Atc2l6ZSB0b3Atd2lkdGggdG9wLWF0IHRvcC10bykKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWF4aW11bXMgY291bnQpKSkKKyAgICAgICAgICAgICh3aGVuICg+ IHRvcC1zaXplIG1heC1zaXplKQorICAgICAgICAgICAgICAoc2V0cSBtYXgtc2l6ZSB0b3Atc2l6 ZSkKKyAgICAgICAgICAgICAgKHNldHEgbWF4LXdpZHRoIHRvcC13aWR0aCkKKyAgICAgICAgICAg ICAgKHNldHEgbWF4LWF0IHRvcC1hdCkKKyAgICAgICAgICAgICAgKHNldHEgbWF4LXRvIHRvcC10 bykpKSkKKyAgICAgICAgKGlmIChhbmQgc3RhY2sgKD4gKGNhYXIgc3RhY2spIChjYXIgcm93KSkp CisgICAgICAgICAgICA7OyBIYXZlIG5ldyB0b3AgZWxlbWVudCBvZiBzdGFjayBpbmNsdWRlIG9s ZCB0b3AuCisgICAgICAgICAgICAoc2V0cSBzdGFjayAoY29ucyAoY29ucyAoY2FhciBzdGFjaykg KGNkciB0b3ApKSAoY2RyIHN0YWNrKSkpCisgICAgICAgICAgOzsgTW92ZSByb3dzLWF0IGJhY2t3 YXJkcyB0byB0b3AtYXQuCisgICAgICAgICAgKHNldHEgcm93cy1hdCB0b3AtYXQpKSkpCiAKICAg ICAod2hlbiBzdGFjawogICAgICAgOzsgU1RBQ0stVE8gaXMgdGhlIHBvc2l0aW9uIHdoZXJlIHRo ZSBzdGFjayBlbmRzLgogICAgICAgKHNldHEgc3RhY2stdG8gKGNkYXIgc3RhY2spKQogICAgICAg KHdoaWxlIHN0YWNrCi0JKHNldHEgdG9wIChjYXIgc3RhY2spKQotCShzZXRxIHN0YWNrIChjZHIg c3RhY2spKQotCShzZXRxIHRvcC13aWR0aCAoY2FyIHRvcCkpCi0JKHNldHEgdG9wLWF0IChpZiBz dGFjayAoY2RhciBzdGFjaykgc3RhY2stYXQpKQotCShzZXRxIHRvcC1zaXplICgqIHRvcC13aWR0 aCAoLSBzdGFjay10byB0b3AtYXQpKSkKLQkodW5sZXNzIChvciAoYW5kIG1pbi13aWR0aCAoPCB0 b3Atd2lkdGggbWluLXdpZHRoKSkKLQkJICAgIChhbmQgbWluLWhlaWdodCAoPCAoLSBzdGFjay10 byB0b3AtYXQpIG1pbi1oZWlnaHQpKQotCQkgICAgKGFuZCBwb3NpdGlvbnMKLQkJCSAob3IgKD4g dG9wLWF0IChjYXIgcG9zaXRpb25zKSkKLQkJCSAgICAgKDwgc3RhY2stdG8gKGNkciBwb3NpdGlv bnMpKSkpKQotCSAgKGlmIGNvdW50Ci0JICAgICAgKGlmIGRpc2pvaW50Ci0JCSAgKHNldHEgbWF4 aW11bXMgKGNvbnMgKGxpc3QgdG9wLXNpemUgdG9wLXdpZHRoIHRvcC1hdCBzdGFjay10bykKLQkJ CQkgICAgICAgbWF4aW11bXMpKQotCQkoc2V0cSBtYXhpbXVtcyAod2luZG93LWxhcmdlc3QtZW1w dHktcmVjdGFuZ2xlLS1tYXhpbXVtcwotCQkJCShsaXN0IHRvcC1zaXplIHRvcC13aWR0aCB0b3At YXQgc3RhY2stdG8pCi0JCQkJbWF4aW11bXMgY291bnQpKSkKLQkgICAgKHdoZW4gKD4gdG9wLXNp emUgbWF4LXNpemUpCi0JICAgICAgKHNldHEgbWF4LXNpemUgdG9wLXNpemUpCi0JICAgICAgKHNl dHEgbWF4LXdpZHRoIHRvcC13aWR0aCkKLQkgICAgICAoc2V0cSBtYXgtYXQgdG9wLWF0KQotCSAg ICAgIChzZXRxIG1heC10byBzdGFjay10bykpKSkpKQorICAgICAgICAoc2V0cSB0b3AgKGNhciBz dGFjaykpCisgICAgICAgIChzZXRxIHN0YWNrIChjZHIgc3RhY2spKQorICAgICAgICAoc2V0cSB0 b3Atd2lkdGggKGNhciB0b3ApKQorICAgICAgICAoc2V0cSB0b3AtYXQgKGlmIHN0YWNrIChjZGFy IHN0YWNrKSBzdGFjay1hdCkpCisgICAgICAgIChzZXRxIHRvcC1zaXplICgqIHRvcC13aWR0aCAo LSBzdGFjay10byB0b3AtYXQpKSkKKyAgICAgICAgKHVubGVzcyAob3IgKGFuZCBtaW4td2lkdGgg KDwgdG9wLXdpZHRoIG1pbi13aWR0aCkpCisgICAgICAgICAgICAgICAgICAgIChhbmQgbWluLWhl aWdodCAoPCAoLSBzdGFjay10byB0b3AtYXQpIG1pbi1oZWlnaHQpKQorICAgICAgICAgICAgICAg ICAgICAoYW5kIHBvc2l0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgIChvciAoPiB0b3At YXQgKGNhciBwb3NpdGlvbnMpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPCBzdGFj ay10byAoY2RyIHBvc2l0aW9ucykpKSkpCisgICAgICAgICAgKGlmIGNvdW50CisgICAgICAgICAg ICAgIChpZiBkaXNqb2ludAorICAgICAgICAgICAgICAgICAgKHNldHEgbWF4aW11bXMgKGNvbnMg KGxpc3QgdG9wLXNpemUgdG9wLXdpZHRoIHRvcC1hdCBzdGFjay10bykKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1zKSkKKyAgICAgICAgICAgICAgICAoc2V0 cSBtYXhpbXVtcyAod2luZG93LWxhcmdlc3QtZW1wdHktcmVjdGFuZ2xlLS1tYXhpbXVtcworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCB0b3Atc2l6ZSB0b3Atd2lkdGggdG9w LWF0IHN0YWNrLXRvKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtcyBj b3VudCkpKQorICAgICAgICAgICAgKHdoZW4gKD4gdG9wLXNpemUgbWF4LXNpemUpCisgICAgICAg ICAgICAgIChzZXRxIG1heC1zaXplIHRvcC1zaXplKQorICAgICAgICAgICAgICAoc2V0cSBtYXgt d2lkdGggdG9wLXdpZHRoKQorICAgICAgICAgICAgICAoc2V0cSBtYXgtYXQgdG9wLWF0KQorICAg ICAgICAgICAgICAoc2V0cSBtYXgtdG8gc3RhY2stdG8pKSkpKSkKIAogICAgIChjb25kCiAgICAg IChtYXhpbXVtcwogICAgICAgKGlmIGRpc2pvaW50Ci0JICAod2luZG93LWxhcmdlc3QtZW1wdHkt cmVjdGFuZ2xlLS1kaXNqb2ludC1tYXhpbXVtcyBtYXhpbXVtcyBjb3VudCkKLQltYXhpbXVtcykp CisgICAgICAgICAgKHdpbmRvdy1sYXJnZXN0LWVtcHR5LXJlY3RhbmdsZS0tZGlzam9pbnQtbWF4 aW11bXMgbWF4aW11bXMgY291bnQpCisgICAgICAgIG1heGltdW1zKSkKICAgICAgKCg+IG1heC1z aXplIDApCiAgICAgICAobGlzdCBtYXgtd2lkdGggbWF4LWF0IG1heC10bykpKSkpCiAMCkBAIC05 NDkxLDIxICs5NDkxLDIxIEBAIGJ1ZmZlcnMgZGlzcGxheWluZyByaWdodCB0byBsZWZ0IHRleHQu IgogICAiS2lsbCB0aGUgY3VycmVudCBidWZmZXIgYW5kIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgd2lu ZG93LiIKICAgKGludGVyYWN0aXZlKQogICAobGV0ICgod2luZG93LXRvLWRlbGV0ZSAoc2VsZWN0 ZWQtd2luZG93KSkKLQkoYnVmZmVyLXRvLWtpbGwgKGN1cnJlbnQtYnVmZmVyKSkKLQkoZGVsZXRl LXdpbmRvdy1ob29rIChsYW1iZGEgKCkgKGlnbm9yZS1lcnJvcnMgKGRlbGV0ZS13aW5kb3cpKSkp KQorICAgICAgICAoYnVmZmVyLXRvLWtpbGwgKGN1cnJlbnQtYnVmZmVyKSkKKyAgICAgICAgKGRl bGV0ZS13aW5kb3ctaG9vayAobGFtYmRhICgpIChpZ25vcmUtZXJyb3JzIChkZWxldGUtd2luZG93 KSkpKSkKICAgICAodW53aW5kLXByb3RlY3QKLQkocHJvZ24KLQkgIChhZGQtaG9vayAna2lsbC1i dWZmZXItaG9vayBkZWxldGUtd2luZG93LWhvb2sgdCB0KQotCSAgKGlmIChraWxsLWJ1ZmZlciAo Y3VycmVudC1idWZmZXIpKQotCSAgICAgIDs7IElmIGBkZWxldGUtd2luZG93JyBmYWlsZWQgYmVm b3JlLCB3ZSByZXJ1biBpdCB0byByZWdlbmVyYXRlCi0JICAgICAgOzsgdGhlIGVycm9yIHNvIGl0 IGNhbiBiZSBzZWVuIGluIHRoZSBlY2hvIGFyZWEuCi0JICAgICAgKHdoZW4gKGVxIChzZWxlY3Rl ZC13aW5kb3cpIHdpbmRvdy10by1kZWxldGUpCi0JCShkZWxldGUtd2luZG93KSkpKQorICAgICAg ICAocHJvZ24KKyAgICAgICAgICAoYWRkLWhvb2sgJ2tpbGwtYnVmZmVyLWhvb2sgZGVsZXRlLXdp bmRvdy1ob29rIHQgdCkKKyAgICAgICAgICAoaWYgKGtpbGwtYnVmZmVyIChjdXJyZW50LWJ1ZmZl cikpCisgICAgICAgICAgICAgIDs7IElmIGBkZWxldGUtd2luZG93JyBmYWlsZWQgYmVmb3JlLCB3 ZSByZXJ1biBpdCB0byByZWdlbmVyYXRlCisgICAgICAgICAgICAgIDs7IHRoZSBlcnJvciBzbyBp dCBjYW4gYmUgc2VlbiBpbiB0aGUgZWNobyBhcmVhLgorICAgICAgICAgICAgICAod2hlbiAoZXEg KHNlbGVjdGVkLXdpbmRvdykgd2luZG93LXRvLWRlbGV0ZSkKKyAgICAgICAgICAgICAgICAoZGVs ZXRlLXdpbmRvdykpKSkKICAgICAgIDs7IElmIHRoZSBidWZmZXIgaXMgbm90IGRlYWQgZm9yIHNv bWUgcmVhc29uIChwcm9iYWJseSBiZWNhdXNlCiAgICAgICA7OyBvZiBhIGBxdWl0JyBzaWduYWwp LCByZW1vdmUgdGhlIGhvb2sgYWdhaW4uCiAgICAgICAoaWdub3JlLWVycm9ycwotICAgICAgICh3 aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlci10by1raWxsCi0JIChyZW1vdmUtaG9vayAna2lsbC1i dWZmZXItaG9vayBkZWxldGUtd2luZG93LWhvb2sgdCkpKSkpKQorICAgICAgICAod2l0aC1jdXJy ZW50LWJ1ZmZlciBidWZmZXItdG8ta2lsbAorICAgICAgICAgIChyZW1vdmUtaG9vayAna2lsbC1i dWZmZXItaG9vayBkZWxldGUtd2luZG93LWhvb2sgdCkpKSkpKQogCiAMCiA7OzsKQEAgLTk2NzIs MTEgKzk2NzIsMTEgQEAgdGhlIHNwZWNpZmllZCBhYnNvbHV0ZSB3aW5kb3ctbGluZS4gIEZsb2F0 IG51bWJlciBiZXR3ZWVuIDAuMCBhbmQgMS4wCiBtZWFucyB0aGUgcGVyY2VudGFnZSBvZiB0aGUg c2NyZWVuIHNwYWNlIGZyb20gdGhlIHRvcC4gIFRoZSBkZWZhdWx0CiBjeWNsaW5nIG9yZGVyIGlz IG1pZGRsZSAtPiB0b3AgLT4gYm90dG9tLiIKICAgOnR5cGUgJyhyZXBlYXQgKGNob2ljZQotCQkg IChjb25zdCA6dGFnICJUb3AiIHRvcCkKLQkJICAoY29uc3QgOnRhZyAiTWlkZGxlIiBtaWRkbGUp Ci0JCSAgKGNvbnN0IDp0YWcgIkJvdHRvbSIgYm90dG9tKQotCQkgIChpbnRlZ2VyIDp0YWcgIkxp bmUgbnVtYmVyIikKLQkJICAoZmxvYXQgOnRhZyAiUGVyY2VudGFnZSIpKSkKKyAgICAgICAgICAg ICAgICAgIChjb25zdCA6dGFnICJUb3AiIHRvcCkKKyAgICAgICAgICAgICAgICAgIChjb25zdCA6 dGFnICJNaWRkbGUiIG1pZGRsZSkKKyAgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJCb3R0 b20iIGJvdHRvbSkKKyAgICAgICAgICAgICAgICAgIChpbnRlZ2VyIDp0YWcgIkxpbmUgbnVtYmVy IikKKyAgICAgICAgICAgICAgICAgIChmbG9hdCA6dGFnICJQZXJjZW50YWdlIikpKQogICA6dmVy c2lvbiAiMjMuMiIKICAgOmdyb3VwICd3aW5kb3dzKQogCkBAIC05NjkzLDIzICs5NjkzLDIzIEBA IEEgcHJlZml4IGFyZ3VtZW50IGlzIGhhbmRsZWQgbGlrZSBgcmVjZW50ZXInOgogICAgKGFyZyAo cmVjZW50ZXIgYXJnIHQpKSAgICAgICAgICAgICAgICAgOyBBbHdheXMgcmVzcGVjdCBBUkcuCiAg ICAodAogICAgIChzZXRxIHJlY2VudGVyLWxhc3Qtb3AKLQkgIChpZiAoZXEgdGhpcy1jb21tYW5k IGxhc3QtY29tbWFuZCkKLQkgICAgICAoY2FyIChvciAoY2RyIChtZW1iZXIgcmVjZW50ZXItbGFz dC1vcCByZWNlbnRlci1wb3NpdGlvbnMpKQotCQkgICAgICAgcmVjZW50ZXItcG9zaXRpb25zKSkK LQkgICAgKGNhciByZWNlbnRlci1wb3NpdGlvbnMpKSkKKyAgICAgICAgICAoaWYgKGVxIHRoaXMt Y29tbWFuZCBsYXN0LWNvbW1hbmQpCisgICAgICAgICAgICAgIChjYXIgKG9yIChjZHIgKG1lbWJl ciByZWNlbnRlci1sYXN0LW9wIHJlY2VudGVyLXBvc2l0aW9ucykpCisgICAgICAgICAgICAgICAg ICAgICAgIHJlY2VudGVyLXBvc2l0aW9ucykpCisgICAgICAgICAgICAoY2FyIHJlY2VudGVyLXBv c2l0aW9ucykpKQogICAgIChsZXQgKCh0aGlzLXNjcm9sbC1tYXJnaW4KLQkgICAobWluIChtYXgg MCBzY3JvbGwtbWFyZ2luKQotCQkodHJ1bmNhdGUgKC8gKHdpbmRvdy1ib2R5LWhlaWdodCkgNC4w KSkpKSkKKyAgICAgICAgICAgKG1pbiAobWF4IDAgc2Nyb2xsLW1hcmdpbikKKyAgICAgICAgICAg ICAgICAodHJ1bmNhdGUgKC8gKHdpbmRvdy1ib2R5LWhlaWdodCkgNC4wKSkpKSkKICAgICAgIChj b25kICgoZXEgcmVjZW50ZXItbGFzdC1vcCAnbWlkZGxlKQotCSAgICAgKHJlY2VudGVyIG5pbCB0 KSkKLQkgICAgKChlcSByZWNlbnRlci1sYXN0LW9wICd0b3ApCi0JICAgICAocmVjZW50ZXIgdGhp cy1zY3JvbGwtbWFyZ2luIHQpKQotCSAgICAoKGVxIHJlY2VudGVyLWxhc3Qtb3AgJ2JvdHRvbSkK LQkgICAgIChyZWNlbnRlciAoLSAtMSB0aGlzLXNjcm9sbC1tYXJnaW4pIHQpKQotCSAgICAoKGlu dGVnZXJwIHJlY2VudGVyLWxhc3Qtb3ApCi0JICAgICAocmVjZW50ZXIgcmVjZW50ZXItbGFzdC1v cCB0KSkKLQkgICAgKChmbG9hdHAgcmVjZW50ZXItbGFzdC1vcCkKLQkgICAgIChyZWNlbnRlciAo cm91bmQgKCogcmVjZW50ZXItbGFzdC1vcCAod2luZG93LWhlaWdodCkpKSB0KSkpKSkpKQorICAg ICAgICAgICAgIChyZWNlbnRlciBuaWwgdCkpCisgICAgICAgICAgICAoKGVxIHJlY2VudGVyLWxh c3Qtb3AgJ3RvcCkKKyAgICAgICAgICAgICAocmVjZW50ZXIgdGhpcy1zY3JvbGwtbWFyZ2luIHQp KQorICAgICAgICAgICAgKChlcSByZWNlbnRlci1sYXN0LW9wICdib3R0b20pCisgICAgICAgICAg ICAgKHJlY2VudGVyICgtIC0xIHRoaXMtc2Nyb2xsLW1hcmdpbikgdCkpCisgICAgICAgICAgICAo KGludGVnZXJwIHJlY2VudGVyLWxhc3Qtb3ApCisgICAgICAgICAgICAgKHJlY2VudGVyIHJlY2Vu dGVyLWxhc3Qtb3AgdCkpCisgICAgICAgICAgICAoKGZsb2F0cCByZWNlbnRlci1sYXN0LW9wKQor ICAgICAgICAgICAgIChyZWNlbnRlciAocm91bmQgKCogcmVjZW50ZXItbGFzdC1vcCAod2luZG93 LWhlaWdodCkpKSB0KSkpKSkpKQogCiAoZGVmaW5lLWtleSBnbG9iYWwtbWFwIFs/XEMtbF0gJ3Jl Y2VudGVyLXRvcC1ib3R0b20pCiAKQEAgLTk3MjMsMjYgKzk3MjMsMjYgQEAgU3VjY2Vzc2l2ZSBj YWxscyBwb3NpdGlvbiBwb2ludCBhdCBwb3NpdGlvbnMgZGVmaW5lZAogYnkgYHJlY2VudGVyLXBv c2l0aW9ucycuIgogICAoaW50ZXJhY3RpdmUgIlAiKQogICAoY29uZAotICAgKGFyZyAobW92ZS10 by13aW5kb3ctbGluZSBhcmcpKQk7IEFsd2F5cyByZXNwZWN0IEFSRy4KKyAgIChhcmcgKG1vdmUt dG8td2luZG93LWxpbmUgYXJnKSkgICAgICA7IEFsd2F5cyByZXNwZWN0IEFSRy4KICAgICh0CiAg ICAgKHNldHEgcmVjZW50ZXItbGFzdC1vcAotCSAgKGlmIChlcSB0aGlzLWNvbW1hbmQgbGFzdC1j b21tYW5kKQotCSAgICAgIChjYXIgKG9yIChjZHIgKG1lbWJlciByZWNlbnRlci1sYXN0LW9wIHJl Y2VudGVyLXBvc2l0aW9ucykpCi0JCSAgICAgICByZWNlbnRlci1wb3NpdGlvbnMpKQotCSAgICAo Y2FyIHJlY2VudGVyLXBvc2l0aW9ucykpKQorICAgICAgICAgIChpZiAoZXEgdGhpcy1jb21tYW5k IGxhc3QtY29tbWFuZCkKKyAgICAgICAgICAgICAgKGNhciAob3IgKGNkciAobWVtYmVyIHJlY2Vu dGVyLWxhc3Qtb3AgcmVjZW50ZXItcG9zaXRpb25zKSkKKyAgICAgICAgICAgICAgICAgICAgICAg cmVjZW50ZXItcG9zaXRpb25zKSkKKyAgICAgICAgICAgIChjYXIgcmVjZW50ZXItcG9zaXRpb25z KSkpCiAgICAgKGxldCAoKHRoaXMtc2Nyb2xsLW1hcmdpbgotCSAgIChtaW4gKG1heCAwIHNjcm9s bC1tYXJnaW4pCi0JCSh0cnVuY2F0ZSAoLyAod2luZG93LWJvZHktaGVpZ2h0KSA0LjApKSkpKQor ICAgICAgICAgICAobWluIChtYXggMCBzY3JvbGwtbWFyZ2luKQorICAgICAgICAgICAgICAgICh0 cnVuY2F0ZSAoLyAod2luZG93LWJvZHktaGVpZ2h0KSA0LjApKSkpKQogICAgICAgKGNvbmQgKChl cSByZWNlbnRlci1sYXN0LW9wICdtaWRkbGUpCi0JICAgICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICdt b3ZlLXRvLXdpbmRvdy1saW5lKSkKLQkgICAgKChlcSByZWNlbnRlci1sYXN0LW9wICd0b3ApCi0J ICAgICAobW92ZS10by13aW5kb3ctbGluZSB0aGlzLXNjcm9sbC1tYXJnaW4pKQotCSAgICAoKGVx IHJlY2VudGVyLWxhc3Qtb3AgJ2JvdHRvbSkKLQkgICAgIChtb3ZlLXRvLXdpbmRvdy1saW5lICgt IC0xIHRoaXMtc2Nyb2xsLW1hcmdpbikpKQotCSAgICAoKGludGVnZXJwIHJlY2VudGVyLWxhc3Qt b3ApCi0JICAgICAobW92ZS10by13aW5kb3ctbGluZSByZWNlbnRlci1sYXN0LW9wKSkKLQkgICAg KChmbG9hdHAgcmVjZW50ZXItbGFzdC1vcCkKLQkgICAgIChtb3ZlLXRvLXdpbmRvdy1saW5lIChy b3VuZCAoKiByZWNlbnRlci1sYXN0LW9wICh3aW5kb3ctaGVpZ2h0KSkpKSkpKSkpKQorICAgICAg ICAgICAgIChjYWxsLWludGVyYWN0aXZlbHkgJ21vdmUtdG8td2luZG93LWxpbmUpKQorICAgICAg ICAgICAgKChlcSByZWNlbnRlci1sYXN0LW9wICd0b3ApCisgICAgICAgICAgICAgKG1vdmUtdG8t d2luZG93LWxpbmUgdGhpcy1zY3JvbGwtbWFyZ2luKSkKKyAgICAgICAgICAgICgoZXEgcmVjZW50 ZXItbGFzdC1vcCAnYm90dG9tKQorICAgICAgICAgICAgIChtb3ZlLXRvLXdpbmRvdy1saW5lICgt IC0xIHRoaXMtc2Nyb2xsLW1hcmdpbikpKQorICAgICAgICAgICAgKChpbnRlZ2VycCByZWNlbnRl ci1sYXN0LW9wKQorICAgICAgICAgICAgIChtb3ZlLXRvLXdpbmRvdy1saW5lIHJlY2VudGVyLWxh c3Qtb3ApKQorICAgICAgICAgICAgKChmbG9hdHAgcmVjZW50ZXItbGFzdC1vcCkKKyAgICAgICAg ICAgICAobW92ZS10by13aW5kb3ctbGluZSAocm91bmQgKCogcmVjZW50ZXItbGFzdC1vcCAod2lu ZG93LWhlaWdodCkpKSkpKSkpKSkKIAogKGRlZmluZS1rZXkgZ2xvYmFsLW1hcCBbP1xNLXJdICdt b3ZlLXRvLXdpbmRvdy1saW5lLXRvcC1ib3R0b20pCiAMCkBAIC05Nzc5LDE4ICs5Nzc5LDE4IEBA IElmIEFSRyBpcyB0aGUgYXRvbSBgLScsIHNjcm9sbCBkb3dud2FyZCBieSBuZWFybHkgZnVsbCBz Y3JlZW4uIgogICAgKCg8IChwcmVmaXgtbnVtZXJpYy12YWx1ZSBhcmcpIDApCiAgICAgKHNjcm9s bC1kb3duLWNvbW1hbmQgKC0gKHByZWZpeC1udW1lcmljLXZhbHVlIGFyZykpKSkKICAgICgoZW9i cCkKLSAgICAoc2Nyb2xsLXVwIGFyZykpCQkJOyBzaWduYWwgZXJyb3IKKyAgICAoc2Nyb2xsLXVw IGFyZykpICAgICAgICAgICAgICAgICAgICA7IHNpZ25hbCBlcnJvcgogICAgKHQKICAgICAoY29u ZGl0aW9uLWNhc2UgbmlsCi0JKHNjcm9sbC11cCBhcmcpCisgICAgICAgIChzY3JvbGwtdXAgYXJn KQogICAgICAgKGVuZC1vZi1idWZmZXIKICAgICAgICAoaWYgYXJnCi0JICAgOzsgV2hlbiBzY3Jv bGxpbmcgYnkgQVJHIGxpbmVzIGNhbid0IGJlIGRvbmUsCi0JICAgOzsgbW92ZSBieSBBUkcgbGlu ZXMgaW5zdGVhZC4KLQkgICAoZm9yd2FyZC1saW5lIGFyZykKLQkgOzsgV2hlbiBBUkcgaXMgbmls IGZvciBmdWxsLXNjcmVlbiBzY3JvbGxpbmcsCi0JIDs7IG1vdmUgdG8gdGhlIGJvdHRvbSBvZiB0 aGUgYnVmZmVyLgotCSAoZ290by1jaGFyIChwb2ludC1tYXgpKSkpKSkpKQorICAgICAgICAgICA7 OyBXaGVuIHNjcm9sbGluZyBieSBBUkcgbGluZXMgY2FuJ3QgYmUgZG9uZSwKKyAgICAgICAgICAg OzsgbW92ZSBieSBBUkcgbGluZXMgaW5zdGVhZC4KKyAgICAgICAgICAgKGZvcndhcmQtbGluZSBh cmcpCisgICAgICAgICA7OyBXaGVuIEFSRyBpcyBuaWwgZm9yIGZ1bGwtc2NyZWVuIHNjcm9sbGlu ZywKKyAgICAgICAgIDs7IG1vdmUgdG8gdGhlIGJvdHRvbSBvZiB0aGUgYnVmZmVyLgorICAgICAg ICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkpKSkpKSkKIAogKHB1dCAnc2Nyb2xsLXVwLWNvbW1h bmQgJ3Njcm9sbC1jb21tYW5kIHQpCiAKQEAgLTk4MTEsMTggKzk4MTEsMTggQEAgSWYgQVJHIGlz IHRoZSBhdG9tIGAtJywgc2Nyb2xsIHVwd2FyZCBieSBuZWFybHkgZnVsbCBzY3JlZW4uIgogICAg KCg8IChwcmVmaXgtbnVtZXJpYy12YWx1ZSBhcmcpIDApCiAgICAgKHNjcm9sbC11cC1jb21tYW5k ICgtIChwcmVmaXgtbnVtZXJpYy12YWx1ZSBhcmcpKSkpCiAgICAoKGJvYnApCi0gICAgKHNjcm9s bC1kb3duIGFyZykpCQkJOyBzaWduYWwgZXJyb3IKKyAgICAoc2Nyb2xsLWRvd24gYXJnKSkgICAg ICAgICAgICAgICAgICA7IHNpZ25hbCBlcnJvcgogICAgKHQKICAgICAoY29uZGl0aW9uLWNhc2Ug bmlsCi0JKHNjcm9sbC1kb3duIGFyZykKKyAgICAgICAgKHNjcm9sbC1kb3duIGFyZykKICAgICAg IChiZWdpbm5pbmctb2YtYnVmZmVyCiAgICAgICAgKGlmIGFyZwotCSAgIDs7IFdoZW4gc2Nyb2xs aW5nIGJ5IEFSRyBsaW5lcyBjYW4ndCBiZSBkb25lLAotCSAgIDs7IG1vdmUgYnkgQVJHIGxpbmVz IGluc3RlYWQuCi0JICAgKGZvcndhcmQtbGluZSAoLSBhcmcpKQotCSA7OyBXaGVuIEFSRyBpcyBu aWwgZm9yIGZ1bGwtc2NyZWVuIHNjcm9sbGluZywKLQkgOzsgbW92ZSB0byB0aGUgdG9wIG9mIHRo ZSBidWZmZXIuCi0JIChnb3RvLWNoYXIgKHBvaW50LW1pbikpKSkpKSkpCisgICAgICAgICAgIDs7 IFdoZW4gc2Nyb2xsaW5nIGJ5IEFSRyBsaW5lcyBjYW4ndCBiZSBkb25lLAorICAgICAgICAgICA7 OyBtb3ZlIGJ5IEFSRyBsaW5lcyBpbnN0ZWFkLgorICAgICAgICAgICAoZm9yd2FyZC1saW5lICgt IGFyZykpCisgICAgICAgICA7OyBXaGVuIEFSRyBpcyBuaWwgZm9yIGZ1bGwtc2NyZWVuIHNjcm9s bGluZywKKyAgICAgICAgIDs7IG1vdmUgdG8gdGhlIHRvcCBvZiB0aGUgYnVmZmVyLgorICAgICAg ICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkpKSkpKSkKIAogKHB1dCAnc2Nyb2xsLWRvd24tY29t bWFuZCAnc2Nyb2xsLWNvbW1hbmQgdCkKIApAQCAtOTg5MiwxMyArOTg5MiwxMyBAQCBzY3JvbGxi YXIgaW50ZXJhY3Rpb24pIGFuZCBgc2VsZWN0JyAodGhlIG5leHQgaW52b2NhdGlvbiBvZgogICAi Q2FuY2VsIGRlbGF5ZWQgd2luZG93IGF1dG9zZWxlY3Rpb24uCiBPcHRpb25hbCBhcmd1bWVudCBG T1JDRSBtZWFucyBjYW5jZWwgdW5jb25kaXRpb25hbGx5LiIKICAgKHVubGVzcyAoYW5kIChub3Qg Zm9yY2UpCi0JICAgICAgIDs7IERvbid0IGNhbmNlbCBmb3Igc2VsZWN0LXdpbmRvdyBvciBzZWxl Y3QtZnJhbWUgZXZlbnRzCi0JICAgICAgIDs7IG9yIHdoZW4gdGhlIHVzZXIgZHJhZ3MgYSBzY3Jv bGwgYmFyLgotCSAgICAgICAob3IgKG1lbXEgdGhpcy1jb21tYW5kCi0JCQkgJyhoYW5kbGUtc2Vs ZWN0LXdpbmRvdyBoYW5kbGUtc3dpdGNoLWZyYW1lKSkKLQkJICAgKGFuZCAoZXEgdGhpcy1jb21t YW5kICdzY3JvbGwtYmFyLXRvb2xraXQtc2Nyb2xsKQotCQkJKG1lbXEgKG50aCA0IChldmVudC1l bmQgbGFzdC1pbnB1dC1ldmVudCkpCi0JCQkgICAgICAnKGhhbmRsZSBlbmQtc2Nyb2xsKSkpKSkK KyAgICAgICAgICAgICAgIDs7IERvbid0IGNhbmNlbCBmb3Igc2VsZWN0LXdpbmRvdyBvciBzZWxl Y3QtZnJhbWUgZXZlbnRzCisgICAgICAgICAgICAgICA7OyBvciB3aGVuIHRoZSB1c2VyIGRyYWdz IGEgc2Nyb2xsIGJhci4KKyAgICAgICAgICAgICAgIChvciAobWVtcSB0aGlzLWNvbW1hbmQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAnKGhhbmRsZS1zZWxlY3Qtd2luZG93IGhhbmRsZS1zd2l0 Y2gtZnJhbWUpKQorICAgICAgICAgICAgICAgICAgIChhbmQgKGVxIHRoaXMtY29tbWFuZCAnc2Ny b2xsLWJhci10b29sa2l0LXNjcm9sbCkKKyAgICAgICAgICAgICAgICAgICAgICAgIChtZW1xIChu dGggNCAoZXZlbnQtZW5kIGxhc3QtaW5wdXQtZXZlbnQpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJyhoYW5kbGUgZW5kLXNjcm9sbCkpKSkpCiAgICAgKHNldHEgbW91c2UtYXV0b3Nl bGVjdC13aW5kb3ctc3RhdGUgbmlsKQogICAgIChzZXRxIG1vdXNlLWF1dG9zZWxlY3Qtd2luZG93 LXBvc2l0aW9uLTEgbmlsKQogICAgICh3aGVuICh0aW1lcnAgbW91c2UtYXV0b3NlbGVjdC13aW5k b3ctdGltZXIpCkBAIC05OTE4LDggKzk5MTgsOCBAQCBtZWFucyBzdXNwZW5kIGF1dG9zZWxlY3Rp b24uIgogICA7OyBJbnN0YWxsIHRpbWVyIHdoaWNoIHJ1bnMgYG1vdXNlLWF1dG9zZWxlY3Qtd2lu ZG93LXNlbGVjdCcgYWZ0ZXIKICAgOzsgYG1vdXNlLWF1dG9zZWxlY3Qtd2luZG93JyBzZWNvbmRz LgogICAoc2V0cSBtb3VzZS1hdXRvc2VsZWN0LXdpbmRvdy10aW1lcgotCShydW4tYXQtdGltZQot CSAoYWJzIG1vdXNlLWF1dG9zZWxlY3Qtd2luZG93KSBuaWwgJ21vdXNlLWF1dG9zZWxlY3Qtd2lu ZG93LXNlbGVjdCkpKQorICAgICAgICAocnVuLWF0LXRpbWUKKyAgICAgICAgIChhYnMgbW91c2Ut YXV0b3NlbGVjdC13aW5kb3cpIG5pbCAnbW91c2UtYXV0b3NlbGVjdC13aW5kb3ctc2VsZWN0KSkp CiAKIChkZWZ1biBtb3VzZS1hdXRvc2VsZWN0LXdpbmRvdy1zZWxlY3QgKCkKICAgIlNlbGVjdCB3 aW5kb3cgd2l0aCBkZWxheWVkIHdpbmRvdyBhdXRvc2VsZWN0aW9uLgpAQCAtOTkzNCwxNiArOTkz NCwxNiBAQCBpcyBhY3RpdmUuICBUaGlzIGZ1bmN0aW9uIGlzIHJ1biBieSBgbW91c2UtYXV0b3Nl bGVjdC13aW5kb3ctdGltZXInLiIKICAgICAgICAgIChmcmFtZSAoYW5kIG1vdXNlLXggbW91c2Ut eSAoY2FyIG1vdXNlLXBvc2l0aW9uKSkpCiAgICAgICAgICAod2luZG93IChhbmQgZnJhbWUgKHdp bmRvdy1hdCBtb3VzZS14IG1vdXNlLXkgZnJhbWUpKSkpCiAgICAgKGNvbmQKLSAgICAgICgob3Ig KGFuZCAoZmJvdW5kcCAnbWVudS1vci1wb3B1cC1hY3RpdmUtcCkgKG1lbnUtb3ItcG9wdXAtYWN0 aXZlLXApKQotCSAgIChhbmQgd2luZG93Ci0JCShsZXQgKChjb29yZHMgKGNvb3JkaW5hdGVzLWlu LXdpbmRvdy1wCi0JCQkgICAgICAgKGNkciBtb3VzZS1wb3NpdGlvbikgd2luZG93KSkpCi0JCSAg KGFuZCAobm90IChjb25zcCBjb29yZHMpKQotCQkgICAgICAgKG5vdCAobWVtcSBjb29yZHMgJyhs ZWZ0LW1hcmdpbiByaWdodC1tYXJnaW4pKSkpKSkpCi0gICAgICAgOzsgQSBtZW51IC8gcG9wdXAg ZGlhbG9nIGlzIGFjdGl2ZSBvciB0aGUgbW91c2UgaXMgbm90IG9uIHRoZQotICAgICAgIDs7IHRl eHQgcmVnaW9uIG9mIFdJTkRPVzogU3VzcGVuZCBhdXRvc2VsZWN0aW9uIHRlbXBvcmFyaWx5Lgot ICAgICAgIChtb3VzZS1hdXRvc2VsZWN0LXdpbmRvdy1zdGFydCBtb3VzZS1wb3NpdGlvbiBuaWwg dCkpCi0gICAgICAoKG9yIChlcSBtb3VzZS1hdXRvc2VsZWN0LXdpbmRvdy1zdGF0ZSAnc3VzcGVu ZCkKKyAgICAgKChvciAoYW5kIChmYm91bmRwICdtZW51LW9yLXBvcHVwLWFjdGl2ZS1wKSAobWVu dS1vci1wb3B1cC1hY3RpdmUtcCkpCisgICAgICAgICAgKGFuZCB3aW5kb3cKKyAgICAgICAgICAg ICAgIChsZXQgKChjb29yZHMgKGNvb3JkaW5hdGVzLWluLXdpbmRvdy1wCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY2RyIG1vdXNlLXBvc2l0aW9uKSB3aW5kb3cpKSkKKyAgICAgICAg ICAgICAgICAgKGFuZCAobm90IChjb25zcCBjb29yZHMpKQorICAgICAgICAgICAgICAgICAgICAg IChub3QgKG1lbXEgY29vcmRzICcobGVmdC1tYXJnaW4gcmlnaHQtbWFyZ2luKSkpKSkpKQorICAg ICAgOzsgQSBtZW51IC8gcG9wdXAgZGlhbG9nIGlzIGFjdGl2ZSBvciB0aGUgbW91c2UgaXMgbm90 IG9uIHRoZQorICAgICAgOzsgdGV4dCByZWdpb24gb2YgV0lORE9XOiBTdXNwZW5kIGF1dG9zZWxl Y3Rpb24gdGVtcG9yYXJpbHkuCisgICAgICAobW91c2UtYXV0b3NlbGVjdC13aW5kb3ctc3RhcnQg bW91c2UtcG9zaXRpb24gbmlsIHQpKQorICAgICAoKG9yIChlcSBtb3VzZS1hdXRvc2VsZWN0LXdp bmRvdy1zdGF0ZSAnc3VzcGVuZCkKICAgICAgICAgICA7OyBXaGVuIHRoZSBtb3VzZSBpcyBhdCBp dHMgZmlyc3QgcmVjb3JkZWQgcG9zaXRpb24sIHJlc3RhcnQKICAgICAgICAgICA7OyBkZWxheWVk IGF1dG9zZWxlY3Rpb24uICBUaGlzIHdvcmtzIGFyb3VuZCBhIHNjZW5hcmlvIHdpdGgKICAgICAg ICAgICA7OyB0d28gdHdvLXdpbmRvdyBmcmFtZXMgd2l0aCBpZGVudGljYWwgZGltZW5zaW9uczog c2VsZWN0IHRoZQpAQCAtOTk4OCwxMSArOTk4OCwxMSBAQCBpcyBhY3RpdmUuICBUaGlzIGZ1bmN0 aW9uIGlzIHJ1biBieSBgbW91c2UtYXV0b3NlbGVjdC13aW5kb3ctdGltZXInLiIKICAgICAgIDs7 IE1vdXNlIHBvc2l0aW9uIGhhcyBzdGFiaWxpemVkIGF0CiAgICAgICA7OyBgbW91c2UtYXV0b3Nl bGVjdC13aW5kb3ctcG9zaXRpb24nOiBDYW5jZWwgZGVsYXllZAogICAgICAgOzsgYXV0b3NlbGVj dGlvbi4KLSAgICAgKG1vdXNlLWF1dG9zZWxlY3Qtd2luZG93LWNhbmNlbCB0KSkKLSAgICAod2lu ZG93Ci0gICAgIDs7IE1vdXNlIHBvc2l0aW9uIGhhcyBub3Qgc3RhYmlsaXplZCB5ZXQsIHJlc3Vt ZSBkZWxheWVkCi0gICAgIDs7IGF1dG9zZWxlY3Rpb24uCi0gICAgIChtb3VzZS1hdXRvc2VsZWN0 LXdpbmRvdy1zdGFydCBtb3VzZS1wb3NpdGlvbiB3aW5kb3cpKSkpKQorICAgICAgKG1vdXNlLWF1 dG9zZWxlY3Qtd2luZG93LWNhbmNlbCB0KSkKKyAgICAgKHdpbmRvdworICAgICAgOzsgTW91c2Ug cG9zaXRpb24gaGFzIG5vdCBzdGFiaWxpemVkIHlldCwgcmVzdW1lIGRlbGF5ZWQKKyAgICAgIDs7 IGF1dG9zZWxlY3Rpb24uCisgICAgICAobW91c2UtYXV0b3NlbGVjdC13aW5kb3ctc3RhcnQgbW91 c2UtcG9zaXRpb24gd2luZG93KSkpKSkKIAogKGRlY2xhcmUtZnVuY3Rpb24gZGlzcGxheS1tdWx0 aS1mcmFtZS1wICJmcmFtZSIgKCZvcHRpb25hbCBkaXNwbGF5KSkKIApAQCAtMTAwMDMsMTkgKzEw MDAzLDE5IEBAIGlzIGFjdGl2ZS4gIFRoaXMgZnVuY3Rpb24gaXMgcnVuIGJ5IGBtb3VzZS1hdXRv c2VsZWN0LXdpbmRvdy10aW1lcicuIgogICAgICAgICAgKGZyYW1lIChhbmQgKHdpbmRvdy1saXZl LXAgd2luZG93KSAod2luZG93LWZyYW1lIHdpbmRvdykpKQogICAgICAgICAgKG9sZC1mcmFtZSAo c2VsZWN0ZWQtZnJhbWUpKSkKICAgICAodW5sZXNzIChvciAobm90ICh3aW5kb3ctbGl2ZS1wIHdp bmRvdykpCi0JCTs7IERvbid0IHN3aXRjaCB3aGVuIGF1dG9zZWxlY3Rpb24gc2hhbGwgYmUgZGVs YXllZC4KLQkJKGFuZCAobnVtYmVycCBtb3VzZS1hdXRvc2VsZWN0LXdpbmRvdykKLQkJICAgICAo bm90IChlcSBtb3VzZS1hdXRvc2VsZWN0LXdpbmRvdy1zdGF0ZSAnc2VsZWN0KSkKLQkJICAgICAo bGV0ICgocG9zaXRpb24gKG1vdXNlLXBvc2l0aW9uKSkpCi0JCSAgICAgICA7OyBDYW5jZWwgYW55 IGRlbGF5ZWQgYXV0b3NlbGVjdGlvbi4KLQkJICAgICAgIChtb3VzZS1hdXRvc2VsZWN0LXdpbmRv dy1jYW5jZWwgdCkKLQkJICAgICAgIDs7IFN0YXJ0IGRlbGF5ZWQgYXV0b3NlbGVjdGlvbiBmcm9t IGN1cnJlbnQgbW91c2UKLQkJICAgICAgIDs7IHBvc2l0aW9uIGFuZCB3aW5kb3cuCi0JCSAgICAg ICAoc2V0cSBtb3VzZS1hdXRvc2VsZWN0LXdpbmRvdy1wb3NpdGlvbi0xIHBvc2l0aW9uKQotCQkg ICAgICAgKG1vdXNlLWF1dG9zZWxlY3Qtd2luZG93LXN0YXJ0IHBvc2l0aW9uIHdpbmRvdykKLQkJ ICAgICAgIDs7IEV4ZWN1dGluZyBhIGNvbW1hbmQgY2FuY2VscyBkZWxheWVkIGF1dG9zZWxlY3Rp b24uCi0JCSAgICAgICAoYWRkLWhvb2sKLQkJCSdwcmUtY29tbWFuZC1ob29rICdtb3VzZS1hdXRv c2VsZWN0LXdpbmRvdy1jYW5jZWwpKSkKKyAgICAgICAgICAgICAgICA7OyBEb24ndCBzd2l0Y2gg d2hlbiBhdXRvc2VsZWN0aW9uIHNoYWxsIGJlIGRlbGF5ZWQuCisgICAgICAgICAgICAgICAgKGFu ZCAobnVtYmVycCBtb3VzZS1hdXRvc2VsZWN0LXdpbmRvdykKKyAgICAgICAgICAgICAgICAgICAg IChub3QgKGVxIG1vdXNlLWF1dG9zZWxlY3Qtd2luZG93LXN0YXRlICdzZWxlY3QpKQorICAgICAg ICAgICAgICAgICAgICAgKGxldCAoKHBvc2l0aW9uIChtb3VzZS1wb3NpdGlvbikpKQorICAgICAg ICAgICAgICAgICAgICAgICA7OyBDYW5jZWwgYW55IGRlbGF5ZWQgYXV0b3NlbGVjdGlvbi4KKyAg ICAgICAgICAgICAgICAgICAgICAgKG1vdXNlLWF1dG9zZWxlY3Qtd2luZG93LWNhbmNlbCB0KQor ICAgICAgICAgICAgICAgICAgICAgICA7OyBTdGFydCBkZWxheWVkIGF1dG9zZWxlY3Rpb24gZnJv bSBjdXJyZW50IG1vdXNlCisgICAgICAgICAgICAgICAgICAgICAgIDs7IHBvc2l0aW9uIGFuZCB3 aW5kb3cuCisgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG1vdXNlLWF1dG9zZWxlY3Qtd2lu ZG93LXBvc2l0aW9uLTEgcG9zaXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZS1h dXRvc2VsZWN0LXdpbmRvdy1zdGFydCBwb3NpdGlvbiB3aW5kb3cpCisgICAgICAgICAgICAgICAg ICAgICAgIDs7IEV4ZWN1dGluZyBhIGNvbW1hbmQgY2FuY2VscyBkZWxheWVkIGF1dG9zZWxlY3Rp b24uCisgICAgICAgICAgICAgICAgICAgICAgIChhZGQtaG9vaworICAgICAgICAgICAgICAgICAg ICAgICAgJ3ByZS1jb21tYW5kLWhvb2sgJ21vdXNlLWF1dG9zZWxlY3Qtd2luZG93LWNhbmNlbCkp KQogICAgICAgICAgICAgICAgIDs7IERvbid0IHN3aXRjaCB0byBhIGBuby1hY2NlcHQtZm9jdXMn IGZyYW1lIHVubGVzcyBpdCdzCiAgICAgICAgICAgICAgICAgOzsgYWxyZWFkeSBzZWxlY3RlZC4K ICAgICAgICAgICAgICAgICAoYW5kIChub3QgKGVxIGZyYW1lIChzZWxlY3RlZC1mcmFtZSkpKQpA QCAtMTAwNjAsOSArMTAwNjAsOSBAQCBPdGhlcndpc2UsIGNvbnN1bHQgdGhlIHZhbHVlIG9mIGB0 cnVuY2F0ZS1wYXJ0aWFsLXdpZHRoLXdpbmRvd3MnCiAgIChzZXRxIHdpbmRvdyAod2luZG93LW5v cm1hbGl6ZS13aW5kb3cgd2luZG93IHQpKQogICAodW5sZXNzICh3aW5kb3ctZnVsbC13aWR0aC1w IHdpbmRvdykKICAgICAobGV0ICgodC1wLXctdyAoYnVmZmVyLWxvY2FsLXZhbHVlICd0cnVuY2F0 ZS1wYXJ0aWFsLXdpZHRoLXdpbmRvd3MKLQkJCQkgICAgICAgKHdpbmRvdy1idWZmZXIgd2luZG93 KSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1idWZm ZXIgd2luZG93KSkpKQogICAgICAgKGlmIChpbnRlZ2VycCB0LXAtdy13KQotCSAgKDwgKHdpbmRv dy13aWR0aCB3aW5kb3cpIHQtcC13LXcpCisgICAgICAgICAgKDwgKHdpbmRvdy13aWR0aCB3aW5k b3cpIHQtcC13LXcpCiAgICAgICAgIHQtcC13LXcpKSkpCiAKIAwKQEAgLTEwMDkwLDkgKzEwMDkw LDkgQEAgb3ZlcnJpZGVzIHRoZSBnbG9iYWwgb3IgYnVmZmVyLWxvY2FsIHZhbHVlIG9mCiBgd2lu ZG93LWFkanVzdC1wcm9jZXNzLXdpbmRvdy1zaXplLWZ1bmN0aW9uJy4iCiAgIDp0eXBlICcoY2hv aWNlCiAgICAgICAgICAgKGNvbnN0IDp0YWcgIk1pbmltdW0gYXJlYSBvZiBhbnkgd2luZG93Igot ICAgICAgICAgICB3aW5kb3ctYWRqdXN0LXByb2Nlc3Mtd2luZG93LXNpemUtc21hbGxlc3QpCisg ICAgICAgICAgICAgICAgIHdpbmRvdy1hZGp1c3QtcHJvY2Vzcy13aW5kb3ctc2l6ZS1zbWFsbGVz dCkKICAgICAgICAgICAoY29uc3QgOnRhZyAiTWF4aW11bSBhcmVhIG9mIGFueSB3aW5kb3ciCi0g ICAgICAgICAgIHdpbmRvdy1hZGp1c3QtcHJvY2Vzcy13aW5kb3ctc2l6ZS1sYXJnZXN0KQorICAg ICAgICAgICAgICAgICB3aW5kb3ctYWRqdXN0LXByb2Nlc3Mtd2luZG93LXNpemUtbGFyZ2VzdCkK ICAgICAgICAgICAoY29uc3QgOnRhZyAiRG8gbm90IGFkanVzdCBwcm9jZXNzIHdpbmRvdyBzaXpl cyIgaWdub3JlKQogICAgICAgICAgIGZ1bmN0aW9uKQogICA6Z3JvdXAgJ3dpbmRvd3MKLS0gCjIu MjcuMC53aW5kb3dzLjEKCg== --000000000000f85a7f05ad2757be-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 18 10:11:24 2020 Received: (at 42914) by debbugs.gnu.org; 18 Aug 2020 14:11:24 +0000 Received: from localhost ([127.0.0.1]:36570 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k82Ki-000229-7H for submit@debbugs.gnu.org; Tue, 18 Aug 2020 10:11:24 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50500) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k82Kg-00021w-LP for 42914@debbugs.gnu.org; Tue, 18 Aug 2020 10:11:22 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52759) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k82Kb-0007Pn-97; Tue, 18 Aug 2020 10:11:17 -0400 Received: from [176.228.60.248] (port=2715 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1k82Ka-000565-Ex; Tue, 18 Aug 2020 10:11:17 -0400 Date: Tue, 18 Aug 2020 17:11:02 +0300 Message-Id: <83blj8f3ih.fsf@gnu.org> From: Eli Zaretskii To: Jen-Chieh Shen In-Reply-To: (message from Jen-Chieh Shen on Tue, 18 Aug 2020 22:02:43 +0800) Subject: Re: bug#42914: [PATCH] Fixed indentation and mix used of space and tabs. References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 42914 Cc: 42914@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Jen-Chieh Shen > Date: Tue, 18 Aug 2020 22:02:43 +0800 > > When I am editing the file `lisp/window.el` I found some indentation issues and mixed use of space and tab. Thanks, but we prefer not to make whitespace-only changes, they make repository forensics harder. Instead, we fix whitespace where other changes are being made. > Is there a specific reason that these issues exist? History. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 18 10:13:29 2020 Received: (at 42914) by debbugs.gnu.org; 18 Aug 2020 14:13:30 +0000 Received: from localhost ([127.0.0.1]:36577 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k82Mj-00025P-KD for submit@debbugs.gnu.org; Tue, 18 Aug 2020 10:13:29 -0400 Received: from quimby.gnus.org ([95.216.78.240]:33184) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k82Mi-00025A-58 for 42914@debbugs.gnu.org; Tue, 18 Aug 2020 10:13:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=oVA0xr2aEiU2xnI1MDrQrCCyL9thg80GXgrNV04GIVg=; b=Bvmv/jVWFsiOt/B6ya20yTmKzA nrTv7soTmNdiERbqMv5o2a/ERBCI3w7XaGg7bZgX1EWwi3T7erHMAJ1yDXz1c+qRIb+f5Pio+7vCX HUP8bRULmRv1RTBbyjvByFMkSbq+ncQvv+hQryk9gX4UTPmz1VJBfEzZXFM9YHeTXMEw=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k82MZ-0007kz-Hw; Tue, 18 Aug 2020 16:13:22 +0200 From: Lars Ingebrigtsen To: Jen-Chieh Shen Subject: Re: bug#42914: [PATCH] Fixed indentation and mix used of space and tabs. References: Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEXNuarHq5SyjnHf 0r2aLDpQLStHLCr///9aH4LaAAAAAWJLR0QHFmGI6wAAAAd0SU1FB+QIEg4HMgZpzawAAAGZSURB VDjLndGxUsMwDAZgB67McWh34guZC4YHaM9mBs7STi7S+z8CsmKXQtMFLbn4s37HijH/raa9Aje3 +yvir4LIap733pj9SqvPJU126FfA3yDytL9c9yMznMOtrwBMs7mEPYPUCtwR4C+oR7xwhnZFMEc9 nEO7wOYvdFPJIgA8gy1ngHv/+qdj5C/vX5kfRkgA77JiC8Dnk39DZmQBODS2wA4n1zGTCPKMUwUr 0A0sc2JCJvgs0JgNTM+PhLJdDKhAa9zI07DLJyhAsgLWNk7eeX5kLTmbC2x1KwU6ASm0owakAIgk 6yhh/QK4QFwa8hco2HG5WIgyp9+g2SG8pRA0irh3vcCuQAwh6P9gPjh3gqSQ4wQ+LiAo0FcBGZCA FkK+/qTQEfxAzEk8dc70dpl3Bd01S0eKUa6HFYJ8r87GcCkqENIQQAJNndwcfipKXAbM102nRS00 pJcFnk9nSMnDkP4BrBD19wKBqROtUa6UOTqXB1rPPdhcnUDjbMzbhgWOed1lGNLSOtSorkTVzArH /HK8Bm5w38Sz4AMzeJCqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE4VDE0OjA3OjUwKzAw OjAwBgKxhgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xOFQxNDowNzo1MCswMDowMHdfCToA AAAASUVORK5CYII= X-Now-Playing: Dead Can Dance's _Spleen and Ideal_: "The Cardinal Sin" Date: Tue, 18 Aug 2020 16:13:18 +0200 In-Reply-To: (Jen-Chieh Shen's message of "Tue, 18 Aug 2020 22:02:43 +0800") Message-ID: <877dtwkpoh.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Jen-Chieh Shen writes: > When I am editing the file `lisp/window.el` I found some indentation > issues We generally don't do whitespace-only fixes, because that makes looking at the history of changes more difficult (as well as applying patches). Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 42914 Cc: 42914@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jen-Chieh Shen writes: > When I am editing the file `lisp/window.el` I found some indentation > issues We generally don't do whitespace-only fixes, because that makes looking at the history of changes more difficult (as well as applying patches). > and mixed use of space and tab. Is there a specific reason that > these issues exist? We generally don't care very much about whether something uses tabs or spaces or a mix thereof. So I'm not going to apply this patch, and I'm closing this bug report. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 18 10:13:54 2020 Received: (at control) by debbugs.gnu.org; 18 Aug 2020 14:13:54 +0000 Received: from localhost ([127.0.0.1]:36580 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k82N7-000263-Tp for submit@debbugs.gnu.org; Tue, 18 Aug 2020 10:13:54 -0400 Received: from quimby.gnus.org ([95.216.78.240]:33198) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k82N5-00025p-V6 for control@debbugs.gnu.org; Tue, 18 Aug 2020 10:13:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=+G9Uvp6BbjRI9RxoBP8WT9cukFsuvGrVH50Uq7fGyKE=; b=n5xEnOcBTXm5/x+P6Xv50K3wVl 0qvq+tJBcTmNpj+DVxCpE7OCnAm4Yxi8bnev5Ybbe6+EoGUQGjY5krNvYAxGKIxCDZQlLP5LV1TXQ xgrdYWBo942t5XotX+frkXYTEWeQqdzxhNBqUM3HSASfiIGkPFZHszQs0fUb7b3ZYHBw=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k82My-0007l6-Ap for control@debbugs.gnu.org; Tue, 18 Aug 2020 16:13:46 +0200 Date: Tue, 18 Aug 2020 16:13:42 +0200 Message-Id: <87364kkpnt.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #42914 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 42914 wontfix close 42914 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 42914 wontfix close 42914 quit From unknown Fri Jun 20 07:18:50 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 16 Sep 2020 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator