Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1akT4n-0004Q4-8l for pgadmin-hackers@arkaria.postgresql.org; Mon, 28 Mar 2016 09:03:09 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1akT4m-0002ux-RM for pgadmin-hackers@arkaria.postgresql.org; Mon, 28 Mar 2016 09:03:08 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1akT4V-0002fv-Pd for pgadmin-hackers@postgresql.org; Mon, 28 Mar 2016 09:02:52 +0000 Received: from mail-vk0-x22b.google.com ([2607:f8b0:400c:c05::22b]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1akT4R-0000yr-Ok for pgadmin-hackers@postgresql.org; Mon, 28 Mar 2016 09:02:50 +0000 Received: by mail-vk0-x22b.google.com with SMTP id k1so148160037vkb.0 for ; Mon, 28 Mar 2016 02:02:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to; bh=N1xVb4qf+pNmNO4MVyEGli090SmsvkMEKDqsN13sMpw=; b=BjkPHvlPnDioUfvvzfpU/uBxT85HJFFden9ImjwW8voRLHhmTGMVdN1dmkVyJ2iaYi HGxgMDhbHqeAnOygOE9Lyl2m4VsEyNcGPgJl6zTO3b6EnKZLCvjMlJZRBlefdg5wg0pT 3j0C5E2OXgmpJRHda/56tH6wbRsDI1oJbGQK9XUUfNCp0ZcexaWgPjT8r6IDehoY8viF dDPOTRuRvD2V6D+jB12YhlSl/GCoHLUW4FnBiCz+eSZDUooiCFnP+ZsNrkGxa/upQKm9 hFwZ5Sfyx6WLsW4bdHdexL0ZuHEUuV0Iqhq/ItGaROeqyqRVQ7530DZfjiHUlksA9+As dBjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=N1xVb4qf+pNmNO4MVyEGli090SmsvkMEKDqsN13sMpw=; b=E3WXVnoS+flv2tPzkavk2p81jChMqL4OKISCW/jRtlOFAVLAe1rgTSP3jjpQOJJ5tN wJSpn1JqsdYokewGPl/5OZ8mpm/81JU4j7HLx2Q4xS81DYML36d5P/XWyxsFnILDNQ+i cvUA7BtHZJbigIN/pQlqj1MlUWsDRViEiYaSI7emLJHFsE/hj19TYDd0eZqd1elm9quv UZJriwyS35zHLemFFaFhuW2z4xIqIFv15JD6iG6BSvVglPANtwB25EhvLZ7PvfMZMbd4 UtdIfKMWexCQoAofFCIX/vtsY1P6Tpzjsl71uT1UG2EK1p+pxz+XqkwCgKQdAsOkKoMJ pCzg== X-Gm-Message-State: AD7BkJLkgCoatI7pEfb9E4Q3oTF7+gPLCWOoywnwXW1CYbCNQ9nRkzdFG+0lBX9y+j9OwozR+MdPngZXLcRI1q3d MIME-Version: 1.0 X-Received: by 10.31.147.82 with SMTP id v79mr12003134vkd.58.1459155766777; Mon, 28 Mar 2016 02:02:46 -0700 (PDT) Received: by 10.31.134.198 with HTTP; Mon, 28 Mar 2016 02:02:46 -0700 (PDT) Date: Mon, 28 Mar 2016 14:32:46 +0530 Message-ID: Subject: PATCH: pgadmin 4: FTS Parser From: Sanket Mehta To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a1141dca226ce2e052f182d85 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1141dca226ce2e052f182d85 Content-Type: multipart/alternative; boundary=001a1141dca226ce29052f182d83 --001a1141dca226ce29052f182d83 Content-Type: text/plain; charset=UTF-8 Hi, PFA the patch for FTS parser node for review. Please do review it and provide the comments. Regards, Sanket Mehta Sr Software engineer Enterprisedb --001a1141dca226ce29052f182d83 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA the patch for FTS parser node f= or review.
Please do review it and provide the comments.

Regar= ds,
Sanket Mehta
Sr Software engineer
Enterprisedb<= /div>
--001a1141dca226ce29052f182d83-- --001a1141dca226ce2e052f182d85 Content-Type: text/x-patch; charset=US-ASCII; name="fts_parserv1.patch" Content-Disposition: attachment; filename="fts_parserv1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imbrngzb0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvX19pbml0 X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL19faW5pdF9fLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwYTY0YjUK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2Vy L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsODE2IEBACisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxNiwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIkRlZmluZXMgdmlld3MgZm9yIG1h bmFnZW1lbnQgb2YgRnRzIFBhcnNlciBub2RlIiIiCisKK2ltcG9ydCBqc29u Citmcm9tIGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxhdGUsIG1ha2VfcmVz cG9uc2UsIGN1cnJlbnRfYXBwLCByZXF1ZXN0LCBqc29uaWZ5Citmcm9tIGZs YXNrLmV4dC5iYWJlbCBpbXBvcnQgZ2V0dGV4dAorZnJvbSBwZ2FkbWluLnV0 aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgXAorICAgIG1h a2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVy X2Vycm9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdD aGlsZE5vZGVWaWV3Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudXRpbHMgaW1wb3J0IFNj aGVtYUNoaWxkTW9kdWxlCitpbXBvcnQgcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcyBhcyBzY2hlbWFz Citmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgcHJlY29uZGl0aW9u X3JlcXVpcmVkCitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBn ZXRfZHJpdmVyCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklW RVIKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcworCisKK2NsYXNzIEZ0 c1BhcnNlck1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CisgICAgIiIiCisg ICAgIGNsYXNzIEZ0c1BhcnNlck1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSkK KworICAgICAgICBBIG1vZHVsZSBjbGFzcyBmb3IgRlRTIFBhcnNlciBub2Rl IGRlcml2ZWQgZnJvbSBTY2hlbWFDaGlsZE1vZHVsZS4KKworICAgIE1ldGhv ZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKmFyZ3MsICoqa3dh cmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRo ZSBGdHNQYXJzZXJNb2R1bGUgYW5kIGl0J3MgYmFzZSBtb2R1bGUuCisKKyAg ICAqIGdldF9ub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKQorICAgICAgLSBN ZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xsZWN0 aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKQorICAgICAgLSBNZXRo b2QgaXMgb3ZlcnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNzIHRvIG1ha2Ug dGhlIG5vZGUgYXMgbGVhZiBub2RlLgorCisgICAgKiBzY3JpcHRfbG9hZCgp CisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIEZUUyBQYXJz ZXIsIHdoZW4gYW55IG9mIHRoZSBzY2hlbWEgbm9kZSBpcworICAgICAgICBp bml0aWFsaXplZC4KKyAgICAiIiIKKyAgICBOT0RFX1RZUEUgPSAnZnRzX3Bh cnNlcicKKyAgICBDT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgnRlRTIFBh cnNlcnMnKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3 YXJncyk6CisgICAgICAgIHNlbGYubWluX3ZlciA9IE5vbmUKKyAgICAgICAg c2VsZi5tYXhfdmVyID0gTm9uZQorICAgICAgICBzdXBlcihGdHNQYXJzZXJN b2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAg IGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6Cisg ICAgICAgICIiIgorICAgICAgICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBu b2RlCisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpw YXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRh YmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAg ICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJf Y29sbGVjdGlvbl9ub2RlKHNjaWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBk ZWYgbm9kZV9pbm9kZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE92 ZXJyaWRlIHRoZSBwcm9wZXJ0eSB0byBtYWtlIHRoZSBub2RlIGFzIGxlYWYg bm9kZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAg ICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBm dHMgdGVtcGxhdGUsIHdoZW4gYW55IG9mIHRoZSBzY2hlbWEgbm9kZSBpcwor ICAgICAgICBpbml0aWFsaXplZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJl dHVybiBzY2hlbWFzLlNjaGVtYU1vZHVsZS5OT0RFX1RZUEUKKworCitibHVl cHJpbnQgPSBGdHNQYXJzZXJNb2R1bGUoX19uYW1lX18pCisKKworY2xhc3Mg RnRzUGFyc2VyVmlldyhQR0NoaWxkTm9kZVZpZXcpOgorICAgICIiIgorICAg IGNsYXNzIEZ0c1BhcnNlclZpZXcoUEdDaGlsZE5vZGVWaWV3KQorCisgICAg ICAgIEEgdmlldyBjbGFzcyBmb3IgRlRTIFBhcnNlciBub2RlIGRlcml2ZWQg ZnJvbSBQR0NoaWxkTm9kZVZpZXcuIFRoaXMgY2xhc3MgaXMKKyAgICAgICAg cmVzcG9uc2libGUgZm9yIGFsbCB0aGUgc3R1ZmYgcmVsYXRlZCB0byB2aWV3 IGxpa2UgY3JlYXRlL3VwZGF0ZS9kZWxldGUKKyAgICAgICAgcmVzcG9uc2li bGUgZm9yIGFsbCB0aGUgc3R1ZmYgcmVsYXRlZCB0byB2aWV3IGxpa2UgY3Jl YXRlL3VwZGF0ZS9kZWxldGUKKyAgICAgICAgRlRTIFBhcnNlciwgc2hvd2lu ZyBwcm9wZXJ0aWVzIG9mIG5vZGUsIHNob3dpbmcgc3FsIGluIHNxbCBwYW5l LgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBfX2luaXRf XygqKmt3YXJncykKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlh bGl6ZSB0aGUgRnRzUGFyc2VyVmlldyBhbmQgaXQncyBiYXNlIHZpZXcuCisK KyAgICAqIG1vZHVsZV9qcygpCisgICAgICAtIFRoaXMgcHJvcGVydHkgZGVm aW5lcyAoaWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlzIG5vZGUuCisg ICAgICAgIE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlvdXIgb3duIGxv Z2ljCisKKyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisgICAgICAtIFRo aXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2gg d2lsbCBjaGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZv cmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAg ICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRv IHNlbGYKKworICAgICogbGlzdCgpCisgICAgICAtIFRoaXMgZnVuY3Rpb24g aXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgIG5vZGVzIHdpdGhpbiB0aGF0IGNv bGxlY3Rpb24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9kZSB3 aXRoaW4gdGhhdCBjb2xsZWN0aW9uLgorICAgICAgICBIZXJlIGl0IHdpbGwg Y3JlYXRlIGFsbCB0aGUgRlRTIFBhcnNlciBub2Rlcy4KKworICAgICogcHJv cGVydGllcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBwaWQpCisgICAgICAtIFRo aXMgZnVuY3Rpb24gd2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBz ZWxlY3RlZCBGVFMgUGFyc2VyIG5vZGUKKworICAgICogY3JlYXRlKGdpZCwg c2lkLCBkaWQsIHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBj cmVhdGUgdGhlIG5ldyBGVFMgUGFyc2VyIG9iamVjdAorCisgICAgKiB1cGRh dGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgcGlkKQorICAgICAgLSBUaGlzIGZ1 bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBkYXRhIGZvciB0aGUgc2VsZWN0ZWQg RlRTIFBhcnNlciBub2RlCisKKyAgICAqIGRlbGV0ZShzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCBwaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdp bGwgZHJvcCB0aGUgRlRTIFBhcnNlciBvYmplY3QKKworICAgICogbXNxbChn aWQsIHNpZCwgZGlkLCBzY2lkLCBwaWQpCisgICAgICAtIFRoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQgU1FMIGZvciB0aGUgc2Vs ZWN0ZWQgRlRTIFBhcnNlciBub2RlCisKKyAgICAqIGdldF9zcWwoZGF0YSwg cGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3Fs IGZyb20gbW9kZWwgZGF0YQorCisgICAgKiBzcWwoZ2lkLCBzaWQsIGRpZCwg c2NpZCwgcGlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVy YXRlIHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5lIGZvciB0aGUgc2VsZWN0 ZWQgRlRTIFBhcnNlciBub2RlLgorCisgICAgKiBnZXRfdHlwZSgpOgorICAg ICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYWxsIHRoZSB0eXBlcyBm b3Igc291cmNlIGFuZCB0YXJnZXQgdHlwZXMgc2VsZWN0IGNvbnRyb2wuCisK KyAgICAqIGRlcGVuZGVudHMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgcGlkKToK KyAgICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVudHMgYW5k IHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUgRnRzIFBhcnNlciBub2Rl LgorCisgICAgKiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCwgcGlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRl cGVuZGVuY2llcyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UgZm9yIHRoZSBG VFMgUGFyc2VyIG5vZGUuCisKKyAgICAiIiIKKworICAgIG5vZGVfdHlwZSA9 IGJsdWVwcmludC5ub2RlX3R5cGUKKworICAgIHBhcmVudF9pZHMgPSBbCisg ICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAg IHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2lkJ30sCisgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAnZGlkJ30sCisgICAgICAgIHsndHlwZSc6ICdp bnQnLCAnaWQnOiAnc2NpZCd9CisgICAgXQorICAgIGlkcyA9IFsKKyAgICAg ICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdwaWQnfQorICAgIF0KKworICAg IG9wZXJhdGlvbnMgPSBkaWN0KHsKKyAgICAgICAgJ29iaic6IFsKKyAgICAg ICAgICAgIHsnZ2V0JzogJ3Byb3BlcnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0 ZScsICdwdXQnOiAndXBkYXRlJ30sCisgICAgICAgICAgICB7J2dldCc6ICds aXN0JywgJ3Bvc3QnOiAnY3JlYXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAg J2NoaWxkcmVuJzogW3sKKyAgICAgICAgICAgICdnZXQnOiAnY2hpbGRyZW4n CisgICAgICAgIH1dLAorICAgICAgICAnZGVsZXRlJzogW3snZGVsZXRlJzog J2RlbGV0ZSd9XSwKKyAgICAgICAgJ25vZGVzJzogW3snZ2V0JzogJ25vZGUn fSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBbeydnZXQn OiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6IFt7J2dldCc6ICdtc3FsJ30s IHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAgICdzdGF0cyc6IFt7J2dldCc6 ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAnZGVwZW5kZW5jeSc6IFt7J2dl dCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAgICAgICdkZXBlbmRlbnQnOiBb eydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAgJ21vZHVsZS5qcyc6 IFt7fSwge30sIHsnZ2V0JzogJ21vZHVsZV9qcyd9XSwKKyAgICAgICAgJ2dl dF9zdGFydCc6IFt7J2dldCc6ICdnZXRfc3RhcnQnfSwgeydnZXQnOiAnZ2V0 X3N0YXJ0J31dLAorICAgICAgICAnZ2V0X3Rva2VuJzogW3snZ2V0JzogJ2dl dF90b2tlbid9LCB7J2dldCc6ICdnZXRfdG9rZW4nfV0sCisgICAgICAgICdn ZXRfZW5kJzogW3snZ2V0JzogJ2dldF9lbmQnfSwgeydnZXQnOiAnZ2V0X2Vu ZCd9XSwKKyAgICAgICAgJ2dldF9sZXh0eXBlJzogW3snZ2V0JzogJ2dldF9s ZXh0eXBlJ30sIHsnZ2V0JzogJ2dldF9sZXh0eXBlJ31dLAorICAgICAgICAn Z2V0X2hlYWRsaW5lJzogW3snZ2V0JzogJ2dldF9oZWFkbGluZSd9LCB7J2dl dCc6ICdnZXRfaGVhZGxpbmUnfV0sCisgICAgfSkKKworICAgIGRlZiBfaW5p dF8oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLmNvbm4gPSBOb25l CisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IE5vbmUKKyAgICAgICAg c2VsZi5tYW5hZ2VyID0gTm9uZQorICAgICAgICBzdXBlcihGdHNQYXJzZXJW aWV3LCBzZWxmKS5fX2luaXRfXygqKmt3YXJncykKKworICAgIGRlZiBtb2R1 bGVfanMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIHByb3Bl cnR5IGRlZmluZXMgd2hldGhlciBqYXZhc2NyaXB0IGV4aXN0cyBmb3IgdGhp cyBub2RlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIG1ha2VfcmVz cG9uc2UoCisgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisgICAgICAg ICAgICAgICAgImZ0c19wYXJzZXIvanMvZnRzX3BhcnNlci5qcyIsCisgICAg ICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAgICAgICApLAorICAgICAg ICAgICAgMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWph dmFzY3JpcHQnfQorICAgICAgICApCisKKyAgICBkZWYgY2hlY2tfcHJlY29u ZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlv biB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNr cworICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5n IHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAgICAgICBtYW5hZ2Vy LGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAg ICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdy YXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICMgSGVyZSBhcmdz WzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lk LGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgICAg IHNlbGYubWFuYWdlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIp LmNvbm5lY3Rpb25fbWFuYWdlcigKKyAgICAgICAgICAgICAgICBrd2FyZ3Nb J3NpZCddKQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2Vy LmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICAj IElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJv d3NlcgorICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQo KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVp cmVkKAorICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KAorICAgICAgICAg ICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMg YmVlbiBsb3N0ISIKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUg cGF0aCBmb3Igc3FsIHNjcmlwdHMgZGVwZW5kaW5nIHVwb24gc2VydmVyIHZl cnNpb24KKyAgICAgICAgICAgIHZlciA9IHNlbGYubWFuYWdlci52ZXJzaW9u CisgICAgICAgICAgICBpZiB2ZXIgPj0gOTAxMDA6CisgICAgICAgICAgICAg ICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2Z0c19wYXJzZXIvc3FsLzkuMV9w bHVzJworICAgICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQor CisgICAgICAgIHJldHVybiB3cmFwCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAg ICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNx bCddKSwKKyAgICAgICAgICAgIHNjaWQ9c2NpZAorICAgICAgICApCisgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwp CisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9u c2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAg ICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9k ZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgIHJlcyA9 IFtdCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdub2Rlcy5zcWwn XSksCisgICAgICAgICAgICBzY2lkPXNjaWQKKyAgICAgICAgKQorICAgICAg ICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNx bCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAg ICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJl cy5hcHBlbmQoCisgICAgICAgICAgICAgICAgc2VsZi5ibHVlcHJpbnQuZ2Vu ZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByb3db J29pZCddLAorICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAg ICAgICAgICAgIHJvd1snbmFtZSddLAorICAgICAgICAgICAgICAgICAgICBp Y29uPSJpY29uLWZ0c19wYXJzZXIiCisgICAgICAgICAgICAgICAgKSkKKwor ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAg ICAgZGF0YT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZShz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBwaWQpOgorICAgICAgICByZXMg PSBbXQorICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAg ICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnbm9kZXMuc3Fs J10pLAorICAgICAgICAgICAgcGlkPXBpZAorICAgICAgICApCisgICAgICAg IHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoc3Fs KQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAg ICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBkYXRh PXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAg ICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAgICAgICByb3db J25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGljb249Imljb24t ZnRzX3BhcnNlciIKKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAg ICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICApCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgcGlkKToKKyAgICAgICAgc3FsID0gcmVuZGVy X3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgc2Np ZD1zY2lkLAorICAgICAgICAgICAgcGlkPXBpZAorICAgICAgICApCisgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwp CisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9u c2U9cmVzWydyb3dzJ11bMF0sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg Y3JlYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZXMgbmV3IHRo ZSBmdHNfcGFyc2VyIG9iamVjdAorICAgICAgICA6cGFyYW0gZ2lkOiBncm91 cCBpZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAg OnBhcmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6 IHNjaGVtYSBpZAorICAgICAgICAiIiIKKworICAgICAgICAjIE1hbmRhdG9y eSBmaWVsZHMgdG8gY3JlYXRlIGEgbmV3IGZ0cyBwYXJzZXIKKyAgICAgICAg cmVxdWlyZWRfYXJncyA9IFsKKyAgICAgICAgICAgICdwcnNzdGFydCcsCisg ICAgICAgICAgICAncHJzdG9rZW4nLAorICAgICAgICAgICAgJ3Byc2VuZCcs CisgICAgICAgICAgICAncHJzbGV4dHlwZScsCisgICAgICAgICAgICAnc2No ZW1hJywKKyAgICAgICAgICAgICduYW1lJworICAgICAgICBdCisKKyAgICAg ICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBq c29uLmxvYWRzKAorICAgICAgICAgICAgcmVxdWVzdC5kYXRhLmRlY29kZSgp KQorICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAg ICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAg c3RhdHVzPTQxMCwKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAor ICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAg ICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGZpbmQgdGhlIHJlcXVpcmVk IHBhcmFtZXRlciAoJXMpLiIgJSBhcmcKKyAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgdHJ5OgorICAgICAgICAg ICAgIyBGZXRjaCBzY2hlbWEgbmFtZSBmcm9tIHNjaGVtYSBvaWQKKyAgICAg ICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnc2NoZW1hLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29ubj1zZWxmLmNvbm4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICBz dGF0dXMsIHNjaGVtYSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c2NoZW1h KQorCisgICAgICAgICAgICAjIHJlcGxhY2Ugc2NoZW1hIG9pZCB3aXRoIHNj aGVtYSBuYW1lIGJlZm9yZSBwYXNzaW5nIHRvIGNyZWF0ZS5zcWwKKyAgICAg ICAgICAgICMgdG8gZ2VuZXJhdGUgcHJvcGVyIHNxbCBxdWVyeQorICAgICAg ICAgICAgbmV3X2RhdGEgPSBkYXRhLmNvcHkoKQorICAgICAgICAgICAgbmV3 X2RhdGFbJ3NjaGVtYSddID0gc2NoZW1hCisgICAgICAgICAgICBzcWwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwg J2NyZWF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YT1uZXdfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25uPXNlbGYuY29ubiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAj IHdlIG5lZWQgZnRzX3BhcnNlciBpZCB0byB0byBhZGQgb2JqZWN0IGluIHRy ZWUgYXQgYnJvd3NlciwKKyAgICAgICAgICAgICMgYmVsb3cgc3FsIHdpbGwg Z2l2ZSB0aGUgc2FtZQorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBs YXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICBu YW1lPWRhdGFbJ25hbWUnXQorICAgICAgICAgICAgKQorICAgICAgICAgICAg c3RhdHVzLCBwaWQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQor ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXBpZCkKKwor ICAgICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAg bm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisg ICAgICAgICAgICAgICAgICAgIHBpZCwKKyAgICAgICAgICAgICAgICAgICAg ZGlkLAorICAgICAgICAgICAgICAgICAgICBkYXRhWyduYW1lJ10sCisgICAg ICAgICAgICAgICAgICAgIGljb249Imljb24tZnRzX3BhcnNlciIKKyAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBF eGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgcGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCB1cGRhdGUgdGV4dCBzZWFyY2ggcGFyc2VyIG9iamVjdAor ICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAgICAgICA6cGFyYW0g c2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRpZDogZGF0YWJhc2Ug aWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAorICAgICAgICA6 cGFyYW0gcGlkOiBmdHMgcGFyc2VyIGlkCisgICAgICAgICIiIgorICAgICAg ICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpz b24ubG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0LmRhdGEuZGVjb2RlKCkp CisKKyAgICAgICAgIyBGZXRjaCBzcWwgcXVlcnkgdG8gdXBkYXRlIGZ0cyBw YXJzZXIKKyAgICAgICAgc3FsID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBk aWQsIHNjaWQsIGRhdGEsIHBpZCkKKyAgICAgICAgdHJ5OgorICAgICAgICAg ICAgaWYgc3FsIGFuZCBzcWwuc3RyaXAoJ1xuJykgYW5kIHNxbC5zdHJpcCgn ICcpOgorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAgICAgICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg ICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0iRlRT IFBhcnNlciB1cGRhdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17 CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiBwaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICdkaWQnOiBkaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6 IHNjaWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3Vj Y2Vzcz0xLAorICAgICAgICAgICAgICAgICAgICBpbmZvPSJOb3RoaW5nIHRv IHVwZGF0ZSIsCisgICAgICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAg ICAgICAgICAgICAgICAgICAgJ2lkJzogcGlkLAorICAgICAgICAgICAgICAg ICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICdnaWQnOiBnaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzog ZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkCisg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisKKyAg ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlbGV0ZShzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBwaWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGRyb3AgdGhlIGZ0c19wYXJzZXIg b2JqZWN0CisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAg IDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBk YXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisg ICAgICAgIDpwYXJhbSBwaWQ6IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIi IgorICAgICAgICAjIEJlbG93IHdpbGwgZGVjaWRlIGlmIGl0J3Mgc2ltcGxl IGRyb3Agb3IgZHJvcCB3aXRoIGNhc2NhZGUgY2FsbAorICAgICAgICBpZiBz ZWxmLmNtZCA9PSAnZGVsZXRlJzoKKyAgICAgICAgICAgICMgVGhpcyBpcyBh IGNhc2NhZGUgb3BlcmF0aW9uCisgICAgICAgICAgICBjYXNjYWRlID0gVHJ1 ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2FzY2FkZSA9IEZhbHNl CisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBHZXQgbmFtZSBmb3Ig UGFyc2VyIGZyb20gcGlkCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2RlbGV0ZS5z cWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlk PXBpZCkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAjIERyb3AgZnRzIFBhcnNl cgorICAgICAgICAgICAgcmVzdWx0ID0gcmVzWydyb3dzJ11bMF0KKyAgICAg ICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lPXJlc3VsdFsnbmFtZSddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT1yZXN1bHRb J3NjaGVtYSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNhc2NhZGU9Y2FzY2FkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKKworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEs CisgICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJGVFMgUGFyc2VyIGRy b3BwZWQiKSwKKyAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAg ICAgICAgICAgJ2lkJzogcGlkLAorICAgICAgICAgICAgICAgICAgICAnc2lk Jzogc2lkLAorICAgICAgICAgICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAg ICAgICAgICAgICAgICAgICAnZGlkJzogZGlkLAorICAgICAgICAgICAgICAg ICAgICAnc2NpZCc6IHNjaWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IG1zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgcGlkPU5vbmUpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIG1v ZGlmaWVkIFNRTAorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAg ICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRp ZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBp ZAorICAgICAgICA6cGFyYW0gcGlkOiBmdHMgdGVtcGF0ZSBpZAorICAgICAg ICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncworCisgICAgICAg ICMgRmV0Y2ggc3FsIHF1ZXJ5IGZvciBtb2RpZmllZCBkYXRhCisgICAgICAg IHNxbCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRh LCBwaWQpCisKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzcWwsIHN0cikgYW5k IHNxbCBhbmQgc3FsLnN0cmlwKCdcbicpIGFuZCBzcWwuc3RyaXAoJyAnKToK KyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgZGF0YT1zcWwsCisgICAgICAgICAgICAgICAgc3RhdHVz PTIwMAorICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICBkYXRhPSItLW1vZGlmaWVkIFNRTCIsCisgICAgICAgICAgICAgICAgc3Rh dHVzPTIwMAorICAgICAgICAgICAgKQorCisgICAgZGVmIGdldF9zcWwoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZGF0YSwgcGlkPU5vbmUpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBT UUwgZm9yIG1vZGVsIGRhdGEKKyAgICAgICAgOnBhcmFtIGdpZDogZ3JvdXAg aWQKKyAgICAgICAgOnBhcmFtIHNpZDogc2VydmVyIGlkCisgICAgICAgIDpw YXJhbSBkaWQ6IGRhdGFiYXNlIGlkCisgICAgICAgIDpwYXJhbSBzY2lkOiBz Y2hlbWEgaWQKKyAgICAgICAgOnBhcmFtIHBpZDogZnRzIHRlbXBhdGUgaWQK KyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgRmV0 Y2ggc3FsIGZvciB1cGRhdGUKKyAgICAgICAgICAgIGlmIHBpZCBpcyBub3Qg Tm9uZToKKyAgICAgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUo CisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAg ICAgcGlkPXBpZCwKKyAgICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkCisg ICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgICAg ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICAgICAgICAgIG9sZF9kYXRhID0gcmVzWydyb3dzJ11bMF0KKworICAg ICAgICAgICAgICAgICMgSWYgdXNlciBoYXMgY2hhbmdlZCB0aGUgc2NoZW1h IHRoZW4gZmV0Y2ggbmV3IHNjaGVtYSBkaXJlY3RseQorICAgICAgICAgICAg ICAgICMgdXNpbmcgaXRzIG9pZCBvdGhlcndpc2UgZmV0Y2ggb2xkIHNjaGVt YSBuYW1lIHVzaW5nIGZ0cyBQYXJzZXIgb2lkCisgICAgICAgICAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAi LyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc2NoZW1hLnNxbCddKSwK KyAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhKQorCisgICAgICAgICAg ICAgICAgc3RhdHVzLCBuZXdfc2NoZW1hID0gc2VsZi5jb25uLmV4ZWN1dGVf c2NhbGFyKHNxbCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPW5ld19zY2hlbWEpCisKKyAgICAgICAgICAgICAgICAj IFJlcGxhY2Ugc2NoZW1hIG9pZCB3aXRoIHNjaGVtYSBuYW1lCisgICAgICAg ICAgICAgICAgbmV3X2RhdGEgPSBkYXRhLmNvcHkoKQorICAgICAgICAgICAg ICAgIGlmICdzY2hlbWEnIGluIG5ld19kYXRhOgorICAgICAgICAgICAgICAg ICAgICBuZXdfZGF0YVsnc2NoZW1hJ10gPSBuZXdfc2NoZW1hCisKKyAgICAg ICAgICAgICAgICAjIEZldGNoIG9sZCBzY2hlbWEgbmFtZSB1c2luZyBvbGQg c2NoZW1hIG9pZAorICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1w bGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwgJ3NjaGVtYS5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgIGRhdGE9b2xkX2RhdGEpCisKKyAgICAgICAgICAgICAgICBzdGF0dXMs IG9sZF9zY2hlbWEgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQor ICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 b2xkX3NjaGVtYSkKKworICAgICAgICAgICAgICAgICMgUmVwbGFjZSBvbGQg c2NoZW1hIG9pZCB3aXRoIG9sZCBzY2hlbWEgbmFtZQorICAgICAgICAgICAg ICAgIG9sZF9kYXRhWydzY2hlbWEnXSA9IG9sZF9zY2hlbWEKKworICAgICAg ICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAg ICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3VwZGF0 ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgIGRhdGE9bmV3X2RhdGEs IG9fZGF0YT1vbGRfZGF0YQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICAgICAjIEZldGNoIHNxbCBxdWVyeSBmb3IgbW9kaWZpZWQgZGF0YQor ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIEZldGNoIHNj aGVtYSBuYW1lIGZyb20gc2NoZW1hIG9pZAorICAgICAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAnc2NoZW1hLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YT1kYXRhKQorCisgICAgICAgICAgICAgICAg c3RhdHVzLCBzY2hlbWEgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3Fs KQorICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9c2NoZW1hKQorCisgICAgICAgICAgICAgICAgIyBSZXBsYWNlIHNjaGVt YSBvaWQgd2l0aCBzY2hlbWEgbmFtZQorICAgICAgICAgICAgICAgIG5ld19k YXRhID0gZGF0YS5jb3B5KCkKKyAgICAgICAgICAgICAgICBuZXdfZGF0YVsn c2NoZW1hJ10gPSBzY2hlbWEKKworICAgICAgICAgICAgICAgIGlmICdwcnNz dGFydCcgaW4gbmV3X2RhdGEgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICdwcnN0b2tlbicgaW4gbmV3X2RhdGEgYW5kIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICdwcnNlbmQnIGluIG5ld19kYXRhIGFuZCBcCisgICAg ICAgICAgICAgICAgICAgICAgICAncHJzbGV4dHlwZScgaW4gbmV3X2RhdGEg YW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJyBpbiBuZXdf ZGF0YSBhbmQgXAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaGVtYScg aW4gbmV3X2RhdGE6CisgICAgICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRl cl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YT1uZXdfZGF0YSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm49c2VsZi5jb25u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg c3FsID0gIi0tIGluY29tcGxldGUgZGVmaW5pdGlvbiIKKyAgICAgICAgICAg IHJldHVybiBzdHIoc3FsLnN0cmlwKCdcbicpKQorCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfc3RhcnQoc2VsZiwgZ2lkLCBz aWQsIGRpZCwgc2NpZCwgcGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBzdGFydCBmdW5jdGlvbnMg bGlzdCBmb3IgZnRzIFBhcnNlcgorICAgICAgICA6cGFyYW0gZ2lkOiBncm91 cCBpZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAg OnBhcmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6 IHNjaGVtYSBpZAorICAgICAgICA6cGFyYW0gcGlkOiBmdHMgcGFyc2VyIGlk CisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdzCisg ICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnZnVuY3Rpb25zLnNxbCddKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0YXJ0PVRydWUpCisgICAgICAgIHN0YXR1 cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgIyBF bXB0eSBzZXQgaXMgYWRkZWQgYmVmb3JlIGFjdHVhbCBsaXN0IGFzIGluaXRp YWxseSBpdCB3aWxsIGJlIHZpc2libGUKKyAgICAgICAgIyBhdCBzdGFydCBz ZWxlY3QgY29udHJvbCB3aGlsZSBjcmVhdGluZyBhIG5ldyBmdHMgcGFyc2Vy CisgICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6ICcnfV0K KyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAg ICByZXMuYXBwZW5kKHsnbGFiZWwnOiByb3dbJ3Byb25hbWUnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICd2YWx1ZSc6IHJvd1sncHJvbmFtZSddfSkK KyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAg ICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGdldF90 b2tlbihzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBwaWQ9Tm9uZSk6Cisg ICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJu IHRva2VuIGZ1bmN0aW9ucyBsaXN0IGZvciBmdHMgUGFyc2VyCisgICAgICAg IDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNl cnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAg ICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAgICAgIDpwYXJhbSBw aWQ6IGZ0cyBwYXJzZXIgaWQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEg PSByZXF1ZXN0LmFyZ3MKKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdmdW5jdGlvbnMuc3Fs J10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW49VHJ1 ZSkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChzcWwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNl dCkKKworICAgICAgICAjIEVtcHR5IHNldCBpcyBhZGRlZCBiZWZvcmUgYWN0 dWFsIGxpc3QgYXMgaW5pdGlhbGx5IGl0IHdpbGwgYmUgdmlzaWJsZQorICAg ICAgICAjIGF0IHRva2VuIHNlbGVjdCBjb250cm9sIHdoaWxlIGNyZWF0aW5n IGEgbmV3IGZ0cyBwYXJzZXIKKyAgICAgICAgcmVzID0gW3snbGFiZWwnOiAn JywgJ3ZhbHVlJzogJyd9XQorICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jv d3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoeydsYWJlbCc6IHJvd1sn cHJvbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzog cm93Wydwcm9uYW1lJ119KQorICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl c3BvbnNlKAorICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgZ2V0X2VuZChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCBwaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgcmV0dXJuIGVuZCBmdW5jdGlvbnMgbGlzdCBmb3IgZnRzIFBh cnNlcgorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAgICAgICA6 cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRpZDogZGF0 YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAorICAg ICAgICA6cGFyYW0gcGlkOiBmdHMgcGFyc2VyIGlkCisgICAgICAgICIiIgor ICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdzCisgICAgICAgIHNxbCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn ZnVuY3Rpb25zLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVuZD1UcnVlKQorICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNv bm4uZXhlY3V0ZV9kaWN0KHNxbCkKKworICAgICAgICBpZiBub3Qgc3RhdHVz OgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yc2V0KQorCisgICAgICAgICMgRW1wdHkgc2V0IGlzIGFkZGVk IGJlZm9yZSBhY3R1YWwgbGlzdCBhcyBpbml0aWFsbHkgaXQgd2lsbCBiZSB2 aXNpYmxlCisgICAgICAgICMgYXQgZW5kIHNlbGVjdCBjb250cm9sIHdoaWxl IGNyZWF0aW5nIGEgbmV3IGZ0cyBwYXJzZXIKKyAgICAgICAgcmVzID0gW3sn bGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAgICAgICBmb3Igcm93IGlu IHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoeydsYWJl bCc6IHJvd1sncHJvbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAg J3ZhbHVlJzogcm93Wydwcm9uYW1lJ119KQorICAgICAgICByZXR1cm4gbWFr ZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT1yZXMsCisgICAg ICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X2xleHR5cGUoc2VsZiwgZ2lkLCBz aWQsIGRpZCwgc2NpZCwgcGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBsZXh0eXBlIGZ1bmN0aW9u cyBsaXN0IGZvciBmdHMgUGFyc2VyCisgICAgICAgIDpwYXJhbSBnaWQ6IGdy b3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAg ICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2Np ZDogc2NoZW1hIGlkCisgICAgICAgIDpwYXJhbSBwaWQ6IGZ0cyBwYXJzZXIg aWQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmFyZ3MK KyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsICdmdW5jdGlvbnMuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV4dHlwZT1UcnVlKQorICAgICAgICBz dGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAg ICMgRW1wdHkgc2V0IGlzIGFkZGVkIGJlZm9yZSBhY3R1YWwgbGlzdCBhcyBp bml0aWFsbHkgaXQgd2lsbCBiZSB2aXNpYmxlCisgICAgICAgICMgYXQgbGV4 dHlwZSBzZWxlY3QgY29udHJvbCB3aGlsZSBjcmVhdGluZyBhIG5ldyBmdHMg cGFyc2VyCisgICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6 ICcnfV0KKyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAg ICAgICAgICByZXMuYXBwZW5kKHsnbGFiZWwnOiByb3dbJ3Byb25hbWUnXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZSc6IHJvd1sncHJvbmFt ZSddfSkKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAg ICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAor ICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGdldF9oZWFkbGluZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBwaWQ9 Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdp bGwgcmV0dXJuIGhlYWRsaW5lIGZ1bmN0aW9ucyBsaXN0IGZvciBmdHMgUGFy c2VyCisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpw YXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRh YmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAg ICAgIDpwYXJhbSBwaWQ6IGZ0cyBwYXJzZXIgaWQKKyAgICAgICAgIiIiCisg ICAgICAgIGRhdGEgPSByZXF1ZXN0LmFyZ3MKKyAgICAgICAgc3FsID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdm dW5jdGlvbnMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaGVhZGxpbmU9VHJ1ZSkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2Vs Zi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisKKyAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICAjIEVtcHR5IHNldCBpcyBh ZGRlZCBiZWZvcmUgYWN0dWFsIGxpc3QgYXMgaW5pdGlhbGx5IGl0IHdpbGwg YmUgdmlzaWJsZQorICAgICAgICAjIGF0IGhlYWRsaW5lIHNlbGVjdCBjb250 cm9sIHdoaWxlIGNyZWF0aW5nIGEgbmV3IGZ0cyBwYXJzZXIKKyAgICAgICAg cmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAgICAgICBm b3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBl bmQoeydsYWJlbCc6IHJvd1sncHJvbmFtZSddLAorICAgICAgICAgICAgICAg ICAgICAgICAgJ3ZhbHVlJzogcm93Wydwcm9uYW1lJ119KQorICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT1y ZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHBpZCk6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIHdpbGwgcmV2ZXJzZSBnZW5lcmF0ZSBzcWwgZm9yIHNx bCBwYW5lbAorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAgICAg ICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRpZDog ZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAor ICAgICAgICA6cGFyYW0gcGlkOiBmdHMgdGVtcGF0ZSBpZAorICAgICAgICAi IiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3Rl bXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsICdzcWwuc3FsJ10pLAorICAgICAgICAgICAgICAgIHBpZD1w aWQsCisgICAgICAgICAgICAgICAgc2NpZD1zY2lkLAorICAgICAgICAgICAg ICAgIGNvbm49c2VsZi5jb25uCisgICAgICAgICAgICApCisgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoCisgICAgICAgICAgICAg ICAgICAgIF8oCisgICAgICAgICAgICAgICAgICAgICAgICAiRVJST1I6IENv dWxkbid0IGdlbmVyYXRlIHJldmVyc2VkIGVuZ2luZWVyZWQgUXVlcnkgZm9y IHRoZSBGVFMgUGFyc2VyIVxuezB9IikuZm9ybWF0KAorICAgICAgICAgICAg ICAgICAgICAgICAgcmVzCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgICAgICApCisKKyAgICAgICAgICAgIGlmIHJlcyBpcyBOb25lOgor ICAgICAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgICAg ICAgICBfKAorICAgICAgICAgICAgICAgICAgICAgICAgIkVSUk9SOiBDb3Vs ZG4ndCBnZW5lcmF0ZSByZXZlcnNlZCBlbmdpbmVlcmVkIFF1ZXJ5IGZvciBG VFMgUGFyc2VyIG5vZGUhIikKKyAgICAgICAgICAgICAgICApCisKKyAgICAg ICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPXJlcykKKwor ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW50 cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBwaWQpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVudHMg YW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgRlRT IFBhcnNlciBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBn aWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIg SUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAg IHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICAgcGlkOiBGVFMgUGFyc2Vy IElECisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRlbnRzX3Jlc3VsdCA9 IHNlbGYuZ2V0X2RlcGVuZGVudHMoc2VsZi5jb25uLCBwaWQpCisgICAgICAg IHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlc3Bv bnNlPWRlcGVuZGVudHNfcmVzdWx0LAorICAgICAgICAgICAgICAgIHN0YXR1 cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIGRlcGVuZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkLCBwaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVuY2llcyBhbmQgcmV0dXJuIGFqYXgg cmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSBGVFMgUGFyc2VyIG5vZGUuCisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3Vw IElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAg ZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElE CisgICAgICAgICAgICBwaWQ6IEZUUyBUZW1wYWx0ZSBJRAorICAgICAgICAi IiIKKyAgICAgICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2Rl cGVuZGVuY2llcyhzZWxmLmNvbm4sIHBpZCkKKyAgICAgICAgcmV0dXJuIGFq YXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5k ZW5jaWVzX3Jlc3VsdCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICAgICAgICAgKQorCitGdHNQYXJzZXJWaWV3LnJlZ2lzdGVyX25v ZGVfdmlldyhibHVlcHJpbnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfcGFyc2VyL3N0YXRpYy9pbWcvY29sbC1mdHNfcGFyc2VyLnBuZyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvc3RhdGljL2ltZy9jb2xsLWZ0 c19wYXJzZXIucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MGVjNmI3 ZmJkY2YxNzAyZjY2ZmUyYzgzM2ZjZGNkNTEyYmIxNDEKR0lUIGJpbmFyeSBw YXRjaApsaXRlcmFsIDYyMAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3 QiE2Mz93eWxgR1hsNDcrQ3srTFJeOHxtMyFNTjdhMWY+VlZTKSgKenVXNm1k JHJwPHJ7NkJkQXxOZ3VHY0hqUUQ/ZElQTipaLWB6YGdfVE5yPTlnezRZRnJS LTF4ZUVfNFJfdlJxQUVTCno3MUMhMkVJNV52R2Z5O1V3JHpSUDg/WEZaZSZP SHp2d3g8YWByVVd6U0llT3ZtSFdRdUBCZGJDPzB2YEZaM1h4TAp6QDROVkso UWNMTmhrd0AwT2BXdCRgUmJtQGxNakNfTnQ/bGNgYD96K2U8cSohKXBfSist R1Q0TGhkV29fT24hWCMKeiRrc2JZSHJ6PE1kJEBoWV4qPHwqeyVtU289M2xx ZVc1P0l7MH1fdn05OWxKRlNKMVNiejdNVzBLZEpvdSUhaXFXCnpldzZSfW4h TlJNKm9JR0R5VnxCKVByN3NTQFVva1M3aE8tZmIpYSFzXkc0STdVdXpEMUUh X1YoYkkrJXcxQ3dWVAp6SEBVVUhaKGpYKyYxd2JsaHJvYmZFRDc9cFdeajBS Qk1yI21FYnhkZDJHU20yPn49RVM0Iz00Mj5FYWs3YVhDNVIKejA3SCtAOEch PndJRyUwWnV4VnApS35kcjc1MSY0NlplVT95WD5EMlA8PktQVmJTNWRvWXNT JXdRdyRic1BoYC1WCnpJQXprYmlCbChzMlpSVkVCbXxfVGckMEhOMk0xcGR4 UDBZTzhyIVJqaVB4QFBIYTlSYUdCWSRhWDZNdX1qKmZfbQp6eW5XLT1PPX1D UU1pejtaSWs3USFAN1VWeC1CVmttPmNEaVcmZyZtenF2SnRFI2Y2RWQxZz4q QysqTGVxJGJwNHsKejtsTShuajUla2BMNEh2IWFnOFdSTmkwZFZOLWp6VFFW ZDIwaDZjS1pNIUUpdUF3fnZQQ2RPN0tyckhMa1J0NSgxCnQtcyFERShVNjs7 bDleVHMoT19UKykmTnYoVnI1X2soUXM7ZD1vKzh+MjJXUSVtdnY0Rk8jczJA QS1WdG4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvc3RhdGljL2ltZy9mdHNfcGFyc2Vy LnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvc3RhdGljL2ltZy9m dHNfcGFyc2VyLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2VjYTk5 NTA0OTlmYzBjYTFlMmVlMGE0MTlhOGEzODBmZDUyOGYzCkdJVCBiaW5hcnkg cGF0Y2gKbGl0ZXJhbCA3MTUKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4w d0IhNjM/d3lsYEdYbDQ3LUlyX0xSXjh8bTMhTU43YTFmPlZWUykoCnp1VzZt ZCRycDxyezZCZDItPH5gRnclX2A8Pkg0MkZTQVE/TntDblFUVSRnZjtYe2xl VW1weDEzI0BGcFB7JV5TYQp6WnxWOEpiSTw7bmNJdFFFbmN0Skh8NllGTypN ZHR3WEo3cz89Z2h+K195NnpQdCNiWTNAOXMmUEdGS24meC1qRiYKejV2P2Fq dj50Q01VMz5rPGxJbXI4Y21DfS1famwmJEtOQzs8Pk9BdFo7cChyJjdySVp9 T24hM2o9I0QhX3cla2ElCnpjY0pVVnQtbC1GUzB1RXFoJnVlVXdzRCM3aW8/ eXZXWnBjdnpHSyN8c0Z9TSRBNntFP1JeYEw+S2RYLVlZQn1feQp6WVR4JlEt UVV2QXxDbl45WXV9QmVgP245VHk+KW9pXmB1K3BJdUJtP3l7S19uSz5hZSQr OWdpZ3pDXmFJQG1fU1cKemN2ST19UT5HNk9ZMkk2M3l4eyFUelFQM3hJa1Rs c2VWQmdtZCtFLXZpQ2FJMVpUI2YzX01fOUxrQTg+MGxwT3E9CnpjaT5hajta T1BkVWwtMlpSP3hpQj9EK2ZjNlc8eitkQFZvdEM0Y3x0ajZJKXtjN0JUOXt4 TkwoaG1oP3I8TGxSSgp6ezsxOWAwZnNNUU5zd1BLZ1R1Mk1YK1JFVmZrJEw5 a29FdiR4MEJnK0sqbG1wN3NuOFolZ0c0fU9hP31WJld5cyEKejlwP3w3SShG e2gkKWpmdnBGWGFDZkpzQ15MYFkwZlJDeE0/RFUrczY2bExLdUlEUFc7WD5B UUgmREFTYnQ7fXY8CnpHMTxETXdCK2otVVlfMF8tdmRtYCh3PlA7MyVoMnZ0 P1YwTDA7OVdueF9HI0dJbHNTdHpXaiFVXzREZjs1JntaNQp6RzlvSG1SMDAm VnRrbGYoPj1YPyhFbWNpKnhpbHVzbj5jZ28re3ZAMiN8SzEmJTs3N1dzYz5k I2xnXlBKSml2cV8KemVvdXpRa0U3KXwoOGExSHRgUXxFaTZ5QzQkd2pGXmlv d1hoJl9MSkZOWX10SCNLXiRQI01zS2pSTktKUiVEYGFXCnRKSDFzWDhnbGJm R1NleXs4Vm9HSzhpMS16dFBJUWA4Y3QwUVQ/NXA+O09Yazt2ZCRAPzI+YFNE VTchRX0KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVtcGxhdGVzL2Z0c19wYXJzZXIv anMvZnRzX3BhcnNlci5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIv dGVtcGxhdGVzL2Z0c19wYXJzZXIvanMvZnRzX3BhcnNlci5qcwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDE0NDI3Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZW1wbGF0 ZXMvZnRzX3BhcnNlci9qcy9mdHNfcGFyc2VyLmpzCkBAIC0wLDAgKzEsMTY5 IEBACitkZWZpbmUoCisgICAgICAgIFsnanF1ZXJ5JywgJ3VuZGVyc2NvcmUn LCAndW5kZXJzY29yZS5zdHJpbmcnLCAncGdhZG1pbicsICdwZ2FkbWluLmJy b3dzZXInLCAnYWxlcnRpZnknLCAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rp b24nXSwKK2Z1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3Nlciwg YWxlcnRpZnkpIHsKKworICAvLyBFeHRlbmQgdGhlIGNvbGxlY3Rpb24gY2xh c3MgZm9yIGZ0cyBwYXJzZXIKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2Nv bGwtZnRzX3BhcnNlciddKSB7CisgICAgdmFyIGZ0c19wYXJzZXJzID0gcGdB ZG1pbi5Ccm93c2VyLk5vZGVzWydjb2xsLWZ0c19wYXJzZXInXSA9CisgICAg ICBwZ0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAg ICBub2RlOiAnZnRzX3BhcnNlcicsCisgICAgICAgIGxhYmVsOiAne3sgXygn RlRTIFBhcnNlcnMnKSB9fScsCisgICAgICAgIHR5cGU6ICdjb2xsLWZ0c19w YXJzZXInLAorICAgICAgICBjb2x1bW5zOiBbJ25hbWUnLCAnZGVzY3JpcHRp b24nXQorICAgICAgfSk7CisgIH07CisKKyAgLy8gRXh0ZW5kIHRoZSBub2Rl IGNsYXNzIGZvciBmdHMgcGFyc2VyCisgIGlmICghcGdCcm93c2VyLk5vZGVz WydmdHNfcGFyc2VyJ10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNb J2Z0c19wYXJzZXInXSA9IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLmV4dGVuZCh7 CisgICAgICBwYXJlbnRfdHlwZTogWydzY2hlbWEnLCAnY2F0YWxvZyddLAor ICAgICAgdHlwZTogJ2Z0c19wYXJzZXInLAorICAgICAgY2FuRHJvcDogdHJ1 ZSwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiB0cnVlLAorICAgICAgbGFiZWw6 ICd7eyBfKCdGVFMgUGFyc2VycycpIH19JywKKyAgICAgIGhhc1NRTDogdHJ1 ZSwKKyAgICAgIGhhc0RlcGVuZHM6IHRydWUsCisgICAgICBJbml0OiBmdW5j dGlvbigpIHsKKworICAgICAgICAvLyBBdm9pZCBtdWx0aXBsZSByZWdpc3Ry YXRpb24gb2YgbWVudXMKKyAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQp CisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6 ZWQgPSB0cnVlOworCisgICAgICAgIC8vIEFkZCBjb250ZXh0IG1lbnVzIGZv ciBmdHMgcGFyc2VyCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sK KyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2Z0c19wYXJzZXJfb25fc2NoZW1h Jywgbm9kZTogJ3NjaGVtYScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBh cHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hv d19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVh dGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdGVFMgUGFyc2VyLi4u JykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1mdHNf cGFyc2VyJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9CisgICAgICAgICAg fSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9mdHNfcGFyc2VyX29uX2Nv bGwnLCBub2RlOiAnY29sbC1mdHNfcGFyc2VyJywgbW9kdWxlOiB0aGlzLAor ICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2Fs bGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRl Z29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0ZU UyBQYXJzZXIuLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNv biBpY29uLWZ0c19wYXJzZXInLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30K KyAgICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2Z0c19w YXJzZXInLCBub2RlOiAnZnRzX3BhcnNlcicsIG1vZHVsZTogdGhpcywKKyAg ICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxi YWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdv cnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdGVFMg UGFyc2VyLi4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24g aWNvbi1mdHNfcGFyc2VyJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9Cisg ICAgICAgICAgfV0pOworCisgICAgICB9LAorCisgICAgICAvLyBEZWZpbmlu ZyBiYWNrZm9ybSBtb2RlbCBmb3IgZnRzIHBhcnNlciBub2RlCisgICAgICBt b2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAg ICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgICBuYW1lOiB1bmRlZmluZWQs ICAgICAgLy8gRnRzIHBhcnNlciBuYW1lCisgICAgICAgICAgZGVzY3JpcHRp b246IHVuZGVmaW5lZCwgICAvLyBDb21tZW50IG9uIHBhcnNlcgorICAgICAg ICAgIHNjaGVtYTogdW5kZWZpbmVkLCAgICAgICAgLy8gU2NoZW1hIG5hbWUg dG8gd2hpY2ggcGFyc2VyIGJlbG9uZ3MKKyAgICAgICAgICB0bXBsaW5pdDog dW5kZWZpbmVkLCAgICAgIC8vIEluaXQgZnVuY3Rpb24gZm9yIGZ0cyBwYXJz ZXIKKyAgICAgICAgICB0bXBsbGV4aXplOiB1bmRlZmluZWQgICAgIC8vIExl eGl6ZSBmdW5jdGlvbiBmb3IgZnRzIHBhcnNlcgorICAgICAgICB9LAorICAg ICAgICBpbml0aWFsaXplOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHBn QWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLnByb3RvdHlwZS5pbml0aWFsaXpl LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICBpZiAoXy5p c1VuZGVmaW5lZCh0aGlzLmdldCgnc2NoZW1hJykpKSB7CisgICAgICAgICAg ICAgICAgdGhpcy5zZXQoJ3NjaGVtYScsIHRoaXMubm9kZV9pbmZvLnNjaGVt YS5faWQpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAv LyBEZWZpbmluZyBzY2hlbWEgZm9yIGZ0cyBwYXJzZXIKKyAgICAgICAgc2No ZW1hOiBbeworICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiAne3sgXygn TmFtZScpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTog J3RleHQnLCBjZWxsSGVhZGVyQ2xhc3NlczogJ3dpZHRoX3BlcmNlbnRfNTAn CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnb2lkJywgbGFiZWw6J3t7 IF8oJ09JRCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgZWRp dGFibGU6IGZhbHNlLCB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiB0cnVlLCBt b2RlOlsncHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlk OiAnc2NoZW1hJywgbGFiZWw6ICd7eyBfKCdTY2hlbWEnKX19JywgY2VsbDog J3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ2Ny ZWF0ZScsJ2VkaXQnXSwgbm9kZTogJ3NjaGVtYScsCisgICAgICAgICAgY29u dHJvbDogJ25vZGUtbGlzdC1ieS1pZCcKKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdkZXNjcmlwdGlvbicsIGxhYmVsOid7eyBfKCdDb21tZW50Jykg fX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnbXVsdGls aW5lJywgY2VsbEhlYWRlckNsYXNzZXM6ICd3aWR0aF9wZXJjZW50XzUwJwor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byc3N0YXJ0JywgbGFiZWw6 ICd7eyBfKCdTdGFydCBGdW5jdGlvbicpfX0nLCBncm91cDogJ3t7IF8oJ0Rl ZmluaXRpb24nKSB9fScsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNh YmxlZDogZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXcoKTsgfSwKKyAg ICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLCB1cmw6ICdn ZXRfc3RhcnQnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJzdG9r ZW4nLCBsYWJlbDogJ3t7IF8oJ0dldHRva2VuIEZ1bmN0aW9uJyl9fScsIGdy b3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywKKyAgICAgICAgICB0eXBl OiAndGV4dCcsIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVybiAhbS5p c05ldygpOyB9LAorICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0 aW9ucycsIHVybDogJ2dldF90b2tlbicKKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdwcnNlbmQnLCBsYWJlbDogJ3t7IF8oJ0VuZCBGdW5jdGlvbicp fX0nLCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAg ICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeyByZXR1 cm4gIW0uaXNOZXcoKTsgfSwKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1h amF4LW9wdGlvbnMnLCB1cmw6ICdnZXRfZW5kJworICAgICAgICB9LHsKKyAg ICAgICAgICBpZDogJ3Byc2xleHR5cGUnLCBsYWJlbDogJ3t7IF8oJ0xleHR5 cGVzIEZ1bmN0aW9uJyl9fScsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicp IH19JywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiBmdW5j dGlvbihtKSB7IHJldHVybiAhbS5pc05ldygpOyB9LAorICAgICAgICAgIGNv bnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDogJ2dldF9sZXh0eXBl JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byc2hlYWRsaW5lJywg bGFiZWw6ICd7eyBfKCdIZWFkbGluZSBGdW5jdGlvbicpfX0nLCBncm91cDog J3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAgdHlwZTogJ3Rl eHQnLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXco KTsgfSwKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMn LCB1cmw6ICdnZXRfaGVhZGxpbmUnCisgICAgICAgIH1dLAorCisgICAgICAg IC8qCisgICAgICAgICAqIFRyaWdnZXJzIGNvbnRyb2wgc3BlY2lmaWMgZXJy b3IgbWVzc2FnZXMgZm9yIHBhcnNlciBuYW1lLAorICAgICAgICAgKiBsZXhp emUgZnVuY3Rpb24gYW5kIHNjaGVtYSwgaWYgYW55IG9uZSBvZiB0aGVtIGlz IG5vdCBzcGVjaWZpZWQKKyAgICAgICAgICogd2hpbGUgY3JlYXRpbmcgbmV3 IGZ0cyBwYXJzZXIKKyAgICAgICAgICovCisgICAgICAgIHZhbGlkYXRlOiBm dW5jdGlvbihrZXlzKXsKKyAgICAgICAgICB2YXIgbmFtZSA9IHRoaXMuZ2V0 KCduYW1lJyk7CisgICAgICAgICAgdmFyIHN0YXJ0ID0gdGhpcy5nZXQoJ3By c3N0YXJ0Jyk7CisgICAgICAgICAgdmFyIHRva2VuID0gdGhpcy5nZXQoJ3By c3Rva2VuJyk7CisgICAgICAgICAgdmFyIGVuZCA9IHRoaXMuZ2V0KCdwcnNl bmQnKTsKKyAgICAgICAgICB2YXIgbGV4dHlwZSA9IHRoaXMuZ2V0KCdwcnNs ZXh0eXBlJyk7CisgICAgICAgICAgdmFyIHNjaGVtYSA9IHRoaXMuZ2V0KCdz Y2hlbWEnKTsKKworICAgICAgICAgIC8vIFZhbGlkYXRlIGZ0cyBwYXJzZXIg bmFtZQorICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG5hbWUpIHx8IF8u aXNOdWxsKG5hbWUpIHx8IFN0cmluZyhuYW1lKS5yZXBsYWNlKC9eXHMrfFxz KyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNnID0gJ3t7 IF8oJ05hbWUgbXVzdCBiZSBzcGVjaWZpZWQhJykgfX0nOworICAgICAgICAg ICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbmFtZScsIG1zZyk7CisgICAgICAg ICAgICByZXR1cm4gbXNnOworICAgICAgICAgIH0KKworICAgICAgICAgIC8v IFZhbGlkYXRlIHN0YXJ0IGZ1bmN0aW9uIGNvbnRyb2wKKyAgICAgICAgICBl bHNlIGlmIChfLmlzVW5kZWZpbmVkKHN0YXJ0KSB8fCBfLmlzTnVsbChzdGFy dCkgfHwgU3RyaW5nKHN0YXJ0KS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycp ID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNnID0gJ3t7IF8oJ1N0YXJ0 IGZ1bmN0aW9uIG11c3QgYmUgc2VsZWN0ZWQhJykgfX0nOworICAgICAgICAg ICAgdGhpcy5lcnJvck1vZGVsLnNldCgncHJzc3RhcnQnLCBtc2cpOworICAg ICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAgICAgICB9CisKKyAgICAgICAg ICAvLyBWYWxpZGF0ZSBnZXR0b2tlbiBmdW5jdGlvbiBjb250cm9sCisgICAg ICAgICAgZWxzZSBpZiAoXy5pc1VuZGVmaW5lZCh0b2tlbikgfHwgXy5pc051 bGwodG9rZW4pIHx8IFN0cmluZyh0b2tlbikucmVwbGFjZSgvXlxzK3xccysk L2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgdmFyIG1zZyA9ICd7eyBf KCdHZXR0b2tlbiBmdW5jdGlvbiBtdXN0IGJlIHNlbGVjdGVkIScpIH19JzsK KyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3Byc3Rva2VuJywg bXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQor CisgICAgICAgICAgLy8gVmFsaWRhdGUgZW5kIGZ1bmN0aW9uIGNvbnRyb2wK KyAgICAgICAgICBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKGVuZCkgfHwgXy5p c051bGwoZW5kKSB8fCBTdHJpbmcoZW5kKS5yZXBsYWNlKC9eXHMrfFxzKyQv ZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNnID0gJ3t7IF8o J0VuZCBmdW5jdGlvbiBtdXN0IGJlIHNlbGVjdGVkIScpIH19JzsKKyAgICAg ICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3Byc2VuZCcsIG1zZyk7Cisg ICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAgIH0KKworICAgICAg ICAgIC8vIFZhbGlkYXRlIGxleHR5cGUgZnVuY3Rpb24gY29udHJvbAorICAg ICAgICAgIGVsc2UgaWYgKF8uaXNVbmRlZmluZWQobGV4dHlwZSkgfHwgXy5p c051bGwobGV4dHlwZSkgfHwgU3RyaW5nKGxleHR5cGUpLnJlcGxhY2UoL15c cyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIHZhciBtc2cg PSAne3sgXygnTGV4dHlwZSBmdW5jdGlvbiBtdXN0IGJlIHNlbGVjdGVkIScp IH19JzsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3Byc2xl eHR5cGUnLCBtc2cpOworICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAg ICAgICB9CisKKyAgICAgICAgICAvLyBWYWxpZGF0ZSBzY2hlbWEgZm9yIGZ0 cyBwYXJzZXIKKyAgICAgICAgICBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHNj aGVtYSkgfHwgXy5pc051bGwoc2NoZW1hKSB8fCBTdHJpbmcoc2NoZW1hKS5y ZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAg ICB2YXIgbXNnID0gJ3t7IF8oJ1NjaGVtYSBtdXN0IGJlIHNlbGVjdGVkIScp IH19JzsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3NjaGVt YScsIG1zZyk7CisgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAg IH0KKyAgICAgICAgICBlbHNlIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpOwor CisgICAgICAgICAgdGhpcy50cmlnZ2VyKCdvbi1zdGF0dXMtY2xlYXInKTsK KyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgfSkK KyAgICB9KTsKKyAgfQorCityZXR1cm4gcGdCcm93c2VyLk5vZGVzWydjb2xs LWZ0c19wYXJzZXInXTsKK30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVt cGxhdGVzL2Z0c19wYXJzZXIvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3RlbXBsYXRlcy9mdHNfcGFyc2Vy L3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmRlNmU1YjEKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3RlbXBsYXRlcy9mdHNfcGFyc2Vy L3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMTQgQEAKK3sj IENSRUFURSBGVFMgUEFSU0VSIFN0YXRlbWVudCAjfQoreyUgaWYgZGF0YSBh bmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEubmFtZSBhbmQgZGF0YS5wcnNzdGFy dCBhbmQgZGF0YS5wcnN0b2tlbiBhbmQgZGF0YS5wcnNlbmQgYW5kIGRhdGEu cHJzbGV4dHlwZSAlfQorQ1JFQVRFIFRFWFQgU0VBUkNIIFBBUlNFUiB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0gKAorICAg IFNUQVJUID0ge3tkYXRhLnByc3N0YXJ0fX0sCisgICAgR0VUVE9LRU4gPSB7 e2RhdGEucHJzdG9rZW59fSwKKyAgICBFTkQgPSB7e2RhdGEucHJzZW5kfX0s CisgICAgTEVYVFlQRVMgPSB7e2RhdGEucHJzbGV4dHlwZX19eyUgaWYgZGF0 YS5wcnNoZWFkbGluZSBhbmQgZGF0YS5wcnNoZWFkbGluZSAhPSAnLSclfSwK KyAgICBIRUFETElORSA9IHt7ZGF0YS5wcnNoZWFkbGluZX19LHslIGVuZGlm ICV9CispOworeyMgRGVzY3JpcHRpb24gZm9yIEZUU19QQVJTRVIgI30KK3sl IGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KK0NPTU1FTlQgT04gVEVYVCBTRUFS Q0ggUEFSU0VSIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5u YW1lKSB9fQorICAgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVy YWwgfX07Cit7JSBlbmRpZiAlfXslIGVuZGlmICV9ClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRz X3BhcnNlci90ZW1wbGF0ZXMvZnRzX3BhcnNlci9zcWwvOS4xX3BsdXMvZGVs ZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVtcGxhdGVz L2Z0c19wYXJzZXIvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YyYjUzMwotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVtcGxhdGVz L2Z0c19wYXJzZXIvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCAr MSwyMyBAQAoreyMgRkVUQ0ggRlRTIFBBUlNFUiBOQU1FIFN0YXRlbWVudCAj fQoreyUgaWYgcGlkICV9CitTRUxFQ1QKKyAgICBwLnByc25hbWUgQVMgbmFt ZSwKKyAgICAoCisgICAgU0VMRUNUCisgICAgICAgIG5zcG5hbWUKKyAgICBG Uk9NCisgICAgICAgIHBnX25hbWVzcGFjZQorICAgIFdIRVJFCisgICAgICAg IG9pZCA9IHQudG1wbG5hbWVzcGFjZQorICAgICkgYXMgc2NoZW1hCitGUk9N CisgICAgcGdfdHNfcGFyc2VyIHAgTEVGVCBKT0lOIHBnX2Rlc2NyaXB0aW9u IGQKKyAgICBPTiBkLm9iam9pZD1wLm9pZCBBTkQgZC5jbGFzc29pZD0ncGdf dHNfcGFyc2VyJzo6cmVnY2xhc3MKK1dIRVJFCisgICAgcC5vaWQgPSB7e3Bp ZH19OjpPSUQ7Cit7JSBlbmRpZiAlfQorCit7IyBEUk9QIEZUUyBQQVJTRVIg U3RhdGVtZW50ICN9Cit7JSBpZiBzY2hlbWEgYW5kIG5hbWUgJX0KK0RST1Ag VEVYVCBTRUFSQ0ggUEFSU0VSIHt7Y29ubnxxdElkZW50KHNjaGVtYSl9fS57 e2Nvbm58cXRJZGVudChuYW1lKX19IHslIGlmIGNhc2NhZGUgJX1DQVNDQURF eyVlbmRpZiV9OworeyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2Vy L3RlbXBsYXRlcy9mdHNfcGFyc2VyL3NxbC85LjFfcGx1cy9mdW5jdGlvbnMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZW1wbGF0ZXMvZnRz X3BhcnNlci9zcWwvOS4xX3BsdXMvZnVuY3Rpb25zLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTk3NzkwCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZW1wbGF0ZXMv ZnRzX3BhcnNlci9zcWwvOS4xX3BsdXMvZnVuY3Rpb25zLnNxbApAQCAtMCww ICsxLDU4IEBACit7IyBGRVRDSCBzdGFydCBmdW5jdGlvbnMgZm9yIEZUU19Q QVJTRVIgI30KK3slIGlmIHN0YXJ0ICV9CitTRUxFQ1QKKyAgICBwcm9uYW1l LCBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBKT0lOIHBnX25hbWVzcGFj ZSBuIE9OIG4ub2lkPXByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9hcmd0 eXBlcz0nMjI4MSAyMycKK09SREVSIEJZIHByb25hbWU7Cit7JSBlbmRpZiAl fQorCit7IyBGRVRDSCB0b2tlbiBmdW5jdGlvbnMgZm9yIEZUU19QQVJTRVIg I30KK3slIGlmIHRva2VuICV9CitTRUxFQ1QKKyAgICBwcm9uYW1lLCBuc3Bu YW1lCitGUk9NCisgICAgcGdfcHJvYyBKT0lOIHBnX25hbWVzcGFjZSBuIE9O IG4ub2lkPXByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9hcmd0eXBlcz0n MjI4MSAyMjgxIDIyODEnCitPUkRFUiBCWQorICAgIHByb25hbWU7Cit7JSBl bmRpZiAlfQorCit7IyBGRVRDSCBlbmQgZnVuY3Rpb25zIGZvciBGVFNfUEFS U0VSICN9Cit7JSBpZiBlbmQgJX0KK1NFTEVDVAorICAgIHByb25hbWUsIG5z cG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIEpPSU4gcGdfbmFtZXNwYWNlIG4g T04gbi5vaWQ9cHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb3JldHR5cGU9 MjI3OCBhbmQgcHJvYXJndHlwZXM9JzIyODEnCitPUkRFUiBCWQorICAgIHBy b25hbWU7Cit7JSBlbmRpZiAlfQorCit7IyBGRVRDSCBsZXh0eXBlIGZ1bmN0 aW9ucyBmb3IgRlRTX1BBUlNFUiAjfQoreyUgaWYgbGV4dHlwZSAlfQorU0VM RUNUCisgICAgcHJvbmFtZSwgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2Mg Sk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD1wcm9uYW1lc3BhY2UKK1dI RVJFCisgICAgcHJvcmV0dHlwZT0yMjgxIGFuZCBwcm9hcmd0eXBlcz0nMjI4 MScKK09SREVSIEJZCisgICAgcHJvbmFtZTsKK3slIGVuZGlmICV9CisKK3sj IEZFVENIIGhlYWRsaW5lIGZ1bmN0aW9ucyBmb3IgRlRTX1BBUlNFUiAjfQor eyUgaWYgaGVhZGxpbmUgJX0KK1NFTEVDVAorICAgIHByb25hbWUsIG5zcG5h bWUKK0ZST00KKyAgICBwZ19wcm9jIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04g bi5vaWQ9cHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb2FyZ3R5cGVzPScy MjgxIDIyODEgMzYxNScKK09SREVSIEJZCisgICAgcHJvbmFtZTsKK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2Vy L3RlbXBsYXRlcy9mdHNfcGFyc2VyL3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3RlbXBsYXRlcy9mdHNfcGFy c2VyL3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYjhlYjUyMgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVtcGxhdGVzL2Z0c19wYXJz ZXIvc3FsLzkuMV9wbHVzL25vZGVzLnNxbApAQCAtMCwwICsxLDEzIEBACit7 IyBGRVRDSCBGVFMgUEFSU0VSIG5hbWUgc3RhdGVtZW50ICN9CitTRUxFQ1QK KyAgICBvaWQsIHByc25hbWUgYXMgbmFtZQorRlJPTQorICAgIHBnX3RzX3Bh cnNlciBwcnMKK1dIRVJFCit7JSBpZiBzY2lkICV9CisgICAgcHJzLnByc25h bWVzcGFjZSA9IHt7c2NpZH19OjpPSUQKK3slIGVsaWYgcGlkICV9CisgICAg cHJzLm9pZCA9IHt7cGlkfX06Ok9JRAoreyUgZW5kaWYgJX0KKworT1JERVIg QlkgbmFtZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVtcGxhdGVzL2Z0c19w YXJzZXIvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnRzX3BhcnNlci90ZW1wbGF0ZXMvZnRzX3BhcnNlci9zcWwvOS4x X3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uYTc5Njc3ZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVtcGxhdGVzL2Z0c19wYXJzZXIvc3Fs LzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMzAgQEAKK3sj IEZFVENIIHByb3BlcnRpZXMgZm9yIEZUUyBQQVJTRVIgI30KK1NFTEVDVAor ICAgIHBycy5vaWQsCisgICAgcHJzLnByc25hbWUgYXMgbmFtZSwKKyAgICBw cnMucHJzc3RhcnQsCisgICAgcHJzLnByc3Rva2VuLAorICAgIHBycy5wcnNl bmQsCisgICAgcHJzLnByc2xleHR5cGUsCisgICAgcHJzLnByc2hlYWRsaW5l LAorICAgIGRlc2NyaXB0aW9uLAorICAgIHBycy5wcnNuYW1lc3BhY2UgQVMg c2NoZW1hCitGUk9NCisgICAgcGdfdHNfcGFyc2VyIHBycworICAgIExFRlQg T1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMKK09OCisgICAgKAorICAg IGRlcy5vYmpvaWQ9cHJzLm9pZAorICAgIEFORCBkZXMuY2xhc3NvaWQ9J3Bn X3RzX3BhcnNlcic6OnJlZ2NsYXNzCisgICAgKQorV0hFUkUKK3slIGlmIHNj aWQgJX0KKyAgICBwcnMucHJzbmFtZXNwYWNlID0ge3tzY2lkfX06Ok9JRAor eyUgZWxpZiBuYW1lICV9CisgICAgcHJzLnByc25hbWUgPSB7e25hbWV8cXRM aXRlcmFsfX0KK3slIGVuZGlmICV9Cit7JSBpZiBwaWQgJX0KKyAgICBBTkQg cHJzLm9pZCA9IHt7cGlkfX06Ok9JRAoreyUgZW5kaWYgJX0KK09SREVSIEJZ CisgICAgcHJzLnByc25hbWUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3RlbXBs YXRlcy9mdHNfcGFyc2VyL3NxbC85LjFfcGx1cy9zY2hlbWEuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZW1wbGF0ZXMvZnRzX3BhcnNlci9z cWwvOS4xX3BsdXMvc2NoZW1hLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4yOWRkYWJhCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZW1wbGF0ZXMvZnRzX3BhcnNlci9z cWwvOS4xX3BsdXMvc2NoZW1hLnNxbApAQCAtMCwwICsxLDE5IEBACit7IyBG RVRDSCBzdGF0ZW1lbnQgZm9yIFNDSEVNQSBuYW1lICN9Cit7JSBpZiBkYXRh LnNjaGVtYSAlfQorU0VMRUNUCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBn X25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7e2RhdGEuc2NoZW1hfX06 Ok9JRAorCit7JSBlbGlmIGRhdGEuaWQgJX0KK1NFTEVDVAorICAgIG5zcG5h bWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCisgICAgTEVGVCBKT0lO IHBnX3RzX3BhcnNlciBwcnMKKyAgICBPTiBwcnMucHJzbmFtZXNwYWNlID0g bnNwLm9pZAorV0hFUkUKKyAgICBwcnMub2lkID0ge3tkYXRhLmlkfX06Ok9J RAoreyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3RlbXBsYXRl cy9mdHNfcGFyc2VyL3NxbC85LjFfcGx1cy9zcWwuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnRzX3BhcnNlci90ZW1wbGF0ZXMvZnRzX3BhcnNlci9zcWwvOS4x X3BsdXMvc3FsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4yZmExMWU2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnRzX3BhcnNlci90ZW1wbGF0ZXMvZnRzX3BhcnNlci9zcWwvOS4xX3Bs dXMvc3FsLnNxbApAQCAtMCwwICsxLDQ2IEBACit7IyBSZXZlcnNlIGVuZ2lu ZWVyZWQgc3FsIGZvciBGVFMgUEFSU0VSICN9Cit7JSBpZiBwaWQgYW5kIHNj aWQgJX0KK1NFTEVDVAorICAgIGFycmF5X3RvX3N0cmluZyhhcnJheV9hZ2co c3FsKSwgRSdcblxuJykgYXMgc3FsCitGUk9NCisgICAgKAorICAgIFNFTEVD VAorICAgICAgICBFJy0tIFRleHQgU2VhcmNoIFBhcnNlcjogJyB8fCBuc3Bu YW1lIHx8IEUnLicgfHwgcHJzLnByc25hbWUgfHwKKyAgICAgICAgRSdcblxu LS0gRFJPUCBURVhUIFNFQVJDSCBQQVJTRVIgJyB8fCBuc3BuYW1lIHx8IEUn LicgfHwgcHJzLnByc25hbWUgfHwKKyAgICAgICAgRSdcblxuQ1JFQVRFIFRF WFQgU0VBUkNIIFBBUlNFUiAnIHx8IG5zcG5hbWUgfHwgRScuJyB8fCAgcHJz LnByc25hbWUgfHwgRScgKFxuJyB8fAorICAgICAgICBFJyAgICBTVEFSVCA9 ICcgfHwgcHJzLnByc3N0YXJ0IHx8IEUnLFxuJyB8fAorICAgICAgICBFJyAg ICBHRVRUT0tFTiA9ICcgfHwgcHJzLnByc3Rva2VuIHx8IEUnLFxuJyB8fAor ICAgICAgICBFJyAgICBFTkQgPSAnIHx8IHBycy5wcnNlbmQgfHwgRScsXG4n IHx8CisgICAgICAgIEUnICAgIExFWFRZUEVTID0gJyB8fCBwcnMucHJzbGV4 dHlwZSB8fAorICAgICAgICBDQVNFCisgICAgICAgICAgICBXSEVOIHBycy5w cnNoZWFkbGluZSAhPSAnLSc6OnJlZ2NsYXNzIFRIRU4gRScsXG4gICAgSEVB RExJTkUgPSAnIHx8IHBycy5wcnNoZWFkbGluZQorICAgICAgICAgICAgRUxT RSAnJyBFTkQgfHwgRSdcbik7JyB8fAorICAgICAgICBDQVNFCisgICAgICAg ICAgICBXSEVOIGRlc2NyaXB0aW9uIElTIE5PVCBOVUxMIFRIRU4KKyAgICAg ICAgICAgICAgICBFJ1xuXG5DT01NRU5UIE9OIFRFWFQgU0VBUkNIIFRFTVBM QVRFICcgfHwgbnNwbmFtZSB8fCBFJy4nIHx8IHBycy5wcnNuYW1lIHx8Cisg ICAgICAgICAgICAgICAgRScgSVMgJyB8fCBwZ19jYXRhbG9nLnF1b3RlX2xp dGVyYWwoZGVzY3JpcHRpb24pIHx8IEUnOycKKyAgICAgICAgICAgIEVMU0Ug JycgIEVORCBhcyBzcWwKKyAgICBGUk9NCisgICAgICAgIHBnX3RzX3BhcnNl ciBwcnMKKyAgICBMRUZUIEpPSU4gKAorICAgICAgICBTRUxFQ1QKKyAgICAg ICAgICAgIGRlcy5kZXNjcmlwdGlvbiBhcyBkZXNjcmlwdGlvbiwKKyAgICAg ICAgICAgIGRlcy5vYmpvaWQgYXMgZGVzY29pZAorICAgICAgICBGUk9NCisg ICAgICAgICAgICBwZ19kZXNjcmlwdGlvbiBkZXMKKyAgICAgICAgV0hFUkUK KyAgICAgICAgICAgIGRlcy5vYmpvaWQ9e3twaWR9fTo6T0lEIEFORCBkZXMu Y2xhc3NvaWQ9J3BnX3RzX3BhcnNlcic6OnJlZ2NsYXNzCisgICAgKSBhIE9O IChhLmRlc2NvaWQgPSBwcnMub2lkKQorICAgIExFRlQgSk9JTiAoCisgICAg ICAgIFNFTEVDVAorICAgICAgICAgICAgbnNwbmFtZSwKKyAgICAgICAgICAg IG5zcC5vaWQgYXMgbm9pZAorICAgICAgICBGUk9NCisgICAgICAgICAgICBw Z19uYW1lc3BhY2UgbnNwCisgICAgICAgIFdIRVJFCisgICAgICAgICAgICBv aWQgPSB7e3NjaWR9fTo6T0lECisgICAgKSBiIE9OIChiLm5vaWQgPSBwcnMu cHJzbmFtZXNwYWNlKQorV0hFUkUKKyAgICBwcnMub2lkPXt7cGlkfX06Ok9J RAorKSBhcyBjOworeyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2Vy L3RlbXBsYXRlcy9mdHNfcGFyc2VyL3NxbC85LjFfcGx1cy91cGRhdGUuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZW1wbGF0ZXMvZnRzX3Bh cnNlci9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4yMDY1NzVkCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZW1wbGF0ZXMvZnRzX3Bh cnNlci9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDIyIEBA Cit7IyBVUERBVEUgc3RhdGVtZW50IGZvciBGVFMgUEFSU0VSICN9Cit7JSBp ZiBkYXRhICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBv X2RhdGEubmFtZSAlfQorQUxURVIgVEVYVCBTRUFSQ0ggUEFSU0VSIHt7Y29u bnxxdElkZW50KG9fZGF0YS5zY2hlbWEpfX0ue3tjb25ufHF0SWRlbnQob19k YXRhLm5hbWUpfX0KKyAgICBSRU5BTUUgVE8ge3tkYXRhLm5hbWV9fTsKK3sl IGVuZGlmICV9CisKK3sjaW4gY2FzZSBvZiByZW5hbWUsIHVzZSBuZXcgZnRz IHRlbXBsYXRlIG5hbWUgI30KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5u YW1lICE9IG9fZGF0YS5uYW1lICV9Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFt ZSAlfQoreyUgZWxzZSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAl fQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNj aGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitBTFRFUiBURVhUIFNFQVJDSCBQ QVJTRVIge3tjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSl9fS57e2Nvbm58 cXRJZGVudChuYW1lKX19CisgICAgU0VUIFNDSEVNQSB7e2RhdGEuc2NoZW1h fX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAhPSBv X2RhdGEuZGVzY3JpcHRpb24gJX0KK0NPTU1FTlQgT04gVEVYVCBTRUFSQ0gg UEFSU0VSIHt7Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEpfX0ue3tjb25u fHF0SWRlbnQobmFtZSl9fQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258 cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo= --001a1141dca226ce2e052f182d85 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a1141dca226ce2e052f182d85--