From dev-return-2490-archive-asf-public=cust-asf.ponee.io@openwhisk.apache.org Thu Aug 23 21:28:40 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 88FC518061A for ; Thu, 23 Aug 2018 21:28:39 +0200 (CEST) Received: (qmail 31211 invoked by uid 500); 23 Aug 2018 19:28:38 -0000 Mailing-List: contact dev-help@openwhisk.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openwhisk.apache.org Delivered-To: mailing list dev@openwhisk.apache.org Received: (qmail 31175 invoked by uid 99); 23 Aug 2018 19:28:37 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Aug 2018 19:28:37 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 75F62C70D5 for ; Thu, 23 Aug 2018 19:28:37 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.112 X-Spam-Level: X-Spam-Status: No, score=-0.112 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=adobe.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id x66mFjFtuj8z for ; Thu, 23 Aug 2018 19:28:35 +0000 (UTC) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0049.outbound.protection.outlook.com [104.47.42.49]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 441AB5F11D for ; Thu, 23 Aug 2018 19:28:35 +0000 (UTC) Received: from CO1PR02MB112.namprd02.prod.outlook.com (10.242.164.27) by CO1PR02MB143.namprd02.prod.outlook.com (10.242.165.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.1059.24; Thu, 23 Aug 2018 19:28:27 +0000 Received: from CO1PR02MB112.namprd02.prod.outlook.com ([fe80::195f:4267:50e1:b91f]) by CO1PR02MB112.namprd02.prod.outlook.com ([fe80::195f:4267:50e1:b91f%18]) with mapi id 15.20.1059.023; Thu, 23 Aug 2018 19:28:27 +0000 From: Tyson Norris To: "dev@openwhisk.apache.org" Subject: Re: Kafka and Proposal on a future architecture of OpenWhisk Thread-Topic: Kafka and Proposal on a future architecture of OpenWhisk Thread-Index: AQHUNne2PlnqwhhxlEGvB2Wt8Ke7Y6TEqhSAgAJI4wCAAjoHgIAAtKAAgAHvLwCAAHioAP//lNwAgAB6WID//5VugIABGj0AgABEUAA= Date: Thu, 23 Aug 2018 19:28:26 +0000 Message-ID: <03CE2918-30A8-4360-8CCB-C90CEB1E7E18@adobe.com> References: <7E0959FF-737B-4285-AD02-08C1BEA79C76@gmail.com> <2E9F5594-7A74-4CCA-A38C-A21525054FAB@adobe.com> <4CCC0377-E0D6-47EE-9108-B1C03EF2C17B@adobe.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.10.0.180812 authentication-results: spf=none (sender IP is ) smtp.mailfrom=tnorris@adobe.com; x-originating-ip: [2600:1010:b060:e2e7:70f1:d836:8813:8b42] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CO1PR02MB143;6:sVz85RgFho9xVPUXpWXCygjV8FYfZzXGTMYl9ZttkamXla11aJi11Ba2Fs3YZYnyP60vXiWG2s0fJ7L7WefgSDjgygie4H/XNf/3dMz5heAOJJoxfOuEtaW4Vll2UQYYIXfbTX+Z2b21nx5hhoHnw320fSIfwwIDr5AJMR3X6+hV/l1xfRHn7HsFWmfXAGJZGGypd2DmqdrDcNySlmwJQIED0jzFMW39mYJOMJqPm5uo3DaA87nVnXEyBtPuEBrE0Rm/oI/PPDOsukG5q7zMtSv3n4dJkq8XXsbrGyVtmaAcZQjaPNEe3VA3KlF9Bb+ffTKkFg32YYCU5ARxeB5UFEForzoHSysoMcDTvWnLryMonNt3k7uSt0zFtur7w9ekpnXUczWdR9tPiV6g6eVhn85e9Ej0H2sEet81F2RWOr9Pd/ufFfhLlgfDzeFx5HJnLS6rF/2pMZhybRDdEmdjRw==;5:YvyphLcKLyz4vwlJ256gcPVLmpIgDiQXAcUuwmuvDP8xC2LsRyYwYCHNCnpm02i0XpSf1fZr7umauff1wy/RjTut/OuHbkxPtleIjQyLroitoBI/yc22jULPM5CAgHD3fSVd+CM/bAhJGsC6xCI83v9CzOfw3bvkKIM3cWNTDs8=;7:lXVTjbKUQc2TBLyPF8n3XIW5h6H0uaAQcJbSAe54zHPZckc+HX2Adq7A+d54ZWUCQ6bXiuq3LqGThocMQitvY4Lx3BNlweDtIctlbbQ7DBIBQPp9mXilEKkMDyNExXBMWzFeqh8yTPAxSnYYnevLgA3is8KRqpWDobz7sCvD+q1GnGrA/F0V8fRtZFukJH1NoEAIcdMcLpsA7nWLBZzjHoY8wmFhlfdvTkBHycG3rSqyh4qUeMxpKiW0nvwzk0p6 x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 553fe72b-41e0-48f1-f759-08d6092e99d4 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);SRVR:CO1PR02MB143; x-ms-traffictypediagnostic: CO1PR02MB143: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(788757137089)(211171220733660); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231311)(944501410)(52105095)(10201501046)(93006095)(93001095)(3002001)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123564045)(20161123562045)(201708071742011)(7699016);SRVR:CO1PR02MB143;BCL:0;PCL:0;RULEID:;SRVR:CO1PR02MB143; x-forefront-prvs: 0773BB46AC x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(346002)(396003)(376002)(366004)(39860400002)(189003)(199004)(51234002)(53936002)(11346002)(6436002)(6486002)(476003)(5640700003)(93886005)(5660300001)(229853002)(186003)(446003)(81166006)(486006)(46003)(2906002)(8936002)(83716003)(6512007)(6916009)(256004)(2616005)(2900100001)(14444005)(33656002)(68736007)(86362001)(6116002)(76176011)(81156014)(97736004)(82746002)(99286004)(305945005)(1730700003)(105586002)(8676002)(2351001)(106356001)(36756003)(478600001)(5250100002)(102836004)(10090500001)(7736002)(6506007)(6246003)(14454004)(58126008)(316002)(25786009)(2501003);DIR:OUT;SFP:1101;SCL:1;SRVR:CO1PR02MB143;H:CO1PR02MB112.namprd02.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: adobe.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 7LWdjiZ3sEqoZbMLyhzEUnttWmBlLESGjC65PZvApcwnOYAl+ZJiZQkbZUVGvyFWYaNatvV3bk0Ff6c4CJBd68vNOSznpIontg31+ZwOA++8IP99LGOiU/yTI82fsw5NCPzbeEnUOSPcGYPCzxqUxJ0Ke4OXcZgwuZYPC3tc4me6ozMXq+Gg/qUzk30C9y3VrxyLGzniHE9ct8XeRZXfDpKuHHJ00t/LhPHiOxuZj5PaOhJ6boAsqjX6SqbUcSa7aISmEc0Y57PPdlhLu3Psj6qbBAP94RCPXdsVFlDcjeZkz6BPZT6/dGgwfuMru4Xbb/hBQCFTiIUVNN+BnNtGH3COEQHqWVJMSaAtk7BzW2U= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <89A92CA959BAD14D8C1B0B162AF1CBDC@namprd02.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: adobe.com X-MS-Exchange-CrossTenant-Network-Message-Id: 553fe72b-41e0-48f1-f759-08d6092e99d4 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2018 19:28:27.2895 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fa7b1b5a-7b34-4387-94ae-d2c178decee1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR02MB143 ICAgID4NCiAgICA+IEFuZCBlYWNoIENvbnRhaW5lclJvdXRlciBoYXMgYSBxdWV1ZSBjb25zdW1l ciB0aGF0IHByZXN1bWFibHkgcHVsbHMgZnJvbQ0KICAgID4gdGhlIHF1ZXVlIGNvbnN0YW50bHk/ IE9yIGlzIGNvbnN1bXB0aW9uIGJhc2VkIG9uIHNvbWV0aGluZyBlbHNlPyBJZiBhbGwNCiAgICA+ IENvbnRhaW5lclJvdXRlcnMgYXJlIGNvbnN1bWluZyBhdCB0aGUgc2FtZSByYXRlLCB0aGVuIHdo aWxlIHRoaXMgZG9lcw0KICAgID4gZGlzdHJpYnV0ZSB0aGUgbG9hZCBhY3Jvc3MgQ29udGFpbmVy Um91dGVycywgaXQgZG9lc24ndCByZWFsbHkgZ3VhcmFudGVlDQogICAgPiBhbnkgc2ltaWxhciBz dGF0ZSAobnVtYmVyIG9mIGNvbnRhaW5lcnMsIGFjdGl2ZSBjb25uZWN0aW9ucywgZXRjKSBhdCBl YWNoDQogICAgPiBDb250YWluZXJSb3V0ZXIsIEkgdGhpbmsuIE1heWJlIEkgYW0gbWlzc2luZyBz b21ldGhpbmcgaGVyZT8NCiAgICA+DQogICAgDQogICAgDQogICAgVGhlIGlkZWEgaXMgdGhhdCBD b250YWluZXJSb3V0ZXJzIGRvICoqbm90KiogcHVsbCBmcm9tIHRoZSBxdWV1ZQ0KICAgIGNvbnN0 YW50bHkuIFRoZXkgcHVsbCB3b3JrIGZvciBhY3Rpb25zIHRoYXQgdGhleSBoYXZlIGlkbGUgY29u dGFpbmVycyBmb3IuDQoNClJvdXRlciBpcyBub3QgcHVsbGluZyBhdCBxdWV1ZSBmb3IgInNwZWNp ZmljIGFjdGlvbnMiLCBqdXN0IGZvciBhbnkgYWN0aW9uIHRoYXQgbWlnaHQgcmVwbGFjZSBpZGxl IGNvbnRhaW5lcnMgLSByaWdodD8gVGhpcyBpcyBjb21wbGljYXRlZCB3aXRoIGNvbmN1cnJlbmN5 IHRob3VnaCBzaW5jZSB3aGlsZSBhIGNvbnRhaW5lciBpcyBub3QgaWRsZSAocGF1c2VkICsgcmVt b3ZhYmxlKSwgaXQgbWF5IGJlIHVzZWFibGUsIGJ1dCBvbmx5IGlmIHRoZSBhY3Rpb24gcmVjZWl2 ZWQgaXMgdGhlIHNhbWUgYXMgb25lIGV4aXN0aW5nIHdhcm0gY29udGFpbmVyLCBhbmQgdGhhdCBj b250YWluZXIgaGFzIGNvbmN1cnJlbmN5IHNsb3RzIGF2YWlsYWJsZSBmb3IgYWRkaXRpb25hbCBh Y3RpdmF0aW9ucy4gSXQgbWF5IGJlIGhlbHBmdWwgdG8gZGlhZ3JhbSBzb21lIG9mIHRoaXMgc3Rl YWxpbmcgcXVldWUgZmxvdyBhIGJpdCBtb3JlLCBJJ20gbm90IHNlZWluZyBob3cgaXQgd2lsbCB3 b3JrIG91dCBvdGhlciB0aGFuIGNyZWF0aW5nIG1vcmUgY29udGFpbmVycyB0aGFuIGlzIGFic29s dXRlbHkgcmVxdWlyZWQsIHdoaWNoIG1heSBiZSBvaywgbm90IHN1cmUuIA0KICAgIA0KICAgIFNp bWlsYXIgc3RhdGUgaW4gdGVybXMgb2YgbnVtYmVyIG9mIGNvbnRhaW5lcnMgaXMgZG9uZSB2aWEg dGhlDQogICAgQ29udGFpbmVyTWFuYWdlci4gQWN0aXZlIGNvbm5lY3Rpb25zIHNob3VsZCByb3Vn aGx5IGV2ZW4gb3V0IHdpdGggdGhlIHF1ZXVlDQogICAgYmVpbmcgcHVsbGVkIG9uIGlkbGUuDQog ICAgDQpZZWFoIGNhcmVmdWxseSBkZWZpbmluZyAiaWRsZSIgbWF5IGJlIHRyaWNreSwgaWYgd2Ug d2FudCB0byBhY2hpZXZlIGFic29sdXRlIG1pbmltdW0gY29udGFpbmVycyBpbiB1c2UgZm9yIGEg c3BlY2lmaWMgYWN0aW9uIGF0IGFueSB0aW1lLg0KDQogICAgDQogICAgPg0KICAgID4gICAgIFRo ZSBlZGdlLWNhc2UgaGVyZSBpcyBmb3IgdmVyeSBzbG93IGxvYWQuIEl0J3MgbWluaW1pemluZyB0 aGUgYW1vdW50IG9mDQogICAgPiAgICAgQ29udGFpbmVycyBuZWVkZWQuIEFub3RoZXIgZXhhbXBs ZToNCiAgICA+ICAgICBTYXkgeW91IGhhdmUgMyBSb3V0ZXJzLiBBIHJlcXVlc3QgZm9yIGFjdGlv biBYIGNvbWVzIGluLCBnb2VzIHRvDQogICAgPiBSb3V0ZXIxLg0KICAgID4gICAgIEl0IHJlcXVl c3RzIGEgY29udGFpbmVyLCBwdXRzIHRoZSB3b3JrIG9uIHRoZSBxdWV1ZSwgbm9ib2R5IHN0ZWFs cyBpdCwNCiAgICA+IGFzDQogICAgPiAgICAgc29vbiBhcyB0aGUgQ29udGFpbmVyIGdldHMgcmVh ZHksIHRoZSB3b3JrIGlzIHRha2VuIGZyb20gdGhlIHF1ZXVlIGFuZA0KICAgID4gICAgIGV4ZWN1 dGVkLiBBbGwgbmljZSBhbmQgZGFuZHkuDQogICAgPg0KICAgID4gICAgIEltcG9ydGFudCByZW1h cms6IFRoZSBSb3V0ZXIgdGhhdCByZXF1ZXN0ZWQgbW9yZSBDb250YWluZXJzIGlzIG5vdA0KICAg ID4gICAgIG5lY2Vzc2FyaWx5IHRoZSBvbmUgdGhhdCdzIGdldHRpbmcgdGhlIENvbnRhaW5lcnMu IFdlIG5lZWQgdG8gbWFrZQ0KICAgID4gc3VyZSB0bw0KICAgID4gICAgIGV2ZW5seSBkaXN0cmli dXRlIENvbnRhaW5lcnMgYWNyb3NzIHRoZSBzeXN0ZW0uDQogICAgPg0KICAgID4gICAgIFNvIGJh Y2sgdG8gb3VyIGV4YW1wbGU6IFdoYXQgaGFwcGVucyBpZiByZXF1ZXN0cyBmb3IgYWN0aW9uIFgg YXJlIG1hZGUNCiAgICA+IG9uZQ0KICAgID4gICAgIGFmdGVyIHRoZSBvdGhlcj8gV2VsbCwgdGhl IGxheWVyIGFib3ZlIHRoZSBSb3V0ZXJzIChzb21ldGhpbmcgbmVlZHMgdG8NCiAgICA+ICAgICBs b2FkYmFsYW5jZSB0aGVtLCBiZSBpdCBETlMgb3IgYW5vdGhlciB0eXBlIG9mIHJvdXRpbmcgbGF5 ZXIpIGlzbid0DQogICAgPiBhd2FyZQ0KICAgID4gICAgIG9mIHRoZSBsb2NhbGl0eSBvZiB0aGUg Q29udGFpbmVyIHRoYXQgd2UgY3JlYXRlZCB0byBleGVjdXRlIGFjdGlvbiBYLg0KICAgID4gQXMg aXQNCiAgICA+ICAgICBzY2hlZHVsZXMgZmFpcmx5IHJhbmRvbWx5IChyb3VuZC1yb2JpbiBpbiBh IG11bHRpLXRlbmFudCBzeXN0ZW0gaXMNCiAgICA+ICAgICBlc3NlbnRpYWxseSByYW5kb20pIHRo ZSBhY3Rpb24gd2lsbCBoaXQgZWFjaCBSb3V0ZXIgb25jZSB2ZXJ5IHNvb24uIEFzDQogICAgPiAg ICAgd2UncmUgb25seSBnZW5lcmF0aW5nIG9uZSByZXF1ZXN0IGFmdGVyIHRoZSBvdGhlciwgYXJn dWFibHkgd2Ugb25seQ0KICAgID4gd2FudCB0bw0KICAgID4gICAgIGNyZWF0ZSBvbmx5IG9uZSBj b250YWluZXIuDQogICAgPg0KICAgID4gICAgIFRoYXQncyB3aHkgaW4gdGhpcyBleGFtcGxlIHRo ZSAyIHJlbWFpbmluZyBSb3V0ZXJzIHdpdGggbm8gY29udGFpbmVyDQogICAgPiBnZXQgYQ0KICAg ID4gICAgIHJlZmVyZW5jZSB0byBSb3V0ZXIxLg0KICAgID4NCiAgICA+ICAgICBJbiB0aGUgY2Fz ZSB5b3UgbWVudGlvbmVkOg0KICAgID4gICAgID4gaXQgc2VlbXMgbGlrZSBzZW5kaW5nIHRvIGFu b3RoZXIgUm91dGVyIHdoaWNoIGhhcyB0aGUgY29udGFpbmVyLCBidXQNCiAgICA+IG1heQ0KICAg ID4gICAgIG5vdCBiZSBhYmxlIHRvIHVzZSBpdCBpbW1lZGlhdGVseSwgbWF5IGNhdXNlIGZhaWx1 cmVzIGluIHNvbWUgY2FzZXMuDQogICAgPg0KICAgID4gICAgIEkgZG9uJ3QgcmVjYWxsIGlmIGl0 J3MgaW4gdGhlIGRvY3VtZW50IG9yIGluIHRoZSBkaXNjdXNzaW9uIG9uIHRoZQ0KICAgID4gICAg IGRldi1saXN0OiBUaGUgcm91dGVyIHdvdWxkIHJlc3BvbmQgdG8gdGhlIHByb3hpZWQgcmVxdWVz dCB3aXRoIGEgNTAzDQogICAgPiAgICAgaW1tZWRpYXRseS4gVGhhdCB0ZWxscyB0aGUgcHJveHlp bmcgcm91dGVyOiBPaCwgYXBwYXJlbnRseSB3ZSBuZWVkIG1vcmUNCiAgICA+ICAgICByZXNvdXJj ZXMuIFNvIGl0IHJlcXVlc3RzIGFub3RoZXIgY29udGFpbmVyIGV0YyBldGMuDQogICAgPg0KICAg ID4gICAgIERvZXMgdGhhdCBjbGFyaWZ5IHRoYXQgc3BlY2lmaWMgZWRnZS1jYXNlPw0KICAgID4N CiAgICA+IFllcywgYnV0IEkgd291bGQgbm90IGNhbGwgdGhpcyBhbiBlZGdlLWNhc2UgLSAgSSB0 aGluayBpdCBpcyBtb3JlIG9mIGENCiAgICA+IHJhbXAgdXAgdG8gbWF4aW11bSBjb250YWluZXIg cmV1c2UsIGFuZCB3aWxsIHByb2JhYmx5IGRyYW1hdGljYWxseSBpbXBhY3RlZA0KICAgID4gYnkg Y29udGFpbmVycyB0aGF0IGRvIE5PVCBzdXBwb3J0IGNvbmN1cnJlbmN5ICh3aWxsIGdldCBhIDUw MyB3aGVuIGEgc2luZ2xlDQogICAgPiBhY3RpdmF0aW9uIGlzIGluIGZsaWdodCwgdnMgaGlnaCBj b25jdXJyZW5jeSBjb250YWluZXIsIHdoaWNoIHdvdWxkIGNhdXNlDQogICAgPiA1MDMgb25seSBv bmNlIG1heCBjb25jdXJyZW5jeSByZWFjaGVkKS4NCiAgICA+IElmIGVhY2ggQ29udGFpbmVyUm91 dGVyIGlzIGFzIGxpa2VseSB0byByZWNlaXZlIHRoZSBvcmlnaW5hbCByZXF1ZXN0LCBhbmQNCiAg ICA+IGVhY2ggaXMgYWxzbyBhcyBsaWtlbHkgdG8gcmVjZWl2ZSB0aGUgcXVldWVkIGl0ZW0gZnJv bSB0aGUgc3RlYWxpbmcgcXVldWUsDQogICAgPiB0aGVuIHRoZXJlIHdpbGwgYmUgYSBsb3Qgb2Yg Y3Jvc3MgdHJhZmZpYyBkdXJpbmcgdGhlIHJhbXAgdXAgZnJvbSAxDQogICAgPiBjb250YWluZXIg dG8gPFJvdXRlciBjb3VudD4gY29udGFpbmVycy4gRS5nLg0KICAgID4NCiAgICA+IEZyb20gY2xp ZW50Og0KICAgID4gUmVxdWVzdDEgLT4gUm91dGVyIDEgLT4gcXVldWUgKG5vIGNvbnRhaW5lcnMp DQogICAgPiBSZXF1ZXN0MiAtPiBSb3V0ZXIgMiAtPiBxdWV1ZSAobm8gY29udGFpbmVycykNCiAg ICA+IFJlcXVlc3QzIC0+IFJvdXRlciAzIC0+IHF1ZXVlIChubyBjb250YWluZXJzKQ0KICAgID4g RnJvbSBxdWV1ZToNCiAgICA+IFJlcXVlc3QxIC0+IFJvdXRlcjEgIC0+IGNyZWF0ZSBhbmQgdXNl IGNvbnRhaW5lcg0KICAgID4gUmV1cWVzdDIgLT4gUm91dGVyMiAtPiBSb3V0ZXIxIC0+IDUwMyAt PiBjcmVhdGUgY29udGFpbmVyDQogICAgPiBSZXF1ZXN0MyAtPiBSb3V0ZXIzIC0+IFJvdXRlcjEg LT4gNTAzIC0+IFJvdXRlcjIgLT4gNTAzIC0+IGNyZWF0ZSBjb250YWluZXINCiAgICA+DQogICAg PiBJbiBvdGhlciB3b3JkcyAtIHRoZSA1MDMgbWF5IGhlbHAgd2hlbiB0aGVyZSBpcyBvbmUgY29u dGFpbmVyIGV4aXN0aW5nLA0KICAgID4gYW5kIGl0IGlzIGRlZW1lZCB0byBiZSBidXN5LCBidXQg d2hhdCBpZiB0aGVyZSBhcmUgMTAgY29udGFpbmVycyBleGlzdGluZw0KICAgID4gKG9uIGRpZmZl cmVudCBSb3V0ZXJzIG90aGVyIHRoYW4gd2hlcmUgdGhlIHJlcXVlc3Qgd2FzIHB1bGxlZCBmcm9t IHRoZQ0KICAgID4gc3RlYWxpbmcgcXVldWUpIC0gZG8geW91IG1ha2UgSFRUUCByZXF1ZXN0cyB0 byBhbGwgMTAgUm91dGVycyB0byBzZWUgaWYNCiAgICA+IHRoZXkgYXJlIGJ1c3kgYmVmb3JlIGNy ZWF0aW5nIGEgbmV3IGNvbnRhaW5lcj8NCiAgICA+DQogICAgDQogICAgR29vZCBwb2ludCwgaGF2 ZW4ndCByZWFsbHkgdGhvdWdodCBhYm91dCB0aGF0IHRvIGJlIGZyYW5rLiBHdXQgZmVlbGluZyBp cw0KICAgIHRoYXQgd2Ugc2hvdWxkIG9ubHkgaGF2ZSAxIGRpcmVjdCByZWZlcmVuY2UgcGVyIFJv dXRlci9BY3Rpb24gdG8gYW5vdGhlcg0KICAgIFJvdXRlci4gSWYgdGhhdCB5aWVsZHMgYSA1MDMs IGp1c3QgZ2VuZXJhdGUgbmV3IHJlc291cmNlcyBpbW1lZGlhdGVseS4gVGhhdA0KICAgIG1pZ2h0 IG92ZXJzaG9vdCB3aGF0IHdlIHJlYWxseSBuZWVkLCBidXQgbWlnaHQganVzdCBiZSBnb29kIGVu b3VnaD8gTWF5YmUNCiAgICBJJ20gb3ZlcmNvbXBsaWNhdGluZyBoZXJlLi4uDQogICAgDQogICAg QWx0ZXJuYXRpdmUgdG8gdGhlIHdob2xlIHdvcmstc3RlYWxpbmcgYWxnb3JpdGhtICh3aGljaCBj b3VsZCB1bmlmeSB0aGlzDQogICAgcmFtcC11cCBwaGFzZSBhbmQgd29yay1zdGVhbGluZyBpdHNl bGYgbmljZWx5KToNCiAgICBXaGF0IGlmIGl0IGlzIHBvc3NpYmxlIHRvIGRldGVjdCB0aGF0IHdo ZW4gYW4gZXZlbnQgaXMgcHVzaGVkIHRvIHRoZQ0KICAgIHdvcmstc3RlYWxpbmcgcXVldWUsIHRo ZXJlIGFyZSBubyBhY3RpdmUgY29uc3VtZXJzIGZvciB0aGF0IGV2ZW50IHJpZ2h0DQogICAgbm93 LiBJZiB0aGF0IGlzIHBvc3NpYmxlLCB3ZSBjb3VsZCB1c2UgdGhhdCB0byBzaWduYWwgdGhhdCBt b3JlIENvbnRhaW5lcnMNCiAgICBhcmUgbmVlZGVkLCBiZWNhdXNlIGFwcGFyZW50bHkgbm9ib2R5 IGhhcyBpZGxpbmcgcmVzb3VyY2VzIGZvciBhIHNwZWNpZmljDQogICAgY29udGFpbmVyLg0KDQpJ IHRoaW5rIHRoaXMgaXMgb25seSBwb3NzaWJsZSBpbiB0aGUgY2FzZSB3aGVyZSAwIGNvbnRhaW5l cnMgKGZvciB0aGF0IGFjdGlvbikgZXhpc3RlZCBiZWZvcmU7IGluIG90aGVyIGNhc2VzLCB3aXRo b3V0IGhhdmluZyBSb3V0ZXIgc3RhdGUgdmlzaWJpbGl0eSwgaXQgd2lsbCBiZSBpbXBvc3NpYmxl IHRvIGRldGVjdCBSb3V0ZXJzIHRoYXQgaGF2ZSBjYXBhY2l0eSB0byBzZXJ2aWNlIHRoYXQgZXZl bnQuDQoNCiAgICBXZSB3b3VsZCB0aGVuIGFsc28gdXNlIHRoaXMgbWVjaGFuaXNtIHRvIGdlbmVy YXRlIENvbnRhaW5lcnMgaW4gZ2VuZXJhbC4NCiAgICBUaGUgQ29udGFpbmVyUm91dGVycyB3b3Vs ZCAqKm5ldmVyKiogcmVxdWVzdCBuZXcgY29udGFpbmVycy4gVGhleSB3b3VsZA0KICAgIGluc3Rl YWQgcHV0IHRoZWlyIHdvcmsgb24gdGhlIHN0ZWFsaW5nIHF1ZXVlIHRvIHNlZSBsZXQgc29tZW9u ZSBlbHNlIHdvcmsNCiAgICBvbiBpdC4gSWYgdGhlIHN5c3RlbSBkZXRlY3RzIHRoYXQgbm9ib2R5 IGlzIHdhaXRpbmcsIGl0IHJlcXVlc3RzIGEgbmV3DQogICAgQ29udGFpbmVyIChtYXliZSB0aGUg Q29udGFpbmVyTWFuYWdlciBjb3VsZCBiZSB1c2VkIHRvIGRldGVjdCB0aGF0IHNpZ25hbD8pDQog ICAgDQogICAgRm9yIG91ciAiZWRnZS1jYXNlIiB0aGF0J2QgbWVhbjogTm8gcmVmZXJlbmNlcyB0 byBvdGhlciBSb3V0ZXJzIGFyZSBoYW5kZWQNCiAgICBvdXQgYXQgYWxsLiBJZiBhIHJlcXVlc3Qg YXJyaXZlcyBhdCBhIFJvdXRlciB0aGF0IGhhcyBubyBDb250YWluZXIgdG8gc2VydmUNCiAgICBp dCwgaXQganVzdCBwdXRzIGl0IG9uIHRoZSBxdWV1ZS4gSWYgdGhlcmUncyBhIGNvbnN1bWVyIGZv ciBpdCwgZ3JlYXQsDQogICAgZG9uZS4gSWYgbm90LCB3ZSBrbm93ICB3ZSBuZWVkIG1vcmUgcmVz b3VyY2VzLg0KICAgIA0KICAgIFRoaXMgYm9pbHMgZG93biB0byBuZWVkaW5nIGFuIGVmZmljaWVu dCBtZWNoYW5pc20gdG8gc2lnbmFsIGZyZWUgY2FwYWNpdGllcw0KICAgIHRob3VnaC4gU29tZXRo aW5nIHRvIHRoaW5rIGRlZXBlciBhYm91dCwgdGhhbmtzIGZvciBicmluZ2luZyBpdCB1cCENCg0K WWVzLCBJIHRoaW5rICJjYXBhY2l0eSIgaXMgbW9yZSBhY2N1cmF0ZSB3YXkgdG8gdGhpbmsgb2Yg aXQsIHRoYW4gImlkbGUiLCBhbmQgeWVzIEkgdGhpbmsgYSA1MDMgc2hvdWxkIGdlbmVyYXRlIGNv bnRhaW5lciBpbW1lZGlhdGVseSwgYnV0IEkgdGhpbmsgd2UgbmVlZCB0byBzdXBwbHkgbW9yZSBk YXRhIHRvIGludGVsbGlnZW50bHkgbGltaXQgdGhlIDUwMyB3b3JrZmxvd3MuDQoNCldoYXQgYWJv dXQgdGhpczoNCi0gQ29udGFpbmVyUm91dGVycyByZXBvcnQgY2FwYWNpdHkgKCJwb3NzaWJsZSBj YXBhY2l0eSIsIG9yICJidXN5IikgdG8gQ29udGFpbmVyTWFuYWdlciBwZXJpb2RpY2FsbHkgKG5v dCBhY2N1cmF0ZSBhdCBwb2ludCBpbiB0aW1lLCBidXQgY2xvc2UgZW5vdWdoIGluIHNvbWUgY2Fz ZXMpDQotIFdoZW4gbm8gY2FwYWNpdHkgZXhpc3RzIGluIENvbnRhaW5Sb3V0ZXIncyBleGlzdGlu ZyB3YXJtIGNvbnRhaW5lcnMsIENvbnRhaW5Sb3V0ZXIgcmVxdWVzdHMgY29udGFpbmVyIGZyb20g Q29udGFpbmVyTWFuYWdlcg0KLSBDb250YWluZXJNYW5hZ2VyIHJlc3BvbmRzIHdpdGggZWl0aGVy IENvbnRhaW5lclJvdXRlciAoaWYgb25lIGV4aXN0cyB3aXRoICJwb3NzaWJsZSBjYXBhY2l0eSIp LCBvciBDb250YWluZXIgKGlmIG5vbmUgZXhpc3RzIHdpdGggInBvc3NpYmxlIGNhcGFjaXR5IikN Ci0gSW4gY2FzZSBDb250YWluZXIgaXMgcmV0dXJuZWQsIGlmIEMgPiAxLCBpdHMgY2FwYWNpdHkg c3RhdGUgc2hvdWxkIHN0YXJ0IGFzICJwb3NzaWJsZSBjYXBhY2l0eSI7IG90aGVyd2lzZSwgImJ1 c3kiICh3ZSBrbm93IGl0IHdpbGwgYmUgaW1tZWRpYXRlbHkgdXNlZCkNCi0gSW4gY2FzZSBDb250 YWluZXJSb3V0ZXIgaXMgcmV0dXJuZWQsIGF0dGVtcHQgKG9uY2UpIHByb3h5IHRvIHRoYXQgQ29u dGFpbmVyUm91dGVyDQotIE9uIGEgcHJveGllZCByZXF1ZXN0IHRvIENvbnRhaW5lclJvdXRlciBD UjIgZWl0aGVyIHNlcnZpY2UgdGhlIHJlcXVlc3QsIE9SIGltbWVkaWF0ZWx5IGNyZWF0ZSBhIGNv bnRhaW5lciAoaW4gQ1IyKSwgT1Igd2UgbWF5IGxpbWl0IHRoZSBudW1iZXIgb2Ygc2FtZSBhY3Rp b24gY29udGFpbmVycyBpbiBhIENvbnRhaW5lclJvdXRlciBzbyByZXR1cm4gNTAzIGF0IHdoaWNo IHBvaW50IGltbWVkaWF0ZWx5IGNyZWF0ZSBhIGNvbnRhaW5lciAoaW4gQ1IxKS4gDQoNClRoaXMg d291bGQ6DQotIGVuY291cmFnZSBtdWx0aXBsZSBjb250YWluZXJzIGZvciBzYW1lIGFjdGlvbiB0 byBiZSBtYW5hZ2VkIGluIGEgc3Vic2V0IG9mIHJvdXRlcnMgKGJldHRlciBjaGFuY2Ugb2YgcmV1 c2luZyBjb250YWluZXJzKQ0KLSBub3QgcmVzdHJpY3QgdGhlIG51bWJlciBvZiByb3V0ZXJzIHVz ZWQgZm9yIGEgc3BlY2lmaWMgYWN0aW9uIHdoZW4gdW5kZXIgbG9hZCAoZS5nLiBzYXkgdGhhdCBl YWNoIHJvdXRlciBjYW4gaGFuZGxlIGFjdGl2ZSByZXF1ZXN0cyBmb3IgbiBjb250YWluZXJzLCBt ZWFuaW5nIG4gY29ubmVjdGlvbiBwb29scykuDQotIGFsbG93IGRlc2lnbmF0aW5nIGEgQ29udGFp bmVyUm91dGVyIGNhcGFjaXR5IGNvbmZpZyBmb3IgYm90aCBhKSBhY3RpdmF0aW9ucyBvbiB3YXJt IGNvbnRhaW5lcnMgYXMgY29uZmlndXJlZCBwZXIgYWN0aW9uIGFuZCBiKSBvdmVyYWxsIG51bWJl ciBvZiBjb250YWluZXJzIChjb25uZWN0aW9uIHBvb2xzKSBhcyBjb25maWd1cmVkIGF0IENvbnRh aW5lclJvdXRlciAodG8gc21vb3RoIGhvdCBzcG90cyBhY3Jvc3MgQ29udGFpbmVyUm91dGVycyku DQoNCkkgdGhpbmsgdGhlIGJpZ2dlc3QgcHJvYmxlbSB3b3VsZCBiZSBjYXNlcyB3aGVyZSBjb250 YWluZXJzIGhvdmVyIGFyb3VuZCAiYnVzeSIgc3RhdGUgKEMgcmVxdWVzdHMpLCBjYXVzaW5nIHJl cXVlc3RzIHRvIENNLCBhbmQgaW5hY2N1cmF0ZSBkYXRhIGluIENNIChjYXVzaW5nIGV4dHJhIGNv bnRhaW5lcnMgdG8gYmUgY3JlYXRlZCksIGJ1dCBpdCBtYXkgYmUgT0sgZm9yIG1vc3QgbG9hZCBw YXR0ZXJucywgbm90aGluZyB3aWxsIHdvcmsgcGVyZmVjdGx5IGZvciBhbGwuDQoNClJlcG9ydGlu ZyBjYXBhY2l0eSBjYW4gZWl0aGVyIGJlIG1ldHJpY3MgYmFzZWQgb3IgYSBoZWFsdGggcGluZyBz aW1pbGFyIHRvIHdoYXQgZXhpc3RzIHRvZGF5IChidXQgd2l0aCBtb3JlIGRldGFpbHMgb2YgcG9v bCBzdGF0ZXMpLg0KDQpJIHdpbGwgdHJ5IHRvIGRpYWdyYW0gdGhpcywgaXQncyBnZXR0aW5nIGNv bXBsaWNhdGVkLi4uDQoNClRoYW5rcw0KVHlzb24NCg0KDQogICAgPg0KICAgID4gICAgIE1lbW8g dG8gc2VsZjogSSBuZWVkIHRvIGluY29vcGVyYXRlIGFsbCB0aGUgc3R1ZmYgZnJvbSB0aGVzZQ0K ICAgID4gZGlzY3Vzc2lvbnMNCiAgICA+ICAgICBpbnRvIHRoZSBkb2N1bWVudC4NCiAgICA+DQog ICAgPg0KICAgID4gICAgID4NCiAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgVGhlIHdvcmst c3RlYWxpbmcgcXVldWUgdGhvdWdoIGlzIHVzZWQgdG8gcmViYWxhbmNlIHdvcmsgaW4gY2FzZQ0K ICAgID4gb25lDQogICAgPiAgICAgPiBvZiB0aGUNCiAgICA+ICAgICA+ICAgICBSb3V0ZXJzIGdl dCBvdmVybG9hZGVkLg0KICAgID4gICAgID4NCiAgICA+ICAgICA+IEdvdCBpdC4NCiAgICA+ICAg ICA+DQogICAgPiAgICAgPiBUaGFua3MNCiAgICA+ICAgICA+IFR5c29uDQogICAgPiAgICAgPg0K ICAgID4gICAgID4NCiAgICA+ICAgICA+DQogICAgPg0KICAgID4NCiAgICA+DQogICAgDQoNCg==