From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass smtp.mailfrom=; dkim=pass header.d=gmail.com; arc=pass; dmarc=pass (Used From Domain Record) header.from=gmail.com policy.dmarc=quarantine Received: from mail-dy1-x132a.google.com (mail-dy1-x132a.google.com [IPv6:2607:f8b0:4864:20::132a]) by mail.toke.dk (Postfix) with ESMTPS id 5095A1146890 for ; Sat, 23 May 2026 04:18:58 +0200 (CEST) Received: by mail-dy1-x132a.google.com with SMTP id 5a478bee46e88-30246cfd41aso1094876eec.1 for ; Fri, 22 May 2026 19:18:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779502735; cv=none; d=google.com; s=arc-20240605; b=FEB65BQQW+ASSh6NYHecHPXrDOThMGnCopkRgqYzjTXa6UZ0s+XI4KRDW09CyusN11 1+9Rv1iXG8hVOJnb9UlRfjO3BeOc0MB7SnEorhhbDw+rTq9phq7RToO5H2gy0jDg1qa/ z4VL+4LwBqGvhbpmamlugZYTcWhy/wk6a/YTgnFy4tyxtWf20r0PlDf1+dNLhkGsOBPg zfClhJYBKjx3H9Z5gijPlm5GuMqEbpnlQoVM3s4zrtl6ux50rI8lFqO7+yW+DuDVSlv3 a29yjIvX0PM63sBZSgowSqno2VQjRIDHKtKUtXJCNC60HORKIV5phO5YaBcL41VyShQz 1bPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=SG/PQtcQPtmafRMby6IyICe0QXec1LymFJIxWAciM5A=; fh=+NPYwsz//PZ8DGKptKqrDaepcDD9ItIhRujBfxTIuKQ=; b=Ny+kAKBkBC1+xvvkNMVvi/a9a++q+nxa1JZf3DKB9/+FMl+tUXYaFjt4xkroTW1DQc 96lkP7nw+szVmLLdiAJ2U+2RQCgEsvasB+nqtzt5pWcwpG9oFq7ozdhy9tnntbx59k2I vyVuHR6rPbUe0UuPuGl3+SXYO86U2t0ugY33+xeOjpH4g3jKFtX7sn9KL8Zprp0xQB2/ +v3o0htspF40v5tYudhjEuAuTbhzbNcZRlYEyjc3Ke55MuINmmfmRphEt/h1v7YG9ovK hWBVFkT9ot+wYtZF0AhZTuy0BhPKN2CMsk2fnvDWz5Vt1Jrz1MajeB98Ec5K6xgsrxAV GC6w==; darn=lists.bufferbloat.net ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779502735; x=1780107535; darn=lists.bufferbloat.net; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=SG/PQtcQPtmafRMby6IyICe0QXec1LymFJIxWAciM5A=; b=EtLGJ1F/fAfT2HCReURwx9IgQxCs6FlWnhPYfLN+OlC1xed/KmE+157ybiJKi0ZVbs JvbL1ASWlDJvmle4tmk7efO7ybtkEU4d08w4Ox7CjG1C7MlepnCDffxSdvd5y8OMILz8 4b2LzoFJKvbGRJPiuUKnrbxEPrGijdxQZXCn3bYxrBjDPtnQHyYm9SUeA5BzdyQwG/j9 pGtE/jWc5vrEJZOUIHt8J07wiPajCQ1J4t5aOJobni5IQlmqyt8NRVpJfQP8TY+HrOAN IZB1b8ucnDNYvVW5SgEz+6hX2X+s6/rk845HkLCe+qwsXQD8/HRpERlRgG2Y7hoGTQfL EZLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779502735; x=1780107535; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=SG/PQtcQPtmafRMby6IyICe0QXec1LymFJIxWAciM5A=; b=K07JZoIVdmFD4q+Z6Bb5IHMfPmWy+jNzNtncAoaIC5m7E+DMmSY6iZJhjl1BwHmGN8 T6sU7W4P3pMXsng6ju+f2Z8DoBL/yF6Cmg4FBzQGQXpxJFQd3qjNYiISo4I1Oz+oM7fr vxBkpAShb0zMqk+LxEuVBVeyPk+0meqjncdGUfcWMiiAEQIecJnKEgWmBO69IcGcViA/ 5Lg4hj37dM+1X8Robglghnt9a39qkcsp5wRFRuJueHfglmPcYiZk5sVopCBuS4x+PyT3 Q+8P0RM4+jgpxQYz2Mro4HB+vDBPC9lbjTiTzh4dtDSmHIW4M0mhEzvc52byGfJNbdJM ZlFA== X-Forwarded-Encrypted: i=1; AFNElJ9utW+G36Hs6P6rQzGaKfRh04tRPxzMJZmhg7I9zhp/bqjssYPtkY26o5lEJp9RnuA6rnX2Ew==@lists.bufferbloat.net X-Gm-Message-State: AOJu0YxQSLXTFf9POrcZnN8IGlgwWPtBRAQk3fOEHfABcQUlweCVYtXh Qk8JXIESRJZkzwA9fHqYcg1+IUb8CVRo7VsYpFnNMRBSROVVM1IhELVJGVPR96iXw2EG05cZx7C bR8cyxk6rmOTWNyitLRKvk2BXQ8uB+98= X-Gm-Gg: Acq92OHp4j1EmCfOwOmy0Fj0qIZS5lSxG1z+k5LOMCZVIFOQVSTSupieCuWzp+u+f7k HoI4bgBuUstQIDuFRs/6AaxKxHRhPiLZ6FPCjZ0wKEkUZFj+g1VQ2QHdjT+VKA0fb1FxLI8er71 lcRCQzaTob1/nDOe2o4qYN/SfXJ2NN2L9EqebkpnF/Q4jrlp/kL8/aqYdMusVC1RNKPco4uTjDd fnACxNO6/rajHR7uu20k/BJwDc/MQwICy1JtU6rQveq0T6K05JhKrIrZp5A345kYRYnDgKsnO4q LM7qIhej4e8MV9ai2ZJffNqN+jbG7a6vZHLebyGeQl52Ldj8Zsc= X-Received: by 2002:a05:7300:4351:b0:2ce:3aa1:d39b with SMTP id 5a478bee46e88-304491490efmr3501065eec.20.1779502735324; Fri, 22 May 2026 19:18:55 -0700 (PDT) MIME-Version: 1.0 References: <709dac7800ee7ad92aafd4eab1c761d9@umbernetworks.com> <0oq1n88q-36qn-p6s7-699s-p4nr0440p950@ynat.uz> In-Reply-To: From: dan Date: Fri, 22 May 2026 20:18:43 -0600 X-Gm-Features: AVHnY4IRTVdsXfQRJTQqOKxX8Pd9tVIDAOquPZEH-YHbCHu95dVK0OeX9RYiiTs Message-ID: To: Robert McMahon Cc: Frantisek Borsik , bob.mcmahon@umbernetworks.com, David Lang , "Livingood, Jason" , Cake List , Make-Wifi-fast , bloat , Jeremy Austin via Rpm , codel@lists.bufferbloat.net, "Dave.seddon Ca" , William Fisher , Igor Aleinikov , Jim , Jiml , Douglas Fairbairn , Thomas , Tim Odriscoll , Morten , Sebastian Moeller , Mt Denicolo , Mmcmahon01 , Santanu Sinha , Matthew , Koen DS , Shotaro Saito X-MailFrom: dandenson@gmail.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation Message-ID-Hash: RZCEAMFF5L7IRTEE77MKS3PRHQOJGKR7 X-Message-ID-Hash: RZCEAMFF5L7IRTEE77MKS3PRHQOJGKR7 X-Mailman-Approved-At: Sat, 23 May 2026 22:27:58 +0200 Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 3.3.10 X-Mailman-Version: 3.3.10 Precedence: list Subject: [Codel] Re: [Rpm] Re: [Bloat] Re: [Cake] "Fi-Wi is a new forwarding plane for wireless" - Bob McMahon List-Id: CoDel AQM discussions Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gRnJpLCBNYXkgMjIsIDIwMjYgYXQgMTA6MzbigK9BTSBSb2JlcnQgTWNNYWhvbiA8cmptY21h aG9uQHJqbWNtYWhvbi5jb20+DQp3cm90ZToNCg0KPiBIaSBEYW4sDQo+DQo+IFRoYW5rcyBmb3Ig dGhpcyByZXNwb25zZS4gVGhlc2UgYXJlIHRoaW5ncyB0aGUgODAyLjExIGN1c3RvbWVycyBhbmQN Cj4gb3BlcmF0b3JzIGFyZSBiZWluZyB0YXVnaHQgYWxsIG92ZXIgdGhlIHdvcmxkLiBCdXQgYWZ0 ZXIgMTUgeWVhcnMgb2YNCj4gdGVzdGluZyBXaS1GaSBjaGlwcyBhbmQgbWFpbnRhaW5pbmcgaXBl cmYyIGFzIG9wZW4gc291cmNlLCBJIHNlZSB0aGluZ3MgYQ0KPiBiaXQgZGlmZmVyZW50bHkgbm93 Lg0KPg0KPiBJIGZpbmQgdGhlcmUgYXJlIGdlbmVyYWxseSB0d28gdmVyeSBkaWZmZXJlbnQgd2F5 cyBwZW9wbGUgZXZhbHVhdGUgaGlnaA0KPiB0ZWNobm9sb2d5Lg0KPg0KPiBPbmUgaXMgbWFya2V0 aW5nLWRyaXZlbi4gVGhlIGdvYWwgaXMgZmVhdHVyZSBsaXN0cyBhbmQgbnVtYmVycy4gRm9yIFdp LUZpLA0KPiB0aGluZ3MgbGlrZSBwZWFrIFBIWSByYXRlcywgc2lnbmFsIHN0cmVuZ3RoLCBhbmQg c2luZ2xlLWNsaWVudCBiZW5jaG1hcmsNCj4gbnVtYmVycy4gVGhlbiBXaS1GaSA2IHRvIDcgdG8g OC4gV2hhdGV2ZXIgY2xvc2VzIHRoZSBzYWxlIGJlY29tZXMgdGhlIGZvY3VzLg0KPg0KPiBUaGUg b3RoZXIgaXMgZW5naW5lZXJpbmctZHJpdmVuLiBUaGUgZ29hbCBoZXJlIGlzIHRvIG1lYXN1cmUg d2hhdCBhY3R1YWxseQ0KPiBnYXRlcyBwZXJmb3JtYW5jZSBpbiByZWFsLXdvcmxkIGVudmlyb25t ZW50cy4gUmVhbC13b3JsZCBjb25kaXRpb25zIG1hdHRlciwNCj4gYW5kIHdlbGwtZGVzaWduZWQg bGFiIHRlc3RzIHJhcmVseSBjYXB0dXJlIHRoZW0uDQo+DQo+IEJ1dCB0aGlzIHJhaXNlcyB0aGUg b2J2aW91cyBxdWVzdGlvbjogd2hhdCBkZWZpbmVzIHBlcmZvcm1hbmNlPyBBIGNhcGFjaXR5DQo+ IG51bWJlciBvbiBhIHJldGFpbCBib3g/IFRoZSBlbmQtdXNlciBleHBlcmllbmNlPyBXaGF0IGRl ZmluZXMgdGhhdD8gSSdkDQo+IGFyZ3VlIGxhdGVuY3kgdW5kZXIgZGV2aWNlIGNvdW50IGFuZCBs b2FkIGlzIGEgbWFqb3IgdGhpbmcgdG8gY29uc2lkZXIuDQo+DQo+IE9uY2UgcGVyZm9ybWFuY2Ug bWFwcyBkaXJlY3RseSB0byB1c2VyIGV4cGVyaWVuY2UsIHRoZSBnYXRpbmcgdmFyaWFibGUgaXMN Cj4gbm90IFJTU0ksIFNOUiwgb3IgUEhZIHJhdGUuIEl0IGlzIE1BQyBiZWhhdmlvcjogVFhPUHMs IHJldHJpZXMsIGNvbnRlbnRpb24sDQo+IHF1ZXVlaW5nLCBhZ2dyZWdhdGlvbiwgYWlydGltZSwg YW5kIEVEQ0EgZHluYW1pY3MgdGhhdCBkZXRlcm1pbmUgd2hvDQo+IGFjdHVhbGx5IGdldHMgdHJh bnNtaXNzaW9uIG9wcG9ydHVuaXRpZXMgYW5kIHdoZW4uDQo+DQo+IFRoaXMgcmV2ZWFscyBhIG1h am9yIG1lYXN1cmVtZW50IGdhcC4gVGhlIGNvbW1vbiB0b29scyBtb3N0bHkgZXhwb3NlDQo+IFBI WS1sYXllciBvYnNlcnZhYmxlcyBzdWNoIGFzIGNoYW5uZWwgdXRpbGl6YXRpb24sIG5vaXNlLCBN Q1MsIGFuZCBtYXliZQ0KPiByZXRyaWVzIGluIGNvYXJzZSBmb3JtLiBUaGV5IGdlbmVyYWxseSBk byBub3QgZXhwb3NlIHRoZSBNQUMgdGVsZW1ldHJ5DQo+IG5lZWRlZCB0byB1bmRlcnN0YW5kIGhv dyB0aGUgc3lzdGVtIGlzIGFjdHVhbGx5IHNwZW5kaW5nIGl0cyBmaW5pdGUgVFhPUA0KPiBidWRn ZXQsIHdoeSBhaXJ0aW1lIHdhcyBjb25zdW1lZCwgb3Igd2h5IGJlaGF2aW9yIGNoYW5nZWQgdW5k ZXIgbG9hZC4NCj4NCj4gVGhlIGFjaGlldmFibGUgVFhPUCBidWRnZXQgaXMgZmluaXRlLCAxMCww MDAgVFhPUC9zZWMgKGxlc3NlciBwZXINCj4gcGF5bG9hZHMpIFBlcmZvcm1hbmNlIGlzIGdhdGVk IGJ5IGhvdyB0aG9zZSBUWE9QcyBhcmUgYWxsb2NhdGVkLCBkZWxheWVkLA0KPiBjb2xsaWRlZCwg cmV0cmllZCwgYWdncmVnYXRlZCwgYW5kIGNvbnN1bWVkIGFjcm9zcyBjb21wZXRpbmcgc3RhdGlv bnMuIEENCj4gVFhPUCBsb3N0IHRvIGEgcGFja2V0IGVycm9yIGJ1cm5zIHRoZSBBTVBEVSB3aXRo IGl0LiBPbmUgZmFpbGVkIFRYT1AgY2FuDQo+IGRlbGF5IDY0IEV0aGVybmV0IGZyYW1lcy4NCj4N Cj4gRURDQSBpbiBkZXBsb3llZCBzeXN0ZW1zIGlzIG1vc3RseSBzdGF0aWMgcG9saWN5LCBub3Qg YSBnbG9iYWxseSBtYW5hZ2VkDQo+IHJlYWwtdGltZSBjb250cm9sIGxvb3AuIFRoZXJlIGlzIG5v IGJ1aWxkaW5nLXdpZGUgQlNTIG1hbmFnZXIgY29udGludW91c2x5DQo+IGFkYXB0aW5nIEVEQ0Eg cGFyYW1ldGVycyBhY3Jvc3MgQVBzIGFuZCBjbGllbnRzIGJhc2VkIG9uIG1lYXN1cmVkIGFpcnRp bWUNCj4gc3RhdGUsIGNvbnRlbnRpb24gYmVoYXZpb3IsIHJldHJ5IGJ1cm4sIHF1ZXVlaW5nIGR5 bmFtaWNzLCBvciBzZXJ2aWNlLXRpbWUNCj4gdmFyaWFuY2UuIEF1dG9ub21vdXMgQVBzIG1ha2Ug bG9jYWwgZGVjaXNpb25zIGZyb20gcGFydGlhbCBpbmZvcm1hdGlvbi4NCj4NCj4gRm9yIGV4YW1w bGU6IHdoeSBkaWQgYW4gYWdncmVnYXRlIHN0b3AgYmVmb3JlIHRoZSBtYXhpbXVtIHBvc3NpYmxl IHNpemU/DQo+IFF1ZXVlIHN0YXJ2YXRpb24/IFJldHJ5IHByZXNzdXJlPyBBaXJ0aW1lIGV4cGly YXRpb24/IEVEQ0EgY29udGVudGlvbj8NCj4gRmlybXdhcmUgc2NoZWR1bGluZz8gQ29leGlzdGVu Y2U/IERyaXZlciBsYXRlbmN5PyBBbm90aGVyIHN0YXRpb24gd2lubmluZw0KPiB0aGUgVFhPUD8g TW9zdCBzeXN0ZW1zIGRvbid0IGV4cG9zZSBlbm91Z2ggTUFDIHRlbGVtZXRyeSB0byBhbnN3ZXIg Y2xlYW5seS4NCj4NCj4gU28gd2hlbiBJIGhlYXIgdGhlIGFyZ3VtZW50IHRoYXQgbW9kZXJuIFdp LUZpIGhhcyAiYmFzaWNhbGx5IHNvbHZlZCIgdGhpcw0KPiBiZWNhdXNlIE9GRE1BIGV4aXN0cyBv ciBiZWNhdXNlIFdpLUZpIDcgYWRkZWQgYW5vdGhlciBmZWF0dXJlLCBJIGhlYXIgYQ0KPiBmZWF0 dXJlLWxpc3QgYXJndW1lbnQsIG5vdCBhIGVuZ2luZWVyaW5nIGRyaXZlbiBtZWFzdXJlbWVudCBh cmd1bWVudC4NCj4NCj4gT0ZETUEgaXMgYSBQSFktbGF5ZXIgc2NoZWR1bGluZyBpbXByb3ZlbWVu dCB3aXRoaW4gb25lIEJTUy4gVGhlIHRyaWdnZXINCj4gZnJhbWVzIHRoYXQgZHJpdmUgaXQgc3Rp bGwgcmlkZSBvbiBFRENBLCBzbyB0aGUgInNjaGVkdWxlZCIgdXBsaW5rIGlzIGdhdGVkDQo+IGJ5 IHVuc2NoZWR1bGVkIGNvbnRlbnRpb24gdXBzdHJlYW0uIEluIGRlbnNlIG11bHRpLUJTUyBlbnZp cm9ubWVudHMsIHRoYXQNCj4gY29udGVudGlvbiBpcyBleGFjdGx5IHRoZSBwcm9ibGVtLiBJdCBk b2Vzbid0IHByb3ZpZGUgZ2xvYmFsIE1BQyB0ZWxlbWV0cnksDQo+IGRldGVybWluaXN0aWMgc2Vy dmljZSBpbnRlcnZhbHMsIG9yIGJ1aWxkaW5nLXdpZGUgc2NoZWR1bGluZyBhY3Jvc3MNCj4gYXV0 b25vbW91cyBBUHMgYW5kIGNsaWVudHMuIFRob3NlIGFyZSBkaWZmZXJlbnQgcHJvYmxlbXMgYXQg YSBkaWZmZXJlbnQNCj4gbGF5ZXIuDQo+DQo+IFRoYXQncyB0aGUgZ2FwIEZpLVdpIGlzIGJ1aWx0 IHRvIGNsb3NlLiBNZWFzdXJlbWVudCBhbmQgY29udHJvbCBvZiBhY3R1YWwNCj4gYmVoYXZpb3Ig YWNyb3NzIGEgY292ZXJhZ2UgYXJlYSBhcyBhIHVuaWZpZWQgc2NoZWR1bGluZyBhbmQgdGltaW5n IGRvbWFpbiwNCj4gbm90IGEgZmVkZXJhdGlvbiBvZiBhdXRvbm9tb3VzIEFQcyBlYWNoIGd1ZXNz aW5nIGZyb20gcGFydGlhbCBpbmZvcm1hdGlvbi4NCj4NCj4gVGhpcyBpcyBhbHNvIHdoeSBMNFMg aXMgY3JpdGljYWwuIEl0J3Mgbm90IGp1c3QgZm9yIHRyYW5zcG9ydC4gSXQncyBmb3INCj4gd2ly ZWxlc3MgdG9vLiBBbmQgd2lyZWxlc3MgaXMgbm93IGRyaXZpbmcgdXNlciBleHBlcmllbmNlLg0K Pg0KPiBDU01BL0NEIGdvdCByaWQgb2YgY29sbGlzaW9ucyBieSBiZWluZyByZXBsYWNlZCwgbm90 IGltcHJvdmVkLiBTd2l0Y2hlZA0KPiBFdGhlcm5ldCBlbGltaW5hdGVkIHRoZSBzaGFyZWQgbWVk aXVtLiBDU01BL0NBIGlzIGluIHRoZSBzYW1lIHBsYWNlIG5vdy4NCj4gSGlkZGVuIG5vZGVzLCBy ZXRyeSBwcmVzc3VyZSwgYW5kIEVEQ0EgY29udGVudGlvbiB3b24ndCBiZSBmaXhlZCBieSBhbm90 aGVyDQo+IGdlbmVyYXRpb24gb2YgY29udGVudGlvbiBydWxlcy4gVGhleSdyZSBzb2x2ZWQgYXJj aGl0ZWN0dXJhbGx5LiBUaGF0J3Mgd2hhdA0KPiBGaS1XaSBkb2VzLg0KPg0KPiBCb2INCj4NCj4N Cj4NCj4gT24gRnJpLCBNYXkgMjIsIDIwMjYgYXQgNDoxMOKAr0FNIGRhbiB2aWEgUnBtIDxycG1A bGlzdHMuYnVmZmVyYmxvYXQubmV0Pg0KPiB3cm90ZToNCj4NCj4+IE9uIFRodSwgTWF5IDIxLCAy MDI2IGF0IDE6MzbigK9QTSBGcmFudGlzZWsgQm9yc2lrDQo+PiA8ZnJhbnRpc2VrLmJvcnNpa0Bn bWFpbC5jb20+IHdyb3RlOg0KPj4gPg0KPj4gPiBTYXcgdGhpcyBvbmUgZnJvbSBCb2Igb24gTGlu a2VkSW4gLSBtYXliZSB0aGVyZSBpcyBzb21lb25lIGludGVyZXN0ZWQNCj4+IGx1cmtpbmcgaGVy ZS4uLjoNCj4+ID4NCj4+ID4gIlVtYmVyIGlzIGxvb2tpbmcgZm9yIGEgQmF5IEFyZWEgY2FibGUg dGVjaCAoY29udHJhY3QsIHBhcnQtdGltZSB0bw0KPj4gc3RhcnQpIGFzIHdlIHByZXBhcmUgdG8g c2hpcCBvdXIgVUFYLTggY29uY2VudHJhdG9yLg0KPj4gPg0KPj4gPiBFYWNoIGluc3RhbGwgdXNl cyBhIGh5YnJpZCBjYWJsZTogZHVhbCBmaWJlciBmb3IgZGF0YSBwbHVzIGNvcHBlciB0aGF0DQo+ PiBwb3dlcnMgdGhlIHJlbW90ZSByYWRpbyBoZWFkLiBUaGUgam9iIGlzIHRvIGN1dCB0byBsZW5n dGggZnJvbSBhIDEwMDAgZnQNCj4+IHNwb29sLCB0ZXJtaW5hdGUgd2l0aCBhIHBpZ3RhaWwsIGFu ZCB2ZXJpZnkgb3B0aWNhbCBwb3dlciBhbmQgbG93LXZvbHRhZ2UNCj4+IGRlbGl2ZXJ5IGJlZm9y ZSB1bml0cyBnbyBvdXQuDQo+PiA+DQo+PiA+IFRoZSBNZXRhIExldmVsIFVwIHRyYWluaW5nIGlz IGZyZWUuIFVtYmVyIHdpbGwgcHJvdmlkZSB0aGUgc3BsaWNpbmcgYW5kDQo+PiBwb3dlci10ZXN0 aW5nIGVxdWlwbWVudC4gRmlyc3QgdW5pdHMgYW5kIG91ciBwb3dlciBkaXN0cmlidXRpb24gc3lz dGVtDQo+PiBzaG91bGQgYmUgcmVhZHkgYnkgbGF0ZSBzdW1tZXIuIg0KPj4gPg0KPj4gPg0KPj4g aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3Bvc3RzL3JvYmVydC1ib2ItbWNtYWhvbi1iMWE0MmEx X2xldmVsdXAtZmliZXItdGVjaG5pY2lhbi1wYXRod2F5LW1ldGEtZGF0YS1hY3Rpdml0eS03NDYz MjUxOTY5NjMwMDk3NDA4LUFjV0oNCj4+ID8NCj4+ID4NCj4+ID4gQWxsIHRoZSBiZXN0LA0KPj4g Pg0KPj4gPiBGcmFuaw0KPj4gPg0KPj4gPiBGcmFudGlzZWsgKEZyYW5rKSBCb3JzaWsNCj4+ID4N Cj4+ID4NCj4+ID4gSW4gbG92aW5nIG1lbW9yeSBvZiBEYXZlIFTDpGh0OiAxOTY1LTIwMjUNCj4+ ID4NCj4+ID4gaHR0cHM6Ly9saWJyZXFvcy5pby8yMDI1LzA0LzAxL2luLWxvdmluZy1tZW1vcnkt b2YtZGF2ZS8NCj4+ID4NCj4+ID4NCj4+ID4gaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL2Zy YW50aXNla2JvcnNpaw0KPj4gPg0KPj4gPiBTaWduYWwsIFRlbGVncmFtLCBXaGF0c0FwcDogKzQy MTkxOTQxNjcxNA0KPj4gPg0KPj4gPiBpTWVzc2FnZSwgbW9iaWxlOiArNDIwNzc1MjMwODg1DQo+ PiA+DQo+PiA+IFNreXBlOiBjYXNpb2E1MzAyY2ENCj4+ID4NCj4+ID4gZnJhbnRpc2VrLmJvcnNp a0BnbWFpbC5jb20NCj4+ID4NCj4+ID4NCj4+ID4NCj4+ID4gT24gV2VkLCBNYXkgMjAsIDIwMjYg YXQgMTI6NDXigK9BTSA8Ym9iLm1jbWFob25AdW1iZXJuZXR3b3Jrcy5jb20+IHdyb3RlOg0KPj4g Pj4NCj4+ID4+ID4gdGhlIHJlYXNvbiBob21lIHdpZmkgaXMgc28gYmFkIGlzIGJlY2F1c2UgdGhl cmUgaXMgbm8gY29vcmRpbmF0aW9uDQo+PiA+PiA+IGJldHdlZW4gdGhlIHdpZmkgaW4gdGhlIGRp ZmZlZW50IGhvdXNlcy9hcGFydG1lbnRzLiB5b3UgZG9uJ3QgbmVlZCB0bw0KPj4gPj4gPiB0aWUg YWxsIHRob3NlIGRldmljZXMgaW50byBhIHNpbmdsZSBuZXR3b3JrIHRvIHNvbHZlIHRoYXQsIGFu ZCB1bmxlc3MNCj4+ID4+ID4geW91IGRvIHNvbHZlIHRoZSBjb29yZGluYXRpb24gcHJvYmxlbSwg dGhlcmUgaXMgbm8gd2F5IGZvciB5b3UgdG8NCj4+IG1ha2UNCj4+ID4+ID4gdGhlIHJmIGVudmly b25tZW50IGJldHRlci4NCj4+ID4+ID4NCj4+ID4+ID4gY29vcmRpbmF0aW9uIG1heSBvbmx5IGJl IGFuIDgwJSBzb2x1dGlvbiBjb21wYXJlZCB0byB0aGlzLCBidXQgODAlDQo+PiBpcyBhDQo+PiA+ PiA+IGxvdC4NCj4+ID4+ID4NCj4+ID4+DQo+PiA+PiBEYXZpZCwNCj4+ID4+DQo+PiA+PiBFdmVu IGdyYW50aW5nIHRoZSA4MCUgY2xhaW0sIHdoaWNoIEkgZG9uJ3QgdGhpbmsgaG9sZHMgYWNyb3Nz IDEzNE0NCj4+ID4+IG9jY3VwaWVkIGhvbWVzIGluIHRoZSBVUyBvbmNlIHlvdSBtZWFzdXJlIGJy b2FkbHkgZW5vdWdoLCB0aGUgbG9zcw0KPj4gPj4gZnVuY3Rpb25zIHNoaWZ0IGRyYW1hdGljYWxs eSB3aXRoIGRlbnNpdHksIHdvcmtsb2FkLCBhbmQgbWV0cmljLg0KPj4gPj4gVGhyb3VnaHB1dCwg dGFpbCBsYXRlbmN5LCBhbmQgaml0dGVyIHVuZGVyIGxvYWQgZG8gbm90IGRlZ3JhZGUgZm9yIHRo ZQ0KPj4gPj4gc2FtZSByZWFzb25zLCBhbmQgdGhleSBkbyBub3QgcmVkdWNlIHRvIGEgc2luZ2xl IG51bWJlci4NCj4+ID4+DQo+PiA+PiBFdmVuIGluc2lkZSBhIHNpbmdsZSBob21lIHdpdGggb25l IEFQIGFuZCBubyBuZWlnaGJvcnMsIFdpLUZpIGV4aGliaXRzDQo+PiA+PiBwYXRob2xvZ2llcyB1 bnJlbGF0ZWQgdG8gY3Jvc3MtbmV0d29yayBjb29yZGluYXRpb246IGhpZGRlbiBxdWV1ZXMsDQo+ PiA+PiByZXRyeSBzdG9ybXMsIGFnZ3JlZ2F0aW9uIGJ1cnN0cywgRURDQSBiYWNrb2ZmIHZhcmlh bmNlLCByb2FtaW5nDQo+PiA+PiBkZWNpc2lvbnMgbWFkZSB3aXRoIHN0YWxlIGluZm9ybWF0aW9u LCBhbmQgZmlybXdhcmUgYmVoYXZpb3IgdGhlDQo+PiA+PiBvcGVyYXRvciBjYW5ub3Qgb2JzZXJ2 ZSBvciBjb250cm9sLg0KPj4gPj4NCj4+ID4+IEVDTiBtYXJraW5nLCBMNFMsIHBhY2luZywgYW5k IEFRTXMgYWxsIGFzc3VtZSB0aGUgbGF5ZXIgYmVsb3cgdGhlbQ0KPj4gPj4gcHJvdmlkZXMgb2Jz ZXJ2YWJsZSBhbmQgcmVhc29uYWJseSBib3VuZGVkIHNlcnZpY2UgdGltZS4gQ29udmVudGlvbmFs DQo+PiA+PiBBUHMgZG8gbm90IHByb3ZpZGUgdGhhdC4gQ29vcmRpbmF0aW5nIG5laWdoYm9ycyBk b2VzIG5vdCBmaXggaXQuDQo+PiA+Pg0KPj4gPj4gVGhlIGRlZXBlciBwcm9ibGVtIGlzIGFyY2hp dGVjdHVyYWwuIENvbnZlbnRpb25hbCBXaS1GaSBzY2F0dGVycyB0aGUNCj4+ID4+IG9ic2VydmF0 aW9ucy4gTm8gQVAgc2VlcyBlbm91Z2ggc3RhdGUgdG8gbWFrZSBnbG9iYWxseSBjb3JyZWN0DQo+ PiBkZWNpc2lvbnMNCj4+ID4+IGFjcm9zcyBzcGFjZSwgdGltZSwgYW5kIGZyZXF1ZW5jeSwgc28g ZXZlcnkgQVAgdHJlYXRzIG92ZXJsYXAgYXMgbG9zcw0KPj4gPj4gYW5kIHJlYWN0cyB1c2luZyBs b2NhbCwgcGFydGlhbCBpbmZvcm1hdGlvbi4gTmVpZ2hib3IgY29vcmRpbmF0aW9uDQo+PiA+PiBj YW5ub3QgcmVjb3ZlciBpbmZvcm1hdGlvbiB0aGF0IHdhcyBuZXZlciBjb2xsZWN0ZWQsIG5vciBj YW4gaXQgaW1wb3NlDQo+PiA+PiBkZXRlcm1pbmlzdGljIHNlcnZpY2UgaW50ZXJ2YWxzIG9uIGF1 dG9ub21vdXMgODAyLjExIE1BQyBzdGF0ZSBtYWNoaW5lcw0KPj4gPj4gcnVubmluZyBpbiBvcGFx dWUgdmVuZG9yIGZpcm13YXJlLg0KPj4gPj4NCj4+ID4+IEZpLVdpIGludmVydHMgdGhhdCBhcmNo aXRlY3R1cmUuIFRoZSA4MDIuMTEgTUFDIG1vdmVzIHRvIHRoZQ0KPj4gPj4gY29uY2VudHJhdG9y LCB3aGVyZSB0aGUgb2JzZXJ2YXRpb25zIGFyZSBjby1sb2NhdGVkIGFuZCBzY2hlZHVsaW5nDQo+ PiA+PiBkZWNpc2lvbnMgYXJlIG1hZGUgaW4gc29mdHdhcmUgdGhlIG9wZXJhdG9yIG9yIGJ1aWxk aW5nIG93bmVyIGNvbnRyb2xzLg0KPj4gPj4gVGhlIHJhZGlvcyBoYW5kbGUgUEhZL1JGIGV4ZWN1 dGlvbi4gT25lIFJSSCBvciB0d2VudHksIHRoZQ0KPj4gYXJjaGl0ZWN0dXJhbA0KPj4gPj4gcHJv cGVydHkgaXMgdGhlIHNhbWU6IGFpcnRpbWUgc2NoZWR1bGluZywgdHJhbnNwb3J0IGZlZWRiYWNr LCBhbmQNCj4+ID4+IG9ic2VydmFiaWxpdHkgZXhpc3QgaW4gb25lIHBsYWNlLg0KPj4gPj4NCj4+ ID4+IEkgcHV0IHRvZ2V0aGVyIGEgc21hbGwgYW5pbWF0aW9uIHNob3dpbmcgaG93IGNvbnRlbnRp b24gcHJvYmFiaWxpdHkNCj4+ID4+IHJpc2VzIHJhcGlkbHkgZXZlbiB3aXRoIHJlbGF0aXZlbHkg c21hbGwgY29udGVudGlvbiB3aW5kb3dzIGFuZA0KPj4gbW9kZXJhdGUNCj4+ID4+IGFjdGl2ZSBz dGF0aW9uIGNvdW50cy4gSXQgaGVscHMgdmlzdWFsaXplIHdoeSBzeXN0ZW1zIG9mdGVuIGJlY29t ZQ0KPj4gPj4gTUFDLWxpbWl0ZWQgYmVmb3JlIFBIWS1saW1pdGVkOg0KPj4gPj4NCj4+ID4+IGh0 dHBzOi8vd3d3LnVtYmVybmV0d29ya3MuY29tL2NzbWEtcHJldmlldy5odG1sDQo+PiA+Pg0KPj4g Pj4gVGhlICJzaW5nbGUgbmV0d29yayIgaXMgdWx0aW1hdGVseSBhIGh1bWFuIG1hbmFnZW1lbnQg YWJzdHJhY3Rpb24uIFJGLA0KPj4gPj4gbGlrZSByYXRzLCBkb2VzIG5vdCByZXNwZWN0IHByb3Bl cnR5IGJvdW5kYXJpZXMuIFRoZSBtZWRpdW0gaXMgc2hhcmVkDQo+PiA+PiB3aGV0aGVyIG9yIG5v dCB0aGUgbWFuYWdlbWVudCBwbGFuZSBwcmV0ZW5kcyBvdGhlcndpc2UuIENvb3JkaW5hdGlvbg0K Pj4gPj4gYmV0d2VlbiBhdXRvbm9tb3VzIG5ldHdvcmtzIHRyaWVzIHRvIHBhcGVyIG92ZXIgYSBw YXJ0aXRpb24gd2UNCj4+IGludmVudGVkLA0KPj4gPj4gYW5kIHRoZSBjZWlsaW5nIGlzIHNldCBi eSB0aGUgcGFydGl0aW9uLiBGaS1XaSBkb2Vzbid0IGVsaW1pbmF0ZSB0aGUNCj4+ID4+IHBhcnRp dGlvbiBnbG9iYWxseS4gSXQgZGlzc29sdmVzIGl0IHdpdGhpbiBhIGNvdmVyYWdlIGFyZWEsIGJ5 DQo+PiByZXBsYWNpbmcNCj4+ID4+IGF1dG9ub21vdXMgQVBzIHdpdGggcmFkaW8gYXJyYXlzIHNl cnZpbmcgb25lIE1BQy4gSW5zaWRlIHRoZSBkb21haW4sDQo+PiA+PiB0aGVyZSBpcyBubyBwYXJ0 aXRpb24gdG8gcGFwZXIgb3Zlci4gRW5naW5lZXJpbmcgdGhhdCBtYXRjaGVzIHBoeXNpY3MNCj4+ IGlzDQo+PiA+PiB0aGUgZ29hbC4NCj4+ID4+DQo+PiA+PiBCb2INCj4+DQo+Pg0KPj4gV2Ugd2Vy ZSBoYXZpbmcgYW4gb2Zmc2hvb3QgY29udmVyc2F0aW9uIGFib3V0IHRoaXMgdGhyZWFkIHNvIEkg dGhvdWdodA0KPj4gSSdkIHBvcCBpbiBhbmQgYWRkIG15ICdib290cyBvbiB0aGUgZ3JvdW5kJyBw ZXJzcGVjdGl2ZS4NCj4+DQo+PiBGaVdpIHNvdW5kcyBncmVhdCB0ZWNobm9sb2d5IHdpc2UsIGhv d2V2ZXIsIFdpRmkgaGFzIGdvdHRlbiB2ZXJ5IGdvb2QNCj4+IGFuZCBtb3N0IG9mIHRoZSBiZW5l Zml0cyB0b3V0ZWQgYnkgRmlXaSBhcmUgYmFzaWNhbGx5IGFsc28gaW4NCj4+IHVsdHJhLW1vZGVy biB3aWZpLg0KPj4NCj4+IE9GRE1BIGlzIG5vdyBzdGFuZGFyZCBpbiBXaUZpNyssIHNvIHRoZSBD U01BIGFyZ3VtZW50IGlzIGZhZGluZyBhdCBhDQo+PiBkZWNlbnQgY2xpcC4NCj4+IERldmljZSBj aHVybiBwdXRzIG1vcmUgYW5kIG1vcmUgT0ZETUEgY2FwYWJsZSBkZXZpY2VzIG9uIG5ldHdvcmtz IGFsbA0KPj4gdGhlIHRpbWUuICBXZSdyZSBzZWVpbmcgY29uc2VydmF0aXZlbHkgMjUlIG9mIGNv bm5lY3RlZCBjbGllbnRzIGhhdmluZw0KPj4gT0ZETUEgY2FwYWJsZSByYWRpb3MsIG5hbWVseSBz bWFydCBwaG9uZXMgYW5kIGxhcHRvcHMuICBTb21lIGRheXMgdGhhdA0KPj4gbnVtYmVyIGlzIG11 Y2ggaGlnaGVyIGFuZCB0aGVyZSdzIGEgcHJhY3RpY2FsICc1IHllYXInIHdpbmRvdyBoZXJlIG9u DQo+PiBvbGQgdGVjaCBmb3IgdGhlc2UgZGV2aWNlcy4gIElvVCBkZXZpY2VzIGFuZCAnYXBwbGlh bmNlcycgbGlrZQ0KPj4gcHJpbnRlcnMgd2lsbCBsYWcgb24gbXVjaCBsb25nZXIuICBFdmVyeSBu ZXcgc21hcnRwaG9uZSBzb2xkIGluIHRoZQ0KPj4gbGFzdCAxLTIgeWVhcnMgYWxyZWFkeSBkb2Vz IGl0LCBhbmQgYmFzaWNhbGx5IGFueSBsYXB0b3Agc29sZCBpbiB0aGUNCj4+IGxhc3QgeWVhciBh bHNvLg0KPj4gU3BsaXR0aW5nIDIuNC81LzYgaW50byAyLjQgbGVnYWN5L0lvVCAnQ1NNQScsIHRo ZW4gNS82IGluIE9GRE1BIHdvcmtzDQo+PiBleGNlcHRpb25hbGx5IHdlbGwsIGFuZCBzb21lIGVu dGVycHJpc2UgQVBzIGhhdmUgMiA1R2h6IHJhZGlvcyBzbyB5b3UNCj4+IGdldCAyLjQvNSBsZWdh Y3kgKyA1LzYgT0ZETUEgb24gZGlmZmVyZW50IGNoYW5uZWxzLg0KPj4gU29tZSBlbnRlcnByaXNl IEFQcyBjYW4gc3luYyB0aW1pbmcgdG8gaW1wcm92ZSByZS11c2UuDQo+PiBBIG51bWJlciBvZiB2 ZW5kb3JzIG9mZmVyIGRpcmVjdGlvbmFsIChuYW1lbHkgZG93bndhcm4gY29uZSkgYW50ZW5uYXMN Cj4+IGZvciBzcG90IGNvdmVyYWdlIGZvciBzY2FsZQ0KPj4gQW5kIGl0J3MgYWxsIG9uIHRvZGF5 J3MgcGh5c2ljYWwgaW5mcmFzdHJ1Y3R1cmUsIDEvMi41LzVHYnBzIHBvcnRzIG9uDQo+PiBlbnRl cnByaXNlIEFQcyBhbmQgc28gb24uDQo+PiBOb3RoaW5nIHN0b3BwaW5nIGEgV2lGaSBBUCBmcm9t IGhhbmRsaW5nIEFRTSwgRUNOLCBldGMuICBDUFVzICphcmUqIGENCj4+IGJvdHRsZW5lY2sgb24g Y2hlYXBlciBBUHMsIGJ1dCBvbiBlbnRlcnByaXNlIGhhcmR3YXJlIHRoZXkgZWl0aGVyIGhhdmUN Cj4+IGEgZmFzdCBlbm91Z2ggQ1BVIG9yIHRoZXkgaGF2ZSBhIGhhcmR3YXJlIG9mZmxvYWQgZm9y IHRoZQ0KPj4gcmFkaW8vZXRoZXJuZXQgYnJpZGdlLiAgQW55IHNob3J0Y29taW5nIGhlcmUgaXMg SU1PIGVudGlyZWx5IGJhc2VkIG9uDQo+PiB0aGUgdmVuZG9yJ3Mgbm90IGJlbGlldmluZyB0aGUg ZmVhdHVyZSBpcyB3b3J0aCBpbXBsZW1lbnRpbmcuDQo+PiBNVU1JTU8gb24gZW50ZXJwcmlzZSBB UHMgKHdpdGggT0ZETUEpIGlzIGZhbnRhc3RpYyBhbmQgdGhhdCByZWFsbHkNCj4+IGhlbHBzIHJl ZHVjZSBjby1pbnRlcmZlcmVuY2UuDQo+Pg0KPj4NCj4+IFRoZSBvbmUgSSBndWVzcyAndW5pcXVl JyBmZWF0dXJlIG9mIHRoZSBGaVdpIHBpdGNoIHRoYXQgaXMgdW5tYXRjaGVkDQo+PiAob3IgdW5t YXRjaGFibGU/KSBpcyBzY2hlZHVsaW5nIHRyYW5zbWlzc2lvbiBvbiB0aGUgUlJIIHRoYXQgdGhl DQo+PiBzeXN0ZW0gY2FsY3VsYXRlcyBpcyBiZXN0IGZvciB0aGUgcmVjZWl2ZXIgYW5kIHRoYXQg Y2xpZW50IGRldmljZSBub3QNCj4+IHJlYWxseSBjYXJpbmcgd2hpY2ggJ0FQJyBpdCBjb21lcyBm cm9tLiAgaWUsIG5vIENsaWVudDpBUCAxOjENCj4+IGFzc29jaWF0aW9uIHRoYXQgcmVsaWVzIG9u IHJvYW1pbmcgZm9yIHNlYW1sZXNzIGNvdmVyYWdlIGJ1dCBpcyBhdCB0aGUNCj4+IGVuZCBvZiB0 aGUgZGF5IHN0aWxsIDE6MS4gIFRvIG1lLCB0aGlzIGlzIHJlYWxseSB0aGUgb25seSBraWxsZXIN Cj4+IGZlYXR1cmUsIGFuZCByZWFsbHkgaXQncyBwcm9iYWJseSBzb21ldGhpbmcgV2lGaSBjYW4g YW5kIHdpbGwNCj4+IGltcGxlbWVudCBpbiB0aGUgZnV0dXJlLiAgSSdtIGluY2x1ZGluZyBjbGll bnQgdHJhbnNtaXNzaW9ucyBhbmQNCj4+IHJlZHVuZGFuY3kgaGFuZGxpbmcgaW4gdGhpcyBwaWVj ZSB0b28sIGtpbGxlciBmZWF0dXJlLCBubyByZWFzb24NCj4+IHN0YW5kYXJkIFdpRmkgY2FuJ3Qg ZG8gdGhpcyBpbiBhIGZ1dHVyZSB2ZXJzaW9uIHRoYXQgd291bGQgcG90ZW50aWFsbHkNCj4+IGxh bmQgYmVmb3JlIEZpV2kgd2FzIGEgcHJhY3RpY2FsIHJlYWxpdHkuDQo+Pg0KPj4gSG93ZXZlciwg bXkgdGhvdWdodCBpcyB0aGF0IGl0IHdpbGwgdGFrZSBmYXIgbGVzcyB0aW1lIGZvciBhbGwgd2lm aQ0KPj4gY2xpZW50IGRldmljZXMgdG8gYmUgdXBncmFkZWQvcmVwbGFjZWQgd2l0aCBPRkRNQSBj YXBhYmxlIHVuaXRzLg0KPj4gRnVuZGFtZW50YWxseSBjaGFuZ2luZyB0aGUgd2F5ICd3aWZpL0Zp V2knIGlzIGRlcGxveWVkIGluIGJ1aWxkaW5ncw0KPj4gd2l0aCBob21lLXJ1biBmaWJlciBpcyBs aWtlbHkgZXh0cmVtZWx5IG5pY2hlLg0KPj4NCj4+IEluIHRoZSBtYXJrZXQsIHRoZSBhZC1ob2Mg ZGV2aWNlIG1vZGVsLCBldmVuIGNvb3JkaW5hdGVkIHdpdGggYQ0KPj4gY29udHJvbGxlciwgaGFz IGJlYXRlbiBvdXQgdGhlIGNlbnRyYWxseSBtYW5hZ2VkIHNvbHV0aW9uIG92ZXIgYW5kDQo+PiBv dmVyLiBGaVdpIGlzIG1haW5mcmFtZS10by10ZXJtaW5hbC90aGluX2NsaWVudCB0byBXaUZpJ3MN Cj4+IEFQL3RoaWNrX2NsaWVudCBtb2RlbC4gIEkgdGhpbmsgdGhhdCBhbmFsb2d5IHdvdWxkIGxp a2VseSBiZSBob3cgdGhlDQo+PiBtYXJrZXQgd291bGQgbG9vayBpZiBGaVdpIHdlcmUgdG8gcHJv Y2VlZCBhcyBzb21lIGRlc2lyZS4NCj4+DQo+PiBJJ2QgYWxzbyBhcmd1ZSB0aGF0IHN0YW5kIGFs b25lIEFQcyBjb29yZGluYXRlZCBieSBhIGNvbnRyb2xsZXIgYXJlIGENCj4+IHNjYWxlLW91dCBt b2RlbC4gIFB1dHRpbmcgY2FrZSBvbiB0aGUgd2lmaSBpbnRlcmZhY2VzICh3aGljaCBpcyBOT1QN Cj4+IGNvbW1vbi4uLi4pIHNjYWxlcyBjYWtlIG91dCB0byB0aGUgQ1BVIG9uIHRob3NlIEFQcyBp bnN0ZWFkIG9mIGxlYW5pbmcNCj4+IG9uIG9uZSBjZW50cmFsIENQVS4gIFRoZSBXaUZpIG1vZGVs IGFsc28gaXMgYSBiaXQgbW9yZSBhdXRvbWF0aWNhbGx5DQo+PiByZWR1bmRhbnQuICBFYWNoIEFQ IGNhbiBkbyAnZXZlcnl0aGluZycgYW5kIHRoZSBvbmx5IHRoaW5nIGF0IHRoZSBjb3JlDQo+PiBp cyBhIHN3aXRjaCwgYW5kIG1vc3QgZW50ZXJwcmlzZSBBUHMgaGF2ZSBkdWFsIHBvcnRzIGFuZCBj YW4gZG8gc29tZQ0KPj4gbWV0aG9kIG9mIGJvbmRpbmcvTUxBR0cvZXRjLiAgVlMgYSBzaW5nbGUg Y29yZSBjb250cm9sbGVyIGFuZCBSUkgsIGENCj4+IGZhaWx1cmUgd291bGQgc2VlbSBhIGJpdCBt b3JlIGNhdGFzdHJvcGhpYy4NCj4+DQo+PiBKdXN0IHRob3VnaHRzIHRob3VnaC4NCj4+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+PiBScG0gbWFpbGlu ZyBsaXN0IC0tIHJwbUBsaXN0cy5idWZmZXJibG9hdC5uZXQNCj4+IFRvIHVuc3Vic2NyaWJlIHNl bmQgYW4gZW1haWwgdG8gcnBtLWxlYXZlQGxpc3RzLmJ1ZmZlcmJsb2F0Lm5ldA0KPg0KPg0KDQpJ IGRvbid0IGhhdmUgYXJndW1lbnRzIG9uIHRoZSB0ZWNobmljYWwgYml0cyBvZiB5b3VyIHJlcGx5 Lg0KDQpJIGRvIGhhdmUgb25lIHBvaW50IG9mIGFyZ3VtZW50IHRob3VnaC4gICBJJ20gc2F5aW5n IE9GRE1BLCBNVU1JTU8sIGV0YyBldGMNCmFuZCBxdW90aW5nIGZlYXR1cmVzLCB0aGF0J3MgdHJ1 ZSwgYnV0IEknbSBhbHNvIGRlcGxveWluZyBlbnRlcnByaXNlIEFQcywNCmhhdmluZyBodW5kcmVk cyBvZiB1c2VycyBvbiBpbmRpdmlkdWFsIEFQcywgYW5kIHB1c2hpbmcgbXVsdGlnaWcgb24gdGhv c2UNCkFQcyB3aGlsZSB1bmRlciBwcmVzc3VyZS4gIEEgZmV3IHdlZWtlbmRzIGJhY2sgYSBjaHVy Y2ggd2Ugc2VydmljZSB0aGF0IGhhcw0KNiBFNyBDYW1wdXMgQVBzIGRvd253YXJkIGZpcmluZyBp biB0aGVpciBldmVudCByb29tIGJ1bXBlZCB1cCBhZ2FpbnN0IDRHYnBzDQpwZWFrcyBmb3IgYSBj b25mZXJlbmNlIHRoZXkgaGFkLCBtb3N0bHkgd2lmaSBidXQgdGhlaXIgbWVkaWEgc2VydmVyIGlz DQp3aXJlZC4gICAgV2Ugcm91dGluZWx5IHB1c2ggPjJHYnBzIG9uIGEgcGFpciBvZiBFNyB1bml0 cyBhdCBhIGxvY2FsIHNwb3J0cw0KYmFyIHdoZXJlIHRoZXkgZG8gc3BvcnRzIGJldHRpbmcgYW5k IHBlb3BsZSBicmluZyBpbiBpcGFkcyBhbmQgdGhlIHN0cmVhbQ0KaG9yc2UgcmFjaW5nIGV0YyB3 aXRob3V0IGFuIGlzc3VlLCBjYXBhY2l0eSBpbiB0aGUgcm9vbSBpcyA2MDAgYnV0DQpwcmFjdGlj YWxseSBpdCdzIGFib3V0IDI1MCBwZW9wbGUgYnV0IGF0IGxlYXN0IDEgZGV2aWNlIHBlciBpZiBu b3QgMi4gIEkNCmhhdmUgYW5vdGhlciBzcG9ydHMgYmFyIHRoYXQgd2Ugc3RyZWFtIHRvIDI2IFRW cyBvbiA0IHViaXF1aXRpIFU3IFBybw0KYWNjZXNzIHBvaW50cywgcnVuIHRoZSBQT1MsIGd1ZXN0 IHdpZmksIGFuZCBhIHNvbm9zIHN5c3RlbSBmbGF3bGVzc2x5Lg0KDQpBbmQgd2UgaGF2ZSBhIDIw MCByb29tIGhvdGVsIHdlIHJldHJvZml0dGVkIHRvIHVuaWZpIGEgZmV3IG1vbnRocyBiYWNrIHRo YXQNCmRvZXNuJ3QgaGF2ZSBjYWJsZSB0diBzZXJ2aWNlcywgdGhleSBoYXZlIHN0cmVhbWluZyBz ZXJ2aWNlcyBvdmVyIHdpZmkuDQphZ2FpbiwgYWJzb2x1dGVseSBzbW9vdGggc2FpbGluZyB3aXRo IGp1c3QgYSBVbmlmaSBVNyBQcm8gYXJyYW5nZWQgdG8gY292ZXINCjYgcm9vbXMgZWFjaC4gIFdB TiBiYW5kd2lkdGggaXMgdGhlIHByaW1hcnkgaXNzdWUgYW5kIHNvIEkgaGF2ZSAyeCAnMUd4MzVN Jw0KRE9DU0lTIHNlcnZpY2VzIGluIGJlY2F1c2UgdGhlIHdpZmkgc3lzdGVtIGNhbiBzYXR1cmF0 ZSBpdC4NCg0KSXQncyBleHRyZW1lbHkgZWFzeSB0byBxdW90ZSBmZWF0dXJlcywgYnV0IEknbSBz ZWVpbmcgdGhlIHJlc3VsdHMgb2YgdGhvc2UNCmZlYXR1cmVzIGxpdmUuICBBbmQgc2luY2UgdWJp cXVpdGkncyBVNy9FNyBsYXVuY2hlZCwgd2UndmUgc3RvcHBlZA0KZGVwbG95aW5nIEFydWJhIGFu ZCBSdWNrdXMgc28gSSdtIGJhc2ljYWxseSBnZXR0aW5nIHRoZXNlIHJlc3VsdHMgb24gdGhlDQps b3dlciBlbmQgb2YgdGhlIFdpRmk3IGVudGVycHJpc2Ugc2NhbGUsIHNvbWUgbWlnaHQgcmVqZWN0 IG1lIGNhbGxpbmcNClViaXF1aXRpIFVuaWZpIGVudGVycHJpc2UgYXQgYWxsLg0KDQpJIHNob3Vs ZCBhbHNvIG1lbnRpb24gdGhhdCBJIGhhdmUgYSBmZXcgdGhvdXNhbmQgRWVybyA2LzcgdW5pdHMg ZGVwbG95ZWQgaW4NCnRoZSB3SVNQIG9wZXJhdGlvbiBhbmQgdGhleSBnZXQgYmV0dGVyIHdpdGgg dGltZSBhcyBwZW9wbGUgdXBncmFkZSB0aGVpcg0KcGhvbmVzIGFuZCBsYXB0b3BzLg0KDQpJJ20g ZGVlcCBpbiBwcmFjdGljYWwgZGVwbG95bWVudCBvdmVyIGEgY291cGxlIG9mIFVTIFN0YXRlcyBh bmQgV2lGaSA+PTYgaXMNCmdldHRpbmcgc28gZ29vZCB0aGF0IGl0J3Mgbm8gbG9uZ2VyIGdlbmVy YXRpbmcgc2VydmljZSBjYWxscy4NCg0KQW5kIGp1c3QgdG8gdHJ5IHRvIGxvb3AgdGhpbmdzIGJh Y2sgdG8gdGhlIGNvcmUgbWFpbGluZyBsaXN0IHRvcGljLCB3ZSBydW4NCk1pa3JvdGlrIENDUjIx MTYgdW5pdHMgYXQgdGhlIGxhcmdlciB2ZW51ZXMgd2l0aCBhIGNha2Ugc2hhcGVyIHBlciBJUA0K KGJ1aWx0IHVzaW5nIHNjcmlwdHMpIGFuZCBJJ20gdmVyeSBleGNpdGVkIHRvIHJlcGxhY2UgdGhl IG9uZSBpbiBvdXINCmxhcmdlc3QgaG90ZWwgd2l0aCBhIGxpYnJlcW9zIGJveCBmcm9tIEZyYW5r J3MgdGVhbS4gIFRoZSBVbmlmaSAnc21hcnQNCnNoYXBlcnMnIGFyZSBqdXN0IG5vdCBhZGVxdWF0 ZSwgbmVlZCBSRUFMIGNha2UuDQoNCkkgYWJzb2x1dGVseSBhZ3JlZSB0aGF0IHRoZXJlIGFyZSBt dWx0aXBsZSBldmFsdWF0aW9uIG1ldGhvZHMuICBJIHRoaW5rDQp0aGF0IHRoaXMgdGhyZWFkIGlz IGZvY3VzZWQgbW9zdGx5IG9uIHRoZSBlbmdpbmVlcmluZyBzaWRlLCBidXQgdGhlIG90aGVyDQpz aWRlIGlzIHRoZSBvbmUgdGhhdCBwYXlzIGZvciB0aGluZ3MuICBXaGF0IGFyZSBteSBkZWxpdmVy YWJsZXM/DQplc3NlbnRpYWxseS4gIE15IGFyZ3VtZW50cyBhcmVuJ3QgdGhhdCBXaUZpIGlzIHN1 cGVyaW9yLCBpdCdzIHRoYXQgV2lGaSBoYXMNCmV2b2x2ZWQgdG8gdGhlIHBvaW50IHRoYXQgbW9z dCBvZiB0aGUgZGVmaWNpdHMgYXJlIHdvcmtlZCBhcm91bmQgbW9yZSB0aGFuDQphZGVxdWF0ZWx5 IHRvIG1lZXQgdGhlIG5lZWRzIG9mIHRoZSBidXllcnMgYW5kIHVzZXJzLiAgQW5kIGlmIHlvdSBh cmUNCmJ1eWluZyBhIHN5c3RlbSB0byBzdXBwb3J0IHlvdXIgY2FtcHVzIG5ldHdvcmsgb3IgZXZl bnQgY2VudGVyIGFuZCBXaUZpDQptZWV0cyBhbGwgdGhlIHBlcmZvcm1hbmNlIG5lZWRzLCB0aGVu IHRoZSBhbHRlcm5hdGl2ZSBtdXN0IGNvbXBldGUgb24NCmNvc3QuICB1cCBmcm9udCBjb3N0IG9y IG1haW50ZW5hbmNlIGNvc3QuICBJJ20gbm90IHN1cmUgRmlXaSBpcyBldmVuDQp0YXJnZXRpbmcg YSBsb3dlciBjb3N0IHRoYW4gV2lGaS4NCg==