Re: Propagating IP/ECN field when L2TP sits between IP as both L2 payload and PSN
Bob Briscoe <[email protected]> Fri, 2 Jun 2017 15:50:40 +0100
| Newsgroups | gmane.ietf.l2tpext |
|---|---|
| Message-ID | <[email protected]> |
Q2FybG9zLAoKT24gMDEvMDYvMTcgMTQ6MjMsIENhcmxvcyBQaWduYXRhcm8gKGNwaWduYXRhKSB3 cm90ZToKPiBIaSwgQm9iLAo+Cj4+IE9uIE1heSAzMSwgMjAxNywgYXQgNjoxMSBQTSwgQm9iIEJy aXNjb2UgPGlldGZAYm9iYnJpc2NvZS5uZXQ+IHdyb3RlOgo+Pgo+PiBDYXJsb3MsCj4+Cj4+IE9u IDMxLzA1LzE3IDE3OjQ0LCBDYXJsb3MgUGlnbmF0YXJvIChjcGlnbmF0YSkgd3JvdGU6Cj4+PiBI aSwgQm9iLAo+Pj4KPj4+IEFkZGluZyBvbiBhIGNvdXBsZSBvZiBiaXRzIG9uIHRvcCBvZiBJZ25h Y2lvJ3MgcmVzcG9uc2UuCj4+Pgo+Pj4gTDJUUHYyLCBSRkMgMjY2MSwgdHJhbnNwb3J0cyBvbmx5 IFBQUCAoYW5kIG11bHRpIHByb3RvY29scyB3aXRoaW4gaXQsIGluY2x1ZGluZyBvZiBjb3Vyc2Ug SVApIGFuZCBydW5zIG92ZXIgVURQLiBJbiBjb250cmFzdCwgTDJUUHYzIHRyYW5zcG9ydHMgZGly ZWN0bHkgYSB2YXJpZXR5IG9mIHByb3RvY29scyAoRXRoZXJuZXQsIEhETEMsIGV0Yy4pIGFuZCBy dW5zIGRpcmVjdGx5IG92ZXIgSVAgcHJvdG9jb2wgMTE1IG9yIG92ZXIgVURQLiBSRkMgMzkzMSBp cyB0aGUgYmFzZSBMMlRQdjMgc3BlY2lmaWNhdGlvbiBidXQgbmVlZHMgYSBwcm90b2NvbCBjb21w YW5pb24gZG9jdW1lbnQuIFNvbWUgb2YgdGhvc2UgcHJvdG9jb2xzIGFyZSBmaW5pc2hlZCwgZS5n LiBSRkMgNDcxOSBidXQgb3RoZXJzIGxpa2UgUFBQIG9yICJyYXciIElQIGFyZSBpbiBJbnRlcm5l dC1EcmFmdHMuCj4+IFl1cCwgZ290IGFsbCB0aGF0LiBUaGFua3MuCj4+Cj4+IEkganVzdCBkaWRu J3QgdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb24gb2YgSWduYWNpbydzIGVtYWlsIHRoYXQgdXBk YXRpbmcgdGhlIHYyIHByb3RvY29sICh0aGF0IHNvbGVseSBzdXBwb3J0cyBQUFApIGNvdWxkIGJl IG1vcmUgY29tcGxleCB0aGFuIHVwZGF0aW5nIHRoZSB2MyBwcm90b2NvbCB0aGF0IEkgdGhvdWdo dCBzdXBwb3J0ZWQgUFBQIGFuZCBtYW55IG1vcmUgcHJvdG9jb2xzLiBJdCBpbXBsaWVkICh0byBt ZSkgdGhhdCBtYXliZSB2MyBkb2Vzbid0IHN1cHBvcnQgUFBQIGluIHNvbWUgd2F5Lgo+IEFkbWl0 dGVkbHksIEkgaGF2ZSBub3QgcmVhZCBpbiBkZXRhaWwgUkZDIDYwNDAgb3IgZHJhZnQtaWV0Zi10 c3Z3Zy1yZmM2MDQwdXBkYXRlLXNoaW0g4oCUIGhvd2V2ZXIsIEkgZG8gaGF2ZSBzb21lIHF1ZXN0 aW9ucyB0byBiZXR0ZXIgdW5kZXJzdGFuZCB0aGUgYXBwbGljYWJpbGl0eS4KWW91IHdpbGwgZmlu ZCB0aGF0IHNlY3Rpb24gNCBvZiBSRkMgNjA0MCBjb250YWlucyBhbGwgdGhlIG5vcm1hdGl2ZSB0 ZXh0IAooNCBwYWdlcykuCj4KPiBkcmFmdC1pZXRmLXRzdndnLXJmYzYwNDB1cGRhdGUtc2hpbSB0 YWxrcyBhYm91dCDigJxJUC1pbi1JUCBUdW5uZWxzIHdpdGggVGlnaHRseSBDb3VwbGVkIFNoaW0g SGVhZGVyc+KAnS4KPgo+IEdSRSBjYW4gYmUgdGhvdWdodCBvZiBhbiBJUC1pbi1JUCB0dW5uZWwg d2l0aCBhIHRpZ2h0bHkgY291cGxlZCBzaGltLCB3aGVuIHRyYW5zcG9ydGluZyBJUCBkaXJlY3Rs eSAoYWx0aG91Z2ggR1JFIGNhbiB0cmFuc3BvcnQgbXVsdGktcHJvdG9jb2xzKS4KPgo+IFthbmQg YSBzbWFsbCBub3RlIHRoYXQgeW91IG1pZ2h0IG5lZWQgYSByZWZlcmVuY2UgdG8gUkZDIDc2NzZd Lgo+Cj4gSG93ZXZlciwgR1JFIGNhbiBjYXJyeSBTb21ldGhpbmctaW4tSVAsIHdpdGgg4oCcc29t ZXRoaW5nIiBwb3RlbnRpYWxseSBjYXJyeWluZyBhbHNvIElQLiBJbiB0aGF0IGNhc2UsIEkgZG8g bm90IGJlbGlldmUgdGhhdOKAmXMgYW4gSVAtaW4tSVAtd2l0aC1zaGltLgpTZWUgZW1haWwgdG8g SWduYWNpbyBqdXN0IG5vdyAod2hpY2ggaW5jbHVkZWQgbXkgcmVzcG9uc2UgdG8gYSBzaW1pbGFy IApwb2ludCBmcm9tIFRvbSBIZXJiZXJ0IG9uIGludC1hcmVhKS4uLgoKSW4gc3VtbWFyeSwgSSBp bnRlbmQgdG8gd2lkZW4gdGhlIHNjb3BlIG9mIApkcmFmdC1pZXRmLXRzdndnLXJmYzYwNDB1cGRh dGUtc2hpbSB0byBpbmNsdWRlIG5vbi1tYW5kYXRvcnkgL2d1aWRhbmNlLyAKZm9yIHdoZW4gdGhl IHNoaW0gZW5jYXBzdWxhdGVzIGEgTDIgcmF0aGVyIHRoYW4gTDMgaGVhZGVyIChlc3NlbnRpYWxs eSwgCmludGVycHJldGluZyB0aGUgZ3VpZGFuY2UgaW4gZHJhZnQtaWV0Zi10c3Z3Zy1lY24tZW5j YXAtZ3VpZGFuY2UgZm9yIHRoZSAKc3BlY2lmaWMgcHJvdG9jb2xzIGluIHRoaXMgZHJhZnQgbGlr ZSBWWExBTiwgR1JFLCBMMlRQKS4KPgo+IEZvciB0aGUgTDJUUHYyIGNhc2UsIEwyVFAgY2Fycmll cyBQUFAuIFBQUCBjYW4gaW4gdHVybiBjYXJyeSBJUCwgYW5kL29yc29tZXRoaW5nIGVsc2UsIGFu ZCB1c3VhbGx5IGEgbWl4dHVyZS4gSXMgdGhpcyByZWFsbHkgYXBwbGljYWJsZSB0byB5b3VyIGRy YWZ0PwpZZXMsIHZlcnkgbXVjaCBzby4KCk9uZSBvZiB0aGUgbWFpbiBtb3RpdmF0aW9ucyBpcyB0 byBiZSBhYmxlIHRvIHN1cHBvcnQgRUNOIGJldHdlZW4gYW4gTE5TIAphbmQgYSBMQUMsIGFzIHVz ZWQgaW4gbWFueSBicm9hZGJhbmQgc2V0dGluZ3MuCgpXZSBoYXZlIGltcGxlbWVudGVkIGEgcHJv dG90eXBlIG9mIHRoZSB1bHRyYS1sb3cgbGF0ZW5jeSBmb3JtIG9mIEVDTiAKKEw0Uy1FQ04pIGZv ciB0aGUgZG93bnN0cmVhbSBxdWV1ZSBvZiBhIEJSQVMuCkZvciBSVFRzIHJhbmdpbmcgZnJvbSA8 NW1zIHRvID4xMDBtcywgZXZlcnkgcGFja2V0IGhhcyB1bHRyYS1sb3cgcXVldWluZyAKZGVsYXkg KGluIHRoZSBodW5kcmVkcyBvZiBtaWNyb3NlY29uZHMsIHdoZXJlYXMgdGhlIGJlc3QgcHJldmlv dXMgCnNvbHV0aW9uIGFkZGVkIDUtMTBtcyBvZiBxdWV1aW5nIGFuZCByZXF1aXJlZCB0aG91c2Fu ZHMgb2YgcGVyLW1pY3JvZmxvdyAKcXVldWVzKS4gRUNOIGFsc28gZ2l2ZXMgemVybyBjb25nZXN0 aW9uIGxvc3MsIG9mIGNvdXJzZS4gV2UgaGF2ZSAKZGVtb25zdHJhdGVkIGludGVyYWN0aXZlIHZp ZGVvIHByb2Nlc3NpbmcgaW4gdGhlIGNsb3VkIGZvciB2aXJ0dWFsIApyZWFsaXR5LCByZW1vdGUg cHJlc2VuY2UsIGZpbmdlci1nZXN0dXJlIHBhbm5pbmcgYW5kIHpvb21pbmcgZXRjLCBhbG9uZyAK d2l0aCBtYW55IG90aGVyIGRlbGF5IHNlbnNpdGl2ZSBhcHBzIC0gYWxsIHJ1bm5pbmcgc2ltdWx0 YW5lb3VzbHkgb3ZlciAKdGhlIHNhbWUgYnJvYWRiYW5kIGxpbmUgKGFsbCBpbiB0aGUgc2FtZSBx dWV1ZSBvbiB0aGUgQlJBUykuIFNlZSB2aWRlbyAKb2YgZGVtbyBoZXJlOgpodHRwczovL3JpdGVw cm9qZWN0LmV1L2RjdHRoLyMxNTExZGlzcGF0Y2h3ZwoKSW4gdGhlIGRvd25zdHJlYW0gcXVldWVz IG9mIHRoZSBCUkFTLCB0aGUgSVAgcGFja2V0cyBoYXZlIGFscmVhZHkgYmVlbiAKZGVjYXBzdWxh dGVkIGZyb20gTDJUUCwgc28gd2hlbiB0aGV5IGFyZSBFQ04tbWFya2VkIHRoZXkgYXJlIG9ubHkg d2l0aGluIAp0aGVpciBQUFAgZW5jYXBzdWxhdGlvbi4gSG93ZXZlciwgdGhlcmUgd2lsbCBiZSBz Y2VuYXJpb3Mgd2hlcmUgdGhlIApvcGVyYXRvciB3aWxsIHdhbnQgdG8gZGVwbG95IEVDTiBvbiBu b2RlcyB3aXRoaW4gdGhlIEwyVFAgdHVubmVsLiBUaGVuIAphbnkgb3V0ZXIgRUNOIG1hcmtpbmdz IHdpbGwgbmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSBJUCBoZWFkZXIgCmluc2lkZSB0aGUg UFBQIHBheWxvYWQuCgoKPgo+IEZvciBMMlRQdjMsIEwyVFAgY2FycmllcyBhIHZhcmlldHkgb2Yg cHJvdG9jb2xzLCBvbmUgb2Ygd2hpY2ggaXMgSVAgZGlyZWN0bHkuIEhvd2V2ZXIsIGFsdGhvdWdo IHRoZXJlIGlzIHJ1bm5pbmcgY29kZSwgdGhlcmXigJlzIG5vIFJGQyBmb3IgaXQgKGh0dHBzOi8v dG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWwydHBleHQtcHdlMy1pcC0wNS4pIFNpbWls YXJseSwgUkZDIDM5MzEgc2VlbXMgb3V0c2lkZSBzY29wZS4KU2VlIGFib3ZlLCByZSBhZGRpbmcg Z3VpZGFuY2UgZm9yIHdpZGVuZWQgc2NvcGUuCgo+Cj4gW2FuZCBhbm90aGVyIHF1ZXN0aW9uICx3 aGF0IGFib3V0IE1QTFMsIHdpdGggUkZDIDUxMjk/XQpEbyB5b3UgbWVhbiwgIklzIEwyVFAgb3Zl ciBhbiBNUExTIFBTTiBvdXRlciBoZWFkZXIgaW4gdGhlIHNjb3BlIG9mIHRoaXMgCmRyYWZ0PyIK SXQgd2Fzbid0IGluaXRpYWxseS4KCkFmdGVyIEkgYWRkIGd1aWRhbmNlIGZvciB3aGF0IHRvIGRv IGlmIHRoZSBpbm5lciBpcyBhIEwyIGhlYWRlciwgSSBjb3VsZCAKYWxzbyBtZW50aW9uIHRoYXQg dGhlcmUgbWlnaHQgYmUgb3RoZXIgUFNOIG91dGVycyB0b28uIEhvd2V2ZXIsIHRoaXMgCmRyYWZ0 IHdhcyBvcmlnaW5hbGx5IGludGVuZGVkIHRvIGNsYXJpZnkgdGhlIHNjb3BlIG9mIFJGQzYwNDAs IHdoaWNoIGlzIApzb2xlbHkgYWJvdXQgSVAtaW4tSVAuIFNvLCB3aGVyZWFzIElQLXNoaW0tTDIt SVAgY2FuIGJlIGxlZ2l0aW1hdGVseSAKaW5jbHVkZWQgaW4gc2NvcGUsIEkgdGhpbmsgTVBMUyBh cyB0aGUgUFNOIGlzIHRvbyBtdWNoIG1pc3Npb24gY3JlZXAuCgo+Cj4+PiBCeSB0aGUgd2F5IHlv dSBjYW4gZmluZCBleGFtcGxlIG9mIGNhcGFiaWxpdGllcyBpbiBzdWJzZWN0aW9ucyBvZiBTZWN0 aW9uIDUuMS4xIG9mIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWwydHBl eHQtbDJ0cC1wcHAtMDgKVGhhbmtzLiBJIGFjdHVhbGx5IGJhc2VkIG15IHRleHQgb24gc2ltaWxh ciBleGFtcGxlcyB0aGF0IEkgZm91bmQgaW4gClJGQzI2NjEgdmlhIHRoZSBJQU5BIHJlZ2lzdHJ5 IG9mIEwyVFAgQVZQcyBhZnRlciBHb29nbGluZyAiTDJUUCAKY2FwYWJpbGl0eSBBVlAiLgoKQSBx dWVzdGlvbjoKRG8geW91IHRoaW5rIEkgc2hvdWxkIGNhbGwgdGhpcyBhbiBMQ0NFIENhcGFiaWxp dHkgQVZQIHRvIGJlIG1vcmUgCmdlbmVyaWMsIHRoZW4gYXNzaWduIDEgYml0IGZvciBhbiBFQ04g Y2FwYWJpbGl0eT8gKEFzIG9wcG9zZWQgdG8gYW4gRUNOIApDYXBhYmlsaXR5IEFWUCB0aGF0IG9u bHkgdXNlcyAxIG9mIDE2IGJpdHMpLgoKSSBkb3VidCBhbm90aGVyIExDQ0UgY2FwYWJpbGl0eSB3 aWxsIGV2ZXIgYmUgYWRkZWQsIHNpbmNlIHRoZXJlIGhhdmUgCmJlZW4gbm9uZSBzbyBmYXIsIGFu ZCBMMlRQIGlzIGFscmVhZHkgbWF0dXJlLiBIb3dldmVyLCB3b3VsZCB5b3UgYWdyZWUgCnRoYXQg dGhlcmUgaXMgbm8gaGFybSBpbiBiZWluZyBnZW5lcmljIGxpa2UgdGhpcz8KCkFub3RoZXIgcXVl c3Rpb24sIEkgdXNlZCA0LW9jdGV0IGFsaWdubWVudCBmb3IgdGhlIEFWUCwgY29zIG90aGVyIApl eGFtcGxlcyBzZWVtZWQgdG8gZG8gdGhhdC4gV2FzIEkgY29ycmVjdD8KCgo+Pj4KPj4+IEkgZG8g bm90IHVuZGVyc3RhbmQgaG93ZXZlciB3aHkgIlVwZGF0ZSIsIG9yIHdoYXQgdGhhdCBpbXBsaWVz IHRvIGEgY29tcGxpYW50IGltcGxlbWVudGF0aW9uLiBNYW55IGZlYXR1cmVzIG9mIEwyVFAgYXJl IHNwZWNpZmllZCBpbiB2YXJpb3VzIFdHcywgbm90ICJVcGRhdGluZyIgdGhlIGJhc2Ugc3BlY3Mu Cj4+IEJ5IG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHdvcmQgZXh0ZW5zaW9uLCBpZiBhIGltcGxl bWVudGF0aW9uIHRoYXQgaXMgY29tcGxpYW50IHdpdGggUkZDMzkzMSBkb2VzIG5vdCBpbXBsZW1l bnQgYW4gZXh0ZW5zaW9uLCBpdCBpcyBzdGlsbCBjb21wbGlhbnQgd2l0aCBSRkMzOTMxLiBJcyB0 aGlzIGhvdyB0aGUgd29yZCAiZXh0ZW5zaW9uIiBpcyB1c2VkIGluIEwyVFAgbGFuZD8KPj4KPiBU aGF04oCZcyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSB1bnF1YWxpZmllZCB3b3JkIOKAnGV4dGVu c2lvbuKAnSBiZXlvbmQgTDJUUCBsYW5kLiBJcyB0aGF0IGRpZmZlcmVudCBhbnl3aGVyZT8KU28s IHRvIGJlIGNsZWFyLCBoZXJlJ3MgZnVydGhlciBxdWVzdGlvbnM6CgpJcyB5b3VyIGFkdmljZSAo YW5kIElnbmFjaW8ncykgdGhhdCBJIHNob3VsZCB3cml0ZSB0aGUgTDJUUC1zcGVjaWZpYyAKdGV4 dCBpbiBteSBkcmFmdCBhcyBhIGV4dGVuc2lvbiB0byBMMlRQLCByYXRoZXIgdGhhbiBhbiB1cGRh dGU/CgpJcyB0aGVyZSBhIGRpc3RpbmN0aW9uIGluIEwyVFAgYmV0d2VlbiBhbiAiZXh0ZW5zaW9u IiBhbmQgYSAicmVjb21tZW5kZWQgCmV4dGVuc2lvbiIgKGFzIG1lbnRpb25lZCBlYXJsaWVyIGlu IHRoaXMgdGhyZWFkKT8KClNob3VsZCB0aGUgc2FmZXR5IGd1aWRhbmNlIHN0aWxsIGJlIGFuIHVw ZGF0ZSB0byB0aGUgYmFzZSBMMlRQIHNwZWNzICh2MiAKJiB2Myk/IEJ5IHNhZmV0eSBndWlkYW5j ZSwgSSBtZWFuIHRleHQgYWJvdXQgdGhlIGluZ3Jlc3MgemVyb2luZyB0aGUgRUNOIApmaWVsZCBp biBhbiBJUCBQU04gb3V0ZXIgaWYgaXQgZG9lcyBub3QgY2hlY2sgd2l0aGluIHRoZSBMMiBwYXls b2FkLCBvciAKZG9lcyBub3QgY2hlY2sgdGhlIGVncmVzcyBFQ04gY2FwYWJpbGl0eS4KCj4KPj4g V2hlcmVhcywgaWYgb25lIElQIGhlYWRlciBlbmNhcHN1bGF0ZXMgYW5vdGhlciwgaWYgdGhlIEVD TiBmaWVsZCB3ZXJlIHByb2Nlc3NlZCBpbiBhbnkgd2F5IG90aGVyIHRoYW4gUkZDNjA0MCwgaXQg d291bGQgYmUgaW52YWxpZCAodW5sZXNzIGFub3RoZXIgUkZDIHdlcmUgd3JpdHRlbiB0byB1cGRh dGUgUkZDNjA0MCkuIFRoZXJlZm9yZSwgd2hlbmV2ZXIgTDJUUCBpcyB0dW5uZWxsaW5nIElQIGlu IElQLCBpdCBpcyBtYW5kYXRvcnkgdG8gY29tcGx5IHdpdGggUkZDNjA0MC4gU28gSSBhbSBhc2tp bmcgdGhlIEwyVFBleHQgV0cgZm9yIGFkdmljZSBvbiBob3cgeW91IGd1eXMgd291bGQgbWFrZSBh IG1hbmRhdG9yeSB1cGRhdGUgdG8gTDJUUCwgcmF0aGVyIHRoYW4gJ2p1c3QnIGFuIG9wdGlvbmFs IGV4dGVuc2lvbi4KPj4KPiBJIHRoaW5rIGZpcnN0IHdlIHByb2JhYmx5IG5lZWQgdG8gdW5kZXJz dGFuZCB0aGUgYXBwbGljYWJpbGl0eSBiZWNhdXNlIGl0IGlzIG5vdCBhbiBJUC1pbi1JUCBlbmNh cCwgdGhlcmXigJlzIGEgTGF5ZXIgMiBoZWFkZXIgaW4gYmV0d2Vlbiwgbm90IHRpZ2h0bHkgY291 cGxlZCBidXQgcmF0aGVyIHBhcnQgb2YgdGhlIHRyYW5zcG9ydGVkIHBheWxvYWQuCj4KPiBOb3cs IHdoYXQgeW91IGRlc2NyaWJlIGluIHRlcm1zIG9mIGxldmVsIG9mIG1hbmRhdG9yeSBhcHBsaWVz IHRvIFJGQyA2MDQwLiBJZiBhbiBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBjb21wbHkgd2l0aCBS RkMgNjA0MCBpdCBpcywgd2VsbCwgbm90IGNvbXBsaWFudCB3aXRoIFJGQyA2MDQwLgpTZWUgbXkg cmVjZW50IHJlc3BvbnNlIHRvIElnbmFjaW8gb24gdGhpcy4KCkNoZWVycwoKCgpCb2IKPgo+IFRo YW5rcyEKPgo+IENhcmxvcy4KPgo+PiBCb2IKPj4KPj4+IFRoYW5rcywKPj4+Cj4+PiBTZW50IGZy b20gbXkgaVBhZAo+Pj4KPj4+IE9uIE1heSAzMCwgMjAxNywgYXQgMTA6NDggUE0sIEJvYiBCcmlz Y29lIDxpZXRmQGJvYmJyaXNjb2UubmV0PiB3cm90ZToKPj4+Cj4+Pj4gSWduYWNpbywKPj4+Pgo+ Pj4+IFRoYW5rcyBmb3IgeW91ciByYXBpZCByZXNwb25zZS4KPj4+Pgo+Pj4+IE9uIDMxLzA1LzE3 IDAyOjUxLCBJZ25hY2lvIEdveXJldCB3cm90ZToKPj4+Pj4gSSBhbSBhIGxpdHRsZSBjb25mdXNl ZCBieSB0aGUgZG91YmxlIG5lZ2F0aXZlIGluICJub24tb3B0aW9uYWwiLgo+Pj4+PiBEbyB5b3Ug bWVhbiAibWFuZGF0b3J5Ij8gSWYgc28sIHdoeSBub3QganVzdCBzYXkgdGhhdD8KPj4+PiBZZXMs IG1hbmRhdG9yeS4KPj4+PiBUaGF0IGxhbmd1YWdlIHdhcyBub3QgaW4gdGhlIGRyYWZ0OyBvbmx5 IGluIG15IGVtYWlsLgo+Pj4+PiBUaGUgbGFjayBvZiBhIGNhcGFiaWxpdGllcyBBVlAgdGhhdCB5 b3Ugd2VyZSBsb29raW5nIGZvciBpcyBtYWlubHkKPj4+Pj4gYmVjYXVzZSBpdCBoYXNuJ3QgYmVl biBuZWVkZWQgc28gZmFyLiBZb3UgYXJlIHdlbGNvbWUgdG8gc3VibWl0IGEKPj4+Pj4gZHJhZnQg d2l0aCBzb21ldGhpbmcgbGlrZSB0aGF0LiBHZW5lcmFsbHkgc3BlYWtpbmcsIGFkZGluZyBhIHNp bXBsZQo+Pj4+PiBiaW5hcnkgQVZQIGlzIGVhc3kgYW5kIHNpbXBsZXIgdG8gaGFuZGxlLgo+Pj4+ IEdvb2QuCj4+Pj4+IEkgaGF2ZSBubyBwcm9ibGVtIHdpdGggdGhlIG5ldyBzdWdnZXN0ZWQgQVZQ LCBidXQgY2FuIHlvdSBleHBsYWluCj4+Pj4+IHdoeSBpcyBpdCBpbXBvcnRhbnQgdG8ga25vdyBp ZiB0aGUgcmVtb3RlIHN1cHBvcnRzIG9yIG5vdCB0aGlzCj4+Pj4+IGV4dGVuc2lvbj8gQ2FuJ3Qg YSB0dW5uZWwgZW5kIGRlZHVjZSB0aGlzIGluZm9ybWF0aW9uIGJ5IG9ic2VydmluZwo+Pj4+PiB0 aGUgSVAgaGVhZGVyIHJlY2VpdmVkPwo+Pj4+IEknbSBhZnJhaWQgbm90LiBJdCBpcyBjcml0aWNh bCBmb3IgdGhlIGluZ3Jlc3MgKGluIGVhY2ggZGlyZWN0aW9uKSB0byBjaGVjayB0aGF0IHRoZSBl Z3Jlc3MgZGVjYXAgd2lsbCBjb3JyZWN0bHkgcHJvcGFnYXRlIHRoZSBvdXRlciBFQ04gZmllbGQg aW50byB0aGUgZm9yd2FyZGVkIHBheWxvYWQgcHJvdG9jb2wuIE90aGVyd2lzZSBleHBsaWNpdCBj b25nZXN0aW9uIHNpZ25hbHMgYWRkZWQgYnkgYSBub2RlIHdpdGhpbiB0aGUgdHVubmVsIGNvdWxk IGp1c3QgZ2V0IHN0cmlwcGVkIGF0IGRlY2FwLiBXaXRoIGNvbmdlc3Rpb24gZmVlZGJhY2sgYmxh Y2staG9sZWQsIHRoZSBsb2FkIHdvdWxkIGNvbnRpbnVlIHRvIGluY3JlYXNlIHVudGlsIG92ZXJs b2FkIGFuZCB0YWlsIGRyb3AuCj4+Pj4KPj4+PiBCVFcsIHRoZSBmb3J3YXJkZWQgRUNOIGZpZWxk IGFmdGVyIGRlY2FwIGhhcyB0byBiZSBhIGNvbWJpbmF0aW9uIG9mIHRoZSBFQ04gZmllbGRzIGlu IHRoZSBvdXRlciBhbmQgaW5uZXIgSVAgaGVhZGVycyAoUkZDNjA0MCBnaXZlcyBhIDR4NCBtYXRy aXggb2YgYWxsIHRoZSBjb21iaW5hdGlvbnMgb2YgdGhlIHR3byAyLWJpdCBFQ04gY29kZXBvaW50 cykuIFNvIEkgYW0gaW50ZXJlc3RlZCB0byBrbm93IHdoZXRoZXIgdGhpcyBtaWdodCBwcmVzZW50 IHByb2JsZW1zIGZvciBMMlRQIGltcGxlbWVudGF0aW9ucyAoRUNOIHByb3BhZ2F0aW9uIG9uIGRl Y2FwIGhhcyBiZWVuIGltcGxlbWVudGVkIE9LIGluIExpbnV4IGZvciBzaW1pbGFyIHN0cnVjdHVy ZXMgbGlrZSBWWExBTikuCj4+Pj4KPj4+Pj4gUmVnYXJkaW5nIHRoZSBleHRlbnNpb24gdnMgdXBk YXRlIHF1ZXN0aW9uOiBpZiBpdCBpcyBhbiB1cGRhdGUsCj4+Pj4+IHRoZW4gd2h5IG5lZ290aWF0 ZSBzdXBwb3J0PyBXb3VsZG4ndCBFQ04gcHJvcGFnYXRpb24gYmUgbWFuZGF0ZWQKPj4+Pj4gYnkg dGhpcyB1cGRhdGU/Cj4+Pj4gVW5mb3J0dW5hdGVseSwgYSBtYW5kYXRvcnkgdXBkYXRlIHN0aWxs IGhhcyB0byBjb3BlIHdpdGggdGhlIGFib3ZlIGluY3JlbWVudGFsIGRlcGxveW1lbnQgcHJvYmxl bS4KPj4+Pj4gVGhlcmUgaXMgbm8gc2VjdGlvbiBmb3IgTDJUUHYyIChSRkMyNjYxKSBvciBhbnkg ZnVydGhlciBzdWdnZXN0aW9uCj4+Pj4+IG9uIGhvdyB0byBoYW5kbGUgaXQuIEknbSBub3Qgc2F5 aW5nIHRoYXQgaXQgaXMgbmVjZXNzYXJ5LCBidXQgc2luY2UKPj4+Pj4gaXQgaXMgbWVudGlvbmVk IGVhcmxpZXIgaW4gdGhlIGRvY3VtZW50LCB5b3UgbWF5IHdhbnQgdG8gYWRkIGEgZmV3Cj4+Pj4+ IHdvcmRzLiBOb3RlIHRoYXQgdGhpbmdzIGFyZSBhIGJpdCBtb3JlIGNvbXBsaWNhdGVkIGluIHYy IGJlY2F1c2UKPj4+Pj4gaXQgdHJhbnNwb3J0cyBQUFAgcGFja2V0cywgd2hpY2ggbWF5IGluY2x1 ZGUgSVAgcGFja2V0cyAob3IgcG9ydGlvbnMKPj4+Pj4gb2YgUFBQIHBhY2tldHMgaWYgdXNpbmcg TXVsdGlsaW5rKS4gSSBoYXZlIG5vIGlzc3VlIHB1bnRpbmcgb24gTDJUUHYyCj4+Pj4+IGRldGFp bHMuCj4+Pj4gKiBHaXZlbiB5b3Ugc2F5IEwyVFB2MiBpcyBtb3JlIGNvbXBsaWNhdGVkIGNvcyBp dCB0cmFuc3BvcnRzIFBQUCBwYWNrZXRzLCB0aGF0IHNlZW1zIHRvIGltcGx5IHRoYXQgTDJUUHYz IGRvZXMgbm90IHRyYW5zcG9ydCBQUFAsIHdoaWNoIGRvZXNuJ3Qgc291bmQgcmlnaHQ/Cj4+Pj4K Pj4+PiBJIGRvbid0IGZ1bGx5IHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIEwy VFB2MiAmIHYzIChJIGhhdmUgY29tZSBhY3Jvc3MgTDJUUCBhIGxvdCBpbiBhbiBvcGVyYXRpb25h bCBjb250ZXh0LCBidXQgbmV2ZXIgcmVhbGx5IHN0dWRpZWQgaXQgYXMgYSBwcm90b2NvbCB1bnRp bCBub3cpLgo+Pj4+Cj4+Pj4gKiBJcyB0aGVyZSBzdGlsbCBhIGxvdCBvZiBMMlRQdjIgYXJvdW5k Pwo+Pj4+Cj4+Pj4gKiBXb3VsZCBpdCBiZSBiZWxpZXZhYmxlIHRoYXQgYSBMMlRQdjIgaW1wbGVt ZW50YXRpb24gbWlnaHQgYmUgdXBkYXRlZCBmb3IgRUNOIHN1cHBvcnQgYnV0IG5vdCB1cGRhdGVk IHRvIEwyVFB2Mz8KPj4+Pgo+Pj4+IENoZWVycwo+Pj4+Cj4+Pj4KPj4+PiBCb2IKPj4+Pgo+Pj4+ PiAtSWduYWNpbwo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBBdCAxNTo0OSA1LzMwLzIwMTcsIEJvYiBCcmlz Y29lIHdyb3RlOgo+Pj4+Pgo+Pj4+Pj4gSGkgbDJ0cGV4dCBsaXN0LAo+Pj4+Pj4gW3JlcGVhdGlu ZyBwcmV2aW91cyBwb3N0LCBidXQgd2l0aCBzZWxmLWV4cGxhbmF0b3J5IHN1YmplY3QgbGluZV0K Pj4+Pj4+Cj4+Pj4+PiBUaGlzIGlzIGEgcGxlYSBmb3IgaGVscCBvbiBhIHNob3J0IHN1YnNlY3Rp b24gb2YgYSBzaG9ydCBkcmFmdCB0aGF0IHVwZGF0ZXMgTDJUUCAoYW1vbmdzdCBvdGhlciB0dW5u ZWwgcHJvdG9jb2xzKS4KPj4+Pj4+Cj4+Pj4+PiBJbiB0aGUgVHJhbnNwb3J0IEFyZWEgV0cgKHRz dndnKSB3ZSBoYXZlIGJlZW4gd29ya2luZyBvbiBkZWZpbmluZyBwcm9wYWdhdGlvbiBvZiB0aGUg RUNOIGZpZWxkIGJldHdlZW4gSVAgaGVhZGVycyBzZXBhcmF0ZWQgYnkgc2hpbSBoZWFkZXIocyk6 Cj4+Pj4+PiAgICAgZHJhZnQtaWV0Zi10c3Z3Zy1yZmM2MDQwdXBkYXRlLXNoaW0KPj4+Pj4+Cj4+ Pj4+PiBMMlRQIGlzIG9uZSBzdWNoIHByb3RvY29sICh3aGVuIHRoZSBwYXlsb2FkIG9mIHRoZSBM MiBwcm90b2NvbCBpcyBJUCwgYW5kIHRoZSBvdXRlciBQU04gaXMgSVApLiBUaGlzIGlzIHBhcnRp Y3VsYXJseSByZWxldmFudCBhdCB0aGUgbW9tZW50LCBiZWNhdXNlIG9mIHRoZSBsb3cgbGF0ZW5j eSAoTDRTKSB3b3JrIGJhc2VkIG9uIEVDTiBhbmQgYmVjYXVzZSBkZXBsb3ltZW50IG9mIEVDTiBo YXMgZmluYWxseSB0YWtlbiBvZmYge05vdGUgMX0uCj4+Pj4+Pgo+Pj4+Pj4gSSBwcmVzZW50ZWQg dGhpcyB0dW5uZWxsaW5nIHdvcmsgaW4gaW50YXJlYSBqdXN0IHVuZGVyIGEgeWVhciBhZ28uIFNp bmNlIHRoZW4gdHN2d2cgaGFzIGFkb3B0ZWQgdGhlIGRyYWZ0IGFuZCBhc2tlZCB0aGF0IHdlIGlu Y2x1ZGUgc3BlY2lmaWMgdXBkYXRlIHRleHQgZm9yIGVhY2ggYWZmZWN0ZWQgdHVubmVsIHByb3Rv Y29sLiBJIGp1c3QgcG9zdGVkIG15IGZpcnN0IGF0dGVtcHQgYXQgTDJUUCB1cGRhdGUgdGV4dDoK Pj4+Pj4+ICAgICA8aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtdHN2d2ct cmZjNjA0MHVwZGF0ZS1zaGltLTAxPmRyYWZ0LWlldGYtdHN2d2ctcmZjNjA0MHVwZGF0ZS1zaGlt LTAxCj4+Pj4+Pgo+Pj4+Pj4gU3BlY2lmaWMgcXVlc3Rpb25zOgo+Pj4+Pj4KPj4+Pj4+IFByaXpl IGZvciB0aGUgYmVzdCBhbnN3ZXIgdG8gYWxsIDMgcXVlc3Rpb25zOiB5b3UgZ2V0IHRvIGJlY29t ZSBhIGNvLWF1dGhvciAoaWYgeW91IHdhbnQgOikKPj4+Pj4+Cj4+Pj4+PiBRMS4gTDJUUCBpcyBt ZWFudCBmb3IgYWxsIHNvcnRzIG9mIG91dGVycyBhbmQgaW5uZXJzLCBzbyBpdCBpcyBub3QgY2xl YXIgd2hlcmUgdG8gZGVmaW5lIGJlaGF2aW91ciBmb3IgdGhlIHNwZWNpYWwgKGJ1dCB2ZXJ5IGNv bW1vbikgY2FzZSBvZiBJUCBhcyB0aGUgTDIgcGF5bG9hZCBhbmQgSVAgYW5kIGFzIHRoZSBQU04u IFRoYXQgaXM6Cj4+Pj4+PiAgICAgIElQICAgIDogICAgW1VEUF0gICAgOiAgICBMMlRQICAgIDog ICAgTDItc3BlY2lmaWMtc3VibGF5ZXIgICAgOiAgICBMMiAgICA6ICAgIElQCj4+Pj4+Pgo+Pj4+ Pj4gSSBkZWNpZGVkIG9uIHVwZGF0aW5nIDxTcGVjaWZpYyUyMHF1ZXN0aW9uczo+Uy40LjUgb2Yg UkZDMzkzMSwgYnV0IHN1Z2dlc3Rpb25zIGZvciBhIGJldHRlciBwbGFjZSBhcmUgd2VsY29tZS4K Pj4+Pj4+Cj4+Pj4+PiBRMi4gTDJUUCBpcyB1c3VhbGx5IGV4dGVuZGVkIG5vdCB1cGRhdGVkLiBI b3dldmVyLCBpbiB0aGlzIGNhc2UsIGNvbXBsaWFuY2Ugd2l0aCBSRkM2MDQwIGlzIG5vbi1vcHRp b25hbCwgc28gSSB0aGluayB1cGRhdGUgcmF0aGVyIHRoYW4gZXh0ZW5zaW9uIGlzIGFwcHJvcHJp YXRlLiBSZWFzb246IEFsdGhvdWdoIFJGQzYwNDAgaXMgbm9uLW9wdGlvbmFsIGl0IGluY2x1ZGVz IGEgY29tcGF0aWJpbGl0eSBtb2RlIHRoYXQgZGVmaW5lcyB3aGF0IGhhcyB0byBoYXBwZW4gd2hl biBhIHR1bm5lbCBlbmRwb2ludCBkb2Vzbid0IHN1cHBvcnQgRUNOIHByb3BhZ2F0aW9uLgo+Pj4+ Pj4KPj4+Pj4+IFBscyByZWFkIHRoZSAoc2hvcnQpIGRyYWZ0IGFuZCwgaWYgeW91IGRpc2FncmVl LCBzdWdnZXN0IGhvdyBhbiBleHRlbnNpb24gY2FuIGJlIG5vbi1vcHRpb25hbC4KPj4+Pj4+Cj4+ Pj4+PiBRMy4gVGhlIHR1bm5lbCBpbml0aWF0b3IgbmVlZHMgdG8gY2hlY2sgdGhhdCB0aGUgb3Ro ZXIgZW5kIHN1cHBvcnRzIEVDTiBwcm9wYWdhdGlvbi4gSSBoYXZlIHByb3Bvc2VkIGFuIEF0dHJp YnV0ZSBWYWx1ZSBQYWlyIChBVlApIGZvciB0aGlzIHRoYXQgaXMgZWZmZWN0aXZlbHkganVzdCBh IGJvb2xlYW4gY2hvaWNlIGZyb20gZWFjaCBlbmQgKFllcyBvciBzaWxlbmNlKS4gSSBleHBlY3Rl ZCB0byBmaW5kIGFuIEFWUCB3aXRoIHBlci1jb250cm9sLWNvbm5lY3Rpb24gZmxhZ3MgZm9yIHR1 bm5lbCBlbmRwb2ludCBjYXBhYmlsaXRpZXMgdGhhdCBJIGNvdWxkIGp1c3QgZXh0ZW5kIHdpdGgg b25lIG1vcmUgZmxhZywgYnV0IHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBzdWNoIGEgdGhpbmcg YWxyZWFkeSBpbiBMMlRQLiBEaWQgSSBtaXNzIGl0Pwo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBDaGVl cnMKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gQm9iCj4+Pj4+Pgo+Pj4+Pj4ge05vdGUgMX06IH43MCUg b2YgV2ViIHNlcnZlcnMsIH41MCUgb2YgQXBwbGUgY2xpZW50IGRldmljZXMgb24gZml4ZWQgb3Ig V2lGaSBhY2Nlc3MsIGFuZCBub3cgaW5jcmVhc2luZyByb3V0ZXIgZGVwbG95bWVudCBvZiBFQ04g aXMgYXBwZWFyaW5nLgo+Pj4+IC0tIAo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+PiBCb2IgQnJpc2NvZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vYm9iYnJpc2NvZS5uZXQvCj4+Pj4KPj4+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+IEwy dHBleHQgbWFpbGluZyBsaXN0Cj4+Pj4gTDJ0cGV4dEBpZXRmLm9yZwo+Pj4+IGh0dHBzOi8vd3d3 LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vbDJ0cGV4dAo+PiAtLSAKPj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBC b2IgQnJpc2NvZQo+PiBodHRwOi8vYm9iYnJpc2NvZS5uZXQvCgotLSAKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpCb2IgQnJp c2NvZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vYm9iYnJpc2NvZS5uZXQv CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMMnRwZXh0 IG1haWxpbmcgbGlzdApMMnRwZXh0QGlldGYub3JnCmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxt YW4vbGlzdGluZm8vbDJ0cGV4dAo=