From mboxrd@z Thu Jan 1 00:00:00 1970 From: Russell Stuart Subject: RE: bug report: hairpin NAT doesn't work across bridges Date: Tue, 27 Jun 2017 19:43:40 +1000 Message-ID: <1498549420.10132.22.plain@stuart.id.au> References: <1498549420.10132.22.camel@stuart.id.au> Reply-To: russell-debian@stuart.id.au Mime-Version: 1.0 Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pgp-signature"; boundary="mime-gpg.py-050430486923006261040515232686931968-0" Cc: bridge@lists.linux-foundation.org, netdev@vger.kernel.org To: Stephen Hemminger Return-path: Received: from stuart.id.au ([58.105.229.78]:48826 "EHLO adsl-kenny.stuart.id.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751513AbdF0KJX (ORCPT ); Tue, 27 Jun 2017 06:09:23 -0400 In-Reply-To: <1498549420.10132.22.camel@stuart.id.au> Sender: netdev-owner@vger.kernel.org List-ID: --mime-gpg.py-050430486923006261040515232686931968-0 Content-Type: text/plain; charset="ascii" Content-Transfer-Encoding: base64 SSBkb24ndCBrbm93IGhvdyB0aGUgdW5pY29kZSBub24tYnJlYWtpbmcgc3BhY2VzIGxlYWtlZCBp bnRvIHRoZQpwcmV2aW91cyB2ZXJzaW9uLiAgU29ycnkgYWJvdXQgdGhhdC4KCkNvbmZpZ3VyYXRp b24KPT09PT09PT09PT09PQoKICBBIGJveCBydW5uaW5nIERlYmlhbiBzdHJldGNoIGlzIGFjdGlu ZyBhcyBhIE5BVCdpbmcgcm91dGVyLgogIEl0IGhhcyBhIHNpbmdsZSBFdGhlcm5ldCBOSUMgYW5k IGEgd2lyZWxlc3MgTklDIHNlcnZpY2luZyB0aGUgbG9jYWwKICBMQU4uICBUaGVzZSBkZXZpY2Vz IGFyZSBicmlkZ2VkLiAgU2luY2UgaXQgaGFzIG9ubHkgb25lIHdpcmVkIE5JQwogIGl0IGlzIHVz ZWQgdG8gY29ubmVjdCB0byBib3RoIHRoZSBMQU4gYW5kIGludGVybmV0IHZpYSBhIHN3aXRjaC4K ICBUaGlzIG1lYW5zIGl0IG11c3QgZG8gaGFpcnBpbiBOQVQgb3ZlciB0aGUgd2lyZWQgTklDLgoK ICBpbnRlcm5ldCA8LS0+IG1vZGVtICAgICAgICAgICAgPC0tPiBzd2l0Y2ggPC0tPiBMQU4KICAg ICAgICAgICAgICAgIFsxMC45OS45OS45Ny8zMF0gICAgICAgICBeICAgICAgICBbMTAuOTEuOTEu MC8yNF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICBeCiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAgfCAg ICAgICAgICAgICAgICAgICAgfAogIHwgICAgICBbMTAuOTEuOTEuMS8yNF0gICAgICAgICBldGgw PTwtLS8gIHYgYW50ZW5uYSBMQU4gICAgIHwKICB8ICAgICAgWzEwLjk5Ljk5Ljk4LzMwXSBicjA8 LS0tKyAgIHwgICAgICB8IFsxMC45MS45MS4wLzI0XSB8CiAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgd2xhbjA9PC0tLS0tLyAgICAgICAgICAgICAgICAgdgogIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgKy0tLS0tLS0tLS0tLS0tLT0tLSsKICB8IGlw IHIgYSBkZWZhdWx0IHZpYSAxMC45OS45OS45NyAgIHwgICAgICAgIHwgICAgICAgICBldGgtbGFu MCB8CiAgfCBpcHRhYmxlcyAtdCBuYXQgLUEgUE9TVFJPVVRJTkcgXCB8ICAgICAgICB8IDEwLjkx LjkxLjEyOS8yNCAgfAogIHwgICAtcyAxMC45MS45MS4wLzI0IC1qIE1BU1FVRVJBREUgfCAgICAg ICAgfCAgICAgICAgICAgICAgICAgIHwKICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsgICAgICAgIHwgaXAgciBhIGRlZmF1bHQgXCB8CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICB2aWEgMTAuOTEuOTEuMSAgfAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLSsKCiAg V2hpbGUgd2xhbjAgaXMgdGhlIHJlYXNvbiBmb3IgYnJpZGdlIGV4aXN0cyBpbiBteSBjYXNlIGl0 IGRvZXNuJ3QKICBoYXZlIHRvIGJlIGEgd2lyZWxlc3MgY29ubmVjdGlvbi4gIENvbm5lY3Rpbmcg YW55IHR3byBFdGhlcm5ldAogIGRldmljZXMgdG8gdGhlIGJyaWRnZSAoc28gaXQgaGFzIHRvIGRv IHNvbWUgd29yaykgdHJpZ2dlcnMgdGhlCiAgcHJvYmxlbS4KCgpQcm9ibGVtCj09PT09PT0KCiAg MTAuOTEuOTEuMTI5IGNhbiBub3QgcmVjZWl2ZSBwYWNrZXRzIGZyb20gdGhlIGludGVybmV0LiAg QSBwYWNrZXQKICBhcnJpdmluZyBmcm9tIHRoZSBpbnRlcm5ldCBoaXRzIGV0aDAsIHRoZW4gYnIw LCB0aGVuIGlzIG1hbmdsZWQgYnkKICBpcHRhYmxlcyBuYXQsIGFuZCB0aGVuIGlzIHN1cHBvc2Vk IHRvIGJlIHNlbnQgb3V0IGJyMCtldGgwIGFnYWluLgogIFRoZSBtYW5nbGVkIHZlcnNpb24gbmV2 ZXIgbWFrZXMgaXQgb3V0IG9mIGV0aDAuCgoKUG9zc2libGUgY2F1c2UKPT09PT09PT09PT09PT0K CiAgVGhlIGJyaWRnZSBpcyBpbXBsZW1lbnRpbmcgaXQncyAibmV2ZXIgc2VuZCBhIHBhY2tldCBv dXQgb3ZlciB0aGUKICBpbnRlcmZhY2UgaXQgYXJyaXZlZCBvbiBydWxlIiBidXQgaXQgdGhpcyBj YXNlIGl0J3MgbWlzYXBwbGllZCB0aGUKICBydWxlOiB0aGUgcGFja2V0IHRoYXQgaXMgdG8gYmUg c2VudCBpcyBub3QgdGhlIHNhbWUgcGFja2V0IHRoYXQKICBhcnJpdmVkIGVhcmxpZXIgb24gZXRo MC4gSXQgaGFzIGRpZmZlcmVudCBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIElQCiAgYWRkcmVzc2Vz IGFuZCBNQUMgYWRkcmVzc2VzLCBhbmQgaW4gYW55IGNhc2UgaXMgbm90IGJlaW5nIHJlZmxlY3Rl ZCAtCiAgaXQgaGl0IHRoZSBJTlBVVCBjaGFpbiwgbm90IHRoZSBGT1JXQVJEIGNoYWluLgoKCldv cmthcm91bmRzCj09PT09PT09PT09CgogIFNldCB0aGUgImhhaXJwaW4iIGZsYWcgb24gYnIwLiAg VGhpcyB3b3JrcyBpZiBhcmUgdG8gYmUgbm8gbG9vcHMgaW4KICB0aGUgTEFOIHdpcmluZyAod2hp Y2ggd2lsbCBub3JtYWxseSBiZSBoaWRkZW4gYnkgU1RQKS4gIElmIHRoZXJlCiAgYXJlIGEgcGFj a2V0IHN0b3JtIHdpbGwgc29vbiBlbnN1ZSwgZm9sbG93ZWQgaW4gbXkgY2FzZSBieSBjaGFvcwog IGFuZCBwYW5pYy4KCiAgQW4gYWx0ZXJuYXRlIHdvcmthcm91bmQgdGhhdCBtb3N0bHkgd29ya3Mg aXMgdGhlIHVzZSBlYnRhYmxlcyB0bwogIG1ha2UgaW50ZXJuZXQgcGFja2V0cyBieXBhc3MgdGhl IGJyaWRnZToKCiAgICBlYnRhYmxlcyAtdCBicm91dGUgLUEgQlJPVVRJTkcgLWQgTXVsdGljYXN0 IC1qIEFDQ0VQVAogICAgZWJ0YWJsZXMgLXQgYnJvdXRlIC1BIEJST1VUSU5HIC1wIElQdjQgLS1p cC1kc3QgMTAuMC4wLjAvOCAtaiBBQ0NFUFQKICAgIGVidGFibGVzIC10IGJyb3V0ZSAtQSBCUk9V VElORyAtcCBJUHY0IC0taXAtZHN0IDE3Mi4xNi4wLjAvMTIgLWogQUNDRVBUCiAgICBlYnRhYmxl cyAtdCBicm91dGUgLUEgQlJPVVRJTkcgLXAgSVB2NCAtLWlwLWRzdCAxNjkuMjU0LjAuMC8xNiAt aiBBQ0NFUFQKICAgIGVidGFibGVzIC10IGJyb3V0ZSAtQSBCUk9VVElORyAtcCBJUHY0IC0taXAt ZHN0IDE5Mi4xNjguMC4wLzE2IC1qIEFDQ0VQVAogICAgZWJ0YWJsZXMgLXQgYnJvdXRlIC1BIEJS T1VUSU5HIC1wIElQdjQgLS1pcC1zcmMgMTAuMC4wLjAvOCAtaiBBQ0NFUFQKICAgIGVidGFibGVz IC10IGJyb3V0ZSAtQSBCUk9VVElORyAtcCBJUHY0IC0taXAtc3JjIDE3Mi4xNi4wLjAvMTIgLWog QUNDRVBUCiAgICBlYnRhYmxlcyAtdCBicm91dGUgLUEgQlJPVVRJTkcgLXAgSVB2NCAtLWlwLXNy YyAxNjkuMjU0LjAuMC8xNiAtaiBBQ0NFUFQKICAgIGVidGFibGVzIC10IGJyb3V0ZSAtQSBCUk9V VElORyAtcCBJUHY0IC0taXAtc3JjIDE5Mi4xNjguMC4wLzE2IC1qIEFDQ0VQVAogICAgZWJ0YWJs ZXMgLXQgYnJvdXRlIC1BIEJST1VUSU5HIC1wIElQdjQgLWogRFJPUAogICAgZWJ0YWJsZXMgLXQg YnJvdXRlIC1BIEJST1VUSU5HIC1wIElQdjYgLS1pcDYtZHN0IGZjMDA6Oi9mYzAwOjogLWogQUND RVBUCiAgICBlYnRhYmxlcyAtdCBicm91dGUgLUEgQlJPVVRJTkcgLXAgSVB2NiAtLWlwNi1zcmMg ZmMwMDo6L2ZjMDA6OiAtaiBBQ0NFUFQKICAgIGVidGFibGVzIC10IGJyb3V0ZSAtQSBCUk9VVElO RyAtcCBJUHY2IC1qIERST1AKCiAgSXQgb25seSAibW9zdGx5IiB3b3JrcyBiZWNhdXNlIGl0IGZh aWxzIHdpdGggT3BlblZQTi4gIE9wZW5WUE4gZ2V0cwogIFRMUyBlcnJvcnMgaWYgdGhlIGluY29t aW5nIHBhY2tldHMgZG9uJ3QgZ28gdmlhIHRoZSBicmlkZ2UuCgoKUmVwcm9kdWNpbmcKPT09PT09 PT09PT0KCiAgUnVuIHRoZSBzaGVsbCBzY3JpcHQgYmVsb3cuICBUaGUgc2hlbGwgc2NyaXB0IHNl dHMgdXAgdGhlCiAgY29uZmlndXJhdGlvbiBzaG93biBpbiB0aGUgZGlhZ3JhbSBhYm92ZSB1c2lu ZyBkZWJvb3RzdHJhcCB0bwogIGNyZWF0ZSBhIG1pbmltYWwgZmlsZSBzeXN0ZW0gYW5kIGNvbnRh aW5lcnMgY3JlYXRlZCBieQogIHN5c3RlbWQtbnNwYXduLiAgZGVib290c3RyYXAgaXMgYSBEZWJp YW4gdXRpbGl0eSwgYnV0IGlzCiAgYXZhaWxhYmxlIG9uIEZlZG9yYS4KCiAgSW52b2tpbmcgaXQg dXNpbmcgImhhaXJwaW4tYnVnLnNoIGJyaWRnZSIgY3JlYXRlcyB0aGUgY29uZGl0aW9ucwogIHNo b3cgaW4gdGhlIGRpYWdyYW0gYW5kIHByb2R1Y2VzIHRoZSBmb2xsb3dpbmcgb3V0cHV0IG9uIGtl cm5lbHMgdGhhdAogIGhhdmUgdGhlIHByb2JsZW0gKHNwdXJpb3VzIHNlbGludXggd2FybmluZ3Mg cHJvZHVjZWQgYnkgc3lzdGVtZC1uc3Bhd24KICBoYXZlIGJlZW4gb21pdHRlZCBmb3IgY2xhcml0 eSk6CgogICAgICBQSU5HIDEwLjk5Ljk5LjkwICgxMC45OS45OS45MCkgNTYoODQpIGJ5dGVzIG9m IGRhdGEuCgogICAgICAtLS0gMTAuOTkuOTkuOTAgcGluZyBzdGF0aXN0aWNzIC0tLQogICAgICAx IHBhY2tldHMgdHJhbnNtaXR0ZWQsIDAgcmVjZWl2ZWQsIDEwMCUgcGFja2V0IGxvc3MsIHRpbWUg MG1zCgogIFRoZSBzY3JpcHQgZG9lc24ndCBuZWVkIGFuIGludGVybmV0IHRvIGNvbm5lY3Rpb24g dG8gd29yayBhcyBpdAogICJlbXVsYXRlcyIgaXQuICAgMTAuOTkuOTkuOTAgaXMgdGhlIG9uZSBh bmQgb25seSBhZGRyZXNzIG9uIHRoaXMKICBlbXVsYXRlZCBpbnRlcm5ldC4KCiAgSW52b2tpbmcg aXQgdXNpbmcgImhhaXJwaW4tYnVnLnNoIGRpcmVjdCIgY3JlYXRlcyB0aGUgY29uZGl0aW9ucwog IHNob3cgaW4gdGhlIGRpYWdyYW0gd2l0aCBvbmUgZXhjZXB0aW9uOiB0aGUgZXRoMCBkZXZpY2Ug aXMgbm90CiAgY29ubmVjdGVkIHRvIHRoZSBicjAsIGFuZCBJUCBhZGRyZXNzZXMgYXNzaWduZWQg dG8gYnIwIGhhdmUgYmVlbgogIG1vdmVkIHRvIGV0aDAuICBUaGUgb3V0cHV0IGluIHRoYXQgY2Fz ZSBpczoKCiAgICAgIFBJTkcgMTAuOTkuOTkuOTAgKDEwLjk5Ljk5LjkwKSA1Nig4NCkgYnl0ZXMg b2YgZGF0YS4KICAgICAgNjQgYnl0ZXMgZnJvbSAxMC45OS45OS45MDogaWNtcF9zZXE9MSB0dGw9 NjMgdGltZT0wLjA4MCBtcwoKICAgICAgLS0tIDEwLjk5Ljk5LjkwIHBpbmcgc3RhdGlzdGljcyAt LS0KICAgICAgMSBwYWNrZXRzIHRyYW5zbWl0dGVkLCAxIHJlY2VpdmVkLCAwJSBwYWNrZXQgbG9z cywgdGltZSAwbXMKICAgICAgcnR0IG1pbi9hdmcvbWF4L21kZXYgPSAwLjA4MC8wLjA4MC8wLjA4 MC8wLjAwMCBtcwoKICBUaGlzIGludm9jYXRpb24gbWV0aG9kIGlzIG1vc3RseSBhIHVuaXQgdGVz dCBmb3IgdGhlIHNjcmlwdCAtIGJ1dAogIGl0IGFsc28gcHJvdmVzIGhhaXJwaW4gTkFUIGRvZXMg bm9ybWFsbHkgd29yaywgYW5kIHBvaW50cyB0b3dhcmRzCiAgdGhlIGJyaWRnZSBjYXVzaW5nIHRo aXMgcHJvYmxlbS4KCgoKLS0gL2Rldi9udWxsICAgIDIwMTctMDYtMjcgMDc6MzY6MTkuNDA5MzQ3 NDg3ICsxMDAwCisrKyBoYWlycGluLWJ1Zy5zaCAgICAgIDIwMTctMDYtMjcgMTc6MDY6MzkuMzkz NTc5NDc0ICsxMDAwCkBAIC0wLDAgKzEsMTIwIEBACisjIS9iaW4vc2gKK3NldCAtQ2V1CisKK2Nh c2UgIiR7MTotfTokezI6LX0iIGluCisgICJicmlkZ2U6InwiZGlyZWN0OiJ8ImJyaWRnZTo8bGFu PiJ8ImRpcmVjdDo8bGFuPiJ8ImJyaWRnZTo8cm91dGVyPiJ8ImRpcmVjdDo8cm91dGVyPiIpCisg ICAgbW9kZT0iJHsxfSIgOzsKKyAgKikKKyAgICBlY2hvICJ1c2FnZTogJHswIyMqL30gYnJpZGdl fGRpcmVjdCIKKyAgICBleGl0IDEgOzsKK2VzYWMKK2Z1bmM9IiR7MjotfSIKKworeHRyYWNlPSQo c2V0IC1vIHwgZ3JlcCAtLXNpbGVudCAneHRyYWNlIC4qb24nICYmIHByaW50ZiAiJXMiICIteCIg fHwgOikKK2Rpcj0iaGFpcnBpbi5yZXByb2R1Y2UiCittZT0iJHswfSIKK1sgLXMgIiR7bWV9IiBd IHx8IG1lPSQod2hpY2ggIiR7bWV9IikKKworWyB4IiQoaWQgLXUpIiA9IHgiMCIgXSB8fAorICBl eGVjIHN1ZG8gImh0dHBfcHJveHk9JHtodHRwX3Byb3h5Oi19IiAiJHtTSEVMTH0iICR7eHRyYWNl fSAiJHttZX0iICIkQCIKKworaXBsZCgpIHsKKyAgISBpcCBsaW5rIHNob3cgfCBlZ3JlcCAtLXNp bGVudCAiXlswLTldKzogJHsxfTogIiB8fAorICAgIGlwIGxpbmsgZGVsZXRlIGRldiAiJHsxfSIK K30KK2NsZWFudXAoKSB7CisgIHNldCArZQorICBpcGxkIGhwLXJ0MC1ob3N0CisgIGlwbGQgaHAt cnQxLWhvc3QKKyAgaXBsZCBocC1sYW4taG9zdAorICBpcGxkIGhwLWJyaWRnZQorICBpcGxkIGhw LWludGVybmV0CisgIHJtIC1yZiAiJHtkaXJ9LmxhbiIgIiR7ZGlyfS5yb3V0ZXIiCit9CisKK2Jv b3QoKSB7CisgIFsgLXMgIiR7ZGlyfS8ke21lIyMqL30iIF0gfHwgeworICAgIHJtIC1yZiAiJHtk aXJ9IgorICAgIGRlYm9vdHN0cmFwIC0tYXJjaD1hbWQ2NCAtLXZlcmJvc2UgLS12YXJpYW50PW1p bmJhc2UgLS1pbmNsdWRlPWlwcm91dGUyLGlwdGFibGVzLGlwdXRpbHMtcGluZyBqZXNzaWUgIiR7 ZGlyfSIKKyAgfQorICBjcCAiJHswfSIgIiR7ZGlyfSIKKyAgY2htb2QgYStyeCAiJHtkaXJ9LyR7 bWUjIy99IgorICBybSAtcmYgIiR7ZGlyfS5yb3V0ZXIiICIke2Rpcn0ubGFuIgorICBjcCAtYWwg IiR7ZGlyfSIgIiR7ZGlyfS5yb3V0ZXIiCisgIGNwIC1hbCAiJHtkaXJ9IiAiJHtkaXJ9LmxhbiIK KyAgdHJhcCBjbGVhbnVwIDAgMSAyIDE1CisgIGlwIGxpbmsgYWRkIG5hbWUgaHAtcnQwLWhvc3Qg dHlwZSB2ZXRoIHBlZXIgbmFtZSBocC1ydDAtY2xpZW50CisgIGlwIGxpbmsgYWRkIG5hbWUgaHAt cnQxLWhvc3QgdHlwZSB2ZXRoIHBlZXIgbmFtZSBocC1ydDEtY2xpZW50CisgIGlwIGxpbmsgYWRk IG5hbWUgaHAtbGFuLWhvc3QgdHlwZSB2ZXRoIHBlZXIgbmFtZSBocC1sYW4tY2xpZW50CisgIGlw IGxpbmsgYWRkIG5hbWUgaHAtYnJpZGdlIHR5cGUgYnJpZGdlCisgIGlwIGxpbmsgc2V0IGRldiBo cC1ydDAtaG9zdCBtYXN0ZXIgaHAtYnJpZGdlCisgIGlwIGxpbmsgc2V0IGRldiBocC1ydDEtaG9z dCBtYXN0ZXIgaHAtYnJpZGdlCisgIGlwIGxpbmsgc2V0IHVwIGhwLXJ0MC1ob3N0CisgIGlwIGxp bmsgc2V0IHVwIGhwLXJ0MS1ob3N0CisgIGlwIGxpbmsgc2V0IGRldiBocC1sYW4taG9zdCBtYXN0 ZXIgaHAtYnJpZGdlCisgIGlwIGxpbmsgc2V0IHVwIGhwLWxhbi1ob3N0CisgIGlwIGFkZHIgYWRk IGRldiBocC1icmlkZ2UgMTAuOTkuOTkuOTgvMzAKKyAgaXAgbGluayBzZXQgdXAgZGV2IGhwLWJy aWRnZQorICBpcCBsaW5rIGFkZCBuYW1lIGhwLWludGVybmV0IHR5cGUgZHVtbXkKKyAgaXAgYWRk ciBhZGQgZGV2IGhwLWludGVybmV0IDEwLjk5Ljk5LjkwLzMwCisgIGlwIGxpbmsgc2V0IHVwIGRl diBocC1pbnRlcm5ldAorICBlY2hvIDEgPnwvcHJvYy9zeXMvbmV0L2lwdjQvaXBfZm9yd2FyZAor ICBbIC16ICIke3h0cmFjZX0iIF0gfHwgaXAgYWRkciBzaG93CisgIFsgLXogIiR7eHRyYWNlfSIg XSB8fCBpcCByb3V0ZSBzaG93CisgIFsgLXogIiR7eHRyYWNlfSIgXSB8fCBwaW5nIC1jIDEgLW4g MTAuOTkuOTkuOTAKKyAgWyAteiAiJHt4dHJhY2V9IiBdIHx8IGVjaG8gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIHN5c3RlbWQtbnNwYXduIFwKKyAg ICAtLWRpcmVjdG9yeT0iJHtkaXJ9LnJvdXRlciIgXAorICAgIC0tbmV0d29yay1pbnRlcmZhY2U9 ImhwLXJ0MC1jbGllbnQiIFwKKyAgICAtLW5ldHdvcmstaW50ZXJmYWNlPSJocC1ydDEtY2xpZW50 IiBcCisgICAgLS1xdWlldCBcCisgICAgc2ggJHt4dHJhY2V9IC8ke21lIyMqL30gIiR7bW9kZX0i ICI8cm91dGVyPiIgJgorICBzbGVlcCAyCisgIHN5c3RlbWQtbnNwYXduIFwKKyAgICAtLWRpcmVj dG9yeT0iJHtkaXJ9LmxhbiIgXAorICAgIC0tbmV0d29yay1pbnRlcmZhY2U9ImhwLWxhbi1jbGll bnQiIFwKKyAgICAtLXF1aWV0IFwKKyAgICBzaCAke3h0cmFjZX0gLyR7bWUjIyovfSAiJHttb2Rl fSIgIjxsYW4+IgorICB3YWl0Cit9CisKK3JvdXRlcigpIHsKKyAgaXAgbGluayBhZGQgbmFtZSBi cjAgdHlwZSBicmlkZ2UKKyAgY2FzZSAiJHttb2RlfSIgaW4KKyAgICBicmlkZ2UpCisgICAgICBp Zj1icjAKKyAgICAgIGlwIGxpbmsgc2V0IGRldiBocC1ydDAtY2xpZW50IG1hc3RlciAiJHtpZn0i CisgICAgICA7OworICAgIGRpcmVjdCkKKyAgICAgIGlmPWhwLXJ0MC1jbGllbnQKKyAgICAgIDs7 CisgIGVzYWMKKyAgaXAgbGluayBzZXQgZGV2IGhwLXJ0MS1jbGllbnQgbWFzdGVyIGJyMAorICBp cCBsaW5rIHNldCB1cCBkZXYgYnIwCisgIGlwIGFkZHIgYWRkIGRldiAiJHtpZn0iIDEwLjk5Ljk5 Ljk3LzMwCisgIGlwIGFkZHIgYWRkIGRldiAiJHtpZn0iIDEwLjkxLjkxLjEvMjQKKyAgaXAgbGlu ayBzZXQgdXAgZGV2IGhwLXJ0MC1jbGllbnQKKyAgaXAgbGluayBzZXQgdXAgZGV2IGhwLXJ0MS1j bGllbnQKKyAgaXAgcm91dGUgYWRkIGRldiAiJHtpZn0iIGRlZmF1bHQgdmlhIDEwLjk5Ljk5Ljk4 CisgIGlwdGFibGVzIC10IG5hdCAtQSBQT1NUUk9VVElORyAtcyAxMC45MS45MS4wLzI0IC1qIE1B U1FVRVJBREUKKyAgZWNobyAxID58L3Byb2Mvc3lzL25ldC9pcHY0L2lwX2ZvcndhcmQKKyAgWyAt eiAiJHt4dHJhY2V9IiBdIHx8IGlwIGFkZHIgc2hvdworICBbIC16ICIke3h0cmFjZX0iIF0gfHwg aXAgcm91dGUgc2hvdworICBbIC16ICIke3h0cmFjZX0iIF0gfHwgaXB0YWJsZXMgLXQgbmF0IC1M IFBPU1RST1VUSU5HIC0tbnVtZXJpYyAtLWxpbmUtbnVtYmVycworICBzbGVlcCA2Cit9CisKK2xh bigpIHsKKyAgaXAgYWRkciBhZGQgZGV2IGhwLWxhbi1jbGllbnQgMTAuOTEuOTEuMTI5LzI0Cisg IGlwIGxpbmsgc2V0IHVwIGRldiBocC1sYW4tY2xpZW50CisgIGlwIHJvdXRlIGFkZCBkZXYgaHAt bGFuLWNsaWVudCBkZWZhdWx0IHZpYSAxMC45MS45MS4xCisgIFsgLXogIiR7eHRyYWNlfSIgXSB8 fCBpcCBhZGRyIHNob3cKKyAgWyAteiAiJHt4dHJhY2V9IiBdIHx8IGlwIHJvdXRlIHNob3cKKyAg cGluZyAtYyAxIC1uIDEwLjk5Ljk5LjkwIHx8IDoKK30KKworY2FzZSAiJHtmdW5jfSIgaW4KKyAg IiIpICAgICAgICAgICBib290OzsKKyAgIjxsYW4+IikgICAgICBsYW47OworICAiPHJvdXRlcj4i KSAgIHJvdXRlcjs7Citlc2FjCg== --mime-gpg.py-050430486923006261040515232686931968-0 Content-Type: application/pgp-signature; name="signature.asc" Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iHoEABEIADoWIQSN3kgJY/3mfoz+37SMX14kHQAkhgUCWVIqmRwccnVzc2VsbC1k ZWJpYW5Ac3R1YXJ0LmlkLmF1AAoJEIxfXiQdACSGgEkAn1bKCexvq43tWjmDZdl9 55ecmUYwAJ9IgzbbpEUN5f839tBje/HZ1vKM3w== =7YZm -----END PGP SIGNATURE----- --mime-gpg.py-050430486923006261040515232686931968-0--