CgpFcnJhdGEKMTAuNi4xIC0gQmFzaWMgRW5zZW1ibGVzCgpGYWJyaWNpbyBSb2NoYSAtIDEzIE1h ciAyMDEwIC0gVGhlIGV4YW1wbGUgY29kZSBkZWZpbmVzIHByb2MgcGx1cyAobGluZSAyKSwKd2hp Y2ggaXMgbmV2ZXIgdXNlZDsgdGhlIHVzYWdlIHJlZmVycyB0byBhbiBleGFtcGxlIGFkZCBzdWJj b21tYW5kLApzbyB0aGUgcHJvY2VkdXJlJ3MgbmFtZSBzaG91bGQgYmUgYWRkLgoKMTAuNi40IC0g SGFuZGxpbmcgVW5rbm93biBFbnNlbWJsZSBDb21tYW5kcwoKVGhlIG9yaWdpbmFsIGNvZGUgbGlz dGluZyBpcyB0aGlzOgoKcmVuYW1lIHN0cmluZyBzdHJDb3JlCnByb2Mgc3RyUmV2ZXJzZSB7c3Ry aW5nfSB7CiAgICAgICAgc2V0IHJlc3VsdCB7fQogICAgICAgIGZvciB7c2V0IGkgW3N0ckNvcmUg bGVuZ3RoICRzdHJpbmddfSB7JGk+MH0ge30gewogICAgICAgICAgICAgICAgaW5jciBpIC0xCiAg ICAgICAgICAgICAgICBhcHBlbmQgcmVzdWx0IFtzdHJDb3JlIGluZGV4ICRpXQogICAgICAgIH0K ICAgICAgICByZXR1cm4gJHJlc3VsdAp9Cgpwcm9jIHVua25vd25TdHJDbWQge3N0cmluZyBzdWJj b21tYW5kIGFyZ3N9IHsKICAgICAgICBwdXRzICJQYXNzaW5nICRzdWJjb21tYW5kIHRocm91Z2gg dG8gc3RyQ29yZSIKICAgICAgICByZXR1cm4gW2xpc3Qgc3RyQ29yZSAkc3ViY29tbWFuZCB7Kn0k YXJnc10KfQoKbmFtZXNwYWNlIGVuc2VtYmxlIGNyZWF0ZSAtY29tbWFuZCBzdHJpbmcgLW1hcCB7 CiAgICAgICAgcmV2ZXJzZSB7c3RyUmV2ZXJzZX0KfSAtdW5rbm93biB1bmtub3duU3RyQ21kCgpG YWJyaWNpbyBSb2NoYSAxMy1NYXItMjAxMCAtIEl0IGRvZXMgbm90IHdvcmsuIEFmdGVyIGJlaW5n IHNvdXJjZWQgaW4gdGNsc2g4LjUsCnRoZSBzY3JpcHQgZ2VuZXJhdGVzIGEgbnVtYmVyIG9mIHdy b25nICMgYXJnczogc2hvdWxkIGJlICJzdHJDb3JlIGluZGV4IHN0cmluZyBjaGFySW5kZXgiCm1l c3NhZ2VzIGFmdGVyIHRoZSAiUGFzc2luZyBtYXRjaCB0aHJvdWdoIHN0ckNvcmUiICh3aGljaCwg dW5leHBlY3RlZGx5LCBhcHBlYXJzIGFmdGVyIEFOWQpjb21tYW5kIGlzIHR5cGVkIGluIHRjbHNo KS4gQUZBSUssIHtleHBhbmR9IHdhcyBvZmZpY2lhbHkgc3Vic3RpdHV0ZWQgYnkgeyp9IGluIFRj bCA4LjUsIGJ1dApldmVuIGFmdGVyIHJlcGxhY2luZyBpdCBJIGNvdWxkIG5vdCBnZXQgdGhlIGV4 YW1wbGUgdG8gd29yay4gQWN0dWFsbHksIEkgdHJpZWQgdG8gZXhlY3V0ZSB0aGUKZXhhbXBsZSBi ZWNhdXNlIEkgZm91bmQgaXQgc3RyYW5nZSB0aGF0LCBhY2NvcmRpbmcgdG8gdGhlIHRleHQsIHRo ZSAicGFzc2luZyAkc3ViY29tbWFuZCAuLi4iCm1lc3NhZ2VzIHdvdWxkIGFwcGVhciBldmVuIHdo ZW4gc3RyQ29yZSB3YXMgY2FsbGVkIGRpcmVjdGx5LAp3aXRob3V0IGJlaW5nIGNhbGxlZCB2aWEg dGhlIHN0cmluZyBlbnNlbWJsZS4KCkxhcnMgSDogSXQgc2hvdWxkIHdvcmsgYWZ0ZXIgcmVtb3Zp bmcgdGhlIHtleHBhbmR9JGFyZ3MuIFRoZSAtdW5rbm93biBoYW5kbGVyIGlzIG9ubHkKc3VwcG9z ZWQgdG8gcmV0dXJuIHRoZSB0YXJnZXQgY29tbWFuZCBwcmVmaXggKGxpa2Ugb25lIHdvdWxkIHNw ZWNpZnkgaW4KdGhlIC1tYXAgZGljdGlvbmFyeSksIG5vdCB0aGUgZW50aXJlIGNvbW1hbmQuCgpG YWJyaWNpbyBSb2NoYSAtIDE0IE1hciAyMDEwIC0gVGhlIHNvbHV0aW9uIGlzIG1vcmUgb2J2aW91 cyB0aGFuIEkgY291bGQgdGhpbmsgb2Y6CnRoZSBjYWxsIHRvIHN0ckNvcmUgYXQgcHJvYyBzdHJS ZXZlcnNlIChsaW5lIDUpIGlzIG1pc3NpbmcgdGhlIHN0cmluZyBhcmd1bWVudCBmcm9tCndoaWNo IHRoZSBpbmRleCB3aWxsIHJlZmVyIHRvICh0aGUgbGluZSBzaG91bGQgYmUgYXBwZW5kIHJlc3Vs dCBbc3RyQ29yZSBpbmRleCAkc3RyaW5nICRpXSkuCkxhcnMsIEkgZ290IGRpZmZlcmVudCByZXN1 bHRzIHdoZW4gdXNpbmcgeyp9JGFyZ3MgYW5kIHdoZW4gcmVtb3ZpbmcgaXQgY29tcGxldGVseS4g V2l0aG91dCBpdCwKdGhlIHVua25vd24gcHJvY2VkdXJlIHNlZW1zIHRvIGJlIGNhbGxlZCB0aHJl ZSB0aW1lcyBmb3IgYSBzdHJpbmcgcmV2ZXJzZSBhYmMgY29tbWFuZC4gV2hlbiB1c2luZwppdCwg SSBnZXQgb25seSBvbmUgbWVzc2FnZSBQYXNzaW5nIG1hdGNoIHRocm91Z2ggdG8gc3RyQ29yZSBh bmQgdGhlIHN0cmluZyBpcyBhbHNvIGNvcnJlY3RseQpyZXZlcnNlZC4gQm90aCBiZWhhdmlvdXJz IGFyZSBkaWZmZXJlbnQgdGhhbiB0aGVzZSBwb2ludGVkIGJ5IHRoZSBib29rLiAoQW55d2F5LCBj b3VsZCBzb21lb25lCmV4cGxhaW4gd2h5IHRoZSBQYXNzaW5nIG1hdGNoIHRocm91Z2ggdG8gc3Ry Q29yZSBhcHBlYXJzIGV2ZW4gd2hlbiBJIHR5cGUganVzdCBleGl0IGluIHRjbHNoPz8pCgpSTEgg WW91IHNob3VsZCBjb250YWN0IEtlbnQuLi5idXQgaWYgdGhlIGVycmF0YSBjb21lcyBoZXJlLi4u aXQgc2hvdWxkIGJlIG9uIGEgZGlmZmVyZW50IHBhZ2UuCgpGYWJyaWNpbyBSb2NoYSAtIDE0IE1h ciAyMDEwIC0gSSBhbG1vc3QgY3JlYXRlZCBhbm90aGVyIHBhZ2UsIFJvYmVydCwgYnV0IEkgdGhv dWdodCB0aGF0IGtlZXBpbmcKYWxsIHRoZSBkaXNjdXNzaW9uIGFib3V0IHRoZSBib29rIGluIG9u ZSBzaW5nbGUgcGFnZSB3b3VsZCBiZSBiZXR0ZXIgKEkgbXVzdCBhZG1pdCBJIGFtIG5vdCBhd2Fy ZQpvZiBhbnkgcnVsZXMgcmVnYXJkaW5nIHBhZ2VzIGFib3V0IGJvb2tzIGluIHRoZSB3aWtpLCBh bmQgSSB0aGluayBpdCBpcyBzb21ldGhpbmcgdG8gZGViYXRlLi4uKQoKUkxIIEkgZG9uJ3QgcmVh bGx5IHRoaW5rIHRoZXJlIGFyZSBydWxlcyBwZXIgc2UuIEp1c3QgdGhvdWdodCBhIHBvdGVudGlh bGx5IGxvbmcgZXJyYXRhIHBhZ2Ugd291bGQKYmUgYmV0dGVyIHNlcnZlZCBvbiBpdHMgb3duIHBh Z2UgaXMgYWxsLgoKClNlZSBhbHNvOgoKICAgIGh0dHA6Ly9qb3VybmFsLmRlZGFzeXMuY29tLzIw MDkvMDkvMTUvdGNsLWFuZC10aGUtdGstdG9vbGtpdC0ybmQtZWRpdGlvbgoKCgo=