From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass smtp.mailfrom=; dkim=pass header.d=herbertland.com; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=herbertland.com policy.dmarc=reject Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) by mail.toke.dk (Postfix) with ESMTPS id 1ADA4678950 for ; Sun, 14 Sep 2025 00:58:52 +0200 (CEST) Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-336cdca64e6so21525711fa.0 for ; Sat, 13 Sep 2025 15:58:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland.com; s=google; t=1757804271; x=1758409071; 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=xPqzIWzdwAPRgilp70DuRE3xcSl//vAEGLrgyfsRIjo=; b=HqReBiiQtLC8FDT7tSSAuHpZ+xx02UHASZ672zqYzC8THqMiCV+xYpt0rR17G0r0RL /Hm7H3zc/t8nGVCZLAIBnpCrP88i5sfDg3tLqVy8bZoaT5WKd2RiaRSZpPAM+pnvmdfo ryQY2ZTP4PH97bA47NBy8loXrLIpFnHVVFdVbwzxIexzi1XmTAbnEydRd6AjFfkocVOR SsILn+a0+PLkpIuP/RtJggxZmiULG0spgFm7EHv+anyhw4qd+CPRjenMbTjZ7gajkrcz ujPPSgcVippdGX0ngS/esI7Ta+YvzCAF5hCRQQnxFWhovBcG54+lYSP2a1lCbk8ZGQfp tL+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757804271; x=1758409071; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=xPqzIWzdwAPRgilp70DuRE3xcSl//vAEGLrgyfsRIjo=; b=ABm/dFi2J7dbD0hBg7OCQXAs19GzhVYhgUaRHVMgiW0oNeqLZ82EMZoRkNpIAGWcp1 ySMeq+J0yxXvCm21l1PRmZX4adaWI6gRzrb20F0g2mdD8+tFCrtQCHlLYcidbRwtmybV B+2mv5mtmi6os9m8/F5rfmmYwgg8txZ+/04iLLekx2EWJo3aox6Vujdp3dYrB5Tq9yYq 3s2zkZLqZ1LFVTviAuo4AM/jdKztYx2weK0V8TmnPMT80UkzR5VP8muaC+JrqpOXSidn emF3fasx75DGs1KvAvsPEa4p5EwtkKJToQFjUNbBrsrxv9SDiNIezruI5r8pIEzrQSKE mmEA== X-Forwarded-Encrypted: i=1; AJvYcCU/8ElaB8/aHnieYU7YvDUIbnJGsbrAokvL/8bnmDQMLeFO9rWyv2v8MPyzjkDvVnOHNeo=@lists.bufferbloat.net X-Gm-Message-State: AOJu0Yy77oHTBhyMUkmVGFUKqELIHFQDVHEPWGMWzBSF5g4F8Ogci2ru 9ic6Zh3NpMlAbKscwQ2jhzLussae6iPgNTHE0YSvtbZ1oYgswvpIUhjsnBUMUjv4cdgLklMe/uu N+69SahCwvc7V1d2KBg7CLaNEBUF/QisRYCkOj179HuwctqR1uWA= X-Gm-Gg: ASbGnctQhReYy6+9NXM2feynMdRlq3mXmrEyiKFSJCQoIaQf9w+BExEyKZzMudlmd7M UXyK7B8KtbEocHI3/s2cpt5V4/dDl/KYG04P6LcdJsP+wtcfr7BRy6i6MojUcwKhqzNgN55/bi5 SKxCLWOAYdoRHFDfFuiOVlMm/A73Z1Ygu+uNhpUGksA01CrvqtpWbC4QYBWZEf6zxgeuZi0U4Uv yImMnDih2n/rWOhAWWc4nOrYUZFhfRZi7qiAj9OyQ== X-Google-Smtp-Source: AGHT+IHhGTIwn/soYwNOakPcyUrl42p/dcO823qP176vRqQy64zU7t2At0MTtF6CJHPE8pUFMS8lu2pGTOXteJl6zsM= X-Received: by 2002:a05:651c:3543:10b0:337:fd83:26d9 with SMTP id 38308e7fff4ca-35141b2af9dmr16779761fa.37.1757804270537; Sat, 13 Sep 2025 15:57:50 -0700 (PDT) MIME-Version: 1.0 References: <1757449551.421420786@apps.rackspace.com> <1757795591.523513612@apps.rackspace.com> In-Reply-To: <1757795591.523513612@apps.rackspace.com> From: Tom Herbert X-Gm-Features: Ac12FXyYpB4NbVMppYw-JQ4xm663Y4vnSK7W3nTdP3NoLymxJt_T5pwEztAzWoE Message-ID: To: "David P. Reed" Cc: Frantisek Borsik , Cake List , codel@lists.bufferbloat.net, bloat , Jeremy Austin via Rpm X-MailFrom: tom@herbertland.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: ZFSEZTKYDICLH5AF7C7GQXOV5MSAFKZC X-Message-ID-Hash: ZFSEZTKYDICLH5AF7C7GQXOV5MSAFKZC X-Mailman-Approved-At: Mon, 15 Sep 2025 13:05:01 +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: [Cake] Re: XDP2 is here - from one and only Tom Herbert (almost to the date, 10 years after XDP was released) List-Id: CoDel AQM discussions Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Date: Sat, 13 Sep 2025 22:58:53 X-Original-Date: Sat, 13 Sep 2025 15:57:39 -0700 T24gU2F0LCBTZXAgMTMsIDIwMjUgYXQgMTozM+KAr1BNIERhdmlkIFAuIFJlZWQgPGRwcmVlZEBk ZWVwcGx1bS5jb20+IHdyb3RlOg0KPg0KPiBUb20gLQ0KPg0KPg0KPg0KPiBBbiBhcmNoaXRlY3R1 cmUtaW5kZXBlbmRlbnQgbmV0d29yayBmcmFtZXdvcmsgaW5kZXBlbmRlbnQgb2YgdGhlIE9TDQpr ZXJuZWwncyBwZWN1bGlhcml0aWVzIHNlZW1zIHdpdGhpbiByZWFjaCAodGhvdWdoIGEgZmFpciBi aXQgb2Ygd29yayksIGFuZA0KSSB0aGluayBpdCB3b3VsZCBiZSBhIEdPT0QgVEhJTkcgaW5kZWVk LiBJTUhPIHRoZSBMaW51eCBuZXR3b3JraW5nIHN0YWNrIGluDQp0aGUga2VybmVsIGlzIGEgaG9y cmlmaWMgbWVzcywgYW5kIGl0IGRvZXNuJ3QgaGF2ZSB0byBiZS4NCg0KSGkgRGF2aWQsDQoNCkFn cmVlZC4gQnV0IEkgd2FudCB0byBlbmNvbXBhc3MgcHJvZ3JhbW1hYmxlIEhXIGluIHRoZSBzb2x1 dGlvbiBzY29wZS4NCg0KPg0KPg0KPg0KPiBUaGUgcmVhc29uIGl0IGRvZXNuJ3QgaGF2ZSB0byBi ZSBpcyB0aGF0IHRoZXJlIHNob3VsZCBiZSBubyByZWFzb24gaXQNCmNhbm5vdCBydW4gaW4gcmlu ZzMvdXNlcmxhbmQsIGp1c3QgbGlrZSBEUERLLiBBbmQgaXQgc2hvdWxkIGJlIGJ1aWx0IHVzaW5n DQoicmVhbC10aW1lIiB1c2VybGFuZCBwcm9ncmFtbWluZyB0ZWNobmlxdWVzLiAoYXZvaWRpbmcg dGhlIGdlbmVyaWMgbGludXgNCnNjaGVkdWxlcikuIFRoZSBPTkxZIHJlYXNvbiBmb3IgaW52b2x2 aW5nIHRoZSBzY2hlZHVsZXIgd291bGQgYmUgYmVjYXVzZQ0KdGhlcmUgYXJlbid0IGVub3VnaCBj b3Jlcy4gTGludXggd2FzIGRlc2lnbmVkIHRvIGJlIGEgdW5pcHJvY2Vzc29yIFVuaXgsDQphbmQg dGhhdCBqdXN0IGlzIG5vIGxvbmdlciB0cnVlIGF0IGFsbC4gV2l0aCBoeXBlcnRocmVhZGluZywg dG9vLCBvbmUgbmVlZA0KbmV2ZXIgYWJhbmRvbiBhIHByb2Nlc3NvcidzIGNvbnRleHQgaW4gdXNl cnNwYWNlIHRvIHJ1biBzb21lICJ1c2VybGFuZCINCmFwcGxpY2F0aW9uLg0KDQpYRFAvZUJQRiBn ZXRzIHVzIG1vc3Qgb2YgdGhlIHdheSB0byB0aGF0LiBJIGxpa2UgdGhlIGlkZWEgdGhhdCBlQlBG IGlzIGENCm1vZGVybiBkYXkgdGFrZSBvbiBtaWNybyBrZXJuZWxzLg0KDQo+DQo+IFRoaXMgd291 bGQgcmlwIGEgaHVnZSBhbW91bnQgb2Yga2VybmVsIGNvZGUgb3V0IG9mIHRoZSBrZXJuZWwuIChh dCBsZWFzdA0KNTAlLCBhbmQgcHJvYmFibHkgbW9yZSkuIFRIZSBzZWN1cml0eSBpc3N1ZXMgb2Yg YWxsIHRob3NlIDNyZCBwYXJ0eSBuZXR3b3JrDQpkcml2ZXJzIHdvdWxkIGdvIGF3YXkuDQoNClRo YXQncyBleGFjdGx5IHRoZSBkaXJlY3Rpb24gSSBiZWxpZXZlIHRoZSBrZXJuZWwgc2hvdWxkIGdv LiBSaXAgb3V0IGtlcm5lbA0KY29kZSBhbmQgcmVwbGFjZSBpdCB3aXRoIGVCUEYuIFRoZSByZXN1 bHQgaXMgYSBtYWxsZWFibGUga2VybmVsIGFuZCBwaWVjZXMNCm9mIGl0IGJlY29tZSBzdWItcHJv Z3JhbXMgdGhhdCBjYW4gYmUgaW5kZXBlbmRlbnRseSBydW4gaW4gdXNlcnNwYWNlIG9yIGluDQpw cm9ncmFtbWFibGUgaGFyZHdhcmUuIFRoYXQncyBhbHNvIHRoZSBzZWd1ZSB0byBmaW5hbGx5IHNv bHZpbmcgdGhlIGtlcm5lbA0Kb2ZmbG9hZHMgbWVzcyB0aGF0IHdlJ3ZlIGhhZCBmb3IgdHdlbnR5 IChleGNlcHQgZm9yIGEgY291cGxlIG9mIGV4Y2VwdGlvbnMsDQphbGwgdGhlIGVmZm9ydHMgZm9y IGtlcm5lbCBvZmZsb2FkIGhhdmUgYmVlbiBmbG9wcykNCg0KPg0KPiBBbmQgdGhlIHBlcmZvcm1h bmNlIHdvdWxkIGJlIG11Y2ggaGlnaGVyIGZvciBuZXR3b3JraW5nLiAgKHJ1bm5pbmcgaW4NCnJp bmcgMywgZXNwZWNpYWxseSBpZiB5b3UgZG9uJ3QgZG8gc3lzdGVtIGNhbGxzLCBpcyBubyBwZXJm b3JtYW5jZSBwZW5hbHR5LA0KYW5kIGludGVycHJvY2Vzc29yIGNvbW11bmljYXRpb25zIHVzaW5n IHNoYXJlZCBtZW1vcnkgaXMgbXVjaCBsb3dlciBsYXRlbmN5DQp0aGFuIExpbnV4IElQQyBvciBt dXRleGVzKS4NCg0KWWVzLCBwZXJmb3JtYW5jZSBpbXByb3ZlcyB3aGVuIGNvZGUgbGl2ZXMgZGly ZWN0bHkgb24gdG9wIG9mIHRoZSBxdWV1ZS4NCkl0J3MgZXZlbiBoaWdoZXIgcGVyZm9ybWFuY2Ug cnVubmluZyBpbiBIVy4NCj4NCj4NCj4NCj4gSSBsaWtlIHRoZSBpZGVhIG9mIGEgY29tcGlsYXRp b24gYmFzZWQgbmV0d29yayBzdGFjaywgYXQgYSBzbGlnaHRseQ0KaGlnaGVyIGxldmVsIHRoYW4g Qy4gZUJQRiBpcyBOT1Qgd2hhdCBJIGhhdmUgaW4gbWluZCAtIGl0J3MgYW4gaW50ZXJwcmV0ZXIN CndpdGggaGlnaCBvdmVyaGVhZC4gVGhlIGxhbmd1YWdlIHNob3VsZCBzdXBwb3J0IGhpZ2gtcGVy Zm9ybWFuY2UNCmNvLXJvdXRpbmluZyAtIHNoYXJlZCBtZW1vcnksIGlkZWFsbHkuIEkgZG9uJ3Qg dGhpbmcgR0MgaXMgYSBnb29kIHRoaW5nLg0KUnVzdCBtaWdodCBiZSBhIGdvb2Qgc3RhcnRpbmcg cG9pbnQgYmVjYXVzZSBpdHMgbWVtb3J5IG1hbmFnZW1lbnQgaXMgc2FmZS4NCg0KSU1PLCB3ZSBz aG91bGQgbGV0IHRoZSB1c2VyIHBpY2sgdGhlIGxhbmd1YWdlIHRoZXkgd2FudCB0byB1c2UuIEl0 J3MNCmZlYXNpYmxlIGFzIGxvbmcgYXMgdGhlIHByb2dyYW1taW5nIG1vZGVsIGlzIHN1cHBvcnRl ZC4NCg0KPiBUbyBtZSwgc29tZSBvZiB3aGF0IHRoZSBiYXNlIG9mIERQREsgaXMgbGlrZSBpcyBn b29kIHN0dWZmLiBIb3dldmVyLCBpdA0KaXNuJ3QgYXJjaGl0ZWN0dXJhbGx5IG5ldXRyYWwuDQoN ClllcywgdGhlcmUncyBzb21lIGdvb2QgdGhpbmdzIGluIERQREsgdG8gYWRvcHQuIFNvbWUgbmlj ZSB0aGluZ3MgZnJvbSBQNCBhcw0Kd2VsbC4gWERQMiB1bmlmaWVkIHRoZW0gYW5kIHRha2VzIHRo ZSBiZXN0IGlkZWFzIGZyb20gdGhlbS4NCg0KPg0KPiBUbyBtZSwgdGhlIG5ldHdvcmsgc3RhY2sg c2hvdWxkIG5vdCBiZSBlbnRhbmdsZWQgd2l0aCBpbnRlcnJ1cHQgaGFuZGxpbmcNCmF0IGFsbC4g InBvbGxpbmciIGlzIGZhciBtb3JlIHBlcmZvcm1hbnQgdW5kZXIgbG9hZC4gVGhlIG9ubHkgdXNl IGZvcg0KaW50ZXJydXB0cyBpcyB3aGVuIHRoZSBuZXR3b3JrIHN0YWNrIGlzIGNvbXBsZXRlbHkg aWRsZS4gVGhhdCB3b3VsZCBiZSwgaW4NCnVzZXJsYW5kLCBhICJ3YWl0IGZvciBpbnRlcnJ1cHQi IGNhbGwgKG5vdCBhIHBvbGwpLiBJZGVhbGx5LCBvbiByZWNlbnQNCkludGVsIG1hY2hpbmVzLCBh IHVzZXJzcGFjZSB2ZXJzaW9uIG9mIE1PTklUT1IvTVdBSVQpLg0KPg0KDQpQYXJ0IG9mIHRoZSBy ZWFzb24gd2h5IGhpZ2ggcGVyZm9ybWFuY2UgbmV0d29ya2luZyBpbiB1c2Ugc3BhY2UgaXMgc28g aGFyZC4NCldlIGhhdmUgc3BlbmQgaW5vcmRpbmF0ZSBhbW91bnRzIHdvcnJ5aW5nIGFib3V0IGlz b2xhdGlvbiBvciBBUElzIHRvIEhXLg0KQWxsIHRoYXQgZ29lcyBhd2F5IHdoZW4gd2UgcnVuIHRo ZSBzdGFjayBvbiBiYXJlIG1ldGFsICh3aGF0IHdlIGRvIGluDQpDUFUtaW4tdGhlLWRhdGFwYXRo KS4NCg0KPiBOb3cgSSBrbm93IHRoYXQgTGludXMgYW5kIGhpcyBjcmV3IGFyZSByZWFsbHkgTk9U IGdvbm5hIGxpa2UgdGhpcy4gTGludXMNCmlzIHN0aWxsIHRoaW5raW5nIGxpa2UgTUlOSVgsIGEg dW5pcHJvY2Vzc29yIHRpbWUtc2hhcmluZyBzeXN0ZW0gd2l0aCByaWNoDQpPUyBmdW5jdGlvbnMg aW4gdGhlIGtlcm5lbCBhbmQgZG9pbmcgImZpbGUiIHJlYWRzIGFuZCB3cml0ZXMgdG8gY29tbXVu aWNhdGUNCndpdGggdGhlIGtlcm5lbCBzdGF0ZS4gQnV0IGl0IGlzIGEgbXVjaCBtb3JlIG1vZGVy biB3YXkgdG8gdGhpbmsgb2YNCnJlYWwtdGltZSBJTyBpbiBhIG1vZGVybiBvcGVyYXRpbmcgc3lz dGVtLiAoV2luZG93cyBhbmQgbWFjT1MgYXJlIGFsc28NClVuaXgtbGlrZSwgdW5pcHJvY2Vzc29y IG1vbm9saXRoaWMga2VybmVsIGRlc2lnbnMpLg0KDQpKdXN0IGhpZGUgZXZlcnl0aGluZyBiZWhp bmQgZUJQRiB3aGVuIGluIHRoZSBrZXJuZWwgYW5kIHRoZXknbGwgYmUgaGFwcHkuDQpPdXRzaWRl IG9mIHRoZSBrZXJuZWwgdGhleSB3b24ndCBjYXJlLg0KDQo+DQo+IFNvLCBpZiBYRFAyIGdvdCBh d2F5IGZyb20gdGhlIExpbnV4IGtlcm5lbCwgaXQgY291bGQgYmUgZ3JlYXQuDQoNClllcCwgd2Ug bmVlZCB0byBnbyBiZXlvbmQgdGhlIGtlcm5lbC4NCg0KVG9tDQoNCg0KPiBCVFcsIGlvX3VyaW5n LCBldGMuIGFyZSBoYWxmLW1lYXN1cmVzLiBUaGV5IGFkZHJlc3MgZ2V0dGluZyBhd2F5IGZyb20N CmludGVycnVwdHMgdG93YXJkIHBvbGxpbmcsIGJ1dCB0aGV5IHN0aWxsIG1ha2UgdGhlIG1pc3Rh a2Ugb2Yga2VlcGluZyBodWdlDQpkcml2ZXJzIGluIHRoZSBrZXJuZWwuDQo+DQo+DQo+DQo+DQo+ DQo+IE9uIFR1ZXNkYXksIFNlcHRlbWJlciA5LCAyMDI1IDE3OjM2LCAiVG9tIEhlcmJlcnQiIDx0 b21AaGVyYmVydGxhbmQuY29tPg0Kc2FpZDoNCj4NCj4NCj4NCj4gT24gVHVlLCBTZXAgOSwgMjAy NSwgNTowM+KAr1BNIEZyYW50aXNlayBCb3JzaWsgPGZyYW50aXNlay5ib3JzaWtAZ21haWwuY29t Pg0Kd3JvdGU6DQo+Pg0KPj4gVGhhbmtzIGEgbG90LCBEYXZpZC4NCj4+DQo+PiBJIGhhdmUgYXNr ZWQgVG9tIGlmIGhlIHdhbnRzIHRvIGpvaW4gdXMgYW5kIGhlIHNob3VsZCBiZSBoZXJlIHRvIGNo YXQNCndpdGgNCj4+IHVzIG5vdy4NCj4+DQo+PiBBbGwgdGhlIGJlc3QsDQo+Pg0KPj4gRnJhbmsN Cj4+DQo+PiBGcmFudGlzZWsgKEZyYW5rKSBCb3JzaWsNCj4+DQo+Pg0KPj4gKkluIGxvdmluZyBt ZW1vcnkgb2YgRGF2ZSBUw6RodDogKjE5NjUtMjAyNQ0KPj4NCj4+IGh0dHBzOi8vbGlicmVxb3Mu aW8vMjAyNS8wNC8wMS9pbi1sb3ZpbmctbWVtb3J5LW9mLWRhdmUvDQo+Pg0KPj4NCj4+IGh0dHBz Oi8vd3d3LmxpbmtlZGluLmNvbS9pbi9mcmFudGlzZWtib3JzaWsNCj4+DQo+PiBTaWduYWwsIFRl bGVncmFtLCBXaGF0c0FwcDogKzQyMTkxOTQxNjcxNA0KPj4NCj4+IGlNZXNzYWdlLCBtb2JpbGU6 ICs0MjA3NzUyMzA4ODUNCj4+DQo+PiBTa3lwZTogY2FzaW9hNTMwMmNhDQo+Pg0KPj4gZnJhbnRp c2VrLmJvcnNpa0BnbWFpbC5jb20NCj4+DQo+Pg0KPj4gT24gVHVlLCBTZXAgOSwgMjAyNSBhdCAx MDoyNeKAr1BNIERhdmlkIFAuIFJlZWQgPGRwcmVlZEBkZWVwcGx1bS5jb20+DQp3cm90ZToNCj4+ DQo+PiA+IEhpIEZyYW5rIC0NCj4+ID4NCj4+ID4NCj4+ID4NCj4+ID4gSSB0aGluayBpdCBpcyBp bnRlcmVzdGluZyBhcyBhIGNvbmNlcHQuIEEgcHJvamVjdCBJIGFtIGFkdmlzaW5nIGhhcw0KYmVl bg0KPj4gPiB1c2luZyBEUERLIHZlcnkgZWZmZWN0aXZlbHkgdG8gZ2V0IHJpZCBvZiB0aGUgaHVn ZSBwYXRoIGFuZCBsb2NraW5nDQpkZWxheXMNCj4+ID4gaW4gdGhlIGN1cnJlbnQgTGludXggbmV0 d29yayBzdGFjay4gWERQMiBjb3VsZCBiZSBzdXBwb3J0ZWQgaW4gYSByaW5nMw0KPj4gPiAodXNl cikgYWRkcmVzcyBzcGFjZSwgYWNoaWV2aW5nIGEgc2ltaWxhciByZXN1bHQuDQo+DQo+IEhJIERh dmlkLA0KPiBUaGUgaWRlYSBpcyB5b3UgY291bGQgd3JpdGUgdGhlIGNvZGUgaW4gWERQMiBhbmQg aXQgd291bGQgYmUgY29tcGlsZWQgdG8NCkRQREsgb3IgZUJQRiBhbmQgdGhlIGNvbXBpbGVyIHdv dWxkIGhhbmRsZSB0aGUgb3B0aW1pemF0aW9ucy4NCj4NCj4+DQo+PiA+DQo+PiA+DQo+PiA+DQo+ PiA+IEJ1dCBJIGRvbid0IHRoaW5rIFhEUDIgaXMgZ29pbmcgdGhhdCBkaXJlY3Rpb24gLSBzbyBp dCBtYXkgYmUgc3R1Y2tpbnRvDQo+PiA+IHRoZSBtZXNzIG9mIGtlcm5lbCBzcGFjZSBuZXR3b3Jr aW5nLiBBZGRpbmcgZUJQRiBvbmx5IGhhcyBtYWRlIHRoaXMNCm1vcmUgb2YNCj4+ID4gYSBtZXNz LCBieSB0aGUgd2F5IChhbmQgYWRkaW5nIGEgbmV3ICJjb21waWxlciIgdGhhdCBuZWVkcyB0byBi ZQ0KdmVyaXJpZWQNCj4+ID4gYXMgc2FmZSBmb3IgdGhlIGtlcm5lbCkuDQo+DQo+IFRoaW5rIG9m IFhEUDIgYXMgdGhlIGdlbmVyYWxpemF0aW9uIG9mIFhEUCB0byBnbyBiZXlvbmQganVzdCB0aGUg a2VybmVsLg0KVGhlIGlkZWEgaXMgdGhhdCB0aGUgdXNlciB3cml0ZXMgdGhlaXIgZGF0YXBhdGgg Y29kZSBvbmNlIGFuZCB0aGV5IGNvbXBpbGUNCml0IHRvIHJ1biBpbiB3aGF0ZXZlciB0YXJnZXRz IHRoZXkgaGF2ZS0tIERQREssIFA0LCBvdGhlciBwcm9ncmFtbWFibGUNCmhhcmR3YXJlLCBhbmQg eWVzIFhEUC9lQlBGLiBJdCdzIHJlYWxseSBub3QgbGltaXRlZCB0byBrZXJuZWwgbmV0d29ya2lu Zy4NCj4gQXMgZm9yIHRoZSBuYW1lIFhEUDIsIHdoZW4gd2UgY3JlYXRlZCBYRFAsIGVYcHJlc3Mg RGF0YVBhdGgsIG15IHZpc2lvbg0Kd2FzIHRoYXQgaXQgd291bGQgYmUgaW1wbGVtZW50YXRpb24g YWdub3N0aWMuIGVCUEYgd2FzIHRoZSBmaXJzdA0KaW5zdGFudGlhdGlvbiBmb3IgcHJhY3RpY2Fs aXR5LCBidXQgbm93IHRlbiB5ZWFycyBsYXRlciBJIHRoaW5rIHdlIGNhbg0KcmVhbGl6ZSB0aGUg aW5pdGlhbCB2aXNpb24uDQo+IFRvbQ0KPj4NCj4+ID4NCj4+ID4gSSB3aWxsIGJlIHdhdGNoaW5n IGhvdyB0aGlzIGV2b2x2ZXMuDQo+PiA+DQo+PiA+DQo+PiA+DQo+PiA+IERhdmlkDQo+PiA+DQo+ PiA+DQo+PiA+DQo+PiA+IE9uIFR1ZXNkYXksIFNlcHRlbWJlciA5LCAyMDI1IDA2OjMyLCAiRnJh bnRpc2VrIEJvcnNpayIgPA0KPj4gPiBmcmFudGlzZWsuYm9yc2lrQGdtYWlsLmNvbT4gc2FpZDoN Cj4+ID4NCj4+ID4gPiBIZWxsbyB0byBhbGwsDQo+PiA+ID4NCj4+ID4gPiBMb29rcyBpbnRlcmVz dGluZzoNCj4+ID4gPg0KPj4gPg0KaHR0cHM6Ly9tZWRpdW0uY29tL0B0b21fODQ5MTIveGRwMi10 aGlzLWNoYW5nZXMtZXZlcnl0aGluZy1hdC1sZWFzdC1mb3ItYWktbWwtaW5mcmFzdHJ1Y3R1cmUt ODUwYzFiYTgyNzcxDQo+PiA+ID4NCj4+ID4gPg0KPj4gPiA+IEFsbCB0aGUgYmVzdCwNCj4+ID4g Pg0KPj4gPiA+IEZyYW5rDQo+PiA+ID4NCj4+ID4gPiBGcmFudGlzZWsgKEZyYW5rKSBCb3JzaWsN Cj4+ID4gPg0KPj4gPiA+DQo+PiA+ID4gKkluIGxvdmluZyBtZW1vcnkgb2YgRGF2ZSBUw6RodDog KjE5NjUtMjAyNQ0KPj4gPiA+DQo+PiA+ID4gaHR0cHM6Ly9saWJyZXFvcy5pby8yMDI1LzA0LzAx L2luLWxvdmluZy1tZW1vcnktb2YtZGF2ZS8NCj4+ID4gPg0KPj4gPiA+DQo+PiA+ID4gaHR0cHM6 Ly93d3cubGlua2VkaW4uY29tL2luL2ZyYW50aXNla2JvcnNpaw0KPj4gPiA+DQo+PiA+ID4gU2ln bmFsLCBUZWxlZ3JhbSwgV2hhdHNBcHA6ICs0MjE5MTk0MTY3MTQNCj4+ID4gPg0KPj4gPiA+IGlN ZXNzYWdlLCBtb2JpbGU6ICs0MjA3NzUyMzA4ODUNCj4+ID4gPg0KPj4gPiA+IFNreXBlOiBjYXNp b2E1MzAyY2ENCj4+ID4gPg0KPj4gPiA+IGZyYW50aXNlay5ib3JzaWtAZ21haWwuY29tDQo+PiA+ ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+ID4g PiBDYWtlIG1haWxpbmcgbGlzdCAtLSBjYWtlQGxpc3RzLmJ1ZmZlcmJsb2F0Lm5ldA0KPj4gPiA+ IFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gY2FrZS1sZWF2ZUBsaXN0cy5idWZmZXJi bG9hdC5uZXQNCj4+ID4gPg0KPj4gPg0KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18NCj4+IENha2UgbWFpbGluZyBsaXN0IC0tIGNha2VAbGlzdHMuYnVm ZmVyYmxvYXQubmV0DQo+PiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGNha2UtbGVh dmVAbGlzdHMuYnVmZmVyYmxvYXQubmV0DQo=