From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kevin Grittner Subject: Re: [HACKERS] [OSSTEST PATCH 0/1] PostgreSQL db: Retry on constraint violation [and 2 more messages] [and 1 more messages] Date: Thu, 15 Dec 2016 08:01:12 -0600 Message-ID: References: <1481307991-16971-1-git-send-email-ian.jackson@eu.citrix.com> <22606.47105.549023.301281@mariner.uk.xensource.com> <22607.56276.807567.924144@mariner.uk.xensource.com> <22608.6345.97849.783099@mariner.uk.xensource.com> <22608.14118.291149.821376@mariner.uk.xensource.com> <20161214140539.hotxjeoshju2m7zw@alvherre.pgsql> <22609.29020.794032.389420@mariner.uk.xensource.com> <22609.32147.935746.463570@mariner.uk.xensource.com> <22610.34816.412309.196179@mariner.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cHWay-0007HR-RM for xen-devel@lists.xenproject.org; Thu, 15 Dec 2016 14:01:16 +0000 Received: by mail-yw0-f173.google.com with SMTP id a10so14050515ywa.3 for ; Thu, 15 Dec 2016 06:01:14 -0800 (PST) In-Reply-To: <22610.34816.412309.196179@mariner.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Ian Jackson Cc: xen-devel@lists.xenproject.org, Robert Haas , Alvaro Herrera , Thomas Munro , "pgsql-hackers@postgresql.org" List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBEZWMgMTUsIDIwMTYgYXQgNjowOSBBTSwgSWFuIEphY2tzb24gPGlhbi5qYWNrc29u QGV1LmNpdHJpeC5jb20+IHdyb3RlOgoKPiBIb3dldmVyLCBpbiB0aGF0IGV4YW1wbGUsIGFzIHlv dSBzZWVtIHRvIGFsbHVkZSB0bywgdGhlcmUgaXMgc3RpbGwgYQo+IGNvbXBsZXRlIHNlcmlhbGlz YXRpb24gb2YgYWxsIHRoZSB0cmFuc2FjdGlvbnMsIGV2ZW4gdGhlIGZhaWxlZCBUMzoKPiBUMSxU MixUMy4gIFRoZSBkYXRhYmFzZSBoYXMgZGV0ZWN0ZWQgdGhlIHByb2JsZW0gYmVmb3JlIHJldHVy bmluZyBkYXRhCj4gaW4gVDMgdGhhdCB3b3VsZCBjb250cmFkaWN0IHRoZSBzZXJpYWxpc2F0aW9u IG9yZGVyLgoKSW4gdGhhdCBjYXNlLCB5ZXMuICBUaGlua2luZyBhYm91dCBpdCwgSSBzdXNwZWN0 IHRoYXQgYSByZWFkLW9ubHkKdHJhbnNhY3Rpb24gd2lsbCBuZXZlciBhY3R1YWxseSByZXR1cm4g cmVzdWx0cyB0aGF0IG5lZWQgdG8gYmUKaWdub3JlZC4gIExldCBtZSB0YWtlIGEgcXVpY2sgcnVu IGF0IGFuIGFyZ3VtZW50IHRvIHN1cHBvcnQgdGhhdC4KSSdtIHdvcmtpbmcgZnJvbSB0aGUgcHJl dmlvdXMgY29uY2x1c2lvbiBhYm91dCByZWFkLW9ubHkKdHJhbnNhY3Rpb25zOiB0aGF0IHRoZSBy ZWFkLW9ubHkgdHJhbnNhY3Rpb24gd2lsbCBvbmx5IGJlIHRoZSBvbmUKdG8gZXhwZXJpZW5jZSBz ZXJpYWxpemF0aW9uIGZhaWx1cmUgaWYgdGhlIG90aGVyIHR3byB0cmFuc2FjdGlvbnMKaW52b2x2 ZWQgaW4gdGhlICJkYW5nZXJvdXMgc3RydWN0dXJlIiBoYXZlIGFscmVhZHkgY29tbWl0dGVkCndp dGhvdXQgZGV2ZWxvcGluZyBhIHNlcmlhbGl6YXRpb24gZmFpbHVyZSwgYW5kIHRoZSBmYWlsdXJl IHdpbGwgYmUKZGV0ZWN0ZWQgZHVyaW5nIGEgcmVhZCBvZiB0aGUgZGF0YSBieSB0aGUgcmVhZC1v bmx5IHRyYW5zYWN0aW9uIC0tCm5ldmVyIGR1cmluZyBjb21taXQuICBDYXRjaGluZyB0aGUgaW5p dGlhbCBleGNlcHRpb24gYW5kIHRyeWluZyB0bwpzdXBwcmVzcyBpdCBjYW4gY2F1c2UgaXQgdG8g cmVzdXJmYWNlIG9uIHRoZSBjb21taXQsIGJ1dCBpdCB3b3VsZApoYXZlIGJlZW4gaW5pdGlhbGx5 IGRldGVjdGVkIGFuZCBhIHNlcmlhbGl6YXRpb24gZXJyb3IgdGhyb3duIG9uCnRoZSByZWFkLCBi dXQgZXZlbiBpZiBpdCBpcyByZS10aHJvd24gb24gdGhlIGNvbW1pdCwgdGhlIGluaXRpYWwKZXhj ZXB0aW9uIHdvdWxkIGhhdmUgcHJldmVudGVkIHRoZSBkYXRhIHdoaWNoIGNvbnRyYWRpY3RlZAph bHJlYWR5LWNvbW1pdHRlZCBzdGF0ZSBmcm9tIGJlaW5nIHJldHVybmVkLgoKSSBhbHNvIHJlYWxp emVkIHNvbWUgb3RoZXIgcHJvcGVydGllcyBvZiByZWFkLW9ubHkgdHJhbnNhY3Rpb25zCnRoYXQg bWlnaHQgaW50ZXJlc3QgeW91IChhbmQgdGhhdCBJIHNob3VsZCBwcm9iYWJseSBkb2N1bWVudCku ClNpbmNlIHRoZSBvbmx5IHdheSBmb3IgYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24gdG8gYmUgdGhl IG9uCmV4cGVyaWVuY2luZyBhIHNlcmlhbGl6YXRpb24gZmFpbHVyZSBpcyBpZiBUb3V0IGNvbW1p dHMgYmVmb3JlIHRoZQpyZWFkLW9ubHkgdHJhbnNhY3Rpb24gKHdoaWNoIGlzIGFsd2F5cyBUaW4p IGFjcXVpcmVzIGl0cyBzbmFwc2hvdCwKVHBpdm90IGlzIHN0aWxsIHJ1bm5pbmcgd2hlbiBUaW4g YWNxdWlyZXMgaXRzIHNuYXBzaG90LCBUcGl2b3QKY29tbWl0cyBiZWZvcmUgYSBzZXJpYWxpemF0 aW9uIGZhaWx1cmUgaW52b2x2aW5nIFRpbiBpcyBkZXRlY3RlZCwKYW5kICp0aGVuKiBUaW4gcmVh ZHMgYSBkYXRhIHNldCBhZmZlY3RlZCBieSB0aGUgd3JpdGVzIG9mIFRwaXZvdC4KU2luY2UgYSBz bmFwc2hvdCBpcyBvbmx5IGFjcXVpcmVkIHdoZW4gYSBzdGF0ZW1lbnQgaXMgcnVuIHdoaWNoCnJl cXVpcmVzIGEgc25hcHNob3QsIHRoYXQgbWVhbnMgdGhhdCBhIHF1ZXJ5IHJ1biBpbiBhbiBpbXBs aWNpdAp0cmFuc2FjdGlvbiAoaS5lLiwgdGhlcmUgaXMgbm8gU1RBUlQgb3IgQkVHSU4gc3RhdGVt ZW50IHRvCmV4cGxpY2l0bHkgc3RhcnQgaXQ7IHRoZSBTRUxFQ1Qgb3Igb3RoZXIgZGF0YS1hY2Nl c3Npbmcgc3RhdGVtZW50CmF1dG9tYXRpY2FsbHkgc3RhcnRzIHRoZSB0cmFuc2FjdGlvbiBzbyBp dCBoYXMgYSB2YWxpZCBjb250ZXh0IGluCndoaWNoIHRvIHJ1bikgdGhhdCBkb2VzIG5vdCB3cml0 ZSBkYXRhIGNhbiBuZXZlciByZXR1cm4gYmFkIHJlc3VsdHMKbm9yIHJlY2VpdmUgYSBzZXJpYWxp emF0aW9uIGZhaWx1cmUuICBOb3IgY2FuIHRob3NlIHRoaW5ncyBoYXBwZW4Kb24gdGhlICpmaXJz dCogb3IgKm9ubHkqIG5vbi13cml0aW5nIHN0YXRlbWVudCBpbiBhbiBleHBsaWNpdAp0cmFuc2Fj dGlvbi4KCj4gVGhlIHRoaW5nIHRoYXQgd2FzIHB1enpsaW5nIG1lLCBhZnRlciBoYXZpbmcgc2xl cHQgb24gaXQsIGFuZCBiZWZvcmUgSQo+IHJlYWQgeW91ciBtYWlsLCB3YXMgaG93IGl0IGNvdWxk IGhhcHBlbiB0aGF0IHRoZSBzZXJpYWxpc2F0aW9uIGZhaWx1cmUKPiAob2YgYSB0cmFuc2FjdGlv biB0aGF0IGRpZCBvbmx5IHJlYWRzKSB3b3VsZCBvbmx5IGJlIGRldGVjdGVkIGF0Cj4gY29tbWl0 LiAgVGhlIHBvaW50IGFib3V0IGF0dGVtcHRzIHRvIHN1cHByZXNzIHRoZSBzZXJpYWxpc2F0aW9u Cj4gZmFpbHVyZSBpcyBwYXJ0IG9mIHRoZSBhbnN3ZXIgdG8gdGhhdC4gIEFyZSB0aGVyZSBvdGhl ciByZWFzb25zLAo+IGJlc2lkZXMgcHJldmlvdXNseSBzdXBwcmVzc2VkIHNlcmlhbGlzYXRpb24g ZmFpbHVyZXMsIHdoeSBjb21taXQgb2YgYQo+IHRyYW5zYWN0aW9uIHRoYXQgZGlkIG9ubHkgcmVh ZHNbMV0gbWlnaHQgZmFpbCA/CgpJJ20gcHJldHR5IGNvbmZpZGVudCB0aGF0IGlmIHlvdSdyZSBu b3QgdXNpbmcgcHJlcGFyZWQgdHJhbnNhY3Rpb25zCnRoZSBhbnN3ZXIgaXMgIm5vIi4gIE91ciBp bml0aWFsIGltcGxlbWVudGF0aW9uIG9mIHNlcmlhbGl6YWJsZQpwcmVwYXJlZCB0cmFuc2FjdGlv bnMgd2FzIGZvdW5kIHRvIGhhdmUgYSBidWcgYWZ0ZXIgY3Jhc2ggYW5kIHdoZW4KZGVhbGluZyB3 aXRoIHRoZSBwZXJzaXN0ZWQgZGF0YSBmb3VuZCBkdXJpbmcgcmVjb3ZlcnkuICBUaGUgc2FmZXN0 CndheSB0byBmaXggdGhhdCBvbiBzdGFibGUgYnJhbmNoZXMgd2FzLCB1bnRpbCB0aG9zZSBwcmVw YXJlZAp0cmFuc2FjdGlvbnMgd2hpY2ggd2VyZSBmb3VuZCBkdXJpbmcgcmVjb3Zlcnkgd2VyZSBj b21taXR0ZWQgb3IKcm9sbGVkIGJhY2ssIHRvIGJlICp2ZXJ5KiBlYWdlciB0byB0aHJvdyBzZXJp YWxpemF0aW9uIGZhaWx1cmVzIGZvcgphbnkgbmV3IHRyYW5zYWN0aW9ucyB3aGljaCBkZXZlbG9w ZWQgYSBydy1kZXBlbmRlbmN5IHdpdGggdGhlbS4KVGhpcyBjYW4gYmUgaW1wcm92ZWQsIGJ1dCBJ IGZlYXIgdGhhdCB1bnRpbCBhbmQgdW5sZXNzIHRoYXQKaGFwcGVucywgaWYgInByZS1jcmFzaCIg cHJlcGFyZWQgdHJhbnNhY3Rpb25zIGFyZSBzdGlsbCBvcGVuLCBzb21lCm9mIHRoZSBkZWR1Y3Rp b25zIGFib3ZlIG1heSBub3QgaG9sZC4gIElmIHlvdSBkb24ndCB1c2UgcHJlcGFyZWQKdHJhbnNh Y3Rpb25zLCBvciBwcm9tcHRseSBjbGVhbiB1cCBhbnkgdGhhdCB3ZXJlIHBlbmRpbmcgd2hlbiBh CnNlcnZlciBjcmFzaGVzLCB0aGF0IHNob3VsZCBub3QgYmUgYSBwcm9ibGVtLCBidXQgaXQncyBw cm9iYWJseQp3b3J0aCBtZW50aW9uaW5nLgoKT25lIG90aGVyIHNpdHVhdGlvbiBpbiB3aGljaCBJ J20gbm90IGVudGlyZWx5IHN1cmUsIGFuZCBpdCB3b3VsZAp0YWtlIG1lIHNvbWUgdGltZSB0byBy ZXZpZXcgY29kZSB0byBiZSBzdXJlLCBpcyBpZgptYXhfcHJlZF9sb2Nrc19wZXJfdHJhbnNhY3Rp b24gaXMgbm90IHNldCBoaWdoIGVub3VnaCB0bwphY2NvbW1vZGF0ZSB0cmFja2luZyBhbGwgc2Vy aWFsaXphYmxlIHRyYW5zYWN0aW9ucyBpbiBhbGxvY2F0ZWQgUkFNCihyZWNvZ25pemluZyB0aGF0 IHRoZXkgbXVzdCBvZnRlbiBiZSB0cmFja2VkIGFmdGVyIGNvbW1pdCwgdW50aWwKb3ZlcmxhcHBp bmcgc2VyaWFsaXphYmxlIHRyYW5zYWN0aW9ucyBjb21taXQpLCB3ZSBoYXZlIGEgbWVjaGFuaXNt CnRvIHN1bW1hcml6ZSBzb21lIG9mIHRoZSBjb21taXR0ZWQgdHJhbnNhY3Rpb25zIGFuZCBzcGls bCB0aGVtIHRvCmRpc2sgKHVzaW5nIGFuIGludGVybmFsIFNMUlUgbW9kdWxlKS4gIFRoZSBzdW1t YXJpemVkIGRhdGEgbWlnaHQKbm90IGJlIGFibGUgdG8gZGV0ZXJtaW5lIGFsbCBvZiB0aGUgYWJv dmUgYXMgcHJlY2lzZWx5IGFzIHRoZQoibm9ybWFsIiBkYXRhIHRyYWNrZWQgaW4gUkFNLiAgVG8g YXZvaWQgdGhpcywgYmUgZ2VuZXJvdXMgd2hlbgpzZXR0aW5nIG1heF9wcmVkX2xvY2tzX3Blcl90 cmFuc2FjdGlvbjsgbm90IG9ubHkgd2lsbCBpdCBhdm9pZCB0aGlzCnN1bW1hcml6YXRpb24sIGJ1 dCBpdCB3aWxsIHJlZHVjZSB0aGUgYW1vdW50IG9mIHN1bW1hcml6YXRpb24gb2YKbXVsdGlwbGUg cGFnZSBsb2NrcyBpbiB0aGUgcHJlZGljYXRlIGxvY2tpbmcgc3lzdGVtIHRvIHJlbGF0aW9uCmxv Y2tzLiAgQ29hcnNlciBsb2NrcyBpbmNyZWFzZSB0aGUgImZhbHNlIHBvc2l0aXZlIiByYXRlIG9m CnNlcmlhbGl6YXRpb24gZmFpbHVyZXMsIHJlZHVjaW5nIHBlcmZvcm1hbmNlLgoKPiBbMV0gSSBt ZWFuIHRvIGluY2x1ZGUgdHJhbnNhY3Rpb25zIHdoaWNoIGRvbid0IHVwZGF0ZSBldmVuIGlmIHRo ZXkncmUKPiBub3QgZXhwbGljaXRseSBkZWNsYXJlZCBgcmVhZCBvbmx5Jywgc28gdGhhdCB0aGUg YXBwbGljYXRpb24gcmV0YWluZWQKPiAodW50aWwgaXQgc2FpZCB0byBjb21taXQpIHRoZSBvcHRp b24gdG8gdHJ5IHRvIG1ha2UgY2hhbmdlcy4KClRoZXJlIGlzIGFuIGF0dGVtcHQgdG8gcmVjb2du aXplLCBhdCBjb21taXQgdGltZSwgKmltcGxpY2l0KgpyZWFkLW9ubHkgdHJhbnNhY3Rpb25zIC0t IHRob3NlIHRoYXQsIGluIHNwaXRlIG9mIG5vdCBiZWluZwoqZGVjbGFyZWQqIGFzIFJFQUQgT05M WSBuZXZlciB3cm90ZSBhbnkgZGF0YS4gIEFsdGhvdWdoIHRoZXNlIGhhdmUKaGlnaGVyIG92ZXJo ZWFkIHRoYW4gdHJhbnNhY3Rpb25zIGV4cGxpY2l0bHkgZGVjbGFyZWQgUkVBRCBPTkxZIHVwCmZy b250LCBtYW55IG9mIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBleHBsaWNpdGx5IGRlY2xhcmVkIHJl YWQtb25seQp0cmFuc2FjdGlvbiBob2xkIC0tIGluY2x1ZGluZywgaXQgc2VlbXMgdG8gbWUsIHRo ZSBwcm9wZXJ0eSBvZgpuZXZlciByZXR1cm5pbmcgYmFkbHkgc2VyaWFsaXplZCBkYXRhIG5vciBv ZiBiZWluZyBjaG9zZW4gdG8KcmVjZWl2ZSB0aGUgc2VyaWFsaXphdGlvbiBmYWlsdXJlIGVycm9y IHVubGVzcyBib3RoIFRvdXQgYW5kIFRwaXZvdApoYXZlIGFscmVhZHkgY29tbWl0dGVkIChpbiB0 aGF0IG9yZGVyKS4KCj4gU3VwcG9zaW5nIEkgdW5kZXJzdGFuZCB5b3VyIGBkb29tZWQnIGZsYWcg Y29ycmVjdGx5LCBJIHRoaW5rIGl0IGlzCj4gdGhlbiBwcm9iYWJseSBwb3NzaWJsZSB0byBjb25z dHJ1Y3QgYW4gYXJndW1lbnQgdGhhdCBwcm92ZXMgdGhhdAo+IGFsbG93aW5nIHRoZSBhcHBsaWNh dGlvbiB0byB0cmFwIGFuZCBzdXBwcmVzcyBzZXJpYWxpc2F0aW9uIGZhaWx1cmVzCj4gZG9lcyBu b3QgbWFrZSBpdCBoYXJkZXIgdG8gcHJvdmlkZSBjb2hlcmVuY3kgZ3VhcmFudGVlcy4KClRoYXQg aXMgdGhlIGludGVudGlvbi4KCj4gT3IgdG8gcHV0IGl0IGFub3RoZXIgd2F5OiBkb2VzIHBnc3Fs IGFscmVhZHkgZGV0ZWN0IHNlcmlhbGlzYXRpb24KPiBwcm9ibGVtcyAoaW4gdHJhbnNhY3Rpb25z IHdoaWNoIG9ubHkgcmVhZCkgYXQgdGhlIHBvaW50IHdoZXJlIGl0IHdvdWxkCj4gb3RoZXJ3aXNl IHJldHVybiBkYXRhIG5vdCBjb25zaXN0ZW50IHdpdGggYW55IHNlcmlhbGlzYXRpb24gb3JkZXIg Pwo+IChBcyBpdCBkb2VzIGluIHRoZSBgUm9sbG92ZXInIGV4YW1wbGUuKQoKWWVzLCBhcyBleHBs YWluZWQgYWJvdmUuCgo+IElmIHNvIHByZXN1bWFibHkgaXQgYWx3YXlzIHRocm93cyBhIHNlcmlh bGlzYXRpb24gZmFpbHVyZSBhdCB0aGF0Cj4gcG9pbnQuICBJIHRoaW5rIHRoYXQgaXMgdGhlbiBz dWZmaWNpZW50LiAgVGhlcmUgaXMgbm8gbmVlZCB0byB0ZWxsIHRoZQo+IGFwcGxpY2F0aW9uIHBy b2dyYW1tZXIgdGhleSBoYXZlIHRvIGNvbW1pdCBldmVuIHRyYW5zYWN0aW9ucyB3aGljaAo+IG9u bHkgcmVhZC4KCldlbGwsIGlmIHRoZXkgZG9uJ3QgZXhwbGljaXRseSBzdGFydCBhIHRyYW5zYWN0 aW9uIHRoZXJlIGlzIG5vIG5lZWQKdG8gZXhwbGljaXRseSBjb21taXQgaXQsIHBlcmlvZC4gIEFu IGltcGxpY2l0IHRyYW5zYWN0aW9uIGlzCmNyZWF0ZWQgaWYgYSBzdGF0ZW1lbnQgbmVlZGluZyBl eGVjdXRpb24gY29udGV4dCAoc3VjaCBhcyBhIFNFTEVDVCkKaXMgc3RhcnRlZCBvdXRzaWRlIG9m IGFueSBleHBsaWNpdCB0cmFuc2FjdGlvbjsgYnV0IHN1Y2ggYQp0cmFuc2FjdGlvbiBpcyBhbHdh eXMgZXhwbGljaXRseSBjb21taXR0ZWQgb3Igcm9sbGVkIGJhY2sgdXBvbgpjb21wbGV0aW9uIG9m IHRoZSBzdGF0ZW1lbnQuCgpUaGVyZSBpcyBhbHdheXMgYSB0cmFuc2FjdGlvbiwgYnV0IHRoZXJl IGlzIG5vdCBhbHdheXMgYSBuZWVkIHRvCmV4cGxpY2l0bHkgbWFuYWdlIGl0LgoKPiBJZiBteSBz dXBwb3NpdGlvbiBpcyByaWdodCB0aGVuIEkgd2lsbCB0cnkgdG8gZGV2ZWxvcCB0aGlzIGFyZ3Vt ZW50Cj4gbW9yZSBmb3JtYWxseS4gIEkgdGhpbmsgdGhhdCB3b3VsZCBiZSB3b3J0aHdoaWxlIGJl Y2F1c2UgdGhlIGNvbnZlcnNlCj4gcHJvcGVydHkgaXMgdmVyeSBzdXJwcmlzaW5nIHRvIG5vbi1k YXRhYmFzZSBwcm9ncmFtbWVycywgYW5kIHdvdWxkCj4gcmVxdWlyZSB2ZXJ5IGV4cGxpY2l0IGRv Y3VtZW50YXRpb24gYnkgcGdzcWwsIGFuZCBjYXJlZnVsIGF0dGVudGlvbiBieQo+IGFwcGxpY2F0 aW9uIHByb2dyYW1tZXJzLiAgSXQgd291bGQgYmUgbmljZSB0byBiZSBhYmxlIHRvIGRvY3VtZW50 IGEKPiBzdHJvbmdlciBwcm9taXNlLgoKSWYgeW91IGNhbiBwdXQgdG9nZXRoZXIgYSBwYXRjaCB0 byBpbXByb3ZlIHRoZSBkb2N1bWVudGF0aW9uLCB0aGF0CmlzIGFsd2F5cyB3ZWxjb21lISAgSW4g Y2FzZSB5b3UncmUgbm90IGFscmVhZHkgYXdhcmUgb2YgaG93IHdlIGRvCnRoaW5ncywgcGF0Y2hl cyBhcmUgZGV2ZWxvcGVkIGFnYWluc3QgdGhlIG1hc3RlciBicmFuY2gsIGFuZCB0aGVuCnRoZXJl IGlzIGEgZGV0ZXJtaW5hdGlvbiBhYm91dCBob3cgZmFyIGJhY2sgdG8gYmFjay1wYXRjaCBpdCBp bgpzdGFibGUgYnJhbmNoZXMuICBXaGlsZSB0aGUgcnVsZSBpcyB0aGF0IHN0YWJsZSBicmFuY2hl cyBhcmUgb25seQptb2RpZmllZCB0byBjb3JyZWN0IHNlcmlvdXMgYnVncyBvciBzZWN1cml0eSB2 dWxuZXJhYmlsaXRpZXMsIGluCm9yZGVyIHRvIG1ha2UgaXQgYXMgc2FmZSBhcyBwb3NzaWJsZSBm b3IgcGVvcGxlIHRvIGFwcGx5IG1pbm9yCnJlbGVhc2VzIHdpdGhvdXQgZmVhciBvZiBicmVha2lu ZyBzb21ldGhpbmcgdGhhdCB3b3JrcywgSSB0aGluayB3ZQpjb3VsZCBjb25zaWRlciBhbiBhcmd1 bWVudCBmb3IgYmFjay1wYXRjaGluZyBhIGRvYyBjaGFuZ2UgdGhhdApjbGFyaWZpZXMgb3IgZmls bHMgb21pc3Npb25zIHRoYXQgbWFrZSBpdCBkaWZmaWN1bHQgdG8gdXNlIGEKZmVhdHVyZSBjb3Jy ZWN0bHkuCgotLQpLZXZpbiBHcml0dG5lcgpFREI6IGh0dHA6Ly93d3cuZW50ZXJwcmlzZWRiLmNv bQpUaGUgRW50ZXJwcmlzZSBQb3N0Z3JlU1FMIENvbXBhbnkKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=